diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt index 433ac243f..1530d2f33 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/ItemModels.kt @@ -132,9 +132,9 @@ fun addItemModels(provider: MatteryItemModelProvider) { provider.generated(MItems.BATTERY_CREATIVE) provider.generated(MItems.PROCEDURAL_BATTERY, modLocation("item/battery_procedural")) - provider.generated(MItems.MATTER_CAPACITOR_BASIC, modLocation("item/matter_capacitor_tier1")) - provider.generated(MItems.MATTER_CAPACITOR_NORMAL, modLocation("item/matter_capacitor_tier2")) - provider.generated(MItems.MATTER_CAPACITOR_DENSE, modLocation("item/matter_capacitor_tier3")) + provider.capacitorWithGauge(MItems.MATTER_CAPACITOR_BASIC, baseTexture = modLocation("item/matter_capacitor_tier1")) + provider.capacitorWithGauge(MItems.MATTER_CAPACITOR_NORMAL, baseTexture = modLocation("item/matter_capacitor_tier2")) + provider.capacitorWithGauge(MItems.MATTER_CAPACITOR_DENSE, baseTexture = modLocation("item/matter_capacitor_tier3")) provider.generated(MItems.MATTER_CAPACITOR_CREATIVE) provider.generated(MItems.MachineUpgrades.Basic.BLANK, modLocation("item/machine_upgrade_tier1")) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt index a29a176f6..fe681f140 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt @@ -143,6 +143,33 @@ class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event .texture("layer1", modLocation("item/machine_upgrade_icon_$upgradeType")) } + fun capacitorWithGauge(item: Item, fillTextures: Int = 8, baseTexture: ResourceLocation?) = exec { + val path = item.registryName!!.path + val texture = baseTexture ?: modLocation("item/$path") + + val empty = withExistingParent("${path}_empty", GENERATED) + .texture("layer0", texture) + + val basic = withExistingParent(path, GENERATED) + .texture("layer0", texture) + .texture("layer1", modLocation("item/matter_capacitor_gauge_$fillTextures")) + .override() + .predicate(modLocation("matter_capacitor_fill"), 0f) + .model(empty) + .end() + + for (i in 1 .. fillTextures) { + val model = withExistingParent("${path}_fill_$i", GENERATED) + .texture("layer0", texture) + .texture("layer1", modLocation("item/matter_capacitor_gauge_$i")) + + basic.override() + .predicate(modLocation("matter_capacitor_fill"), i.toFloat() / fillTextures.toFloat()) + .model(model) + .end() + } + } + companion object { val ARMOR_TRIM_MATERIALS = listOf("quartz", "iron", "netherite", "redstone", "copper", "gold", "emerald", "diamond", "lapis", "amethyst") val GENERATED = ResourceLocation("minecraft", "item/generated") diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt index ccb666bc1..fcb55735e 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRegistry.kt @@ -36,6 +36,7 @@ import ru.dbotthepony.mc.otm.block.decorative.CargoCrateBlock import ru.dbotthepony.mc.otm.block.decorative.ComputerTerminalBlock import ru.dbotthepony.mc.otm.block.decorative.StarChairBlock import ru.dbotthepony.mc.otm.block.decorative.TritaniumPressurePlate +import ru.dbotthepony.mc.otm.capability.MatteryCapability import ru.dbotthepony.mc.otm.capability.matteryEnergy import ru.dbotthepony.mc.otm.client.MatteryGUI import ru.dbotthepony.mc.otm.util.ResourceLocation @@ -317,6 +318,13 @@ object MRegistry : IBlockItemRegistryAcceptor { val tag = stack.getOrDefault(MDataComponentTypes.Configurator.CONFIGURATION, CompoundTag()) if (tag.isEmpty) 0f else 1f } + + for (item in MItems.MATTER_CAPACITORS) { + ItemProperties.register(item, ResourceLocation(OverdriveThatMatters.MOD_ID, "matter_capacitor_fill")) { stack, _, _, _ -> + val cap = stack.getCapability(MatteryCapability.MATTER_ITEM) ?: return@register 1f + (cap.storedMatter / cap.maxStoredMatter).toFloat() + } + } } } diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_1.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_1.png new file mode 100644 index 000000000..64428f359 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_1.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_2.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_2.png new file mode 100644 index 000000000..f0f560b92 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_2.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_3.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_3.png new file mode 100644 index 000000000..59ad4e415 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_3.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_4.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_4.png new file mode 100644 index 000000000..259e88443 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_4.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_5.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_5.png new file mode 100644 index 000000000..f3281b834 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_5.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_6.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_6.png new file mode 100644 index 000000000..49241e961 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_6.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_7.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_7.png new file mode 100644 index 000000000..ee270f646 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_7.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_8.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_8.png new file mode 100644 index 000000000..4e4b63564 Binary files /dev/null and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_gauge_8.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier0.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier0.png index 2bb6e4571..fa28d455d 100644 Binary files a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier0.png and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier0.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier1.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier1.png index d19259474..eaadbd348 100644 Binary files a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier1.png and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier1.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier2.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier2.png index 773c51f07..15fae90cd 100644 Binary files a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier2.png and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier2.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier3.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier3.png index d12d5a1da..bfc1cec47 100644 Binary files a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier3.png and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier3.png differ diff --git a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier4.png b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier4.png index f39082528..533101fc2 100644 Binary files a/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier4.png and b/src/main/resources/assets/overdrive_that_matters/textures/item/matter_capacitor_tier4.png differ