From 6aabc72145abaef820c8291edf0ad7438abc0a74 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 6 Jan 2024 11:21:40 +0700 Subject: [PATCH 1/2] Chemical generator, energy servo and energy counter coloring --- .../advancements/MachineAdvancementsData.kt | 10 ++- .../mc/otm/datagen/blocks/BlockModels.kt | 15 ++++ .../mc/otm/datagen/blocks/BlockStates.kt | 4 +- .../otm/datagen/blocks/ComplexBlockStates.kt | 71 +++++++++--------- .../mc/otm/datagen/items/ItemModels.kt | 6 +- .../mc/otm/datagen/lang/English.kt | 14 ++-- .../mc/otm/datagen/lang/Russian.kt | 14 ++-- .../mc/otm/datagen/loot/LootTablesData.kt | 6 +- .../datagen/recipes/CraftingTableRecipes.kt | 12 +-- .../mc/otm/datagen/recipes/PainterRecipes.kt | 3 + .../dbotthepony/mc/otm/datagen/tags/Tags.kt | 6 +- .../dbotthepony/mc/otm/block/MatteryBlock.kt | 6 +- .../otm/block/tech/ChemicalGeneratorBlock.kt | 3 +- .../mc/otm/block/tech/EnergyCounterBlock.kt | 3 +- .../mc/otm/block/tech/EnergyServoBlock.kt | 3 +- .../mc/otm/compat/jei/JEIPlugin.kt | 2 +- .../mc/otm/registry/MBlockEntities.kt | 6 +- .../ru/dbotthepony/mc/otm/registry/MBlocks.kt | 6 +- .../ru/dbotthepony/mc/otm/registry/MItems.kt | 18 ++--- .../block/chemical_generator/black.png | Bin 0 -> 799 bytes .../block/chemical_generator/blue.png | Bin 0 -> 799 bytes .../block/chemical_generator/brown.png | Bin 0 -> 799 bytes .../block/chemical_generator/cyan.png | Bin 0 -> 799 bytes .../block/chemical_generator/gray.png | Bin 0 -> 799 bytes .../block/chemical_generator/green.png | Bin 0 -> 799 bytes .../block/chemical_generator/light_blue.png | Bin 0 -> 799 bytes .../block/chemical_generator/light_gray.png | Bin 0 -> 799 bytes .../block/chemical_generator/lime.png | Bin 0 -> 799 bytes .../block/chemical_generator/magenta.png | Bin 0 -> 799 bytes .../block/chemical_generator/orange.png | Bin 0 -> 799 bytes .../block/chemical_generator/pink.png | Bin 0 -> 799 bytes .../block/chemical_generator/purple.png | Bin 0 -> 799 bytes .../textures/block/chemical_generator/red.png | Bin 0 -> 799 bytes .../block/chemical_generator/white.png | Bin 0 -> 793 bytes .../block/chemical_generator/yellow.png | Bin 0 -> 799 bytes .../block/chemical_generator_mask.png | Bin 0 -> 1501 bytes .../textures/block/energy_counter/black.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/blue.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/brown.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/cyan.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/gray.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/green.png | Bin 0 -> 670 bytes .../block/energy_counter/light_blue.png | Bin 0 -> 670 bytes .../block/energy_counter/light_gray.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/lime.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/magenta.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/orange.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/pink.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/purple.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/red.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/white.png | Bin 0 -> 670 bytes .../textures/block/energy_counter/yellow.png | Bin 0 -> 670 bytes .../textures/block/energy_counter_mask.png | Bin 0 -> 1164 bytes .../textures/block/energy_servo/black.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/blue.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/brown.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/cyan.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/gray.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/green.png | Bin 0 -> 678 bytes .../block/energy_servo/light_blue.png | Bin 0 -> 678 bytes .../block/energy_servo/light_gray.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/lime.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/magenta.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/orange.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/pink.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/purple.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/red.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/white.png | Bin 0 -> 678 bytes .../textures/block/energy_servo/yellow.png | Bin 0 -> 678 bytes .../textures/block/energy_servo_mask.png | Bin 0 -> 1197 bytes 70 files changed, 119 insertions(+), 89 deletions(-) create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/black.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/blue.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/brown.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/cyan.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/gray.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/green.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/light_blue.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/light_gray.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/lime.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/magenta.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/orange.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/pink.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/purple.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/red.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/white.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/yellow.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator_mask.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/black.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/blue.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/brown.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/cyan.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/gray.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/green.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/light_blue.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/light_gray.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/lime.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/magenta.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/orange.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/pink.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/purple.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/red.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/white.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/yellow.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter_mask.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/black.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/blue.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/brown.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/cyan.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/gray.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/green.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/light_blue.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/light_gray.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/lime.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/magenta.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/orange.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/pink.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/purple.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/red.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/white.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/yellow.png create mode 100644 src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo_mask.png diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt index 942edb0de..4bc01a1bc 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt @@ -70,7 +70,7 @@ fun addMachineAdvancements(serializer: Consumer, lang: Matter val chem = AdvancementBuilder() .parent(root) .display( - itemStack = ItemStack(MItems.CHEMICAL_GENERATOR), + itemStack = ItemStack(MItems.CHEMICAL_GENERATOR[null]!!), title = translation.add("chemical_generator", "Burning the Organics") { russian("Сжигание органики") }, @@ -78,7 +78,11 @@ fun addMachineAdvancements(serializer: Consumer, lang: Matter russian("Создайте химический генератор. Лучше установить его снаружи") }, ) - .addCriterion("has_machine", criterion(MItems.CHEMICAL_GENERATOR)) + .also { + for ((i, v) in MItems.CHEMICAL_GENERATOR.values.withIndex()) + it.addCriterion("has_machine_$i", criterion(v)) + } + .requirements(AdvancementRequirements.Strategy.OR) .save(serializer, modLocation("machines/chemical_generator")) val press = AdvancementBuilder() @@ -117,7 +121,7 @@ fun addMachineAdvancements(serializer: Consumer, lang: Matter val capacitor = CraftEntry(MItems.MATTER_CAPACITOR_BANK.values, "Modular Matter Tank", russianName = "Модульный бак материи") - val counter = CraftEntry(MItems.ENERGY_COUNTER, "Visualize Power Burn", + val counter = CraftEntry(MItems.ENERGY_COUNTER.values, "Visualize Power Burn", russianName = "Визуализация сжигания энергии") val battery = CraftEntry(MItems.BATTERY_BANK.values, "Batteries Not Included", "By all means avoid the urge to hammer incompatible batteries into the power bus.", russianName = "Батарейки в комплект не входят", russianSuffix = "Пожалуйста, воздержитесь от вбивания кувалдой несовместимых батарей в энергетическую шину.") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockModels.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockModels.kt index 531d0fd89..0919c9a83 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockModels.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockModels.kt @@ -14,6 +14,7 @@ fun addBlockModels(provider: MatteryBlockModelProvider) { colored(MBlocks.ESSENCE_STORAGE, listOf("0", "particle")) colored(MBlocks.ITEM_MONITOR, listOf("0", "particle")) colored(MBlocks.MATTER_RECONSTRUCTOR, listOf("0", "particle")) + colored(MBlocks.ENERGY_SERVO, listOf("0", "particle")) colored("matter_capacitor_bank", listOf("1", "particle"), "mattercapacitorbank_frame") colored("battery_bank", listOf("0", "particle"), "batterybank_frame") @@ -22,6 +23,9 @@ fun addBlockModels(provider: MatteryBlockModelProvider) { colored("android_charger", "_middle", listOf("0", "particle")) colored("android_charger", "_top", listOf("0", "particle")) + colored("chemical_generator", "_idle", listOf("0", "particle")) + colored("chemical_generator", "_working", listOf("0", "particle")) + colored("storage_power_supplier", listOf("0", "particle")) colored("matter_panel", listOf("texture", "particle")) colored("drive_viewer", "_idle", listOf("texture", "particle")) @@ -54,5 +58,16 @@ fun addBlockModels(provider: MatteryBlockModelProvider) { colored("android_station", "_idle", mapOf("1" to "android_station_base", "particle" to "android_station_base")) colored("android_station", "_working", mapOf("2" to "android_station_base", "particle" to "android_station_base")) + + val energyCounter = setOf( + "down", "east", "north", "south", + "north_down", "north_east", "north_west", + "south_down", "south_east", "south_west", + "up", "west", + ) + + for (model in energyCounter) { + colored("energy_counter_$model", listOf("texture", "particle"), "energy_counter") + } } } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockStates.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockStates.kt index 70bacd72d..e9de264e2 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockStates.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/BlockStates.kt @@ -29,7 +29,7 @@ fun addBlockStates(provider: MatteryBlockStateProvider) { provider.block(MBlocks.TRITANIUM_INGOT_BLOCK) provider.block(MBlocks.METAL_MESH) - provider.block(MBlocks.CHEMICAL_GENERATOR) + provider.block(MBlocks.CHEMICAL_GENERATOR.values) provider.block(MBlocks.MATTER_SCANNER.values) provider.block(MBlocks.ITEM_MONITOR.values) provider.block(MBlocks.HOLO_SIGN) @@ -110,7 +110,7 @@ fun addBlockStates(provider: MatteryBlockStateProvider) { provider.block(MBlocks.MATTER_PANEL.values) provider.block(MBlocks.MATTER_RECYCLER.values) provider.block(MBlocks.MATTER_RECONSTRUCTOR.values) - provider.block(MBlocks.ENERGY_SERVO) + provider.block(MBlocks.ENERGY_SERVO.values) provider.block(MBlocks.COBBLESTONE_GENERATOR.values) provider.block(MBlocks.ESSENCE_STORAGE.values) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/ComplexBlockStates.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/ComplexBlockStates.kt index f0c14a863..ec9d37129 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/ComplexBlockStates.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/ComplexBlockStates.kt @@ -53,46 +53,49 @@ fun addComplexBlockStates(provider: MatteryBlockStateProvider) { } } - with(provider.getMultipartBuilder(MBlocks.ENERGY_COUNTER)) { - // даваааййй - val up = provider.models().getExistingFile(modLocation("block/energy_counter_up")) - val down = provider.models().getExistingFile(modLocation("block/energy_counter_down")) - val west = provider.models().getExistingFile(modLocation("block/energy_counter_west")) - val east = provider.models().getExistingFile(modLocation("block/energy_counter_east")) + for ((dye, block) in MBlocks.ENERGY_COUNTER) { + with(provider.getMultipartBuilder(block)) { + val dyeName = dye?.name?.lowercase()?.let { "_$it" } ?: "" + // даваааййй + val up = provider.models().getExistingFile(modLocation("block/energy_counter_up$dyeName")) + val down = provider.models().getExistingFile(modLocation("block/energy_counter_down$dyeName")) + val west = provider.models().getExistingFile(modLocation("block/energy_counter_west$dyeName")) + val east = provider.models().getExistingFile(modLocation("block/energy_counter_east$dyeName")) - // ДАААА ДАВАЙЙ ДАААВАААЙЙЙЙЙЙ - val north = provider.models().getExistingFile(modLocation("block/energy_counter_north")) - val northDown = provider.models().getExistingFile(modLocation("block/energy_counter_north_down")) - val northEast = provider.models().getExistingFile(modLocation("block/energy_counter_north_east")) - val northWest = provider.models().getExistingFile(modLocation("block/energy_counter_north_west")) - val south = provider.models().getExistingFile(modLocation("block/energy_counter_south")) - val southDown = provider.models().getExistingFile(modLocation("block/energy_counter_south_down")) - val southEast = provider.models().getExistingFile(modLocation("block/energy_counter_south_east")) - val southWest = provider.models().getExistingFile(modLocation("block/energy_counter_south_west")) + // ДАААА ДАВАЙЙ ДАААВАААЙЙЙЙЙЙ + val north = provider.models().getExistingFile(modLocation("block/energy_counter_north$dyeName")) + val northDown = provider.models().getExistingFile(modLocation("block/energy_counter_north_down$dyeName")) + val northEast = provider.models().getExistingFile(modLocation("block/energy_counter_north_east$dyeName")) + val northWest = provider.models().getExistingFile(modLocation("block/energy_counter_north_west$dyeName")) + val south = provider.models().getExistingFile(modLocation("block/energy_counter_south$dyeName")) + val southDown = provider.models().getExistingFile(modLocation("block/energy_counter_south_down$dyeName")) + val southEast = provider.models().getExistingFile(modLocation("block/energy_counter_south_east$dyeName")) + val southWest = provider.models().getExistingFile(modLocation("block/energy_counter_south_west$dyeName")) - for (dir in arrayOf(Direction.EAST, Direction.WEST, Direction.SOUTH, Direction.NORTH)) { - part().modelFile(down).rotationY(dir.yRotationBlockstateNorth()).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.UP).condition(EnergyCounterBlock.IF_DIRECTION, dir) - part().modelFile(up).rotationY(dir.yRotationBlockstateNorth()).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.DOWN).condition(EnergyCounterBlock.IF_DIRECTION, dir) - } + for (dir in arrayOf(Direction.EAST, Direction.WEST, Direction.SOUTH, Direction.NORTH)) { + part().modelFile(down).rotationY(dir.yRotationBlockstateNorth()).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.UP).condition(EnergyCounterBlock.IF_DIRECTION, dir) + part().modelFile(up).rotationY(dir.yRotationBlockstateNorth()).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.DOWN).condition(EnergyCounterBlock.IF_DIRECTION, dir) + } - // низкий поклон за полностью рабочий поворот вокруг оси Z - part().modelFile(north).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.NORTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.UP) - part().modelFile(northDown).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.NORTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.DOWN) - part().modelFile(northEast).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.NORTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.EAST) - part().modelFile(northWest).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.NORTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.WEST) + // низкий поклон за полностью рабочий поворот вокруг оси Z + part().modelFile(north).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.NORTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.UP) + part().modelFile(northDown).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.NORTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.DOWN) + part().modelFile(northEast).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.NORTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.EAST) + part().modelFile(northWest).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.NORTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.WEST) - part().modelFile(south).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.SOUTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.UP) - part().modelFile(southDown).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.SOUTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.DOWN) - part().modelFile(southEast).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.SOUTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.EAST) - part().modelFile(southWest).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.SOUTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.WEST) + part().modelFile(south).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.SOUTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.UP) + part().modelFile(southDown).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.SOUTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.DOWN) + part().modelFile(southEast).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.SOUTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.EAST) + part().modelFile(southWest).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, Direction.SOUTH).condition(EnergyCounterBlock.IF_DIRECTION, Direction.WEST) - for (dir in arrayOf(Direction.WEST, Direction.EAST)) { - val mdl = if (dir === Direction.WEST) west else east + for (dir in arrayOf(Direction.WEST, Direction.EAST)) { + val mdl = if (dir === Direction.WEST) west else east - part().modelFile(mdl).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, dir).condition(EnergyCounterBlock.IF_DIRECTION, Direction.NORTH) - part().modelFile(mdl).rotationX(-90).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, dir).condition(EnergyCounterBlock.IF_DIRECTION, Direction.UP) - part().modelFile(mdl).rotationX(180).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, dir).condition(EnergyCounterBlock.IF_DIRECTION, Direction.SOUTH) - part().modelFile(mdl).rotationX(90).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, dir).condition(EnergyCounterBlock.IF_DIRECTION, Direction.DOWN) + part().modelFile(mdl).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, dir).condition(EnergyCounterBlock.IF_DIRECTION, Direction.NORTH) + part().modelFile(mdl).rotationX(-90).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, dir).condition(EnergyCounterBlock.IF_DIRECTION, Direction.UP) + part().modelFile(mdl).rotationX(180).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, dir).condition(EnergyCounterBlock.IF_DIRECTION, Direction.SOUTH) + part().modelFile(mdl).rotationX(90).addModel().condition(EnergyCounterBlock.INPUT_DIRECTION, dir).condition(EnergyCounterBlock.IF_DIRECTION, Direction.DOWN) + } } } } 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 f397d23fa..d3de3d6dc 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 @@ -166,15 +166,15 @@ fun addItemModels(provider: MatteryItemModelProvider) { for (item in MRegistry.CARGO_CRATES.allItems.values) provider.block(item, "${item.registryName!!.path}_closed") - provider.block(MItems.CHEMICAL_GENERATOR, "chemical_generator_working") - provider.block(MItems.ENERGY_COUNTER, "energy_counter_down") + provider.coloredWithBaseBlock(MItems.CHEMICAL_GENERATOR, "chemical_generator", "_working") + provider.coloredWithBaseBlock(MItems.ENERGY_COUNTER, "energy_counter_down") provider.coloredWithBaseBlock(MItems.MATTER_BOTTLER, "matter_bottler", "_idle") provider.coloredWithBaseBlock(MItems.MATTER_SCANNER, "matter_scanner", "_idle") provider.coloredWithBaseBlock(MItems.MATTER_REPLICATOR, "matter_replicator", "_idle") provider.coloredWithBaseBlock(MItems.DRIVE_VIEWER, "drive_viewer", "_idle") provider.block(MItems.MATTER_CABLE, "matter_cable_core") provider.coloredWithBaseBlock(MItems.MATTER_DECOMPOSER, "matter_decomposer", "_idle") - provider.block(MItems.ENERGY_SERVO, "energy_servo") + provider.coloredWithBaseBlock(MItems.ENERGY_SERVO, "energy_servo") provider.coloredWithBaseBlock(MItems.ESSENCE_STORAGE, "essence_storage") provider.coloredWithBaseBlock(MItems.MATTER_RECONSTRUCTOR, "matter_reconstructor") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt index 927636f6f..b59724bc3 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/English.kt @@ -453,12 +453,12 @@ private fun blocks(provider: MatteryLanguageProvider) { add(MBlocks.TRITANIUM_INGOT_BLOCK, "Tritanium Plating Block") - add(MBlocks.ENERGY_COUNTER, "Energy Counter") - add(MBlocks.ENERGY_COUNTER, "facing", "Input facing: %s") - add(MBlocks.ENERGY_COUNTER, "switch", "Switch input facing") - add(MBlocks.ENERGY_COUNTER, "limit", "I/O Limit. -1 means no limit") + addBlock(MBlocks.ENERGY_COUNTER.values, "Energy Counter") + add(MBlocks.ENERGY_COUNTER[null]!!, "facing", "Input facing: %s") + add(MBlocks.ENERGY_COUNTER[null]!!, "switch", "Switch input facing") + add(MBlocks.ENERGY_COUNTER[null]!!, "limit", "I/O Limit. -1 means no limit") - add(MBlocks.CHEMICAL_GENERATOR, "Chemical Generator") + addBlock(MBlocks.CHEMICAL_GENERATOR.values, "Chemical Generator") add(MBlocks.DRIVE_RACK, "Condensation Drive Rack") addBlock(MBlocks.ITEM_MONITOR.values, "Item Monitor") addBlock(MBlocks.PLATE_PRESS.values, "Plate Press") @@ -469,8 +469,8 @@ private fun blocks(provider: MatteryLanguageProvider) { addBlock(MBlocks.POWERED_BLAST_FURNACE.values, "Induction Furnace") addBlock(MBlocks.MATTER_RECYCLER.values, "Matter Recycler") - add(MBlocks.ENERGY_SERVO, "Energy Servo") - add(MBlocks.ENERGY_SERVO, "desc", "Charges, Discharges or Exchanges energy of items") + addBlock(MBlocks.ENERGY_SERVO.values, "Energy Servo") + addBlock(MBlocks.ENERGY_SERVO.values, "desc", "Charges, Discharges or Exchanges energy of items") add(MBlocks.CARBON_FIBRE_BLOCK, "Carbon Fibre Block") add(MBlocks.METAL_JUNK, "Metal Junk Block") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt index 3dc3f7820..f529af7e8 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/Russian.kt @@ -455,12 +455,12 @@ private fun blocks(provider: MatteryLanguageProvider) { add(MBlocks.TRITANIUM_INGOT_BLOCK, "Блок слитков тритана") - add(MBlocks.ENERGY_COUNTER, "Счётчик энергии") - add(MBlocks.ENERGY_COUNTER, "Facing", "сторона входа: %s") - add(MBlocks.ENERGY_COUNTER, "Switch", "сменить сторону входа") - add(MBlocks.ENERGY_COUNTER, "Limit", "лимит ввода/вывода. -1 для отключения лимитов") + addBlock(MBlocks.ENERGY_COUNTER.values, "Счётчик энергии") + add(MBlocks.ENERGY_COUNTER[null]!!, "Facing", "сторона входа: %s") + add(MBlocks.ENERGY_COUNTER[null]!!, "Switch", "сменить сторону входа") + add(MBlocks.ENERGY_COUNTER[null]!!, "Limit", "лимит ввода/вывода. -1 для отключения лимитов") - add(MBlocks.CHEMICAL_GENERATOR, "Химический генератор") + addBlock(MBlocks.CHEMICAL_GENERATOR.values, "Химический генератор") add(MBlocks.DRIVE_RACK, "Стеллаж дисков конденсации") addBlock(MBlocks.ITEM_MONITOR.values, "Монитор предметов") addBlock(MBlocks.PLATE_PRESS.values, "Пресс пластин") @@ -471,8 +471,8 @@ private fun blocks(provider: MatteryLanguageProvider) { addBlock(MBlocks.POWERED_SMOKER.values, "Микроволновая печь") addBlock(MBlocks.MATTER_RECYCLER.values, "Перерабатыватель материи") - add(MBlocks.ENERGY_SERVO, "Энергетическая помпа") - add(MBlocks.ENERGY_SERVO, "Desc", "заряжает, разряжает и передаёт энергию между предметами") + addBlock(MBlocks.ENERGY_SERVO.values, "Энергетическая помпа") + addBlock(MBlocks.ENERGY_SERVO.values, "desc", "заряжает, разряжает и передаёт энергию между предметами") add(MBlocks.CARBON_FIBRE_BLOCK, "Блок углеродных трубок") add(MBlocks.METAL_MESH, "Блок металлической сетки") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesData.kt index c6d6db337..3c8e2b49b 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootTablesData.kt @@ -138,9 +138,9 @@ fun addLootTables(lootTables: LootTables) { lootTables.tile(MBlocks.PAINTER) lootTables.tile(MBlocks.MATTER_ENTANGLER) - lootTables.tile(MBlocks.ENERGY_SERVO) - lootTables.tile(MBlocks.ENERGY_COUNTER) - lootTables.tile(MBlocks.CHEMICAL_GENERATOR) + lootTables.tile(MBlocks.ENERGY_SERVO.values) + lootTables.tile(MBlocks.ENERGY_COUNTER.values) + lootTables.tile(MBlocks.CHEMICAL_GENERATOR.values) lootTables.tile(MBlocks.HOLO_SIGN, "isLocked") lootTables.tile(MBlocks.STORAGE_CABLE) lootTables.tile(MBlocks.ANDROID_STATION.values) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt index 1b13af09d..460bfe781 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt @@ -47,10 +47,12 @@ fun addCraftingTableRecipes(consumer: RecipeOutput) { .unlockedBy(MItemTags.TRITANIUM_INGOTS_STORAGE) .save(consumer, modLocation("tritanium_ingot_from_storage")) - ShapelessRecipeBuilder(machinesCategory, MItems.ENERGY_COUNTER, 1) - .requires(MItems.ENERGY_COUNTER) - .unlockedBy(MItems.ENERGY_COUNTER) - .save(consumer, modLocation("energy_counter_reset")) + MItems.ENERGY_COUNTER.values.forEach { + ShapelessRecipeBuilder(machinesCategory, it, 1) + .requires(it) + .unlockedBy(it) + .save(consumer, modLocation("${it.registryName!!.path}_reset")) + } ShapelessRecipeBuilder(machinesCategory, MItems.HOLO_SIGN, 1) .requires(MItems.HOLO_SIGN) @@ -176,7 +178,7 @@ fun addCraftingTableRecipes(consumer: RecipeOutput) { .unlockedBy(MItems.ELECTROMAGNET) .build(consumer) - MatteryRecipe(MItems.ENERGY_SERVO, category = RecipeCategory.MISC) + MatteryRecipe(MItems.ENERGY_SERVO[null]!!, category = RecipeCategory.MISC) .row(MItemTags.TRITANIUM_PLATES, MItems.MACHINE_FRAME, MItemTags.TRITANIUM_PLATES) .row(MItemTags.TRITANIUM_PLATES, MItems.ENERGY_BUS, MItemTags.TRITANIUM_PLATES) .unlockedBy(MItems.ENERGY_BUS) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/PainterRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/PainterRecipes.kt index 268946d80..a3d384f29 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/PainterRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/PainterRecipes.kt @@ -293,6 +293,9 @@ fun addPainterRecipes(consumer: RecipeOutput) { MItems.DRIVE_VIEWER, MItems.ANDROID_CHARGER, MItems.MATTER_PANEL, + MItems.ENERGY_SERVO, + MItems.ENERGY_COUNTER, + MItems.CHEMICAL_GENERATOR, ) for (list in blocks) { diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt index 6a05f734b..fd1615e8e 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/tags/Tags.kt @@ -189,8 +189,8 @@ fun addTags(tagsProvider: TagsProvider) { *MBlocks.MATTER_PANEL.values.toTypedArray(), *MBlocks.MATTER_REPLICATOR.values.toTypedArray(), *MBlocks.MATTER_BOTTLER.values.toTypedArray(), - MBlocks.ENERGY_COUNTER, - MBlocks.CHEMICAL_GENERATOR, + *MBlocks.ENERGY_COUNTER.values.toTypedArray(), + *MBlocks.CHEMICAL_GENERATOR.values.toTypedArray(), *MBlocks.PLATE_PRESS.values.toTypedArray(), *MBlocks.TWIN_PLATE_PRESS.values.toTypedArray(), *MBlocks.MATTER_RECYCLER.values.toTypedArray(), @@ -210,7 +210,7 @@ fun addTags(tagsProvider: TagsProvider) { *MBlocks.STORAGE_POWER_SUPPLIER.values.toTypedArray(), MBlocks.PHANTOM_ATTRACTOR, - MBlocks.ENERGY_SERVO, + *MBlocks.ENERGY_SERVO.values.toTypedArray(), MBlocks.TRITANIUM_INGOT_BLOCK, MBlocks.METAL_JUNK, diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/MatteryBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/MatteryBlock.kt index cd31ca398..858954a4d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/MatteryBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/MatteryBlock.kt @@ -53,16 +53,16 @@ fun Block.getShapeForEachState(properties: List>, fn: (BlockState) - val builder = Object2ObjectArrayMap>() if (properties.isEmpty()) { - val shape = fn(stateDefinition.possibleStates.first()) + val shape = Util.backgroundExecutor().submit(Callable { fn(stateDefinition.possibleStates.first()) }) for (state in stateDefinition.possibleStates) { - builder.put(state, Supplier { shape }) + builder[state] = shape.asSupplier() } } else { val cache = Object2ObjectArrayMap, Supplier>() for (state in stateDefinition.possibleStates) { - builder.put(state, cache.computeIfAbsent(properties.map { state[it] }, Object2ObjectFunction { Util.backgroundExecutor().submit(Callable { fn(state) }).asSupplier() })) + builder[state] = cache.computeIfAbsent(properties.map { state[it] }, Object2ObjectFunction { Util.backgroundExecutor().submit(Callable { fn(state) }).asSupplier() }) } } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/ChemicalGeneratorBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/ChemicalGeneratorBlock.kt index 48e4ca6ee..a70403517 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/ChemicalGeneratorBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/ChemicalGeneratorBlock.kt @@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.block.tech import net.minecraft.core.BlockPos import net.minecraft.network.chat.Component +import net.minecraft.world.item.DyeColor import net.minecraft.world.item.ItemStack import net.minecraft.world.item.TooltipFlag import net.minecraft.world.level.BlockGetter @@ -24,7 +25,7 @@ import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes -class ChemicalGeneratorBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { +class ChemicalGeneratorBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity { return ChemicalGeneratorBlockEntity(p_153215_, p_153216_) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyCounterBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyCounterBlock.kt index 5f3d50d2b..818675b46 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyCounterBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyCounterBlock.kt @@ -4,6 +4,7 @@ import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap import net.minecraft.Util import net.minecraft.core.BlockPos import net.minecraft.core.Direction +import net.minecraft.world.item.DyeColor import net.minecraft.world.item.context.BlockPlaceContext import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.Level @@ -26,7 +27,7 @@ import ru.dbotthepony.mc.otm.shapes.BlockShapes import java.util.concurrent.Callable import java.util.function.Supplier -class EnergyCounterBlock : MatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { +class EnergyCounterBlock(val color: DyeColor?) : MatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { override fun newBlockEntity(blockPos: BlockPos, blockState: BlockState): BlockEntity { return EnergyCounterBlockEntity(blockPos, blockState) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyServoBlock.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyServoBlock.kt index e95a95765..df08c8bfd 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyServoBlock.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/block/tech/EnergyServoBlock.kt @@ -1,6 +1,7 @@ package ru.dbotthepony.mc.otm.block.tech import net.minecraft.core.BlockPos +import net.minecraft.world.item.DyeColor import net.minecraft.world.level.BlockGetter import net.minecraft.world.level.Level import net.minecraft.world.level.block.EntityBlock @@ -20,7 +21,7 @@ import ru.dbotthepony.mc.otm.core.get import ru.dbotthepony.mc.otm.registry.MBlockEntities import ru.dbotthepony.mc.otm.shapes.BlockShapes -class EnergyServoBlock : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { +class EnergyServoBlock(val color: DyeColor?) : RotatableMatteryBlock(DEFAULT_MACHINE_PROPERTIES), EntityBlock { override fun newBlockEntity(p_153215_: BlockPos, p_153216_: BlockState): BlockEntity { return EnergyServoBlockEntity(p_153215_, p_153216_) } diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jei/JEIPlugin.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jei/JEIPlugin.kt index c98c3ae30..d58aef0cb 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jei/JEIPlugin.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/compat/jei/JEIPlugin.kt @@ -64,7 +64,7 @@ class JEIPlugin : IModPlugin { } override fun registerRecipeCatalysts(registration: IRecipeCatalystRegistration) { - registration.addRecipeCatalyst(ItemStack(MItems.CHEMICAL_GENERATOR), RecipeTypes.FUELING) + registration.addRecipeCatalyst(ItemStack(MItems.CHEMICAL_GENERATOR[null]!!), RecipeTypes.FUELING) registration.addRecipeCatalyst(ItemStack(MItems.POWERED_FURNACE[null]!!), RecipeTypes.SMELTING) registration.addRecipeCatalyst(ItemStack(MItems.ExopackUpgrades.SMELTING_UPGRADE), RecipeTypes.SMELTING) registration.addRecipeCatalyst(ItemStack(MItems.POWERED_BLAST_FURNACE[null]!!), RecipeTypes.BLASTING) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt index 985ace44d..fea6ebb36 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlockEntities.kt @@ -64,13 +64,13 @@ object MBlockEntities { val CARGO_CRATE by register(MNames.CARGO_CRATE, ::CargoCrateBlockEntity, MRegistry.CARGO_CRATES.blocks) val DRIVE_RACK by register(MNames.DRIVE_RACK, ::DriveRackBlockEntity, MBlocks::DRIVE_RACK) val ITEM_MONITOR by register(MNames.ITEM_MONITOR, ::ItemMonitorBlockEntity, MBlocks.ITEM_MONITOR) - val ENERGY_COUNTER by register(MNames.ENERGY_COUNTER, ::EnergyCounterBlockEntity, MBlocks::ENERGY_COUNTER) - val CHEMICAL_GENERATOR by register(MNames.CHEMICAL_GENERATOR, ::ChemicalGeneratorBlockEntity, MBlocks::CHEMICAL_GENERATOR) + val ENERGY_COUNTER by register(MNames.ENERGY_COUNTER, ::EnergyCounterBlockEntity, MBlocks.ENERGY_COUNTER) + val CHEMICAL_GENERATOR by register(MNames.CHEMICAL_GENERATOR, ::ChemicalGeneratorBlockEntity, MBlocks.CHEMICAL_GENERATOR) val PLATE_PRESS by register(MNames.PLATE_PRESS, ::PlatePressBlockEntity, MBlocks.PLATE_PRESS) val TWIN_PLATE_PRESS by register(MNames.TWIN_PLATE_PRESS, { a, b -> PlatePressBlockEntity(a, b, true) }, MBlocks.TWIN_PLATE_PRESS) val GRAVITATION_STABILIZER by register(MNames.GRAVITATION_STABILIZER, ::GravitationStabilizerBlockEntity, MBlocks::GRAVITATION_STABILIZER) val MATTER_RECYCLER by register(MNames.MATTER_RECYCLER, ::MatterRecyclerBlockEntity, MBlocks.MATTER_RECYCLER) - val ENERGY_SERVO by register(MNames.ENERGY_SERVO, ::EnergyServoBlockEntity, MBlocks::ENERGY_SERVO) + val ENERGY_SERVO by register(MNames.ENERGY_SERVO, ::EnergyServoBlockEntity, MBlocks.ENERGY_SERVO) val COBBLESTONE_GENERATOR by register(MNames.COBBLESTONE_GENERATOR, ::CobblerBlockEntity, MBlocks.COBBLESTONE_GENERATOR) val ESSENCE_STORAGE by register(MNames.ESSENCE_STORAGE, ::EssenceStorageBlockEntity, MBlocks.ESSENCE_STORAGE) val MATTER_RECONSTRUCTOR by register(MNames.MATTER_RECONSTRUCTOR, ::MatterReconstructorBlockEntity, MBlocks.MATTER_RECONSTRUCTOR) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt index baa5d5a73..f384631cf 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MBlocks.kt @@ -97,15 +97,15 @@ object MBlocks { val MATTER_PANEL = registry.coloredWithBase(MNames.MATTER_PANEL, ::MatterPanelBlock) val MATTER_REPLICATOR = registry.coloredWithBase(MNames.MATTER_REPLICATOR, ::MatterReplicatorBlock) val MATTER_BOTTLER = registry.coloredWithBase(MNames.MATTER_BOTTLER, ::MatterBottlerBlock) - val ENERGY_COUNTER by registry.register(MNames.ENERGY_COUNTER, ::EnergyCounterBlock) - val CHEMICAL_GENERATOR by registry.register(MNames.CHEMICAL_GENERATOR, ::ChemicalGeneratorBlock) + val ENERGY_COUNTER = registry.coloredWithBase(MNames.ENERGY_COUNTER, ::EnergyCounterBlock) + val CHEMICAL_GENERATOR = registry.coloredWithBase(MNames.CHEMICAL_GENERATOR, ::ChemicalGeneratorBlock) val PLATE_PRESS = registry.coloredWithBase(MNames.PLATE_PRESS, ::PlatePressBlock) val TWIN_PLATE_PRESS = registry.coloredWithBase(MNames.TWIN_PLATE_PRESS) { color -> PlatePressBlock(color, isTwin = true) } val POWERED_FURNACE = registry.coloredWithBase(MNames.POWERED_FURNACE, ::PoweredFurnaceBlock) val POWERED_BLAST_FURNACE = registry.coloredWithBase(MNames.POWERED_BLAST_FURNACE, ::PoweredBlastFurnaceBlock) val POWERED_SMOKER = registry.coloredWithBase(MNames.POWERED_SMOKER, ::PoweredSmokerBlock) val MATTER_RECYCLER = registry.coloredWithBase(MNames.MATTER_RECYCLER, ::MatterRecyclerBlock) - val ENERGY_SERVO by registry.register(MNames.ENERGY_SERVO, ::EnergyServoBlock) + val ENERGY_SERVO = registry.coloredWithBase(MNames.ENERGY_SERVO, ::EnergyServoBlock) val COBBLESTONE_GENERATOR = registry.coloredWithBase(MNames.COBBLESTONE_GENERATOR, ::CobblerBlock) val INFINITE_WATER_SOURCE by registry.register(MNames.INFINITE_WATER_SOURCE) { InfiniteWaterSourceBlock() } val ESSENCE_STORAGE = registry.coloredWithBase(MNames.ESSENCE_STORAGE, ::EssenceStorageBlock) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt index 8c3681fec..8db343d04 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MItems.kt @@ -77,8 +77,8 @@ object MItems { val TRITANIUM_ORE: BlockItem by registry.register(MNames.TRITANIUM_ORE) { BlockItem(MBlocks.TRITANIUM_ORE, DEFAULT_PROPERTIES) } val DEEPSLATE_TRITANIUM_ORE: BlockItem by registry.register(MNames.DEEPSLATE_TRITANIUM_ORE) { BlockItem(MBlocks.DEEPSLATE_TRITANIUM_ORE, DEFAULT_PROPERTIES) } val TRITANIUM_RAW_BLOCK: BlockItem by registry.register(MNames.TRITANIUM_RAW_BLOCK) { BlockItem(MBlocks.TRITANIUM_RAW_BLOCK, DEFAULT_PROPERTIES) } - val ENERGY_COUNTER: BlockItem by registry.register(MNames.ENERGY_COUNTER) { BlockItem(MBlocks.ENERGY_COUNTER, DEFAULT_PROPERTIES) } - val CHEMICAL_GENERATOR: BlockItem by registry.register(MNames.CHEMICAL_GENERATOR) { BlockItem(MBlocks.CHEMICAL_GENERATOR, DEFAULT_PROPERTIES) } + val ENERGY_COUNTER = register(MNames.ENERGY_COUNTER, MBlocks.ENERGY_COUNTER) + val CHEMICAL_GENERATOR = register(MNames.CHEMICAL_GENERATOR, MBlocks.CHEMICAL_GENERATOR) val PLATE_PRESS = register(MNames.PLATE_PRESS, MBlocks.PLATE_PRESS) val TWIN_PLATE_PRESS = register(MNames.TWIN_PLATE_PRESS, MBlocks.TWIN_PLATE_PRESS) val MATTER_RECYCLER = register(MNames.MATTER_RECYCLER, MBlocks.MATTER_RECYCLER) @@ -99,7 +99,7 @@ object MItems { val GRAVITATION_STABILIZER: BlockItem by registry.register(MNames.GRAVITATION_STABILIZER) { BlockItem(MBlocks.GRAVITATION_STABILIZER, DEFAULT_PROPERTIES) } val PHANTOM_ATTRACTOR: DoubleHighBlockItem by registry.register(MNames.PHANTOM_ATTRACTOR) { DoubleHighBlockItem(MBlocks.PHANTOM_ATTRACTOR, DEFAULT_PROPERTIES) } - val ENERGY_SERVO: BlockItem by registry.register(MNames.ENERGY_SERVO) { BlockItem(MBlocks.ENERGY_SERVO, DEFAULT_PROPERTIES) } + val ENERGY_SERVO = register(MNames.ENERGY_SERVO, MBlocks.ENERGY_SERVO) val COBBLESTONE_GENERATOR = register(MNames.COBBLESTONE_GENERATOR, MBlocks.COBBLESTONE_GENERATOR) val INFINITE_WATER_SOURCE: BlockItem by registry.register(MNames.INFINITE_WATER_SOURCE) { BlockItem(MBlocks.INFINITE_WATER_SOURCE, DEFAULT_PROPERTIES) } @@ -121,12 +121,12 @@ object MItems { machines.addAll(POWERED_BLAST_FURNACE.asSupplierArray()) machines.addAll(POWERED_SMOKER.asSupplierArray()) - machines.addAll(ANDROID_STATION.asSupplierArray().iterator()) - machines.addAll(ANDROID_CHARGER.asSupplierArray().iterator()) - machines.addAll(BATTERY_BANK.asSupplierArray().iterator()) - machines.add(::ENERGY_COUNTER) - machines.add(::CHEMICAL_GENERATOR) - machines.add(::ENERGY_SERVO) + machines.addAll(ANDROID_STATION.asSupplierArray()) + machines.addAll(ANDROID_CHARGER.asSupplierArray()) + machines.addAll(BATTERY_BANK.asSupplierArray()) + machines.addAll(ENERGY_COUNTER.asSupplierArray()) + machines.addAll(CHEMICAL_GENERATOR.asSupplierArray()) + machines.addAll(ENERGY_SERVO.asSupplierArray()) machines.add(::PAINTER) machines.addAll(COBBLESTONE_GENERATOR.asSupplierArray().iterator()) diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/black.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/black.png new file mode 100644 index 0000000000000000000000000000000000000000..e02faebdb21c5197a61c5649c15f4de658d1e26a GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#ecPr zw{>}=Q-DS=mIV0)GdMiEkp|)Fr%o3R|8Oxy~NYk zmHh=HtDw5M^FxydKt1iAE{-7{$B$0Fy{TD&$JKYrHX(zA-~aDdIWeraUAv9{?wN#= z6GiF{%p4cWat; z4`wzvx0`-*x%ViOy)VmWkvU%qtJ1&c4vaSs8XPcqv4xF+!FWAGLLz6u1jfeZj>B>c zo3dC78t$#uFAZSW+Ms)2hOUFx2cCHw_U&ium@v(^;F1~tn~AS}TeJJD)>{_4LRF?f zK{n+MgN~8mlW#(|FEfNNFsn29HB9)tefNhqMxOp2>z3FowP={$uoK!B3`d4 z*0a^|X?U*sWpC5xP+qQ%iI0|uEITal^!QJOPEk*;oBkX}9Rt}aK6zeTo}$mw=JDxq zNgRikLWsi+rW(c-Dk=gjty7lw87J(ED30;E!Dzvy%rn`G^JddAwIyO+0p1;^^?D2I z6&EMpy7JsNr!V_R;F8M~N@qh%m6wM6QheZ7KGE-cKLdYNM@dx;+kq)v_nBYi)xUqt`X1KABzm0Xkxq!^40j7)S540R2RLkuje3@w33 z+rYrez+l4O#YHF@a`RI%(<%`f3_}dftPDU1qJjIIdLU4P2Hb{{%-q!ClEmBsgdWon eLvt%*ODj`Th#r@@yM6-oFnGH9xvXzFXjx8RZ)|C@=gep|Eqtkzo=yFyi_ zKtVR;4ug)7;gfGdw=XklGI#-@5YLH>WTANZ^vo6-sAAOqG|0{8D`2S3c42dp`qzRYyrx4cmb!UH6$^<<-PE z-Csoi(gWEIUx2ZsTH+c}l9E`GYL#4+3Zxi}42(>44GeV+j6)18tPCxI zNZY``%D`a4-o-^I8glbfGSey%8Vo}W&8!SS2%>@eoO&Qog9hA&lFZ!H;*!MN0)!sZ f5JPh-V@oSjQ-~gyxx0P>^)Pt4`njxgN@xNA#M2ty literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/brown.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/brown.png new file mode 100644 index 0000000000000000000000000000000000000000..85c2bbd9adb04c8f3af557a5a9971ef33400c18c GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#5wU@Qsp3ubV5b|VeMN%D4g5vtyk17tIB7I;J!GcfQS0%1l`4X*~EAbW|Y zuPgftMpi*}bLWR94}f~wJzX3_JdPioe0x)~0*|Zjlx;!=3BUi}uX18oZ@YFI|J^eQ zB`1p19hf;Tl;vi-On?29=|)GM`C{dj@hfh6Gu$YPoz8eYo3){jnZbM7G(Mfw18bZc zZXV2RaBesK=5p^*CVO9&&mwca6jr5w&m9`; zfr4zx9R?jE!zbT_ZeL~yVPIBg@@tszdHe1UZ;U+sJ=QI;S!&TRyI-&!N0r9TOid5m|Ov;OX(73Z0^!TsQqWjyeXiRebWixI9Ilr_JNj z4uY984_kITcs*aMX8ny#dy6!W-%BzWS z%6-Pq5I^k$yT6G3r3bPbz5ruMwZt`|BqgyV)hf9t6-Y4{85o)98W`#t7>5{GSQ%OZ zk+y+>m4U&8y^D)bH00)|WTsUjG#G{$npqiu5JUs_IrTuG1`W6kC7HRY#U+Wk1qeN+ fA%^Bw#+Fv5rVu?Yb9em&>S6G7^>bP0l+XkKRC62b literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/cyan.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..4096a5fad435f8b1593df2480f601e2ab2d2554f GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#`; zfr4zx9R?jE!zbT_ZeL~yVPIBg@@tszdHe1UZ;U+sJ=QI;S!&TRyI-&!N0r9TOid5m|Ov;OX(73Z0^!TsQqWjyeXiRebWixI9Ilr_JNj z4uY984_kITcs*aMX8ny#dy6!W-%BzWS z%6-Pq5I^k$yT6G3r3bPbz5ruMwZt`|BqgyV)hf9t6-Y4{85o)98W`#t7>5{GSQ%OZ zk+y+>m4U&8y^BGq0HGl_KP5A*5~0B`#L&#j0E8eKxX-Bv0ySvBZ79jiO)V}-%q>9Z gF%2;^w=%Z0GBt(hahbd8Cr}TAr>mdKI;Vst01iPM`2YX_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/gray.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/gray.png new file mode 100644 index 0000000000000000000000000000000000000000..1e57b5caac13168c2f2c9a46342eb176ecd58ce1 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#O>_%)r2R2!t6$HM|;tg6t)p zzOL*q7+D3?&7B{bJOJux_jGX#@i=~T^6gE{3Oug9Q?>~iB>et=zsiYWz3tj<{CCeJ zl$arW+l3=8KhA#;>^P&2XbEb~@wrY}ST8W(MzR)A)2!53F%+ zxOp(M!MWY^o6EgNne2U8K8wuxQdpJ#J$GQddC=g1!HX?y3=GEW84?mX3nnl&Hg_DB zW7w3%TF`KBwSH*;!`24f12c3Tygu;E+pupxTgQZHz6F=e_}@%?_1l`=XSLq4*cGZW z1q!k$cNlbx44-@xx_y};gn?O|$**C;=k2>cyfO0h_gJ^YW~oKP^oD)c*FRmA#t`v( zO|hP>j!(mL)h~OSK8NyhbxeG;L}b}vfv3lRDs+l^a^3XjIO-V4R`JR6;_?)Io;Ht9 zk4xe>v=l-dZZOp_u24}CU}>GQyw5mcUqo??*9}GsE@hs{UYs|Zj;SpX^9u0pFs;{H zSg*J^`PP-^zBzr_M*^2zu24D~Vye6}AKJSDz7HS zDfbyaL;SQ4?EWJ9mmbJ&_yUY2)e_f;l9a@fRIB8oR3OD*WME{XYhb8rU>ss#VP$9u zMA`-hRt5$W_AV|$(U6;;l9^VC&|ny1Xl7*qLJ$qy=hOp%8Z_WGlw{_n7MCRE79jMP fh8UV#8CzPJnnLur%-!`9sE5JR)z4*}Q$iB}xn3L_ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/green.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/green.png new file mode 100644 index 0000000000000000000000000000000000000000..3434f4536c9d464ab1e988118bc5bc266f96aae8 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#+9>~HMz94waq<*ii(Q<|NsB$)vMdL zZ*SMyBmy*ou_VYZn8D%MjWiG^$=lsUsCrKhkj=nZ;1OBOz`%D1gc(IOyc&Rl>?NMQ zuIw)uSq0V2ogbP!0P1P?ba4#vIDT~U?M=-JJg&Y|wh0*|{QiHx%86mU?b>bpch4l0 zoG4OvVCJ|`mYeM|{q<9(8y$J(iKMpY@yYYz@)UiZHjht_ zOX4`R6ha(sFx4=wP*D+JX`QmX&p2UUL~)GQ4MqztWuD1ioHv_}sVx!n3h?eQt=C&v zuedn*)|KbJIepnj0+(E_P&yl8s=PGhm*NAz@`--m`x*GFI!dZ)*bYqTy3hP7uO`MR z_ZdG!{In13{v!I99>{L^0*ocq64!{5l*E!$tK_0oAjM#0U}U0eV5n9nO2F=U>IU(W@P|E5Dnbt)B}MUG~hOrWag$8mn7yEAoQ4q e7@AudTUwc#LiD)I-Srcwhr!d;&t;ucLK6U~<{PL0 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/light_blue.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/light_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..7edd8ec9bb5fa85c40ac7872ae5bae44440809c0 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#Fdh=f{|5F-Q4-1$pfICc25__5RcyJ7t@YLBj9<_p6*3*4wV##((!r zLdl6Dbq8jS3uU?4F4JE>WxCOkXTDf@W&Dbp-V8U&Vy81+&t`4tV`lK4HjPgw^}rhE zhMNa78=Tuszq#Cdl*!(g<+I3~FNIa<-*X4Xn+FXJ7`)iR#=u~_o*^NTvtR;aV{^x0 zIfhMHtOX7CR_m7rFl=qmJupMp!RrIhybb&Ivvo|E=38*djQ`EVSHG>i9G~SN*cL>2oMASI5LhOGK6(7I=F6r$VQwC)Z7Xj-!r&Y!#n8FD_5f=V|l! z^tdFBLrWpV;RaI;;|diO0hZP&%lnKI_C*xOc->&M;8Nz9?8SMr>6qFQF|Ppc4%2$Q zh4qSylW$#l?wiw>eI#(nGsI8(!0s=if9ZkjhA+TaQY~?fC`m~yNwrEYN(E93Mg~SEx(0^22F4)<7FLFq zK%{M8U}a!1VejH16b-rgDVb@N2n~iIhGtd+oZUI7% gX^5e@m9eFjsVPK{%iLW*fqED`UHx3vIVCg!04>xXQ~&?~ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/light_gray.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/light_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..29cbfc793c9dbd61c602d4e8a4b3a03677f5159a GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#_!@hljQC0B2>L62gqjNEbxddW?8eR=RLG}_) zUsv`QjI4s{=FSgI9su>Ud%8G=cpN`E`Szw}1s+%5Dcgh$5`O=`U**KG-gfOa{<~)q zN=_81J1}!xD9g=ung04I(~XWi^To<5<5%4DX1GxnJDu@*Hfuv4GlTcEX?!}V2i7<@ z+&q}s;M{Kd&E?*sO!mGkpGD?;DXdEWo;xt!JZNyh;Kdd;1_tBx3<-&x1rrz>n>!B6 zF>K0WEoiv6TE8@aVQYi#ff>3EULSboZP>S;tz*J8--1hK{BI_{`fbhbvs!Oi>z}SlV~BXY zrdZEb$EV@B>X*GupF?@MIwn3^BC_nTz|-SD6*@&dxo-M%9CZw2tN7%3ae0b9Pn*Z5 z$0czbS_&Z!H<)S|SE#56u(VED-e;V!FQPcc>jt9*mom>}FV34y$JCaHc?EcPnAYnp ztXEu|eCx_{-<-beBY{gUS16qgF;!j~@=Ni7U-?A8@BIw?RUIW&HEai_blqoul~)tv zl>3aIA%5Bic7GB5OAll>d;!LiYKdz^NlIc#s#S7PDv)9@GB7gHH89jQFb*-Wurjm+ zB5eZ$D+7ZGdlwg>Xvob^$xN$6XfO;hG_x`QA&3UgTe~DWM4f`7R$v literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/lime.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/lime.png new file mode 100644 index 0000000000000000000000000000000000000000..f64f14244f8ec60b9ee32c122f18a588f0c29139 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#O>_%)r2R2!t6$HM|;tg6t)p zzOL*q7+D3?&7B{bJOJux_jGX#@i=~T^6gE{3Oug9Q?>~iB>et=zsiYWz3tj<{CCeJ zl$arW+l3=8KhA#;>^P&2XbEb~@wrY}ST8W(MzR)A)2!53F%+ zxOp(M!MWY^o6EgNne2U8K8wuxQdpJ#J$GQddC=g1!HX?y3=GEW84?mX3nnl&Hg_DB zW7w3%TF`KBwSH*;!`24f12c3Tygu;E+pupxTgQZHz6F=e_}@%?_1l`=XSLq4*cGZW z1q!k$cNlbx44-@xx_y};gn?O|$**C;=k2>cyfO0h_gJ^YW~oKP^oD)c*FRmA#t`v( zO|hP>j!(mL)h~OSK8NyhbxeG;L}b}vfv3lRDs+l^a^3XjIO-V4R`JR6;_?)Io;Ht9 zk4xe>v=l-dZZOp_u24}CU}>GQyw5mcUqo??*9}GsE@hs{UYs|Zj;SpX^9u0pFs;{H zSg*J^`PP-^zBzr_M*^2zu24D~Vye6}AKJSDz7HS zDfbyaL;SQ4?EWJ9mmbJ&_yUY2)e_f;l9a@fRIB8oR3OD*WME{XYhb8rU>ss#VP$9u zMA`-hRt5$W_AV|$(U6;;l9^VC&|ny1Xl7*qLJ$qy=hOp%8Z_WGlw{_n7MCRE79jMP fh8UV#8CzPJnnLur%-!`9sE5JR)z4*}Q$iB}O9CBp literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/magenta.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..4fb0980a8cf07ed63f824d98dadbd6d48b49dfea GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#a)($X?>< z>&pIukyTLL-1(u&1E2xzo-U3d9>zFXjx8RZ)|C@=gep|Eqtkzo=yFyi_ zKtVR;4ug)7;gfGdw=XklGI#-@5YLH>WTANZ^vo6-sAAOqG|0{8D`2S3c42dp`qzRYyrx4cmb!UH6$^<<-PE z-Csoi(gWEIUx2ZsTH+c}l9E`GYL#4+3Zxi}42(>44GeV+j6)18tPCxI zNZY``%D`a4-o-^I8glbfGSey%8Vo}W&8!SS2%>@eoO&Qog9hA&lFZ!H;*!MN0)!sZ f5JPh-V@oSjQ-~gyxx0P>^)Pt4`njxgN@xNAFdh=f{|5F-Q4-1$pfICc25__5RcyJ7t@YLBj9<_p6*3*4wV##((!r zLdl6Dbq8jS3uU?4F4JE>WxCOkXTDf@W&Dbp-V8U&Vy81+&t`4tV`lK4HjPgw^}rhE zhMNa78=Tuszq#Cdl*!(g<+I3~FNIa<-*X4Xn+FXJ7`)iR#=u~_o*^NTvtR;aV{^x0 zIfhMHtOX7CR_m7rFl=qmJupMp!RrIhybb&Ivvo|E=38*djQ`EVSHG>i9G~SN*cL>2oMASI5LhOGK6(7I=F6r$VQwC)Z7Xj-!r&Y!#n8FD_5f=V|l! z^tdFBLrWpV;RaI;;|diO0hZP&%lnKI_C*xOc->&M;8Nz9?8SMr>6qFQF|Ppc4%2$Q zh4qSylW$#l?wiw>eI#(nGsI8(!0s=if9ZkjhA+TaQY~?fC`m~yNwrEYN(E93Mg~SEx(0^22F4)<7FLFq zK%{M8U}a!1VejH16b-rgDVb@N2n~iIhGtd+oZUI7% gX^5e@m9eFjsVPK{%iLW*fqED`UHx3vIVCg!04tUsU;qFB literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/pink.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/pink.png new file mode 100644 index 0000000000000000000000000000000000000000..df99c427a89aa8440f41bf7ddac1c998f291fae9 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#) z^mS!_!N@A8ZtnchuuL=yigm%^&_@3{lx&4UI93|?$uV_+~|&ybMFSulaIvAN^0 z9K)t8)`Et6tMy9*7`8U(9+;u);PruL-iCeq**Ydn^DVe!#{XvGtKZh_KCAVX#ja45 zDNvA2xx=7iWccKp(Cy0%Aq>pwOnwa$K5yUs;f;}}zsI^IHcKrUrZ?=nzW(W|G=_-R zYl`)3b$lA0tA5$r^f{E5t7GD$B_hiX3p_pkQ=wDTlk28G$5F>Xwu(=l7ni5#^R#(< zdR!96p`{SwaD%CaafOPC088tX<$cBp`yz^CylyaBa4GXl_Ts$RbWClDm{)*zhiSdu z!g|HU$+xaN_s!|cJ`%X(a)r{_5L4x)A-@zK_?1ue``*vMU)51kRl{~*O4ohnS9vut zPPxzc8RDmXVD}f%zw|(M!xvyIsg}4#l%ynGwbW?wfXF|wY7aD3yO-0{{R2~>eZ{; zw{QPbI+zPIg0UpXFPOpM*^M+1C&}C0MW}jD4v@{jS>O>_%)r2R2!t6$HM|;tg6t)p zzOL*q7+D3?&7B{bJOJux_jGX#@i=~T^6gE{3Oug9Q?>~iB>et=zsiYWz3tj<{CCeJ zl$arW+l3=8KhA#;>^P&2XbEb~@wrY}ST8W(MzR)A)2!53F%+ zxOp(M!MWY^o6EgNne2U8K8wuxQdpJ#J$GQddC=g1!HX?y3=GEW84?mX3nnl&Hg_DB zW7w3%TF`KBwSH*;!`24f12c3Tygu;E+pupxTgQZHz6F=e_}@%?_1l`=XSLq4*cGZW z1q!k$cNlbx44-@xx_y};gn?O|$**C;=k2>cyfO0h_gJ^YW~oKP^oD)c*FRmA#t`v( zO|hP>j!(mL)h~OSK8NyhbxeG;L}b}vfv3lRDs+l^a^3XjIO-V4R`JR6;_?)Io;Ht9 zk4xe>v=l-dZZOp_u24}CU}>GQyw5mcUqo??*9}GsE@hs{UYs|Zj;SpX^9u0pFs;{H zSg*J^`PP-^zBzr_M*^2zu24D~Vye6}AKJSDz7HS zDfbyaL;SQ4?EWJ9mmbJ&_yUY2)e_f;l9a@fRIB8oR3OD*WME{XYhb8rU>ss#VP$9u zMA`-hRt5$W_AV|$(U6;;l9^VC&|ny1Xl7*qLJ$qy=hOp%8Z_WGlw{_n7MCRE79jMP fh8UV#8CzPJnnLur%-!`9sE5JR)z4*}Q$iB}iryXd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/red.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/red.png new file mode 100644 index 0000000000000000000000000000000000000000..ce23d0f52b79cef5ded9410b0707052f87a0d410 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#zFXjx8RZ)|C@=gep|Eqtkzo=yFyi_ zKtVR;4ug)7;gfGdw=XklGI#-@5YLH>WTANZ^vo6-sAAOqG|0{8D`2S3c42dp`qzRYyrx4cmb!UH6$^<<-PE z-Csoi(gWEIUx2ZsTH+c}l9E`GYL#4+3Zxi}42(>44GeV+j6)18tPCxI zNZY``%D`a4-o-^I8glbfGSey%8Vo}W&8!SS2%>@eoO&Qog9hA&lFZ!H;*!MN0)!sZ f5JPh-V@oSjQ-~gyxx0P>^)Pt4`njxgN@xNA^$r^L literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/white.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/white.png new file mode 100644 index 0000000000000000000000000000000000000000..d5bf8514133ffb38318c1307f01e518e2e842261 GIT binary patch literal 793 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{Jm_C&U#jKsqN1Yz|Np;w_3HNR z+bZ>+p91wWmIV0)GdMiEkp|)m6;n`UX>-VUeVsw@(k9NhTVf5&lh)q1Oo%EqeBU&+;6P)^ zghJ+m6GsAWdB5>v4q)V&!)d{obn^bYLz_>l*edRv^l8c?hB&4+$NSe-M=?B@Q-1IF zp8^BMdD9Jexb(tJwG>pnCKt`%cb+6ay;&tpMN`b)FpNEvRX`(U>4eG61`knX~W3p@IEwhBdXp8WJ&s7?G; zsn6_Rdpge+_F8n6Nck`Mx-4zU94~v8J1_Mvz5FNmz>$BVU;lZA8NnZ`8{Qr}t{P!n z&+ubYi@oc8z4(rw0p-9bQY~?fC`m~yNwrEYN(E93Mg~SEx(0^22F4)<7FLFqK%{M8 zU}a!1VejH16b-rgDVb@N2n~iIhGtd+oZUI7%X^5e@ cm9eFjsVPK{%iLW*fqED`UHx3vIVCg!0PJWayZ`_I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/yellow.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator/yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..b50a9fc8e99f088e5cf8bbb7dc731a88e56067f6 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3-p)I`?e@QY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP{KaIC&U#{XE z)7O>#1tY7Vy1Da1lLtUO?Vc`JH2t7s_(8U8cW&%5yGy%}zl#ZG6up3U0O$IRe8Z5p3W>VY-R z4L1*FHaNGNesj6^D3iS}%V&`}UkafVm7P~@K zra(b9QhXLboq7gfK9xGx;@4_`H4hhc`x^{vPX=*etbZnBK7O`ueA<(ikFM zuPN5E)$wU~uKHzf)8|lLu8xV1mWV7nEb#RBPlZlVPp+H(97i1k*(yGHUR<7{&(r4d z>2XOMhn7N!!wsey#uX|m0xYdlmiHMa?29Ol@w&li!KKVI*^BdL(=oLrVqO8>9j5hq z3+ojZC*QjA+&8B$`$*uD%N0szLrj&IhWt`|;8#A;?|VN3e^p0GRSnyLDP8xOU**-r zIORU$XNaHnf!$w3|I!254PStnC}Q!>*k5gH6b49%*D`QJ5Q&Wf@m$|!s0`)L>y85}Sb4q9e09ZaCEC2ui literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator_mask.png b/src/main/resources/assets/overdrive_that_matters/textures/block/chemical_generator_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..e722350b6856d0b1ee13ecc44445496806a853fb GIT binary patch literal 1501 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/brown.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/brown.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb4497b8d44a716bd992231cd8c0a58cabde550 GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#ZTM;W2X*D#i^E)9?C87E>la}=J%$ORj$i=`Nmly z!l8dfwKsjbTR;83h=}ECrV9r)nfLQ=e?48u$W+5w=joecLRhObD|jqf*me0Hy_U7mMgN9D`Hx+E&lX*{;kWsLzw0~%@w%*ZaVjcw+uW% z>{?arTJ~#t8?1OA>?;rdzopr06>f4^8f$< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/cyan.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..361ac20d4b54d80fce97e9eb0b245abc91d1f8b4 GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#Fdh=f{|5F-EdXY#H&C((w;7kAr_~X zPTc5s*g&A|FPA&dJkPj>Ck$ItH>GGAJ9S7ZPPLr$P;P;DnOfR5zc-bva$VNTH_j3f z4*e^tz3J24`sx2gL@ZY`T{y7Gyq|yj>*+#9rW(#VPv10DTh%Y)R_Jipc;m#6U`_P>~N8}`EU-mT#=<*5!0G&@u$!8Z(Z&k!Zhb;uE6zo)44CaW#9>7 z*Q#pQvR~8NV8#1jUwQZ^FRPN+@49>|6(4U3aVos4+0Zeef4YPq!`6+-H$Kajyv;7^ z^DNn_Y|m8Zvem-kX4`Bl6Gnr1<*7d>KNAxZc2J)1lb>O=V?$uK5yQ<=hApgft7(l)+*b#C>nC}Q!>*kachwN-U^CT4Y&;@ wnYpROC5gEOAU!6!28Ox@rXhyrR>qcACYBIO{HI?K2I^t(boFyt=akR{04E0H+yDRo literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/gray.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/gray.png new file mode 100644 index 0000000000000000000000000000000000000000..c0ae4f6f5db4586bedb9521d54c07d43fee23139 GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#8a`m zo%iBi-VG3D%!y_c2zI#0+~~$hm5Pryg*X-7)okdP&_7*5kYVe_`l$+FyM zwppZ|*k504rqLIb-Fd6{$|s-2a?_sXBt@#f7I&D}$C({-%MKWFswJ)wB`Jv|saDBF zsX&Us$iT=@*U(Vc$RNbP)XLb%%D_n5z`)ADAZwNFTNDks`6-!cmAExXe{Tgvss`MK xlFZ!H;*!MN0+1dPT?0d11Je*gb1P#@D-%nICH~Vd2m|#nc)I$ztaD0e0s#34HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#21szhGn)R5x7JH1R4>kF=+YV~EA+ zr4u*$9X1eX`^)9dGtV=w;R(am)J-Xx#!elQic>8oJ(OGEU8a_{&F@Vmt6Z1$@{O}Z zghT&|YH#{WniRjU|?lnkhRM8EsBQR{FKbJO57Txzqf)SRReBA xNoHHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#s*p_fHF|qpk`n7X?{H7TM1_lDv{Qv)7*4}Rkki}RM8a`m zo%iBi-VG3D%!y_c2zI#0+~~$hm5Pryg*X-7)okdP&_7*5kYVe_`l$+FyM zwppZ|*k504rqLIb-Fd6{$|s-2a?_sXBt@#f7I&D}$C({-%MKWFswJ)wB`Jv|saDBF zsX&Us$iT=@*U(Vc$RNbP)XLb%%D_n5z`)ADAZwNFTNDks`6-!cmAExXe{Tgvss`MK xlFZ!H;*!MN0+1dPT?0d11Je*gb1P#@D-%nICH~Vd2m|#nc)I$ztaD0e0ssY)<3#`f literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/light_gray.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/light_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..320d8813d1e6a9dacc213f8230c13be5883c1461 GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#21szhGn)R5x7JH1R4>kF=+YV~EA+ zr4u*$9X1eX`^)9dGtV=w;R(am)J-Xx#!elQic>8oJ(OGEU8a_{&F@Vmt6Z1$@{O}Z zghT&|YH#{WniRjU|?lnkhRM8EsBQR{FKbJO57Txzqf)SRReBA xNoHHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#8a`m zo%iBi-VG3D%!y_c2zI#0+~~$hm5Pryg*X-7)okdP&_7*5kYVe_`l$+FyM zwppZ|*k504rqLIb-Fd6{$|s-2a?_sXBt@#f7I&D}$C({-%MKWFswJ)wB`Jv|saDBF zsX&Us$iT=@*U(Vc$RNbP)XLb%%D_n5z`)ADAZwNFTNDks`6-!cmAExXe{Tgvss`MK xlFZ!H;*!MN0+1dPT?0d11Je*gb1P#@D-%nICH~Vd2m|#nc)I$ztaD0e0svHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#s*p_fHF|qpk`n7X?{H7TM1_lDv{Qv*oYfGO$ki}RM8a`m zo%iBi-VG3D%!y_c2zI#0+~~$hm5Pryg*X-7)okdP&_7*5kYVe_`l$+FyM zwppZ|*k504rqLIb-Fd6{$|s-2a?_sXBt@#f7I&D}$C({-%MKWFswJ)wB`Jv|saDBF zsX&Us$iT=@*U(Vc$RNbP)XLb%%D_n5z`)ADAZwNFTNDks`6-!cmAExXe{Tgvss`MK xlFZ!H;*!MN0+1dPT?0d11Je*gb1P#@D-%nICH~Vd2m|#nc)I$ztaD0e0s!Q2HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#8a`m zo%iBi-VG3D%!y_c2zI#0+~~$hm5Pryg*X-7)okdP&_7*5kYVe_`l$+FyM zwppZ|*k504rqLIb-Fd6{$|s-2a?_sXBt@#f7I&D}$C({-%MKWFswJ)wB`Jv|saDBF zsX&Us$iT=@*U(Vc$RNbP)XLb%%D_n5z`)ADAZwK^C}t2Ea`RI%(<*UmkpA8Zic}4_ y4JDbmsl_FUxdk9SCb|ZOx(22phUQkrmR2T~5KH{0Ul0cBVeoYIb6Mw<&;$UEB;*MI literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/pink.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/pink.png new file mode 100644 index 0000000000000000000000000000000000000000..fa27e78ececda4324be2cc60a8ff31cb2625811c GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#s*p_fHF|qpk`n7X?{H7TM1_lDv{Qv*IE+jt+$YLxB@(X5gcy=QV#7XjY zcj5iECGjhe!&%@FS21szhGn)R5x7JH1R4>kF=+YV~EA+ zr4u*$9X1eX`^)9dGtV=w;R(am)J-Xx#!elQic>8oJ(OGEU8a_{&F@Vmt6Z1$@{O}Z zghT&|YH#{WniRjU|?lnkhRM8EsBQR{FKbJO57Txzqf)SRReBA xNoHHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#ZTM;W2X*D#i^E)9?C87E>la}=J%$ORj$i=`Nmly z!l8dfwKsjbTR;83h=}ECrV9r)nfLQ=e?48u$W+5w=joecLRhObD|jqf*me0Hy_U7mMgN9D`Hx+E&lX*{;kWsLzw0~%@w%*ZaVjcw+uW% z>{?arTJ~#t8?1OA>?;rdzopr0F8v=mH+?% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/red.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/red.png new file mode 100644 index 0000000000000000000000000000000000000000..56f6a6d4210a34a72276e5ae99ff405db315fa83 GIT binary patch literal 670 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!VDw>HYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#4rhT!WHAE+-(e7DJf6QI1t`c~;_2(k{(_NJP~C7<)5NPlJ<^^ojv*GO zmrmU1ci2Fn?Jt)*&pgk#h9?YLQ#Yk(8as7JDo(YW^iXbrcbQt+HorHOta4q}%Qwyv z5f1$;s=evc-TLYOMMNxDGhH~a$-JL``|IgKMy49hI#1s;R9n?A<5uW!*m&c_(o@wB zI`753yc;0Qm=nz?5bSV~x%qGow_K5>ToKcnZSkki^KV`59l|u{X|BNachk8qyk+1C zV%Mr_*Ro&J+hE1}U|)IoCoij#*zdZ0D-|Da3UMmDtJ%;op?|uBAj8&;$u~aBmb}d_ z>hmnws%+0x=d#tp;%3`yD-%Y8dF81;CqEMt6LwIZ@ROfmwPQnIw-Lk5Qid(8lV!Qj zY_mu^vA@39OrtLwmK`wUR7+eVN>UO_QmvAU zQh^kMk%5t+uA!l>kwJ)osg<#jm4T7Afq|8QLDnkUwHYaZfQY`6?zK#qG8~eHcB(j1elRbib z85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP(mxfC&U#}uZ09lMBL4Lsu4$p3+fjCLt z?k>FFwj_Q9aySb-B8wRq_zr_GH=O_7{w-g6f8=nkHTa>XG(zaSX9I zy>#M6zrzLsZGXAkdFFY>H9TS1nz|`P)7Ys)QgN!~q=#|~yvx+mw)wrOWR>f(UcPab zh;Zm%QSD8i?$%HLFCt>On(4xUP3Hal+h0!?GBVY0)_MA-q1vi`8Mi`*!^RsYmY%A9 z(0MQJ<=p^b#++zIfnbM=%*}^$xaEp0<%*crY>PjAo`36d?+~UrPjdyXznji|;VlDC z5W7}YyO#Z$-Uch)2m8vyKY3Y|#D3T1TdDYXQ;1XHUCoA$3H{S01R1t&Ouq41w&ZPg zQJ-hYR%LspI+v{$7B|~wTbVE#%qvg*Ir*8Gn6QKLgrEEjs~sBxyNwubmNIN%oh-|J zW}8LYiT(A(W*U7_*`2qFuYB@ZEH~|GPEw@$YjKBpeVo}bx9or+r&{6~QIe8al4_M) zlnSI6j0}tnbqx)5jSNBzOs$NKtPG5_4GgRd46;_)zD3cHo1c=IR*74K^!HX!q-wxz xD9OxCEiOsSEdc2;(KRsCH82e^G`BLgv@)@TSmHnZf-q1IgQu&X%Q~loCIERZ=2ZXy literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/yellow.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_counter/yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..788d302fbeebb1d417ae78e3185c3997595ad777 GIT binary patch literal 670 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 KpUXO@geCx2`|Do- literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/blue.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/blue.png new file mode 100644 index 0000000000000000000000000000000000000000..30b95b2a2330d4d724016dc852b939632bc9b60b GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIYcCo~c*FX+ufk$L90|Vb- z5N14{zaj-F$X?><>&pIukyTLL$~M3w7O2P4)5S5w;`G+Zws|cE0bf5J2D1-Q*{o5`&Bji~ zvoA-#&3WvR<@h4Kn0@Q)Dt;4YjROv+8s>9ah&w1ceJ}mItL)!hp#^{95|<<~G)xMZ zWpXMd!Pfo3>V?Z&8xJP4UjXALH@iWcxDeSz= zw?A-k-&+>IUOi#4$(z56Zq@4BdC%Vd{?5_6CcXYD_8E2}mQ z7_O=%t`Q|Ei6yC4$wjF^iowXh$Vk`FK-a)9#K6?bz|hLrNZY``%D{lh?z9t%hTQy= z%(P0}8j6#P{{b~$W9O4}+(x KpUXO@geCy=4eXQv literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/brown.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/brown.png new file mode 100644 index 0000000000000000000000000000000000000000..dde430edada0dcf19ff857bcc06ded5bdd0c6424 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIlBSEK+1*-JcqUD;nSvI?qO*#>yT0`*vWx;TbdoZdRwHm}7%pq1Th!G)U>BbJtE z6g5m>b_wK5;EGRN=ODYbMPvJ2?I%+tt0knZ7kW%oZ#=7BUDqSuVD=#@n>DJr+1SZ= z_T}ieIgdTE9ABgtvu~YU#c#r_alqkJ!+cH)aR)`G@1>u2mHoRbwBS!%;*unWhDial zOiraF*t$Phy>NMJK$KDJ|Oz$lvj$5(IKjq?TdBOeL|A928gI9dGOWa1&<)w@v zstx`=sv9)(0{_I`T|eKOZPoG9L2E3S7VU5qX?9CwG+B3g-zAo;f30rHTNrH&DsE~0 z=WY=Cl4r#*>6^p}MfD9+gYt0ycrdGmMCty+CM@7dem-}xCn;nw|aM(hW!0tu z!&SA!HKHUXu_V9 znO2EgLveEPKcEH;xD6$lxv9k^iMa(JJtjaKbPY^H49%^KEv-x~AeN|l-L?ekVeoYI Kb6Mw<&;$U1L+bSa literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/cyan.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..71d9cbd86319a2f3127ed08efbe46832d19ecade GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIYcCo~c*FX+ufk$L90|Vb- z5N14{zaj-F$X?><>&pIukyTLL$~M3w7O2P4)5S5w;`G+Zws|cE0bf5J2D1-Q*{o5`&Bji~ zvoA-#&3WvR<@h4Kn0@Q)Dt;4YjROv+8s>9ah&w1ceJ}mItL)!hp#^{95|<<~G)xMZ zWpXMd!Pfo3>V?Z&8xJP4UjXALH@iWcxDeSz= zw?A-k-&+>IUOi#4$(z56Zq@4BdC%Vd{?5_6CcXYD_8E2}mQ z7_O=%t`Q|Ei6yC4$wjF^iowXh$Vk`FK-a)9#K6?bz|hLrNZY``%D{lh?z9t%hTQy= z%(P0}8j6#P{{b~$W9O4}+(x KpUXO@geCy|tL=yY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/gray.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/gray.png new file mode 100644 index 0000000000000000000000000000000000000000..ca98255085001fe2eda5e98b3a58c3e23330249a GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIEak-aeC`y+q@P7fmU|21s85kj96Nt zQPePj*(H!Kfh#_7orCP!7LDz9wVzCptd@|rUg$AVz45GibzP5qgV~3uY}TmeW@9Jg z*_Wf=<~;Vua(t0q%)WJY6~76y#sP;@4f8oI#2pl!zL$R9Rrc?$(1Jg4iA$0g8YTtI zGC7r!VC(*1^}^+?jRzC_9(yw=F}=5xIBvx*|CEcX*NBpo#FA92LvDUb zW?Cg~4aLdD|9~1a;5L+G=B5^xB<2=?^q2r`&^0g(F*LU_wzM*}fLNmHb=wlChr!d; K&t;ucLK6V-H0+fC literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/green.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/green.png new file mode 100644 index 0000000000000000000000000000000000000000..5e60a36da51cd3205265c70692c1965e8f43dcbe GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIUB|NsBj*Vj9Sh~B<^+j!9wX`m2elDE4HyI5k!YaoZSz$3Dlfr0NZ z2s0kfUy%Y7WH0gbb!C6S$SSCAWgFlT3)Exj>Eak-aeC`y+q@P7fmU|21s85kj96Nt zQPePj*(H!Kfh#_7orCP!7LDz9wVzCptd@|rUg$AVz45GibzP5qgV~3uY}TmeW@9Jg z*_Wf=<~;Vua(t0q%)WJY6~76y#sP;@4f8oI#2pl!zL$R9Rrc?$(1Jg4iA$0g8YTtI zGC7r!VC(*1^}^+?jRzC_9(yw=F}=5xIBvx*|CEcX*NBpo#FA92LvDUb zW?Cg~4aLdD|9~1a;5L+G=B5^xB<2=?^q2r`&^0g(F*LU_wzM*}fLNmHb=wlChr!d; K&t;ucLK6TX8SA+K literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/light_blue.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/light_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..dd53360495f8a91c02533c33f4fb3e623aea5c9c GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIYcCo~c*FX+ufk$L90|Vb- z5N14{zaj-F$X?><>&pIukyTLL$~M3w7O2P4)5S5w;`G+Zws|cE0bf5J2D1-Q*{o5`&Bji~ zvoA-#&3WvR<@h4Kn0@Q)Dt;4YjROv+8s>9ah&w1ceJ}mItL)!hp#^{95|<<~G)xMZ zWpXMd!Pfo3>V?Z&8xJP4UjXALH@iWcxDeSz= zw?A-k-&+>IUOi#4$(z56Zq@4BdC%Vd{?5_6CcXYD_8E2}mQ z7_O=%t`Q|Ei6yC4$wjF^iowXh$Vk`FK-a)9#K6?bz|hLrNZY``%D{lh?z9t%hTQy= z%(P0}8j6#P{{b~$W9O4}+(x KpUXO@geCyGW$fwz literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/light_gray.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/light_gray.png new file mode 100644 index 0000000000000000000000000000000000000000..9aaeb815edca61df6b8fb5697d3fd7878f709fd6 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIlBSEK+1*-JcqUD;nSvI?qO*#>yT0`*vWx;TbdoZdRwHm}7%pq1Th!G)U>BbJtE z6g5m>b_wK5;EGRN=ODYbMPvJ2?I%+tt0knZ7kW%oZ#=7BUDqSuVD=#@n>DJr+1SZ= z_T}ieIgdTE9ABgtvu~YU#c#r_alqkJ!+cH)aR)`G@1>u2mHoRbwBS!%;*unWhDial zOiraF*t$Phy>NMJK$KDJ|Oz$lvj$5(IKjq?TdBOeL|A928gI9dGOWa1&<)w@v zstx`=sv9)(0{_I`T|eKOZPoG9L2E3S7VU5qX?9CwG+B3g-zAo;f30rHTNrH&DsE~0 z=WY=Cl4r#*>6^p}MfD9+gYt0ycrdGmMCty+CM@7dem-}xCn;nw|aM(hW!0tu z!&SA!HKHUXu_V9 znO2EgLveEPKcEH;xD6$lxv9k^iMa(JJtjaKbPY^H49%^KEv-x~AeN|l-L?ekVeoYI Kb6Mw<&;$S+AnYgr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/lime.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/lime.png new file mode 100644 index 0000000000000000000000000000000000000000..864b48f5853e5cfec0e6889c1a75ed9533abfada GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIYcCo~c*FX+ufk$L90|Vb- z5N14{zaj-F$X?><>&pIukyTLL$~M3w7O2P4)5S5w;`G+Zws|cE0bf5J2D1-Q*{o5`&Bji~ zvoA-#&3WvR<@h4Kn0@Q)Dt;4YjROv+8s>9ah&w1ceJ}mItL)!hp#^{95|<<~G)xMZ zWpXMd!Pfo3>V?Z&8xJP4UjXALH@iWcxDeSz= zw?A-k-&+>IUOi#4$(z56Zq@4BdC%Vd{?5_6CcXYD_8E2}mQ z7_O=%t`Q|Ei6yC4$wjF^iowXh$Vk`FK-a)9#K6?bz|hLrNZY``%D{lh?z9t%hTQy= z%(P0}8j6#P{{b~$W9O4}+(x KpUXO@geCy;Q|yrd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/magenta.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..3be8506c4a8fa7625b8dbe7fe8bf1f3028a8e2b5 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIxCW@)f>;MSJ(B(H<*2h%4UsfZZ>u@ zo_#s`ZO&tlEXNn=#q3*WSMi%LYaDPm)i9saLfk>o>3iwtU1k673N82(m$)Q}pEIO~?h?1rba^Rb zh-!nskLm`^yud%Pch}GNW?OaqbkG_LrbRnkMVj3b8BNxm-gk*5>tCyz@)kxLgNj>P z|G684zT{akO!_8qLQ#FgR5{1P<~Q9G!gueEW!)hCs8?)1i~G)-YRrLkkDqClPhsa} zzWsrV``)qu_UZ|XP2T)nbgNe1&U^Ou_ji7VPq=k|+YyOvj}}C{VE@6kJ8S=$TUoVf zz;IP9ag8WRNi0dVN-jzTQVd20Mn<}Z2D%1@AqJ*a28LF~M%o4jRt5%4cBh?CH00)| zWTsW()=->W{12!>18ze}W^QV6Nn&mRNRJ8723-Tw5JPh-V@oSj3y3AEUbiiQdKf%i L{an^LB{Ts5%tG#7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/orange.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/orange.png new file mode 100644 index 0000000000000000000000000000000000000000..eae386ff0d004bf68113b0143ee3531696ebd3c9 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIlr|NsB5udm-1#dG`i?Uqh=Euau%lDE4HyI5k!YaoZSz$3Dlfr0NZ z2s0kfUy%Y7WH0gbb!C6S$SSCAWgFlT3)Exj>Eak-aeC`y+q@P7fmU|21s85kj96Nt zQPePj*(H!Kfh#_7orCP!7LDz9wVzCptd@|rUg$AVz45GibzP5qgV~3uY}TmeW@9Jg z*_Wf=<~;Vua(t0q%)WJY6~76y#sP;@4f8oI#2pl!zL$R9Rrc?$(1Jg4iA$0g8YTtI zGC7r!VC(*1^}^+?jRzC_9(yw=F}=5xIBvx*|CEcX*NBpo#FA92LvDUb zW?Cg~4aLdD|9~1a;5L+G=B5^xB<2=?^q2r`&^0g(F*LU_wzM*}fLNmHb=wlChr!d; K&t;ucLK6T`zU;aH literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/pink.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/pink.png new file mode 100644 index 0000000000000000000000000000000000000000..6dbe8443d667ff4d3560a06727445e85e45a7380 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI|%)>uYnxS0*}aI1_r*v zAk26?e?k!H6O>J{71;=c2y8gpRX<7b-XQ`mW# zZ-3z8zPBuZy?Vl8lQ(}C-Ky2M^Pau^{hgoT6K>t#c0^*^qXiK!*nhC?&f0(GR#t5q zFkDqjTq8m4N}1-DxKj4Y~O# znQ4`{H54Zo{{w2!fZI@#nVVW%l9*cn(qjU&LD#@E#L(Qz*wV_>0%D1(*KJFn9tKZW KKbLh*2~7YMEA9dS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/purple.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/purple.png new file mode 100644 index 0000000000000000000000000000000000000000..d0e289bc9aa6292b1f382e6154c4eb524336840e GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIYcCo~c*FX+ufk$L90|Vb- z5N14{zaj-F$X?><>&pIukyTLL$~M3w7O2P4)5S5w;`G+Zws|cE0bf5J2D1-Q*{o5`&Bji~ zvoA-#&3WvR<@h4Kn0@Q)Dt;4YjROv+8s>9ah&w1ceJ}mItL)!hp#^{95|<<~G)xMZ zWpXMd!Pfo3>V?Z&8xJP4UjXALH@iWcxDeSz= zw?A-k-&+>IUOi#4$(z56Zq@4BdC%Vd{?5_6CcXYD_8E2}mQ z7_O=%t`Q|Ei6yC4$wjF^iowXh$Vk`FK-a)9#K6?bz|hLrNZY``%D{lh?z9t%hTQy= z%(P0}8j6#P{{b~$W9O4}+(x KpUXO@geCw7XzdgL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/red.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/red.png new file mode 100644 index 0000000000000000000000000000000000000000..f3523c6a95da8417501d43f7a1db4bfd2126dd28 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIYcCo~c*FX+ufk$L90|Vb- z5N14{zaj-F$X?><>&pIukyTLL$~M3w7O2P4)5S5w;`G+Zws|cE0bf5J2D1-Q*{o5`&Bji~ zvoA-#&3WvR<@h4Kn0@Q)Dt;4YjROv+8s>9ah&w1ceJ}mItL)!hp#^{95|<<~G)xMZ zWpXMd!Pfo3>V?Z&8xJP4UjXALH@iWcxDeSz= zw?A-k-&+>IUOi#4$(z56Zq@4BdC%Vd{?5_6CcXYD_8E2}mQ z7_O=%t`Q|Ei6yC4$wjF^iowXh$Vk`FK-a)9#K6?bz|hLrNZY``%D{lh?z9t%hTQy= z%(P0}8j6#P{{b~$W9O4}+(x KpUXO@geCy`E$t8h literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/white.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/white.png new file mode 100644 index 0000000000000000000000000000000000000000..9ba4e7455e3110e1ff27c02e3b0f0395ea08f815 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fIRG~FuMfuC2++ju5*xG+oG}kuJ)5DlGPH@)(br*syCihudeHnZ!r51mCYK}+-&S* zJo|F=+nmQ9S&lE#i`lo%uHrXg);QpBs$o8-g}8&F)A!QPyUPCE6GD#> z5Y+~MAJq+-d4Ydo@2;Qk&9>_J>7X?hOpA87iZr_=GMcPAz3&oB*1uLaah1{Jro z{&P17eaW+8nDkBJgrfR}sdA2o&2PFXgzw%R%eq1OQLos37WbVu)tCe89zWA8pTf?| zeES0z_q}BS?9~$%o4onE=vJ-1o%ihR@9+E!pK$B`wj&bT9xaG?!Ty77ch>$hx3X%} zfZ?iI;u=wsl30>zm0Xkxq!^40jEr;*4Rj3*Lkvu<3=FM|jkFC6tPBj8>`ptOXvob^ z$xN%nt)V!%_#aS%2Hb{{%-q!ClEmBskRB7D4Y~%VA%^Bw#+Fv577$BRy>43q^)Pt4 L`njxgN@xNAQ6BI4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/yellow.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo/yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..6750d34e126e31f55f28c0c0b8e3c147d9e5dd2f GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!VDxk7i7!@QY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI>9VuK)@$CV9KNu!|*jyasYO3p^r=85sBu zgD~Uq{1qucLG}_)Usv`QjI4s{R<;2iu|PeRo-U3d7N@sPw#{oX5NKsLTX5m##E7LO z8bu8gm|X(-61d_M*Ez_pZPD0%SNq8n$!ZB{>xCW@)f>;MSJ(B(H<*2h%4UsfZZ>u@ zo_#s`ZO&tlEXNn=#q3*WSMi%LYaDPm)i9saLfk>o>3iwtU1k673N82(m$)Q}pEIO~?h?1rba^Rb zh-!nskLm`^yud%Pch}GNW?OaqbkG_LrbRnkMVj3b8BNxm-gk*5>tCyz@)kxLgNj>P z|G684zT{akO!_8qLQ#FgR5{1P<~Q9G!gueEW!)hCs8?)1i~G)-YRrLkkDqClPhsa} zzWsrV``)qu_UZ|XP2T)nbgNe1&U^Ou_ji7VPq=k|+YyOvj}}C{VE@6kJ8S=$TUoVf zz;IP9ag8WRNi0dVN-jzTQVd20Mn<}Z2D%1@AqJ*a28LF~M%o4jRt5%4cBh?CH00)| zWTsW()=->W{12!>18ze}W^QV6Nn&mRNRJ8723-Tw5JPh-V@oSj3y3AEUbiiQdKf%i L{an^LB{Ts5VrK2I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo_mask.png b/src/main/resources/assets/overdrive_that_matters/textures/block/energy_servo_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..155963492abde61d8f14ea4d871f8520eb15e474 GIT binary patch literal 1197 zcmV;e1XBBnP)EX>4Tx04R}tkvmAkP!xv$rb>%c94sQ@kfA!+#TSmHibb$c+6t{YnB4RQO&XFE z7e~Rh;NWAi>fqw6tAnc`2tGiZ9h?+hq{MTRLW>v=T<*tz&;N7pxq#5DGS%#f0jg#h z=|o)2z=x)?xH-)yYJ8HR|+Nrd?Im->4rtTK|H%@ z>74h8!>lYR#OK5l23?T&k?XR{Z=6dG3p_JyWYhD+VPdh=#c~(3vY`@B6Gs$PqkJLf zvch?bvs$gQ_C5IvLj`Rm!*yDtNMH#`q#!~@9TikzAxgVOiitFx$36Tbjz2{%nOqex zax9<*6_Voz|AXJNHH%Y|Zc-=?^uE~k#~2XU1zHW;{yw(t)(PN$2ClS@zt#liK1pwM zw8#-Kunk;XcQknqxZDATpLEHP9LY~hC>DYDGy0}HFn9~}t+{h+pX2la$kMEqZ-9eC zV7x@x>mKh8cF*nKp7#8H0G6F{wGk}A8UO$Q24YJ`L;(K){{a7>y{D4^000SaNLh0L z01m?d01m?e$8V@)00007bV*G`2j~F>5heiQN1(0%00OB=L_t(&-tAd2j_NQFecqo6 ztwa?m5vPE{he!d(fMfUq^iXnyP|P9R_y81CC>(%3zgb7daY!7SXm_D z%b0e+Wn2sAyf%z5(}*eNB(z~7YPBb}=eC%}ZRyh;GX7(%@mP|$8l{w&N?HyOQTslv3dixLD72sHq!;f(?FgJfuZKh~(zfsmK^mUB-_5Ta~;Zt170DwJi3s;Z{LfRyqH zjO+D!S{@iv)O;Hz{5PM^M=M`07XZL)HpA_9!(y=j0DOLa;_-N3zu!+20S!Pc=ks~m zB@jX&&vS1Yj^aR36fGX`0cA3lOk%KLCG9@*d5IkHPDh>r> zlr$7V)KyhAPg#~f2m>J@jKKxp1B9IO;6tk5EbuK#qf)VXTz|jc2OZUN&YL@cAO~U; zrS?gwPjnK;OIZ){TM;^)PRyK$Ym4s6pv0%h?Ao+kHzr-8mzr~43n5rA6&rU=tjobK zywon;XopljQFy|D>mtdQ33W#JMu3Q#G-N}wK}yMNq-%Zi9p>$tsb?5xP7uB#B%hR( zQZnu2t12lmL&z%l>$p$9umAVg1ASwn)Px2WSnMO5-!K0GhBjj8^eVzW00000 LNkvXXu0mjfXM83N literal 0 HcmV?d00001 From 05db4a0c0512b83e381e768c8063c65621f44781 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 6 Jan 2024 11:28:48 +0700 Subject: [PATCH 2/2] Use cutout for microwave oven --- .../models/block/powered_smoker_error.json | 2 +- .../models/block/powered_smoker_idle.json | 2 +- .../models/block/powered_smoker_working.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_error.json b/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_error.json index 664623d15..09e6868a6 100644 --- a/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_error.json +++ b/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_error.json @@ -1,6 +1,6 @@ { "credit": "Made with Blockbench", - "render_type": "translucent", + "render_type": "cutout", "texture_size": [32, 32], "textures": { "0": "overdrive_that_matters:block/powered_smoker_base", diff --git a/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_idle.json b/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_idle.json index 1c72c38f6..65d57fa84 100644 --- a/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_idle.json +++ b/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_idle.json @@ -1,6 +1,6 @@ { "credit": "Made with Blockbench", - "render_type": "translucent", + "render_type": "cutout", "texture_size": [32, 32], "textures": { "0": "overdrive_that_matters:block/powered_smoker_base", diff --git a/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_working.json b/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_working.json index a515ccd1a..bd310b865 100644 --- a/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_working.json +++ b/src/main/resources/assets/overdrive_that_matters/models/block/powered_smoker_working.json @@ -1,6 +1,6 @@ { "credit": "Made with Blockbench", - "render_type": "translucent", + "render_type": "cutout", "texture_size": [32, 32], "textures": { "0": "overdrive_that_matters:block/powered_smoker_base",