This commit is contained in:
DrMangoTea
2025-05-10 21:40:22 +02:00
parent 304d3fb9ac
commit 2b1120cf38
101 changed files with 19891 additions and 20696 deletions

252
.idea/workspace.xml generated
View File

@@ -4,30 +4,10 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="73ee1137-5050-4fa7-b664-d4db3ae300b8" name="Changes" comment="stuffffffffffffff"> <list default="true" id="73ee1137-5050-4fa7-b664-d4db3ae300b8" name="Changes" comment="stufffffffffffffff">
<change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/measurement/MultimeterOverlayRenderer.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGCrushingRecipeGen.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/regular_engine/RegularEngineVisual.java" afterDir="false" /> <change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/TFMGPonderTags.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/vat/industrial_mixer/IndustrialMixerVisual.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGCompactingRecipeGen.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGMixingRecipeGen.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/TFMGPonderPlugin.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/TFMGPonderScenes.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/TFMGSceneBuilder.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/ponder/electricity.nbt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/ponder/electricity_two.nbt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/fluid_texture_flow.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/fluid_texture_flow.png.mcmeta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/fluid_texture_still.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/fluid_texture_still.png.mcmeta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/gas_texture.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/gas_texture.png.mcmeta" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/cement.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/resources/logo.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/gradle.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/gradle.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gradle.properties" beforeDir="false" afterPath="$PROJECT_DIR$/gradle.properties" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run-data/logs/debug-1.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug-1.log.gz" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run-data/logs/debug-1.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug-1.log.gz" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run-data/logs/debug-2.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug-2.log.gz" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run-data/logs/debug-2.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug-2.log.gz" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run-data/logs/debug-3.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug-3.log.gz" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run-data/logs/debug-3.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug-3.log.gz" afterDir="false" />
@@ -35,9 +15,7 @@
<change beforePath="$PROJECT_DIR$/run-data/logs/debug-5.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug-5.log.gz" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run-data/logs/debug-5.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug-5.log.gz" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run-data/logs/debug.log" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug.log" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run-data/logs/debug.log" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/debug.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run-data/logs/latest.log" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/latest.log" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run-data/logs/latest.log" beforeDir="false" afterPath="$PROJECT_DIR$/run-data/logs/latest.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run/config/create-client.toml" beforeDir="false" afterPath="$PROJECT_DIR$/run/config/create-client.toml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run/config/tfmg-common.toml" beforeDir="false" afterPath="$PROJECT_DIR$/run/config/tfmg-common.toml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run/config/jei/ingredient-list-mod-sort-order.ini" beforeDir="false" afterPath="$PROJECT_DIR$/run/config/jei/ingredient-list-mod-sort-order.ini" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run/config/jei/recipe-category-sort-order.ini" beforeDir="false" afterPath="$PROJECT_DIR$/run/config/jei/recipe-category-sort-order.ini" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run/logs/debug-1.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run/logs/debug-1.log.gz" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run/logs/debug-1.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run/logs/debug-1.log.gz" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run/logs/debug-2.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run/logs/debug-2.log.gz" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run/logs/debug-2.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run/logs/debug-2.log.gz" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run/logs/debug-3.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run/logs/debug-3.log.gz" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run/logs/debug-3.log.gz" beforeDir="false" afterPath="$PROJECT_DIR$/run/logs/debug-3.log.gz" afterDir="false" />
@@ -47,206 +25,51 @@
<change beforePath="$PROJECT_DIR$/run/logs/latest.log" beforeDir="false" afterPath="$PROJECT_DIR$/run/logs/latest.log" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run/logs/latest.log" beforeDir="false" afterPath="$PROJECT_DIR$/run/logs/latest.log" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run/options.txt" beforeDir="false" afterPath="$PROJECT_DIR$/run/options.txt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run/options.txt" beforeDir="false" afterPath="$PROJECT_DIR$/run/options.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/run/usercache.json" beforeDir="false" afterPath="$PROJECT_DIR$/run/usercache.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/run/usercache.json" beforeDir="false" afterPath="$PROJECT_DIR$/run/usercache.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/build.gradle" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/gradle.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/gradle/wrapper/gradle-wrapper.properties" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/settings.gradle" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/src/main/java/com/drmangotea/aaaa/Aaaa.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/src/main/java/com/drmangotea/aaaa/Config.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/src/main/resources/META-INF/mods.toml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/src/main/resources/aaaa.mixins.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/aaaa/src/main/resources/pack.mcmeta" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/.cache/5b8c0f5df972d0059948e36f3c0712dca4487541" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/.cache/5b8c0f5df972d0059948e36f3c0712dca4487541" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/.cache/a4f054e33f64259067ca26a447a1fd4d4705e7dd" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/.cache/a4f054e33f64259067ca26a447a1fd4d4705e7dd" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/generated/resources/.cache/a4f054e33f64259067ca26a447a1fd4d4705e7dd" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/.cache/a4f054e33f64259067ca26a447a1fd4d4705e7dd" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/.cache/e54e4c34b4f65d271b7b9f53d4ba815125cff8b9" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/.cache/e54e4c34b4f65d271b7b9f53d4ba815125cff8b9" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/generated/resources/.cache/e54e4c34b4f65d271b7b9f53d4ba815125cff8b9" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/.cache/e54e4c34b4f65d271b7b9f53d4ba815125cff8b9" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/blockstates/debug_conductor.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/blockstates/debug_electric_block.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/blockstates/debug_generator_block.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/lang/en_ud.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/lang/en_ud.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/lang/en_ud.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/lang/en_ud.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/lang/en_us.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/lang/en_us.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/lang/en_us.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/lang/en_us.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/models/block/debug_conductor.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/models/block/debug_electric_block.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/models/block/debug_generator_block.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/models/item/debug_conductor.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/models/item/debug_electric_block.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/models/item/debug_generator_block.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/models/item/sulfuric_acid_bucket.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGCrushingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/assets/tfmg/models/item/zinc_sulfate.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/create/recipes/mechanical_crafting/stator.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/data/create/recipes/mechanical_crafting/stator.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/data/minecraft/tags/blocks/mineable/shovel.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/tfmg/loot_tables/blocks/debug_conductor.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/tfmg/loot_tables/blocks/debug_electric_block.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/tfmg/loot_tables/blocks/debug_generator_block.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/tfmg/recipes/crafting/kinetics/electric_post.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/data/tfmg/recipes/crafting/kinetics/electric_post.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/tfmg/recipes/crafting/kinetics/regular_engine.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/generated/resources/data/tfmg/recipes/crafting/kinetics/regular_engine.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/generated/resources/data/tfmg/recipes/winding/copper_coil.json" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/TFMGClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/TFMGClient.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGBuilderTransformers.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGBuilderTransformers.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGCommonEvents.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGCreativeTabs.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGCreativeTabs.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGDirectionalBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/blocks/TFMGDirectionalBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGHorizontalDirectionalBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/blocks/TFMGHorizontalDirectionalBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGRegistrate.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGRegistrate.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGShapes.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGShapes.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGShapes.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGShapes.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/TFMGVanillaBlockStates.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/blocks/TFMGVanillaBlockStates.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/EncasedAluminumCogInstance.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/TransmissionRemovePacket.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/WallMountBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/blocks/WallMountBlock.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/TFMGCogwheelInstance.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/winding_machine/WindingMachineVisual.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/events/TFMGClientEvents.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/events/TFMGClientEvents.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/events/TFMGCommonEvents.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/events/TFMGCommonEvents.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/fluid/AcidFluidType.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/fluid/AcidFluidType.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/fluid/GasFluidType.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/base/fluid/GasFluidType.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/LithiumTorchBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/LithiumTorchBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/LithiumTorchGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/LithiumTorchGenerator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/EncasedAluminumCogInstance.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/TFMGPonderTags.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/EncasedAluminumCogRenderer.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/EncasedAluminumCogVisual.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/TFMGEncasedCogVisual.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/EncasedSteelCogRenderer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/TFMGEncasedCogRenderer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/EncasedSteelCogVisual.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/cogs/TFMGCogwheelInstance.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/concrete/RebarPillarBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/concrete/RebarPillarBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/concrete/RebarStairsGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/decoration/concrete/RebarStairsGenerator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/ElectricBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/ElectricBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/ElectricBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/ElectricBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/ElectricalNetwork.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/ElectricalNetwork.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/IElectric.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/IElectric.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/IElectric.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/IElectric.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/KineticElectricBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/KineticElectricBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/KineticElectricBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/KineticElectricBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/cables/CableConnectorBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/cables/CableConnectorBlock.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/UpdateInFrontPacket.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/base/UpdateInFrontPacket.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/cables/CableConnectorBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/cables/CableConnectorBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/cables/CableRemovalPacket.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/cables/CableRemovalPacket.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/cables/CableConnectorGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/cables/CableConnectorGenerator.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/debug/DebugCinderBlockItem.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/debug/DebugCinderBlockItem.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/copycat_cable/CopycatCableBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/copycat_cable/CopycatCableBlock.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/electrians_wrench/ElectricBlockItem.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/configuration_wrench/ElectricBlockItem.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/copycat_cable/CopycatCableBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/connection/copycat_cable/CopycatCableBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/electrians_wrench/ElectriciansWrenchItem.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/configuration_wrench/ElectriciansWrenchItem.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/debug/DebugElectricBlock.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/electrians_wrench/ElectriciansWrenchPacket.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/configuration_wrench/ElectriciansWrenchPacket.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/debug/DebugGeneratorBlock.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/electrians_wrench/ElectriciansWrenchScreen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/configuration_wrench/ElectriciansWrenchScreen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/debug/DebugGeneratorBlockEntity.java" beforeDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/generators/GeneratorBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/generators/GeneratorBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/LampGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/LampGenerator.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/generators/large_generator/RotorBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/generators/large_generator/RotorBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/LightBulbBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/LightBulbBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/LightBulbBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/LightBulbBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/LightBulbRenderer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/LightBulbRenderer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/neon_tube/NeonTubeRenderer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/lights/neon_tube/NeonTubeRenderer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/measurement/AmmeterBlock.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/measurement/AmmeterBlockEntity.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/measurement/MultimeterItem.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/measurement/MultimeterItem.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/measurement/VoltMeterBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/measurement/VoltMeterBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/storage/AccumulatorBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/storage/AccumulatorBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/storage/AccumulatorBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/storage/AccumulatorBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/storage/AccumulatorBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/storage/AccumulatorBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/converter/ConverterBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/converter/ConverterBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/converter/ConverterBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/converter/ConverterBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/converter/ConverterBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/converter/ConverterBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/diode/ElectricDiodeBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/diode/ElectricDiodeBlock.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_motor/ElectricMotorBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_motor/ElectricMotorBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/diode/ElectricDiodeBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/diode/ElectricDiodeBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_motor/ElectricMotorBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_motor/ElectricMotorBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/diode/EncasedDiodeBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/diode/EncasedDiodeBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_pump/ElectricPumpBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_pump/ElectricPumpBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_pump/ElectricPumpBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_pump/ElectricPumpBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_switch/ElectricSwitchBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/electric_switch/ElectricSwitchBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/fuse_block/FuseBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/fuse_block/FuseBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/fuse_block/FuseBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/fuse_block/FuseBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/polarizer/PolarizerBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/polarizer/PolarizerBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/polarizer/PolarizerBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/polarizer/PolarizerBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/potentiometer/EncasedPotentiometerBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/potentiometer/EncasedPotentiometerBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/potentiometer/PotentiometerBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/potentiometer/PotentiometerBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/potentiometer/PotentiometerBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/potentiometer/PotentiometerBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/resistor/ResistorBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/resistor/ResistorBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/resistor/ResistorBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/resistor/ResistorBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/segmented_display/SegmentedDisplayBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/segmented_display/SegmentedDisplayBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/traffic_light/TrafficLightBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/traffic_light/TrafficLightBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/transformer/TransformerBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/transformer/TransformerBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/transformer/TransformerBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/transformer/TransformerBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/transformer/TransformerBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/transformer/TransformerBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/voltage_observer/VoltageObserverBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/voltage_observer/VoltageObserverBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/voltage_observer/VoltageObserverBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/voltage_observer/VoltageObserverBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/voltage_observer/VoltageObserverGenerator.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/electricity/utilities/voltage_observer/VoltageObserverGenerator.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/base/AbstractEngineBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/base/AbstractEngineBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/base/AbstractEngineBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/base/AbstractEngineBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/base/EngineBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/base/EngineBlock.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/base/EngineBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/base/EngineBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/EngineControllerBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/EngineControllerBlock.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/EngineControllerBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/EngineControllerBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/EngineControllerBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/EngineControllerBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/EngineControllerBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/EngineControllerBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/packets/EngineControllerStopControllerPacket.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/packets/EngineControllerStopControllerPacket.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_gearbox/EngineGearboxBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_gearbox/EngineGearboxBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/packets/EngineStartPacket.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_controller/packets/EngineStartPacket.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/engine_gearbox/EngineGearboxInstance.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/large_engine/LargeEngineBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/large_engine/LargeEngineBlockEntity.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/AbstractSmallEngineBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/AbstractSmallEngineBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/radial_engine/RadialEngineBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/radial_engine/RadialEngineBlock.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/turbine_engine/TurbineEngineBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/types/turbine_engine/TurbineEngineBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/blast_furnace/BlastFurnaceOutputBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/blast_furnace/BlastFurnaceOutputBlock.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/upgrades/TransmissionUpgrade.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/engines/upgrades/TransmissionUpgrade.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/blast_furnace/reinforcement/BlastFurnaceReinforcementBlockItem.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/blast_furnace/reinforcement/BlastFurnaceReinforcementBlockItem.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/vat/electrode_holder/ElectrodeHolderBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/vat/electrode_holder/ElectrodeHolderBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/blast_furnace/reinforcement/BlastFurnaceReinforcementWallBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/blast_furnace/reinforcement/BlastFurnaceReinforcementWallBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/casting_basin/CastingBasinBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/casting_basin/CastingBasinBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/coke_oven/CokeOvenBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/metallurgy/coke_oven/CokeOvenBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/concrete_hose/ConcreteHoseInstance.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/concrete_hose/ConcreteHoseRenderer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/concrete_hose/ConcreteHoseRenderer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/exhaust/ExhaustBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/exhaust/ExhaustBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/winding_machine/WindingMachineBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/winding_machine/WindingMachineBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/winding_machine/WindingMachineInstance.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/winding_machine/WindingMachineRenderer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/misc/winding_machine/WindingMachineRenderer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/oil_processing/distillation_tower/controller/DistillationControllerBlock.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/oil_processing/distillation_tower/controller/DistillationControllerBlock.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/vat/base/VatBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/vat/base/VatBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/vat/industrial_mixer/IndustrialMixerBlockEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/content/machinery/vat/industrial_mixer/IndustrialMixerBlockEntity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/TFMGDatagen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/TFMGDatagen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/TFMGProcessingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/TFMGProcessingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/TFMGRecipeProvider.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/TFMGRecipeProvider.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/CastingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/tfmg/CastingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/CokingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/tfmg/CokingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/DistillationRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/tfmg/DistillationRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/HotBlastRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/tfmg/HotBlastRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/PolarizingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/tfmg/PolarizingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGFillingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGFillingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGIndustrialBlastingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/tfmg/IndustrialBlastingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGItemApplicationRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGItemApplicationRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGMechanicalCraftingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGMechanicalCraftingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGPressingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGPressingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGSequencedAssemblyRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/create/TFMGSequencedAssemblyRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGStandardRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGStandardRecipeGen.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGStandardRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/TFMGStandardRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/VatRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/tfmg/VatRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/WindingRecipeGen.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/datagen/recipes/values/tfmg/WindingRecipeGen.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/mixin/GoggleOverlayRendererMixin.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/mixin/GoggleOverlayRendererMixin.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/mixin/GoggleOverlayRendererMixin.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/mixin/GoggleOverlayRendererMixin.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/mixin/RecipeProviderMixin.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/mixin/RecipeProviderMixin.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/TFMGPonderIndex.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/TFMGPonderTag.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/scenes/MiscTFMGScenes.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/ponder/scenes/MiscTFMGScenes.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGFluids.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGFluids.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGPackets.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGPackets.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/META-INF/mods.toml" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/META-INF/mods.toml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/minecraft/atlases/blocks.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/minecraft/atlases/blocks.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/lang/default/interface.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/lang/default/interface.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/lang/default/interface.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/lang/default/interface.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/aluminum_cogwheel.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/aluminum_cogwheel.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/concrete_hose/block.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/concrete_hose/block.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/concrete_hose/item.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/concrete_hose/item.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/engine_gearbox/item.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/engine_gearbox/item.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/large_aluminum_cogwheel.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/large_aluminum_cogwheel.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/radial_engine/cylinder.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/block/radial_engine/cylinder.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/item/transmission_model.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/item/transmission_model.json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/item/transmission_model.json" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/models/item/transmission_model.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/ponder/chemical_vat.nbt" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/ponder/chemical_vat.nbt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/cinderflourblock_top.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/cinderflourblock_top.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/ponder/engines.nbt" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/ponder/engines.nbt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/air_intake_small.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/air_intake_small.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/inputs.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/inputs.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/inside_large.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/inside_large.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/inside_medium.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/inside_medium.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/inside_small.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/air_intake/inside_small.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/blast_stove_side.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/blast_stove_side.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/blast_stove_side_connected.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/blast_stove_side_connected.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/blast_stove_top.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/blast_stove_top.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/blast_stove_top_connected.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/blast_stove_top_connected.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/centrifuge.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/centrifuge.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/centrifuge_top.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/centrifuge_top.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/cinderblock.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/cinderblock.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/cinderblock_top.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/block/cinderblock_top.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/cooling_fluid_flow.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/cooling_fluid_flow.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/cooling_fluid_still.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/cooling_fluid_still.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/diesel_flow.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/diesel_flow.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/diesel_still.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/diesel_still.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/gasoline_flow.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/gasoline_flow.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/gasoline_still.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/gasoline_still.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/kerosene_flow.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/kerosene_flow.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/kerosene_still.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/kerosene_still.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/liquid_silicon_flow.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/liquid_silicon_flow.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/liquid_silicon_still.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/lubrication_oil_flow.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/lubrication_oil_flow.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/lubrication_oil_still.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/lubrication_oil_still.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/naphtha_flow.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/naphtha_flow.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/naphtha_still.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/naphtha_still.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/sulfuric_acid_flow.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/sulfuric_acid_flow.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/sulfuric_acid_still.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/fluid/sulfuric_acid_still.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/cinderblock.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/cinderblock.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/debug_cinderblock.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/debug_cinderblock.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/empty_electromagnetic_coil.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/empty_spool.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/empty_spool.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/sulfuric_acid_bucket.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/sulfuric_acid_bucket.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/zinc_sulfate.png" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/resources/assets/tfmg/textures/item/asphalt_mixture.png" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -330,19 +153,19 @@
"Gradle.Create-The_Factory_Must_Grow [build].executor": "Run", "Gradle.Create-The_Factory_Must_Grow [build].executor": "Run",
"Gradle.Create-The_Factory_Must_Grow [createMcpToSrg].executor": "Run", "Gradle.Create-The_Factory_Must_Grow [createMcpToSrg].executor": "Run",
"Gradle.Create-The_Factory_Must_Grow [runClient].executor": "Debug", "Gradle.Create-The_Factory_Must_Grow [runClient].executor": "Debug",
"Gradle.Create-The_Factory_Must_Grow [runData].executor": "Debug", "Gradle.Create-The_Factory_Must_Grow [runData].executor": "Run",
"Gradle.Download Sources.executor": "Run", "Gradle.Download Sources.executor": "Run",
"RunOnceActivity.ShowReadmeOnStart": "true", "RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.git.unshallow": "true", "RunOnceActivity.git.unshallow": "true",
"git-widget-placeholder": "master", "git-widget-placeholder": "master",
"jdk.selected.JDK": "corretto-17", "jdk.selected.JDK": "corretto-17",
"kotlin-language-version-configured": "true", "kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Users/adamn/Documents/minecraft/mods/Create-The_Factory_Must_Grow/src/main/resources", "last_opened_file_path": "C:/Users/adamn/Documents/minecraft/mods/Create-The_Factory_Must_Grow/src/main/resources/assets/tfmg/sounds",
"project.structure.last.edited": "Project", "project.structure.last.edited": "Project",
"project.structure.proportion": "0.15", "project.structure.proportion": "0.15",
"project.structure.side.proportion": "0.0", "project.structure.side.proportion": "0.0",
"run.code.analysis.last.selected.profile": "pProject Default", "run.code.analysis.last.selected.profile": "pProject Default",
"settings.editor.selected.configurable": "preferences.pathVariables" "settings.editor.selected.configurable": "preferences.pluginManager"
}, },
"keyToStringList": { "keyToStringList": {
"jdk.preference.JDK": [ "jdk.preference.JDK": [
@@ -352,11 +175,11 @@
}]]></component> }]]></component>
<component name="RecentsManager"> <component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS"> <key name="CopyFile.RECENT_KEYS">
<recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources\assets\tfmg\sounds" />
<recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources\assets\tfmg\textures\block" />
<recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources" /> <recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources" />
<recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources\assets\tfmg\models\block\engine_gearbox" /> <recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources\assets\tfmg\models\block\engine_gearbox" />
<recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources\assets\tfmg\models\block\concrete_hose" /> <recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources\assets\tfmg\models\block\concrete_hose" />
<recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources\assets\tfmg\ponder" />
<recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\run\schematics" />
</key> </key>
<key name="MoveFile.RECENT_KEYS"> <key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\run\saves" /> <recent name="C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\run\saves" />
@@ -493,7 +316,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1746041674720</updated> <updated>1746041674720</updated>
</task> </task>
<option name="localTasksCounter" value="6" /> <task id="LOCAL-00006" summary="stufffffffffffffff">
<option name="closed" value="true" />
<created>1746824510411</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1746824510411</updated>
</task>
<option name="localTasksCounter" value="7" />
<servers /> <servers />
</component> </component>
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
@@ -503,6 +334,7 @@
<MESSAGE value="gitignore" /> <MESSAGE value="gitignore" />
<MESSAGE value="stuffffffffffff" /> <MESSAGE value="stuffffffffffff" />
<MESSAGE value="stuffffffffffffff" /> <MESSAGE value="stuffffffffffffff" />
<option name="LAST_COMMIT_MESSAGE" value="stuffffffffffffff" /> <MESSAGE value="stufffffffffffffff" />
<option name="LAST_COMMIT_MESSAGE" value="stufffffffffffffff" />
</component> </component>
</project> </project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,85 +1,85 @@
[09May2025 22:54:46.516] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgedatauserdev, --assetIndex, 5, --assetsDir, C:\Users\adamn\.gradle\caches\forge_gradle\assets, --gameDir, ., --fml.forgeVersion, 47.3.10, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412, --mod, tfmg, --all, --output, C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\generated\resources, --existing, C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources] [10May2025 10:06:07.092] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher running: args [--launchTarget, forgedatauserdev, --assetIndex, 5, --assetsDir, C:\Users\adamn\.gradle\caches\forge_gradle\assets, --gameDir, ., --fml.forgeVersion, 47.3.10, --fml.mcVersion, 1.20.1, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20230612.114412, --mod, tfmg, --all, --output, C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\generated\resources, --existing, C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources]
[09May2025 22:54:46.525] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.12 by Oracle Corporation; OS Windows 11 arch amd64 version 10.0 [10May2025 10:06:07.112] [main/INFO] [cpw.mods.modlauncher.Launcher/MODLAUNCHER]: ModLauncher 10.0.9+10.0.9+main.dcd20f30 starting: java version 17.0.12 by Oracle Corporation; OS Windows 11 arch amd64 version 10.0
[09May2025 22:54:46.660] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is forgedatauserdev [10May2025 10:06:07.281] [main/INFO] [net.minecraftforge.fml.loading.ImmediateWindowHandler/]: ImmediateWindowProvider not loading because launch target is forgedatauserdev
[09May2025 22:54:46.722] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/adamn/.gradle/caches/modules-2/files-2.1/org.spongepowered/mixin/0.8.5/9d1c0c3a304ae6697ecd477218fa61b850bf57fc/mixin-0.8.5.jar%23128!/ Service=ModLauncher Env=CLIENT [10May2025 10:06:07.337] [main/INFO] [mixin/]: SpongePowered MIXIN Subsystem Version=0.8.5 Source=union:/C:/Users/adamn/.gradle/caches/modules-2/files-2.1/org.spongepowered/mixin/0.8.5/9d1c0c3a304ae6697ecd477218fa61b850bf57fc/mixin-0.8.5.jar%23128!/ Service=ModLauncher Env=CLIENT
[09May2025 22:54:47.167] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\adamn\.gradle\caches\modules-2\files-2.1\net.minecraftforge\javafmllanguage\1.20.1-47.3.10\7a15037366722893d76a3d0b2e9d1fd13a63a22d\javafmllanguage-1.20.1-47.3.10.jar is missing mods.toml file [10May2025 10:06:07.776] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\adamn\.gradle\caches\modules-2\files-2.1\net.minecraftforge\javafmllanguage\1.20.1-47.3.10\7a15037366722893d76a3d0b2e9d1fd13a63a22d\javafmllanguage-1.20.1-47.3.10.jar is missing mods.toml file
[09May2025 22:54:47.172] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\adamn\.gradle\caches\modules-2\files-2.1\net.minecraftforge\lowcodelanguage\1.20.1-47.3.10\e67d9b3451d64ccc812cbbd33c066bd3ebbf2167\lowcodelanguage-1.20.1-47.3.10.jar is missing mods.toml file [10May2025 10:06:07.781] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\adamn\.gradle\caches\modules-2\files-2.1\net.minecraftforge\lowcodelanguage\1.20.1-47.3.10\e67d9b3451d64ccc812cbbd33c066bd3ebbf2167\lowcodelanguage-1.20.1-47.3.10.jar is missing mods.toml file
[09May2025 22:54:47.179] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\adamn\.gradle\caches\modules-2\files-2.1\net.minecraftforge\mclanguage\1.20.1-47.3.10\2023f9726a509c5ba5a925cac934944066093de8\mclanguage-1.20.1-47.3.10.jar is missing mods.toml file [10May2025 10:06:07.786] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\adamn\.gradle\caches\modules-2\files-2.1\net.minecraftforge\mclanguage\1.20.1-47.3.10\2023f9726a509c5ba5a925cac934944066093de8\mclanguage-1.20.1-47.3.10.jar is missing mods.toml file
[09May2025 22:54:47.184] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\adamn\.gradle\caches\modules-2\files-2.1\net.minecraftforge\fmlcore\1.20.1-47.3.10\523aa0cd9a773b2b56268d8689b2fb5c1f072941\fmlcore-1.20.1-47.3.10.jar is missing mods.toml file [10May2025 10:06:07.790] [main/WARN] [net.minecraftforge.fml.loading.moddiscovery.ModFileParser/LOADING]: Mod file C:\Users\adamn\.gradle\caches\modules-2\files-2.1\net.minecraftforge\fmlcore\1.20.1-47.3.10\523aa0cd9a773b2b56268d8689b2fb5c1f072941\fmlcore-1.20.1-47.3.10.jar is missing mods.toml file
[09May2025 22:54:47.570] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 1 dependencies adding them to mods collection [10May2025 10:06:08.126] [main/INFO] [net.minecraftforge.fml.loading.moddiscovery.JarInJarDependencyLocator/]: Found 1 dependencies adding them to mods collection
[09May2025 22:54:51.162] [main/INFO] [mixin/]: Compatibility level set to JAVA_17 [10May2025 10:06:11.464] [main/INFO] [mixin/]: Compatibility level set to JAVA_17
[09May2025 22:54:51.196] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forgedatauserdev' with arguments [--gameDir, ., --assetsDir, C:\Users\adamn\.gradle\caches\forge_gradle\assets, --assetIndex, 5, --mod, tfmg, --all, --output, C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\generated\resources, --existing, C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources] [10May2025 10:06:11.491] [main/INFO] [cpw.mods.modlauncher.LaunchServiceHandler/MODLAUNCHER]: Launching target 'forgedatauserdev' with arguments [--gameDir, ., --assetsDir, C:\Users\adamn\.gradle\caches\forge_gradle\assets, --assetIndex, 5, --mod, tfmg, --all, --output, C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\generated\resources, --existing, C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\src\main\resources]
[09May2025 22:54:51.770] [main/INFO] [mixin/]: Remapping refMap backend-flywheel.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg [10May2025 10:06:12.068] [main/INFO] [mixin/]: Remapping refMap backend-flywheel.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg
[09May2025 22:54:51.773] [main/INFO] [mixin/]: Remapping refMap flywheel.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg [10May2025 10:06:12.071] [main/INFO] [mixin/]: Remapping refMap flywheel.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg
[09May2025 22:54:51.779] [main/INFO] [mixin/]: Remapping refMap ponder.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg [10May2025 10:06:12.073] [main/INFO] [mixin/]: Remapping refMap ponder.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg
[09May2025 22:54:51.785] [main/INFO] [mixin/]: Remapping refMap ponder.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg [10May2025 10:06:12.076] [main/INFO] [mixin/]: Remapping refMap ponder.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg
[09May2025 22:54:51.790] [main/INFO] [mixin/]: Remapping refMap create.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg [10May2025 10:06:12.081] [main/INFO] [mixin/]: Remapping refMap create.refmap.json using C:\Users\adamn\Documents\minecraft\mods\Create-The_Factory_Must_Grow\build\createSrgToMcp\output.srg
[09May2025 22:54:52.443] [main/WARN] [mixin/]: Error loading class: journeymap/client/ui/fullscreen/Fullscreen (java.lang.ClassNotFoundException: journeymap.client.ui.fullscreen.Fullscreen) [10May2025 10:06:12.781] [main/WARN] [mixin/]: Error loading class: journeymap/client/ui/fullscreen/Fullscreen (java.lang.ClassNotFoundException: journeymap.client.ui.fullscreen.Fullscreen)
[09May2025 22:54:52.444] [main/WARN] [mixin/]: @Mixin target journeymap.client.ui.fullscreen.Fullscreen was not found create.mixins.json:compat.JourneyFullscreenMapMixin [10May2025 10:06:12.781] [main/WARN] [mixin/]: @Mixin target journeymap.client.ui.fullscreen.Fullscreen was not found create.mixins.json:compat.JourneyFullscreenMapMixin
[09May2025 22:54:53.655] [main/INFO] [net.minecraftforge.data.loading.DatagenModLoader/]: Initializing Data Gatherer for mods [tfmg] [10May2025 10:06:13.429] [main/INFO] [net.minecraftforge.data.loading.DatagenModLoader/]: Initializing Data Gatherer for mods [tfmg]
[09May2025 22:54:53.664] [main/INFO] [MixinExtras|Service/]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.4.1). [10May2025 10:06:13.440] [main/INFO] [MixinExtras|Service/]: Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.4.1).
[09May2025 22:55:00.565] [modloading-worker-0/INFO] [com.simibubi.create.Create/]: Create 6.0.4 initializing! Commit hash: 501917e035dcd3181bb1bd6b4fe0552d3988b32a [10May2025 10:06:20.941] [modloading-worker-0/INFO] [com.simibubi.create.Create/]: Create 6.0.4 initializing! Commit hash: 501917e035dcd3181bb1bd6b4fe0552d3988b32a
[09May2025 22:55:00.603] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 47.3.10, for MC 1.20.1 with MCP 20230612.114412 [10May2025 10:06:20.994] [modloading-worker-0/INFO] [net.minecraftforge.common.ForgeMod/FORGEMOD]: Forge mod loading, version 47.3.10, for MC 1.20.1 with MCP 20230612.114412
[09May2025 22:55:00.605] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v47.3.10 Initialized [10May2025 10:06:20.996] [modloading-worker-0/INFO] [net.minecraftforge.common.MinecraftForge/FORGE]: MinecraftForge v47.3.10 Initialized
[09May2025 22:55:01.363] [modloading-worker-0/INFO] [mezz.jei.library.load.PluginCaller/]: Sending ConfigManager... [10May2025 10:06:21.762] [modloading-worker-0/INFO] [mezz.jei.library.load.PluginCaller/]: Sending ConfigManager...
[09May2025 22:55:01.382] [modloading-worker-0/INFO] [mezz.jei.library.load.PluginCaller/]: Sending ConfigManager took 15.69 ms [10May2025 10:06:21.777] [modloading-worker-0/INFO] [mezz.jei.library.load.PluginCaller/]: Sending ConfigManager took 8.529 ms
[09May2025 22:55:06.034] [main/WARN] [net.minecraft.network.syncher.SynchedEntityData/]: defineId called for: class net.minecraft.world.entity.item.PrimedTnt from class com.drmangotea.tfmg.content.items.weapons.explosives.napalm.NapalmBombEntity [10May2025 10:06:25.173] [main/WARN] [net.minecraft.network.syncher.SynchedEntityData/]: defineId called for: class net.minecraft.world.entity.item.PrimedTnt from class com.drmangotea.tfmg.content.items.weapons.explosives.napalm.NapalmBombEntity
[09May2025 22:55:06.335] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/adamn/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.20.1-47.3.10_mapped_official_1.20.1/forge-1.20.1-47.3.10_mapped_official_1.20.1-recomp.jar%23191!/assets/.mcassetsroot' uses unexpected schema [10May2025 10:06:25.507] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/adamn/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.20.1-47.3.10_mapped_official_1.20.1/forge-1.20.1-47.3.10_mapped_official_1.20.1-recomp.jar%23191!/assets/.mcassetsroot' uses unexpected schema
[09May2025 22:55:06.336] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/adamn/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.20.1-47.3.10_mapped_official_1.20.1/forge-1.20.1-47.3.10_mapped_official_1.20.1-recomp.jar%23191!/data/.mcassetsroot' uses unexpected schema [10May2025 10:06:25.508] [main/WARN] [net.minecraft.server.packs.VanillaPackResourcesBuilder/]: Assets URL 'union:/C:/Users/adamn/.gradle/caches/forge_gradle/minecraft_user_repo/net/minecraftforge/forge/1.20.1-47.3.10_mapped_official_1.20.1/forge-1.20.1-47.3.10_mapped_official_1.20.1-recomp.jar%23191!/data/.mcassetsroot' uses unexpected schema
[09May2025 22:55:06.909] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Registrate Provider for tfmg [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] [10May2025 10:06:26.130] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Registrate Provider for tfmg [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
[09May2025 22:55:10.157] [main/INFO] [PonderIndex/]: Registering Ponder Scenes took 12.23 ms [10May2025 10:06:28.694] [main/INFO] [PonderIndex/]: Registering Ponder Scenes took 10.81 ms
[09May2025 22:55:10.161] [main/INFO] [PonderIndex/]: Registering Ponder Tags took 4.002 ms [10May2025 10:06:28.699] [main/INFO] [PonderIndex/]: Registering Ponder Tags took 4.091 ms
[09May2025 22:55:10.162] [main/INFO] [PonderIndex/]: Collecting Shared Ponder Text took 521.6 μs [10May2025 10:06:28.700] [main/INFO] [PonderIndex/]: Collecting Shared Ponder Text took 824.8 μs
[09May2025 22:55:10.277] [main/INFO] [net.minecraft.data.DataGenerator/]: Registrate Provider for tfmg [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] finished after 3367 ms [10May2025 10:06:28.806] [main/INFO] [net.minecraft.data.DataGenerator/]: Registrate Provider for tfmg [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] finished after 2675 ms
[09May2025 22:55:10.277] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: TFMG's Generated Registry Entries [10May2025 10:06:28.806] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: TFMG's Generated Registry Entries
[09May2025 22:55:10.301] [main/INFO] [net.minecraft.data.DataGenerator/]: TFMG's Generated Registry Entries finished after 23 ms [10May2025 10:06:28.836] [main/INFO] [net.minecraft.data.DataGenerator/]: TFMG's Generated Registry Entries finished after 29 ms
[09May2025 22:55:10.302] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Recipes [10May2025 10:06:28.837] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: Recipes
[09May2025 22:55:10.307] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (minecraft:dummy) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.843] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (minecraft:dummy) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.318] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (minecraft:dummy) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.859] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (minecraft:dummy) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.322] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (minecraft:dummy) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.866] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (minecraft:dummy) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.327] [main/INFO] [com.simibubi.create.Create/]: Recipes registered 7 recipes [10May2025 10:06:28.871] [main/INFO] [com.simibubi.create.Create/]: Recipes registered 7 recipes
[09May2025 22:55:10.327] [main/INFO] [net.minecraft.data.DataGenerator/]: Recipes finished after 25 ms [10May2025 10:06:28.871] [main/INFO] [net.minecraft.data.DataGenerator/]: Recipes finished after 33 ms
[09May2025 22:55:10.327] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: TFMG's Recipes [10May2025 10:06:28.871] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: TFMG's Recipes
[09May2025 22:55:10.330] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:industrial_blasting recipe (tfmg:steel) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.874] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:industrial_blasting recipe (tfmg:steel) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.331] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:industrial_blasting recipe (tfmg:steel_from_raw_iron) has more item inputs (3) than supported (2). [10May2025 10:06:28.874] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:industrial_blasting recipe (tfmg:steel_from_raw_iron) has more item inputs (3) than supported (2).
[09May2025 22:55:10.331] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:industrial_blasting recipe (tfmg:steel_from_raw_iron) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.874] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:industrial_blasting recipe (tfmg:steel_from_raw_iron) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.331] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:industrial_blasting recipe (tfmg:steel_from_dust) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.874] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:industrial_blasting recipe (tfmg:steel_from_dust) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.331] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 3 recipes [10May2025 10:06:28.874] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 3 recipes
[09May2025 22:55:10.331] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:casting recipe (tfmg:steel) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.875] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:casting recipe (tfmg:steel) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.332] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:casting recipe (tfmg:silicon) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.875] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:casting recipe (tfmg:silicon) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.332] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 2 recipes [10May2025 10:06:28.875] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 2 recipes
[09May2025 22:55:10.332] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:neon) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.876] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:neon) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.333] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:plastic_from_ethylene) specified a heat condition. Heat conditions have no impact on this type of recipe. [10May2025 10:06:28.876] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:plastic_from_ethylene) specified a heat condition. Heat conditions have no impact on this type of recipe.
[09May2025 22:55:10.333] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:plastic_from_propylene) specified a heat condition. Heat conditions have no impact on this type of recipe. [10May2025 10:06:28.876] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:plastic_from_propylene) specified a heat condition. Heat conditions have no impact on this type of recipe.
[09May2025 22:55:10.333] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:etched_circuit_board) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.876] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:etched_circuit_board) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.333] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:aluminum) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.877] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:aluminum) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.333] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:aluminum) specified a heat condition. Heat conditions have no impact on this type of recipe. [10May2025 10:06:28.877] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:vat_machine_recipe recipe (tfmg:aluminum) specified a heat condition. Heat conditions have no impact on this type of recipe.
[09May2025 22:55:10.333] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 9 recipes [10May2025 10:06:28.877] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 9 recipes
[09May2025 22:55:10.372] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 254 recipes [10May2025 10:06:28.917] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 271 recipes
[09May2025 22:55:10.374] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 8 recipes [10May2025 10:06:28.922] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 8 recipes
[09May2025 22:55:10.375] [main/INFO] [net.minecraft.data.DataGenerator/]: TFMG's Recipes finished after 47 ms [10May2025 10:06:28.928] [main/INFO] [net.minecraft.data.DataGenerator/]: TFMG's Recipes finished after 56 ms
[09May2025 22:55:10.375] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: TFMG's Processing Recipes [10May2025 10:06:28.928] [main/INFO] [net.minecraft.data.DataGenerator/]: Starting provider: TFMG's Processing Recipes
[09May2025 22:55:10.376] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:cast_iron_ingot) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.928] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:cast_iron_ingot) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.376] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:aluminum_ingot) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.929] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:aluminum_ingot) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.376] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:lead_ingot) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.929] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:lead_ingot) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.376] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:nickel_ingot) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.929] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:nickel_ingot) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.377] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:synthetic_leather) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.929] [main/WARN] [com.simibubi.create.Create/]: Your custom create:pressing recipe (tfmg:synthetic_leather) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.377] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 5 recipes [10May2025 10:06:28.929] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 5 recipes
[09May2025 22:55:10.377] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:coking recipe (tfmg:coal) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.929] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:coking recipe (tfmg:coal) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.377] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:coking recipe (tfmg:charcoal) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.930] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:coking recipe (tfmg:charcoal) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.377] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 2 recipes [10May2025 10:06:28.930] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 2 recipes
[09May2025 22:55:10.378] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 6 recipes [10May2025 10:06:28.930] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 6 recipes
[09May2025 22:55:10.378] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (tfmg:electromagnetic_coil) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.930] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (tfmg:electromagnetic_coil) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.378] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (tfmg:resistor) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.931] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:winding recipe (tfmg:resistor) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.379] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 2 recipes [10May2025 10:06:28.931] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 2 recipes
[09May2025 22:55:10.379] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 1 recipe [10May2025 10:06:28.931] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 1 recipe
[09May2025 22:55:10.379] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:hot_blast recipe (tfmg:hot_air) specified a duration. Durations have no impact on this type of recipe. [10May2025 10:06:28.931] [main/WARN] [com.simibubi.create.Create/]: Your custom tfmg:hot_blast recipe (tfmg:hot_air) specified a duration. Durations have no impact on this type of recipe.
[09May2025 22:55:10.380] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 1 recipe [10May2025 10:06:28.931] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 1 recipe
[09May2025 22:55:10.380] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 4 recipes [10May2025 10:06:28.932] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 4 recipes
[09May2025 22:55:10.381] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 12 recipes [10May2025 10:06:28.933] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 12 recipes
[09May2025 22:55:10.382] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 13 recipes [10May2025 10:06:28.934] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 13 recipes
[09May2025 22:55:10.383] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 9 recipes [10May2025 10:06:28.935] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 9 recipes
[09May2025 22:55:10.384] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 7 recipes [10May2025 10:06:28.935] [main/INFO] [com.drmangotea.tfmg.TFMG/]: Recipes registered 7 recipes
[09May2025 22:55:10.384] [main/INFO] [net.minecraft.data.DataGenerator/]: TFMG's Processing Recipes finished after 9 ms [10May2025 10:06:28.936] [main/INFO] [net.minecraft.data.DataGenerator/]: TFMG's Processing Recipes finished after 8 ms
[09May2025 22:55:10.384] [main/INFO] [net.minecraft.data.DataGenerator/]: All providers took: 3476 ms [10May2025 10:06:28.936] [main/INFO] [net.minecraft.data.DataGenerator/]: All providers took: 2807 ms
[09May2025 22:55:10.548] [main/INFO] [net.minecraft.data.HashCache/]: Caching: total files: 3275, old count: 3269, new count: 3276, removed stale: 0, written: 9 [10May2025 10:06:29.065] [main/INFO] [net.minecraft.data.HashCache/]: Caching: total files: 3311, old count: 3279, new count: 3310, removed stale: 2, written: 32

View File

@@ -62,7 +62,7 @@
#. #.
#Sets the maximum charging rate of accumulators. #Sets the maximum charging rate of accumulators.
#Range: > 1 #Range: > 1
accumulatorChargingRate = 100 accumulatorChargingRate = 1000
#. #.
#Firebox #Firebox

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -126,38 +126,38 @@ key_ponder.keyinfo.ponder:key.keyboard.w
key_create.keyinfo.toolmenu:key.keyboard.left.alt key_create.keyinfo.toolmenu:key.keyboard.left.alt
key_create.keyinfo.toolbelt:key.keyboard.left.alt key_create.keyinfo.toolbelt:key.keyboard.left.alt
key_create.keyinfo.rotate_menu:key.keyboard.unknown key_create.keyinfo.rotate_menu:key.keyboard.unknown
key_key.jei.focusSearch:key.keyboard.f:CONTROL
key_key.jei.closeRecipeGui:key.keyboard.escape
key_key.jei.toggleBookmarkOverlay:key.keyboard.unknown
key_key.jei.cheatOneItem2:key.mouse.right
key_key.jei.toggleEditMode:key.keyboard.unknown
key_key.jei.toggleWildcardHideIngredient:key.mouse.right:CONTROL
key_key.jei.maxTransferRecipeBookmark:key.mouse.left:CONTROL
key_key.jei.showRecipe2:key.mouse.left
key_key.jei.toggleHideIngredient:key.mouse.left:CONTROL
key_key.jei.nextRecipePage:key.keyboard.page.down
key_key.jei.copy.recipe.id:key.keyboard.unknown
key_key.jei.transferRecipeBookmark:key.mouse.left:SHIFT
key_key.jei.nextCategory:key.keyboard.page.down:SHIFT
key_key.jei.showUses:key.keyboard.u
key_key.jei.nextSearch:key.keyboard.down
key_key.jei.toggleCheatMode:key.keyboard.unknown
key_key.jei.bookmark:key.keyboard.a key_key.jei.bookmark:key.keyboard.a
key_key.jei.previousPage:key.keyboard.unknown
key_key.jei.previousSearch:key.keyboard.up
key_key.jei.cheatItemStack:key.mouse.left:SHIFT
key_key.jei.cheatOneItem:key.mouse.left
key_key.jei.cheatItemStack2:key.mouse.middle
key_key.jei.showUses2:key.mouse.right
key_key.jei.toggleCheatModeConfigButton:key.mouse.left:CONTROL
key_key.jei.showRecipe:key.keyboard.r
key_key.jei.recipeBack:key.keyboard.backspace
key_key.jei.previousCategory:key.keyboard.page.up:SHIFT
key_key.jei.clearSearchBar:key.mouse.right
key_key.jei.toggleOverlay:key.keyboard.o:CONTROL key_key.jei.toggleOverlay:key.keyboard.o:CONTROL
key_key.jei.nextPage:key.keyboard.unknown key_key.jei.showUses2:key.mouse.right
key_key.jei.cheatOneItem2:key.mouse.right
key_key.jei.nextSearch:key.keyboard.down
key_key.jei.cheatOneItem:key.mouse.left
key_key.jei.closeRecipeGui:key.keyboard.escape
key_key.jei.recipeBack:key.keyboard.backspace
key_key.jei.nextRecipePage:key.keyboard.page.down
key_key.jei.cheatItemStack:key.mouse.left:SHIFT
key_key.jei.previousPage:key.keyboard.unknown
key_key.jei.cheatItemStack2:key.mouse.middle
key_key.jei.previousRecipePage:key.keyboard.page.up key_key.jei.previousRecipePage:key.keyboard.page.up
soundCategory_master:0.06622516556291391 key_key.jei.toggleEditMode:key.keyboard.unknown
key_key.jei.focusSearch:key.keyboard.f:CONTROL
key_key.jei.toggleHideIngredient:key.mouse.left:CONTROL
key_key.jei.toggleCheatMode:key.keyboard.unknown
key_key.jei.toggleWildcardHideIngredient:key.mouse.right:CONTROL
key_key.jei.nextCategory:key.keyboard.page.down:SHIFT
key_key.jei.transferRecipeBookmark:key.mouse.left:SHIFT
key_key.jei.showRecipe2:key.mouse.left
key_key.jei.toggleBookmarkOverlay:key.keyboard.unknown
key_key.jei.nextPage:key.keyboard.unknown
key_key.jei.showRecipe:key.keyboard.r
key_key.jei.clearSearchBar:key.mouse.right
key_key.jei.previousSearch:key.keyboard.up
key_key.jei.previousCategory:key.keyboard.page.up:SHIFT
key_key.jei.maxTransferRecipeBookmark:key.mouse.left:CONTROL
key_key.jei.toggleCheatModeConfigButton:key.mouse.left:CONTROL
key_key.jei.copy.recipe.id:key.keyboard.unknown
key_key.jei.showUses:key.keyboard.u
soundCategory_master:1.0
soundCategory_music:0.0 soundCategory_music:0.0
soundCategory_record:1.0 soundCategory_record:1.0
soundCategory_weather:1.0 soundCategory_weather:1.0

View File

@@ -1 +1 @@
[{"name":"Dev","uuid":"380df991-f603-344c-a090-369bad2a924a","expiresOn":"2025-06-09 22:59:39 +0200"}] [{"name":"Dev","uuid":"380df991-f603-344c-a090-369bad2a924a","expiresOn":"2025-06-10 20:54:35 +0200"}]

View File

@@ -1,4 +1,4 @@
// 1.20.1 2025-05-01T12:33:45.0027115 TFMG's Recipes // 1.20.1 2025-05-10T10:06:28.9423315 TFMG's Recipes
d779aa2cf2fca905473c494073443d0289484311 data/create/recipes/mechanical_crafting/engine_controller.json d779aa2cf2fca905473c494073443d0289484311 data/create/recipes/mechanical_crafting/engine_controller.json
dd795cb8dd376f621afb3773cadb99c409aaf875 data/create/recipes/mechanical_crafting/flamethrower.json dd795cb8dd376f621afb3773cadb99c409aaf875 data/create/recipes/mechanical_crafting/flamethrower.json
e4cd8dd7ad658d3c2d5785fe659aba0e1b9d4f31 data/create/recipes/mechanical_crafting/large_engine.json e4cd8dd7ad658d3c2d5785fe659aba0e1b9d4f31 data/create/recipes/mechanical_crafting/large_engine.json
@@ -34,12 +34,14 @@ dfd486a1e6ffcaaf328490489baae15999abdd66 data/tfmg/advancements/recipes/misc/cra
5ecf1e6f00baafb429e84bbbd599d2cba829c270 data/tfmg/advancements/recipes/misc/crafting/kinetics/aluminum_sword.json 5ecf1e6f00baafb429e84bbbd599d2cba829c270 data/tfmg/advancements/recipes/misc/crafting/kinetics/aluminum_sword.json
d4550fea43f7cadcee96dfe5ecdf2a3932e10b37 data/tfmg/advancements/recipes/misc/crafting/kinetics/aluminum_truss.json d4550fea43f7cadcee96dfe5ecdf2a3932e10b37 data/tfmg/advancements/recipes/misc/crafting/kinetics/aluminum_truss.json
1766976fb123199b29e3a0c8d8ad0a3a90f23289 data/tfmg/advancements/recipes/misc/crafting/kinetics/black_concrete.json 1766976fb123199b29e3a0c8d8ad0a3a90f23289 data/tfmg/advancements/recipes/misc/crafting/kinetics/black_concrete.json
a00b79ad9876d982d669033104e141d7ab4d5632 data/tfmg/advancements/recipes/misc/crafting/kinetics/black_multimeter.json
2077ab308886e842cd894d9accb6a52dc847658f data/tfmg/advancements/recipes/misc/crafting/kinetics/black_rebar_concrete.json 2077ab308886e842cd894d9accb6a52dc847658f data/tfmg/advancements/recipes/misc/crafting/kinetics/black_rebar_concrete.json
085aec07524c91226410b7b8917cf6bf97f3a873 data/tfmg/advancements/recipes/misc/crafting/kinetics/blast_furnace_hatch.json 085aec07524c91226410b7b8917cf6bf97f3a873 data/tfmg/advancements/recipes/misc/crafting/kinetics/blast_furnace_hatch.json
94ad06b3222fe599ae2c28055a74403553f2d6e1 data/tfmg/advancements/recipes/misc/crafting/kinetics/blast_furnace_output.json 94ad06b3222fe599ae2c28055a74403553f2d6e1 data/tfmg/advancements/recipes/misc/crafting/kinetics/blast_furnace_output.json
b65b1fed310bdcd57d6be9860c7eb7c17c2f922d data/tfmg/advancements/recipes/misc/crafting/kinetics/blast_furnace_reinforcement.json b65b1fed310bdcd57d6be9860c7eb7c17c2f922d data/tfmg/advancements/recipes/misc/crafting/kinetics/blast_furnace_reinforcement.json
9882780522b74f41d9b1facaecf0906ad2ded80b data/tfmg/advancements/recipes/misc/crafting/kinetics/blast_stove.json 9882780522b74f41d9b1facaecf0906ad2ded80b data/tfmg/advancements/recipes/misc/crafting/kinetics/blast_stove.json
91236298677bead8c8e4a9c2b2042e34a6bfc7fc data/tfmg/advancements/recipes/misc/crafting/kinetics/blue_concrete.json 91236298677bead8c8e4a9c2b2042e34a6bfc7fc data/tfmg/advancements/recipes/misc/crafting/kinetics/blue_concrete.json
9d246142748003851c2ae40cf670dcaaf8610b63 data/tfmg/advancements/recipes/misc/crafting/kinetics/blue_multimeter.json
5766e5caa1946fc28c978aa4f30f6ccfd0c66a50 data/tfmg/advancements/recipes/misc/crafting/kinetics/blue_rebar_concrete.json 5766e5caa1946fc28c978aa4f30f6ccfd0c66a50 data/tfmg/advancements/recipes/misc/crafting/kinetics/blue_rebar_concrete.json
254b56ab97ae39367fecd8f298db28995b5ca98d data/tfmg/advancements/recipes/misc/crafting/kinetics/brass_cable_hub.json 254b56ab97ae39367fecd8f298db28995b5ca98d data/tfmg/advancements/recipes/misc/crafting/kinetics/brass_cable_hub.json
11197779ff7c09cabdfecca3bbfdaf721bf9f723 data/tfmg/advancements/recipes/misc/crafting/kinetics/brass_fluid_valve.json 11197779ff7c09cabdfecca3bbfdaf721bf9f723 data/tfmg/advancements/recipes/misc/crafting/kinetics/brass_fluid_valve.json
@@ -51,6 +53,7 @@ b0f2d650bd28257081412243f00de7cc4b9c70d1 data/tfmg/advancements/recipes/misc/cra
0af6494f19a65ffffef34d414f9ddf4a4784d4ba data/tfmg/advancements/recipes/misc/crafting/kinetics/brass_truss.json 0af6494f19a65ffffef34d414f9ddf4a4784d4ba data/tfmg/advancements/recipes/misc/crafting/kinetics/brass_truss.json
9f2a83c8ae2401947e04f209c224f401113a33ac data/tfmg/advancements/recipes/misc/crafting/kinetics/brick_smokestack.json 9f2a83c8ae2401947e04f209c224f401113a33ac data/tfmg/advancements/recipes/misc/crafting/kinetics/brick_smokestack.json
bb5d03143618b31428378da53d39c52f191df7d7 data/tfmg/advancements/recipes/misc/crafting/kinetics/brown_concrete.json bb5d03143618b31428378da53d39c52f191df7d7 data/tfmg/advancements/recipes/misc/crafting/kinetics/brown_concrete.json
f178952cc49570239795623b7ea4efce1204a9db data/tfmg/advancements/recipes/misc/crafting/kinetics/brown_multimeter.json
537be60abef99e669300ca1bbc0c5f9a0f40ada7 data/tfmg/advancements/recipes/misc/crafting/kinetics/brown_rebar_concrete.json 537be60abef99e669300ca1bbc0c5f9a0f40ada7 data/tfmg/advancements/recipes/misc/crafting/kinetics/brown_rebar_concrete.json
d1f24b4a5314d6e9e110b5b24783684b1c13d2fc data/tfmg/advancements/recipes/misc/crafting/kinetics/cable_connector.json d1f24b4a5314d6e9e110b5b24783684b1c13d2fc data/tfmg/advancements/recipes/misc/crafting/kinetics/cable_connector.json
d7d6d51df7d03dd3282a1e72d29fee9796b4121a data/tfmg/advancements/recipes/misc/crafting/kinetics/cable_tube.json d7d6d51df7d03dd3282a1e72d29fee9796b4121a data/tfmg/advancements/recipes/misc/crafting/kinetics/cable_tube.json
@@ -93,6 +96,7 @@ af50eaf2d7cf7a460786d5db428967b7cc46c488 data/tfmg/advancements/recipes/misc/cra
26107d07c052211b81fbf3b87b4a742423bcc9a3 data/tfmg/advancements/recipes/misc/crafting/kinetics/copycat_cable_block.json 26107d07c052211b81fbf3b87b4a742423bcc9a3 data/tfmg/advancements/recipes/misc/crafting/kinetics/copycat_cable_block.json
3f6530210f33ecead99099b6bf83e759625eb8ec data/tfmg/advancements/recipes/misc/crafting/kinetics/crankshaft.json 3f6530210f33ecead99099b6bf83e759625eb8ec data/tfmg/advancements/recipes/misc/crafting/kinetics/crankshaft.json
c16a5c7105e55a0205d0ee2af993e72e82b925f5 data/tfmg/advancements/recipes/misc/crafting/kinetics/cyan_concrete.json c16a5c7105e55a0205d0ee2af993e72e82b925f5 data/tfmg/advancements/recipes/misc/crafting/kinetics/cyan_concrete.json
155c4ec8c3e8dcdbc59b0e9fd77aff26eab0d247 data/tfmg/advancements/recipes/misc/crafting/kinetics/cyan_multimeter.json
251ef6238e7b2017e9fb7d2e1f99fd0d0ad09691 data/tfmg/advancements/recipes/misc/crafting/kinetics/cyan_rebar_concrete.json 251ef6238e7b2017e9fb7d2e1f99fd0d0ad09691 data/tfmg/advancements/recipes/misc/crafting/kinetics/cyan_rebar_concrete.json
53a922afd729d22c45301c52c113b6f4e56a86e4 data/tfmg/advancements/recipes/misc/crafting/kinetics/diagonal_cable_block.json 53a922afd729d22c45301c52c113b6f4e56a86e4 data/tfmg/advancements/recipes/misc/crafting/kinetics/diagonal_cable_block.json
507d48685dd7a07d7e8468d037803fa0b72d1b8f data/tfmg/advancements/recipes/misc/crafting/kinetics/electrical_switch.json 507d48685dd7a07d7e8468d037803fa0b72d1b8f data/tfmg/advancements/recipes/misc/crafting/kinetics/electrical_switch.json
@@ -114,8 +118,10 @@ de4886d243a449d6bc2ea3ae90ebdd572dfadd79 data/tfmg/advancements/recipes/misc/cra
744227e044d65aac553d20e453819f3f62794aa1 data/tfmg/advancements/recipes/misc/crafting/kinetics/glass_cable_insulator.json 744227e044d65aac553d20e453819f3f62794aa1 data/tfmg/advancements/recipes/misc/crafting/kinetics/glass_cable_insulator.json
f0859ba535b3711a210f4c92e51a79df1a9b0726 data/tfmg/advancements/recipes/misc/crafting/kinetics/glass_insulator_segment.json f0859ba535b3711a210f4c92e51a79df1a9b0726 data/tfmg/advancements/recipes/misc/crafting/kinetics/glass_insulator_segment.json
d837806286dbf97a2fe52cc7958c567f28d79133 data/tfmg/advancements/recipes/misc/crafting/kinetics/gray_concrete.json d837806286dbf97a2fe52cc7958c567f28d79133 data/tfmg/advancements/recipes/misc/crafting/kinetics/gray_concrete.json
6e6a5c44e8e8c239681b42438209be8718e1c9e4 data/tfmg/advancements/recipes/misc/crafting/kinetics/gray_multimeter.json
e52bdd8201ed3052eb98a4846511d32bc67394a1 data/tfmg/advancements/recipes/misc/crafting/kinetics/gray_rebar_concrete.json e52bdd8201ed3052eb98a4846511d32bc67394a1 data/tfmg/advancements/recipes/misc/crafting/kinetics/gray_rebar_concrete.json
abada3c69da28d530b05b1a80f72cdfb94984142 data/tfmg/advancements/recipes/misc/crafting/kinetics/green_concrete.json abada3c69da28d530b05b1a80f72cdfb94984142 data/tfmg/advancements/recipes/misc/crafting/kinetics/green_concrete.json
631b2bc9dff22b783fb53224653d9cbe49676c5e data/tfmg/advancements/recipes/misc/crafting/kinetics/green_multimeter.json
abb6648bb7541e2a0af33006de472d8586808cc5 data/tfmg/advancements/recipes/misc/crafting/kinetics/green_rebar_concrete.json abb6648bb7541e2a0af33006de472d8586808cc5 data/tfmg/advancements/recipes/misc/crafting/kinetics/green_rebar_concrete.json
7f74fac36c61629c9e521c091e86e721bb005da7 data/tfmg/advancements/recipes/misc/crafting/kinetics/heavy_cable_hub.json 7f74fac36c61629c9e521c091e86e721bb005da7 data/tfmg/advancements/recipes/misc/crafting/kinetics/heavy_cable_hub.json
bb43b88374948785c6862f5d0515859c59b444ea data/tfmg/advancements/recipes/misc/crafting/kinetics/heavy_casing_door.json bb43b88374948785c6862f5d0515859c59b444ea data/tfmg/advancements/recipes/misc/crafting/kinetics/heavy_casing_door.json
@@ -138,11 +144,14 @@ f879875d3aba7de14d1bd8ac44a5da0b2d536420 data/tfmg/advancements/recipes/misc/cra
d32ded8889b0f16f96bac0bf4b78b6a120872b7a data/tfmg/advancements/recipes/misc/crafting/kinetics/lead_sword.json d32ded8889b0f16f96bac0bf4b78b6a120872b7a data/tfmg/advancements/recipes/misc/crafting/kinetics/lead_sword.json
ae4b9b7214d1e0db9b83b8ce8e17819bde3e2004 data/tfmg/advancements/recipes/misc/crafting/kinetics/lead_truss.json ae4b9b7214d1e0db9b83b8ce8e17819bde3e2004 data/tfmg/advancements/recipes/misc/crafting/kinetics/lead_truss.json
ccb4f8b047573a4b07643c14e7d07623337b64ea data/tfmg/advancements/recipes/misc/crafting/kinetics/light_blue_concrete.json ccb4f8b047573a4b07643c14e7d07623337b64ea data/tfmg/advancements/recipes/misc/crafting/kinetics/light_blue_concrete.json
f3d20a7616db6a9925e704c036aa8f36d978520f data/tfmg/advancements/recipes/misc/crafting/kinetics/light_blue_multimeter.json
a836a268c214d4530d7845e0928bdcc2903e7160 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_blue_rebar_concrete.json a836a268c214d4530d7845e0928bdcc2903e7160 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_blue_rebar_concrete.json
182d4609455cc2db6621b47d1b17d861b8e9bac6 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_bulb.json 182d4609455cc2db6621b47d1b17d861b8e9bac6 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_bulb.json
ad86c6fb8548a8eea1242c0049f4f57a949a0d71 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_gray_concrete.json ad86c6fb8548a8eea1242c0049f4f57a949a0d71 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_gray_concrete.json
af2d1b84bb399145a11ae056aa4f7a868451f364 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_gray_multimeter.json
a4b28a3a3f5313ebde7d60add23388c858a4b611 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_gray_rebar_concrete.json a4b28a3a3f5313ebde7d60add23388c858a4b611 data/tfmg/advancements/recipes/misc/crafting/kinetics/light_gray_rebar_concrete.json
bf778154e8cf58fff69e81c98df7e2cdd00cc5ed data/tfmg/advancements/recipes/misc/crafting/kinetics/lime_concrete.json bf778154e8cf58fff69e81c98df7e2cdd00cc5ed data/tfmg/advancements/recipes/misc/crafting/kinetics/lime_concrete.json
199da187865840ae9b745cbe91e7c32c9b316074 data/tfmg/advancements/recipes/misc/crafting/kinetics/lime_multimeter.json
93ef0e0da2376a6ec8c75857af60474b7b20c146 data/tfmg/advancements/recipes/misc/crafting/kinetics/lime_rebar_concrete.json 93ef0e0da2376a6ec8c75857af60474b7b20c146 data/tfmg/advancements/recipes/misc/crafting/kinetics/lime_rebar_concrete.json
66c2e6a885101f2efe8076907f78342ec42170e4 data/tfmg/advancements/recipes/misc/crafting/kinetics/lithium_blade.json 66c2e6a885101f2efe8076907f78342ec42170e4 data/tfmg/advancements/recipes/misc/crafting/kinetics/lithium_blade.json
2ff25ea31f32edefb251196c93a6c0fb9cbd2f10 data/tfmg/advancements/recipes/misc/crafting/kinetics/lithium_block_from_compacting.json 2ff25ea31f32edefb251196c93a6c0fb9cbd2f10 data/tfmg/advancements/recipes/misc/crafting/kinetics/lithium_block_from_compacting.json
@@ -153,10 +162,12 @@ bf778154e8cf58fff69e81c98df7e2cdd00cc5ed data/tfmg/advancements/recipes/misc/cra
25e5ab420b9f62583f4d78e00f6e4e99def65b38 data/tfmg/advancements/recipes/misc/crafting/kinetics/lithium_torch.json 25e5ab420b9f62583f4d78e00f6e4e99def65b38 data/tfmg/advancements/recipes/misc/crafting/kinetics/lithium_torch.json
19e295d0d4807a2aafaf78ddef3d1e82b67823fc data/tfmg/advancements/recipes/misc/crafting/kinetics/machine_input.json 19e295d0d4807a2aafaf78ddef3d1e82b67823fc data/tfmg/advancements/recipes/misc/crafting/kinetics/machine_input.json
ed197bae5d59a5c17f0632125f7bcee546bee47d data/tfmg/advancements/recipes/misc/crafting/kinetics/magenta_concrete.json ed197bae5d59a5c17f0632125f7bcee546bee47d data/tfmg/advancements/recipes/misc/crafting/kinetics/magenta_concrete.json
683ba23c77e6ca541bd4bf209a73ff77aaad71ad data/tfmg/advancements/recipes/misc/crafting/kinetics/magenta_multimeter.json
9b04132c22bf3e4e4d1f5c4d47258c43cbec4252 data/tfmg/advancements/recipes/misc/crafting/kinetics/magenta_rebar_concrete.json 9b04132c22bf3e4e4d1f5c4d47258c43cbec4252 data/tfmg/advancements/recipes/misc/crafting/kinetics/magenta_rebar_concrete.json
551343fcd35785d39328f16f169e225671cb5d5e data/tfmg/advancements/recipes/misc/crafting/kinetics/metal_smokestack.json 551343fcd35785d39328f16f169e225671cb5d5e data/tfmg/advancements/recipes/misc/crafting/kinetics/metal_smokestack.json
45fd4bb8a8c60ce588debd9fbfb40419cd18b363 data/tfmg/advancements/recipes/misc/crafting/kinetics/mixer_blade.json 45fd4bb8a8c60ce588debd9fbfb40419cd18b363 data/tfmg/advancements/recipes/misc/crafting/kinetics/mixer_blade.json
3b5499b9d59df13f74e982688cac264cc1e468a1 data/tfmg/advancements/recipes/misc/crafting/kinetics/modern_light.json 3b5499b9d59df13f74e982688cac264cc1e468a1 data/tfmg/advancements/recipes/misc/crafting/kinetics/modern_light.json
a1c6c3c68901b0055a0646c423a9ec585a2ca3cc data/tfmg/advancements/recipes/misc/crafting/kinetics/multimeter.json
4d05146d18ffefbb14821a19d327f7e2c9f4be1f data/tfmg/advancements/recipes/misc/crafting/kinetics/napalm_bomb.json 4d05146d18ffefbb14821a19d327f7e2c9f4be1f data/tfmg/advancements/recipes/misc/crafting/kinetics/napalm_bomb.json
2afc4bda819e3960e678b55385753db759613703 data/tfmg/advancements/recipes/misc/crafting/kinetics/neon_tube.json 2afc4bda819e3960e678b55385753db759613703 data/tfmg/advancements/recipes/misc/crafting/kinetics/neon_tube.json
6f6485ea57087a90188ebcc06b58548da5ec22b3 data/tfmg/advancements/recipes/misc/crafting/kinetics/nickel_block_from_compacting.json 6f6485ea57087a90188ebcc06b58548da5ec22b3 data/tfmg/advancements/recipes/misc/crafting/kinetics/nickel_block_from_compacting.json
@@ -168,8 +179,10 @@ b28e7499cbc4e65a90f4b32acc3cd019c123f85d data/tfmg/advancements/recipes/misc/cra
b454069f626db5b3fb4d28b3500e08e6f3241b36 data/tfmg/advancements/recipes/misc/crafting/kinetics/nickel_truss.json b454069f626db5b3fb4d28b3500e08e6f3241b36 data/tfmg/advancements/recipes/misc/crafting/kinetics/nickel_truss.json
07d1d9e23d958f0db636e63c87980a16508a9b05 data/tfmg/advancements/recipes/misc/crafting/kinetics/oil_can.json 07d1d9e23d958f0db636e63c87980a16508a9b05 data/tfmg/advancements/recipes/misc/crafting/kinetics/oil_can.json
b11887f3e64d6fd41662d5fe25991dc2f21e2524 data/tfmg/advancements/recipes/misc/crafting/kinetics/orange_concrete.json b11887f3e64d6fd41662d5fe25991dc2f21e2524 data/tfmg/advancements/recipes/misc/crafting/kinetics/orange_concrete.json
d03389e1cf797ff41496c61865350b84565679b6 data/tfmg/advancements/recipes/misc/crafting/kinetics/orange_multimeter.json
e3e3e8e7d8731ccd25fd110452107089c1d27c61 data/tfmg/advancements/recipes/misc/crafting/kinetics/orange_rebar_concrete.json e3e3e8e7d8731ccd25fd110452107089c1d27c61 data/tfmg/advancements/recipes/misc/crafting/kinetics/orange_rebar_concrete.json
dd780755922b2ae68df0ff68682071c4fb8acca2 data/tfmg/advancements/recipes/misc/crafting/kinetics/pink_concrete.json dd780755922b2ae68df0ff68682071c4fb8acca2 data/tfmg/advancements/recipes/misc/crafting/kinetics/pink_concrete.json
fce74a73a1022991d9c10a27ad3b9c996159bdf4 data/tfmg/advancements/recipes/misc/crafting/kinetics/pink_multimeter.json
cf0270dfbef5e8b558dec65cf75a6767e0ad653a data/tfmg/advancements/recipes/misc/crafting/kinetics/pink_rebar_concrete.json cf0270dfbef5e8b558dec65cf75a6767e0ad653a data/tfmg/advancements/recipes/misc/crafting/kinetics/pink_rebar_concrete.json
4da181c7e498986202126abdd1deb78ae4fbcbb6 data/tfmg/advancements/recipes/misc/crafting/kinetics/pipe_bomb.json 4da181c7e498986202126abdd1deb78ae4fbcbb6 data/tfmg/advancements/recipes/misc/crafting/kinetics/pipe_bomb.json
575a896b2c6e2df1dde348e3bf65d92a2445535b data/tfmg/advancements/recipes/misc/crafting/kinetics/plastic_block.json 575a896b2c6e2df1dde348e3bf65d92a2445535b data/tfmg/advancements/recipes/misc/crafting/kinetics/plastic_block.json
@@ -186,6 +199,7 @@ ae004d21f8a7f023d29baf5573aa32e54bdea870 data/tfmg/advancements/recipes/misc/cra
543723c25ae7fc7e393f445fc9b6d4c722c4b045 data/tfmg/advancements/recipes/misc/crafting/kinetics/pumpjack_hammer_connector.json 543723c25ae7fc7e393f445fc9b6d4c722c4b045 data/tfmg/advancements/recipes/misc/crafting/kinetics/pumpjack_hammer_connector.json
c0c36f2df4dcc43db3d637b5abdad08cee48b734 data/tfmg/advancements/recipes/misc/crafting/kinetics/pumpjack_hammer_head.json c0c36f2df4dcc43db3d637b5abdad08cee48b734 data/tfmg/advancements/recipes/misc/crafting/kinetics/pumpjack_hammer_head.json
ce949189c6d144a91b06c38ea343aae2ecb91818 data/tfmg/advancements/recipes/misc/crafting/kinetics/purple_concrete.json ce949189c6d144a91b06c38ea343aae2ecb91818 data/tfmg/advancements/recipes/misc/crafting/kinetics/purple_concrete.json
f81c7a443098be45f74c755ba17381cac1b6d02d data/tfmg/advancements/recipes/misc/crafting/kinetics/purple_multimeter.json
46cc7fb7d6ddf9296379dbc69f61634bf93f83c9 data/tfmg/advancements/recipes/misc/crafting/kinetics/purple_rebar_concrete.json 46cc7fb7d6ddf9296379dbc69f61634bf93f83c9 data/tfmg/advancements/recipes/misc/crafting/kinetics/purple_rebar_concrete.json
6e7e99acc803efafe2fa540c77707f9b9af686ae data/tfmg/advancements/recipes/misc/crafting/kinetics/radial_engine.json 6e7e99acc803efafe2fa540c77707f9b9af686ae data/tfmg/advancements/recipes/misc/crafting/kinetics/radial_engine.json
f0cf416f6e9d2ca025806e4a3ef03223314df6e8 data/tfmg/advancements/recipes/misc/crafting/kinetics/raw_lead.json f0cf416f6e9d2ca025806e4a3ef03223314df6e8 data/tfmg/advancements/recipes/misc/crafting/kinetics/raw_lead.json
@@ -202,6 +216,7 @@ a4f1738a69048fad057b127f9f610a6586ce3156 data/tfmg/advancements/recipes/misc/cra
9de813bde5c487920ff931b2b2d2704286e0c7dd data/tfmg/advancements/recipes/misc/crafting/kinetics/rebar_stairs.json 9de813bde5c487920ff931b2b2d2704286e0c7dd data/tfmg/advancements/recipes/misc/crafting/kinetics/rebar_stairs.json
e009fade2852842fe85532419c3cdc6a07b26305 data/tfmg/advancements/recipes/misc/crafting/kinetics/rebar_wall.json e009fade2852842fe85532419c3cdc6a07b26305 data/tfmg/advancements/recipes/misc/crafting/kinetics/rebar_wall.json
fb1305d7d76d0f387dddb87747a21eb046464947 data/tfmg/advancements/recipes/misc/crafting/kinetics/red_concrete.json fb1305d7d76d0f387dddb87747a21eb046464947 data/tfmg/advancements/recipes/misc/crafting/kinetics/red_concrete.json
a171c644d82b6c7975e2039cd43939fe2fc633c3 data/tfmg/advancements/recipes/misc/crafting/kinetics/red_multimeter.json
b0b8eef469ef68a444cfbf5af7b761f534044c6e data/tfmg/advancements/recipes/misc/crafting/kinetics/red_rebar_concrete.json b0b8eef469ef68a444cfbf5af7b761f534044c6e data/tfmg/advancements/recipes/misc/crafting/kinetics/red_rebar_concrete.json
58d67523a201578460c00c5bcc9a5d257f9169f1 data/tfmg/advancements/recipes/misc/crafting/kinetics/regular_engine.json 58d67523a201578460c00c5bcc9a5d257f9169f1 data/tfmg/advancements/recipes/misc/crafting/kinetics/regular_engine.json
08659dddf04a87500623c4aa57430375c96ba19d data/tfmg/advancements/recipes/misc/crafting/kinetics/rusted_blast_furnace_reinforcement.json 08659dddf04a87500623c4aa57430375c96ba19d data/tfmg/advancements/recipes/misc/crafting/kinetics/rusted_blast_furnace_reinforcement.json
@@ -249,9 +264,11 @@ d7175bb0b6e8a62b9fcf97329c5ee4ecb54be7fb data/tfmg/advancements/recipes/misc/cra
206cfd8ea696578a3eb3d2530f80687d7eeb6236 data/tfmg/advancements/recipes/misc/crafting/kinetics/voltage_observer.json 206cfd8ea696578a3eb3d2530f80687d7eeb6236 data/tfmg/advancements/recipes/misc/crafting/kinetics/voltage_observer.json
eb2f906386fcfce680ed71b42eb0250ebb897616 data/tfmg/advancements/recipes/misc/crafting/kinetics/voltmeter.json eb2f906386fcfce680ed71b42eb0250ebb897616 data/tfmg/advancements/recipes/misc/crafting/kinetics/voltmeter.json
ea0daa41506268cb3020939be177ef36220d4f10 data/tfmg/advancements/recipes/misc/crafting/kinetics/white_concrete.json ea0daa41506268cb3020939be177ef36220d4f10 data/tfmg/advancements/recipes/misc/crafting/kinetics/white_concrete.json
530afc19cce3e22ef717e5aba931a6501792a792 data/tfmg/advancements/recipes/misc/crafting/kinetics/white_multimeter.json
4384204f7198c822a36d391c5db17586c4b55161 data/tfmg/advancements/recipes/misc/crafting/kinetics/white_rebar_concrete.json 4384204f7198c822a36d391c5db17586c4b55161 data/tfmg/advancements/recipes/misc/crafting/kinetics/white_rebar_concrete.json
48746b460dd42beec11a226ac7c462454bcd542c data/tfmg/advancements/recipes/misc/crafting/kinetics/winding_machine.json 48746b460dd42beec11a226ac7c462454bcd542c data/tfmg/advancements/recipes/misc/crafting/kinetics/winding_machine.json
e8e715907d8d625725658b07edbb7083918a4d46 data/tfmg/advancements/recipes/misc/crafting/kinetics/yellow_concrete.json e8e715907d8d625725658b07edbb7083918a4d46 data/tfmg/advancements/recipes/misc/crafting/kinetics/yellow_concrete.json
1967d8243bc576196dcc8e80743d061e6eaabd18 data/tfmg/advancements/recipes/misc/crafting/kinetics/yellow_multimeter.json
4fa8a5680937c3fb6681a9391482f4f215564a50 data/tfmg/advancements/recipes/misc/crafting/kinetics/yellow_rebar_concrete.json 4fa8a5680937c3fb6681a9391482f4f215564a50 data/tfmg/advancements/recipes/misc/crafting/kinetics/yellow_rebar_concrete.json
b7c8ea540760ca91937bfb56a6c9abd4435a9910 data/tfmg/advancements/recipes/misc/crafting/kinetics/zinc_frame.json b7c8ea540760ca91937bfb56a6c9abd4435a9910 data/tfmg/advancements/recipes/misc/crafting/kinetics/zinc_frame.json
14b5a77590ec2b2466264128d4ce2dd1158ccab6 data/tfmg/advancements/recipes/misc/crafting/kinetics/zinc_grenade.json 14b5a77590ec2b2466264128d4ce2dd1158ccab6 data/tfmg/advancements/recipes/misc/crafting/kinetics/zinc_grenade.json
@@ -290,12 +307,14 @@ be183c532de69717b584f2df32c0c34538f80089 data/tfmg/recipes/crafting/kinetics/alu
955d158e2a1f8a0517717012274698ccad56de0b data/tfmg/recipes/crafting/kinetics/aluminum_sword.json 955d158e2a1f8a0517717012274698ccad56de0b data/tfmg/recipes/crafting/kinetics/aluminum_sword.json
5be032a557074e91822ce9e9538db118793a51d5 data/tfmg/recipes/crafting/kinetics/aluminum_truss.json 5be032a557074e91822ce9e9538db118793a51d5 data/tfmg/recipes/crafting/kinetics/aluminum_truss.json
4cf7dc18b7316f40973b52162173cfb0082051b5 data/tfmg/recipes/crafting/kinetics/black_concrete.json 4cf7dc18b7316f40973b52162173cfb0082051b5 data/tfmg/recipes/crafting/kinetics/black_concrete.json
8e5662d854eb69ebff30fbc52fa66431d1f890d9 data/tfmg/recipes/crafting/kinetics/black_multimeter.json
0a8407c6c691dc2e2dc76d436c4b857660405b7b data/tfmg/recipes/crafting/kinetics/black_rebar_concrete.json 0a8407c6c691dc2e2dc76d436c4b857660405b7b data/tfmg/recipes/crafting/kinetics/black_rebar_concrete.json
a3a45c1f82a7b6db35c489b4d0c5dabb62ff7419 data/tfmg/recipes/crafting/kinetics/blast_furnace_hatch.json a3a45c1f82a7b6db35c489b4d0c5dabb62ff7419 data/tfmg/recipes/crafting/kinetics/blast_furnace_hatch.json
da5696363c9d489573b79ac2261de3eeeabcf28f data/tfmg/recipes/crafting/kinetics/blast_furnace_output.json da5696363c9d489573b79ac2261de3eeeabcf28f data/tfmg/recipes/crafting/kinetics/blast_furnace_output.json
99724811c3a0fcf930e2c3ab9e960fe48f346219 data/tfmg/recipes/crafting/kinetics/blast_furnace_reinforcement.json 99724811c3a0fcf930e2c3ab9e960fe48f346219 data/tfmg/recipes/crafting/kinetics/blast_furnace_reinforcement.json
c5f9e9509b88317e4b8ee83c89f363725fd9586c data/tfmg/recipes/crafting/kinetics/blast_stove.json c5f9e9509b88317e4b8ee83c89f363725fd9586c data/tfmg/recipes/crafting/kinetics/blast_stove.json
a64bdef677eb562a587374ce547a9d75558618f8 data/tfmg/recipes/crafting/kinetics/blue_concrete.json a64bdef677eb562a587374ce547a9d75558618f8 data/tfmg/recipes/crafting/kinetics/blue_concrete.json
80dd6da57061475960ef6068927d3ba528b84596 data/tfmg/recipes/crafting/kinetics/blue_multimeter.json
697d0e47ad2efaf5622ac5378d213271bed0cf51 data/tfmg/recipes/crafting/kinetics/blue_rebar_concrete.json 697d0e47ad2efaf5622ac5378d213271bed0cf51 data/tfmg/recipes/crafting/kinetics/blue_rebar_concrete.json
11986c41315a4dd2a3329ab8c9336e7811ed26e9 data/tfmg/recipes/crafting/kinetics/brass_cable_hub.json 11986c41315a4dd2a3329ab8c9336e7811ed26e9 data/tfmg/recipes/crafting/kinetics/brass_cable_hub.json
429bdb714c3bfed25ca601e5f21bb40684930162 data/tfmg/recipes/crafting/kinetics/brass_fluid_valve.json 429bdb714c3bfed25ca601e5f21bb40684930162 data/tfmg/recipes/crafting/kinetics/brass_fluid_valve.json
@@ -307,6 +326,7 @@ cea30408cc76d443cfa37f2ef7abfcbd9e73b33f data/tfmg/recipes/crafting/kinetics/bra
6dc803197514ee8836685c2515ea6854abd2fe6e data/tfmg/recipes/crafting/kinetics/brass_truss.json 6dc803197514ee8836685c2515ea6854abd2fe6e data/tfmg/recipes/crafting/kinetics/brass_truss.json
1b12f55387d82cf4ac731d3e8b323bbe4d5c1387 data/tfmg/recipes/crafting/kinetics/brick_smokestack.json 1b12f55387d82cf4ac731d3e8b323bbe4d5c1387 data/tfmg/recipes/crafting/kinetics/brick_smokestack.json
5c4fae047c5dd1e17931fbe4acf78eaebb90c214 data/tfmg/recipes/crafting/kinetics/brown_concrete.json 5c4fae047c5dd1e17931fbe4acf78eaebb90c214 data/tfmg/recipes/crafting/kinetics/brown_concrete.json
91e3374fc0397a437903d684c96ef9c6a7b25eec data/tfmg/recipes/crafting/kinetics/brown_multimeter.json
3cf5957af0b2dac567c9ac979dcf7a432eaf5991 data/tfmg/recipes/crafting/kinetics/brown_rebar_concrete.json 3cf5957af0b2dac567c9ac979dcf7a432eaf5991 data/tfmg/recipes/crafting/kinetics/brown_rebar_concrete.json
3bbd95eb4beea9a48ee58ef36308352fcb477d8c data/tfmg/recipes/crafting/kinetics/cable_connector.json 3bbd95eb4beea9a48ee58ef36308352fcb477d8c data/tfmg/recipes/crafting/kinetics/cable_connector.json
f525ae0ae9b3c7047d8b0ac459294e7215e2417c data/tfmg/recipes/crafting/kinetics/cable_tube.json f525ae0ae9b3c7047d8b0ac459294e7215e2417c data/tfmg/recipes/crafting/kinetics/cable_tube.json
@@ -349,6 +369,7 @@ ed9bd7f6378712909c8d41cd5723e37a30d1bbeb data/tfmg/recipes/crafting/kinetics/cop
c3a9e90d2ef4da0cba626201f9d0b07a38beafdd data/tfmg/recipes/crafting/kinetics/copycat_cable_block.json c3a9e90d2ef4da0cba626201f9d0b07a38beafdd data/tfmg/recipes/crafting/kinetics/copycat_cable_block.json
b0fdc3db2173d73e58b7b3108b30f5275fdb355e data/tfmg/recipes/crafting/kinetics/crankshaft.json b0fdc3db2173d73e58b7b3108b30f5275fdb355e data/tfmg/recipes/crafting/kinetics/crankshaft.json
cf525b0bb0af060113368e6520485a998087c0fa data/tfmg/recipes/crafting/kinetics/cyan_concrete.json cf525b0bb0af060113368e6520485a998087c0fa data/tfmg/recipes/crafting/kinetics/cyan_concrete.json
1771fdf13ac4669336ea79b0b8f196ccf4d6cd13 data/tfmg/recipes/crafting/kinetics/cyan_multimeter.json
a510e53b00e5a1b1f0354a6d8d8bfa9eb2d4cf4e data/tfmg/recipes/crafting/kinetics/cyan_rebar_concrete.json a510e53b00e5a1b1f0354a6d8d8bfa9eb2d4cf4e data/tfmg/recipes/crafting/kinetics/cyan_rebar_concrete.json
d1ebfd182c8b618cfd9305732d916dc9bbfe3039 data/tfmg/recipes/crafting/kinetics/diagonal_cable_block.json d1ebfd182c8b618cfd9305732d916dc9bbfe3039 data/tfmg/recipes/crafting/kinetics/diagonal_cable_block.json
8396fa84d7a7e6317bef36efbc3e27bb17a17caf data/tfmg/recipes/crafting/kinetics/electrical_switch.json 8396fa84d7a7e6317bef36efbc3e27bb17a17caf data/tfmg/recipes/crafting/kinetics/electrical_switch.json
@@ -370,8 +391,10 @@ a7ab7113fa322747bf249695a0616d8f2e01299a data/tfmg/recipes/crafting/kinetics/fus
2206abd056a349f73e052109638d31dacbfd064c data/tfmg/recipes/crafting/kinetics/glass_cable_insulator.json 2206abd056a349f73e052109638d31dacbfd064c data/tfmg/recipes/crafting/kinetics/glass_cable_insulator.json
011bb0040f193bac1fd585f560705a2b1b1fd333 data/tfmg/recipes/crafting/kinetics/glass_insulator_segment.json 011bb0040f193bac1fd585f560705a2b1b1fd333 data/tfmg/recipes/crafting/kinetics/glass_insulator_segment.json
c96069b5c7156bcfcfc77b7beeec762e2d7324f1 data/tfmg/recipes/crafting/kinetics/gray_concrete.json c96069b5c7156bcfcfc77b7beeec762e2d7324f1 data/tfmg/recipes/crafting/kinetics/gray_concrete.json
898e6946957e703789a20cba59c351622e6efe5d data/tfmg/recipes/crafting/kinetics/gray_multimeter.json
1a61bde547fdd135c476593b7babecaa7a17b256 data/tfmg/recipes/crafting/kinetics/gray_rebar_concrete.json 1a61bde547fdd135c476593b7babecaa7a17b256 data/tfmg/recipes/crafting/kinetics/gray_rebar_concrete.json
a921ae3753e3ad4f43fe64dd71c0c99c201d4756 data/tfmg/recipes/crafting/kinetics/green_concrete.json a921ae3753e3ad4f43fe64dd71c0c99c201d4756 data/tfmg/recipes/crafting/kinetics/green_concrete.json
26e5f6a32c068b22541b54cf792780de576cdfd0 data/tfmg/recipes/crafting/kinetics/green_multimeter.json
d137a83628de275f56e0a3e4b045668eb50ecc67 data/tfmg/recipes/crafting/kinetics/green_rebar_concrete.json d137a83628de275f56e0a3e4b045668eb50ecc67 data/tfmg/recipes/crafting/kinetics/green_rebar_concrete.json
045dfd5f31f1a1c53b9d27b144d3e530bcda28dc data/tfmg/recipes/crafting/kinetics/heavy_cable_hub.json 045dfd5f31f1a1c53b9d27b144d3e530bcda28dc data/tfmg/recipes/crafting/kinetics/heavy_cable_hub.json
8f6f541a0a8e59f826540a32a5dc7570a42dcef1 data/tfmg/recipes/crafting/kinetics/heavy_casing_door.json 8f6f541a0a8e59f826540a32a5dc7570a42dcef1 data/tfmg/recipes/crafting/kinetics/heavy_casing_door.json
@@ -394,11 +417,14 @@ f7922b7b22f7d7b3a54ab3d3d0892170f7448db3 data/tfmg/recipes/crafting/kinetics/lea
22669e8eeeca626e2cc262c65eb60cf73c4294b2 data/tfmg/recipes/crafting/kinetics/lead_sword.json 22669e8eeeca626e2cc262c65eb60cf73c4294b2 data/tfmg/recipes/crafting/kinetics/lead_sword.json
99ab779254d79071cc744044b4cf164b8549a9cd data/tfmg/recipes/crafting/kinetics/lead_truss.json 99ab779254d79071cc744044b4cf164b8549a9cd data/tfmg/recipes/crafting/kinetics/lead_truss.json
bc48677f911ae20d3a73b6680c045f1f61e742f5 data/tfmg/recipes/crafting/kinetics/light_blue_concrete.json bc48677f911ae20d3a73b6680c045f1f61e742f5 data/tfmg/recipes/crafting/kinetics/light_blue_concrete.json
8b6cf168a9b2caa704e4b1dcbbeccb5f12d590ad data/tfmg/recipes/crafting/kinetics/light_blue_multimeter.json
1c9b7ee59de96caff4cc85e2e2b628624060f43d data/tfmg/recipes/crafting/kinetics/light_blue_rebar_concrete.json 1c9b7ee59de96caff4cc85e2e2b628624060f43d data/tfmg/recipes/crafting/kinetics/light_blue_rebar_concrete.json
d08e1659e61d60150143b49a13ce11863fdc9062 data/tfmg/recipes/crafting/kinetics/light_bulb.json d08e1659e61d60150143b49a13ce11863fdc9062 data/tfmg/recipes/crafting/kinetics/light_bulb.json
78eb081ea1181a1a3a570706abfae9ec027b4633 data/tfmg/recipes/crafting/kinetics/light_gray_concrete.json 78eb081ea1181a1a3a570706abfae9ec027b4633 data/tfmg/recipes/crafting/kinetics/light_gray_concrete.json
4e2b1c2a087a272e13a54f6be16e973a58f9d85c data/tfmg/recipes/crafting/kinetics/light_gray_multimeter.json
73c91c4db64e477c9c38f063977d951a9b962c87 data/tfmg/recipes/crafting/kinetics/light_gray_rebar_concrete.json 73c91c4db64e477c9c38f063977d951a9b962c87 data/tfmg/recipes/crafting/kinetics/light_gray_rebar_concrete.json
574d3bf1cd7f42cf4f3203bf360055be291c11e0 data/tfmg/recipes/crafting/kinetics/lime_concrete.json 574d3bf1cd7f42cf4f3203bf360055be291c11e0 data/tfmg/recipes/crafting/kinetics/lime_concrete.json
d403d77836315aa6d9d8f7ca7632e9d76e754510 data/tfmg/recipes/crafting/kinetics/lime_multimeter.json
a05bf5656cf7598f473d0fb6c74c0089e53b3e4b data/tfmg/recipes/crafting/kinetics/lime_rebar_concrete.json a05bf5656cf7598f473d0fb6c74c0089e53b3e4b data/tfmg/recipes/crafting/kinetics/lime_rebar_concrete.json
51b9b72251919c5a5dbbc7ad113b3393d3c1322b data/tfmg/recipes/crafting/kinetics/lithium_blade.json 51b9b72251919c5a5dbbc7ad113b3393d3c1322b data/tfmg/recipes/crafting/kinetics/lithium_blade.json
147304987aff453c5be90128024e8e7e450c7024 data/tfmg/recipes/crafting/kinetics/lithium_block_from_compacting.json 147304987aff453c5be90128024e8e7e450c7024 data/tfmg/recipes/crafting/kinetics/lithium_block_from_compacting.json
@@ -409,10 +435,12 @@ b823dd658cac8c0125e31f1bea532b4b714b6cc7 data/tfmg/recipes/crafting/kinetics/lit
c99c66d2f4f9cee928baf57f1d65323b3d54100f data/tfmg/recipes/crafting/kinetics/lithium_torch.json c99c66d2f4f9cee928baf57f1d65323b3d54100f data/tfmg/recipes/crafting/kinetics/lithium_torch.json
8e1da1ad94782fb95dfaecd3409bec4ab785a90c data/tfmg/recipes/crafting/kinetics/machine_input.json 8e1da1ad94782fb95dfaecd3409bec4ab785a90c data/tfmg/recipes/crafting/kinetics/machine_input.json
932aa48a5626050982ff49dc049169d867515af1 data/tfmg/recipes/crafting/kinetics/magenta_concrete.json 932aa48a5626050982ff49dc049169d867515af1 data/tfmg/recipes/crafting/kinetics/magenta_concrete.json
ae1ee9627bea9c329b1189cc430c583da2fe1c00 data/tfmg/recipes/crafting/kinetics/magenta_multimeter.json
809b219010111e5bc4be69d9d881d63314b03612 data/tfmg/recipes/crafting/kinetics/magenta_rebar_concrete.json 809b219010111e5bc4be69d9d881d63314b03612 data/tfmg/recipes/crafting/kinetics/magenta_rebar_concrete.json
b78332d528e39fffa878bf90171bd48876ebcd1b data/tfmg/recipes/crafting/kinetics/metal_smokestack.json b78332d528e39fffa878bf90171bd48876ebcd1b data/tfmg/recipes/crafting/kinetics/metal_smokestack.json
90925b88dbfd9defd4bc3d3aa8a8ca3148ab0912 data/tfmg/recipes/crafting/kinetics/mixer_blade.json 90925b88dbfd9defd4bc3d3aa8a8ca3148ab0912 data/tfmg/recipes/crafting/kinetics/mixer_blade.json
75d572fecac2127a9bf4dd8a070c43fd77d13380 data/tfmg/recipes/crafting/kinetics/modern_light.json 75d572fecac2127a9bf4dd8a070c43fd77d13380 data/tfmg/recipes/crafting/kinetics/modern_light.json
514d64001949b548450cf811e94cccc966257139 data/tfmg/recipes/crafting/kinetics/multimeter.json
fe4c2b992eb08744551e4cf5339cf8e916adacaf data/tfmg/recipes/crafting/kinetics/napalm_bomb.json fe4c2b992eb08744551e4cf5339cf8e916adacaf data/tfmg/recipes/crafting/kinetics/napalm_bomb.json
88bbbcd291403c02924fa5d57877789b55d248e2 data/tfmg/recipes/crafting/kinetics/neon_tube.json 88bbbcd291403c02924fa5d57877789b55d248e2 data/tfmg/recipes/crafting/kinetics/neon_tube.json
b6a20b2a85231dfa01cac33b283d0dd431fb4819 data/tfmg/recipes/crafting/kinetics/nickel_block_from_compacting.json b6a20b2a85231dfa01cac33b283d0dd431fb4819 data/tfmg/recipes/crafting/kinetics/nickel_block_from_compacting.json
@@ -424,8 +452,10 @@ dbb8e863fa16906f98ba729cf3c9af17d44c7274 data/tfmg/recipes/crafting/kinetics/nic
8b21eac9fdc5e8e8cd71dee820c0ac3b808f0bf3 data/tfmg/recipes/crafting/kinetics/nickel_truss.json 8b21eac9fdc5e8e8cd71dee820c0ac3b808f0bf3 data/tfmg/recipes/crafting/kinetics/nickel_truss.json
0ca28c553bf4efc2d35390414c9c7d02026d4300 data/tfmg/recipes/crafting/kinetics/oil_can.json 0ca28c553bf4efc2d35390414c9c7d02026d4300 data/tfmg/recipes/crafting/kinetics/oil_can.json
4739646509f4f55aacb3d3eb645c537def939fe6 data/tfmg/recipes/crafting/kinetics/orange_concrete.json 4739646509f4f55aacb3d3eb645c537def939fe6 data/tfmg/recipes/crafting/kinetics/orange_concrete.json
9e6dc59e4f88fb26c79805e6a5f90e71cc07bde2 data/tfmg/recipes/crafting/kinetics/orange_multimeter.json
db1e461e9a170536708ad573a85de2f4ae425181 data/tfmg/recipes/crafting/kinetics/orange_rebar_concrete.json db1e461e9a170536708ad573a85de2f4ae425181 data/tfmg/recipes/crafting/kinetics/orange_rebar_concrete.json
ab31dd7ea28b3bf9f5da82ae0b23e485541a4d06 data/tfmg/recipes/crafting/kinetics/pink_concrete.json ab31dd7ea28b3bf9f5da82ae0b23e485541a4d06 data/tfmg/recipes/crafting/kinetics/pink_concrete.json
1408bb05585edbb209048549f5a33a7f2b1d7ca8 data/tfmg/recipes/crafting/kinetics/pink_multimeter.json
dcb9948b58a0646cc1cf10bbef31a10accf51282 data/tfmg/recipes/crafting/kinetics/pink_rebar_concrete.json dcb9948b58a0646cc1cf10bbef31a10accf51282 data/tfmg/recipes/crafting/kinetics/pink_rebar_concrete.json
c8cc1bb1c54789e4c3810b9ca98f7612c04c6768 data/tfmg/recipes/crafting/kinetics/pipe_bomb.json c8cc1bb1c54789e4c3810b9ca98f7612c04c6768 data/tfmg/recipes/crafting/kinetics/pipe_bomb.json
14174829741026aec93de7a6be22e2b480942de8 data/tfmg/recipes/crafting/kinetics/plastic_block.json 14174829741026aec93de7a6be22e2b480942de8 data/tfmg/recipes/crafting/kinetics/plastic_block.json
@@ -442,6 +472,7 @@ d178534b096b74c2c4a74a9d08f9a2bed9ff47a0 data/tfmg/recipes/crafting/kinetics/pum
107166edb673713e46aef9eb1248652e8a21846b data/tfmg/recipes/crafting/kinetics/pumpjack_hammer_connector.json 107166edb673713e46aef9eb1248652e8a21846b data/tfmg/recipes/crafting/kinetics/pumpjack_hammer_connector.json
c286faa9ef2b8e7d0c317435e435fcdd16aa9e42 data/tfmg/recipes/crafting/kinetics/pumpjack_hammer_head.json c286faa9ef2b8e7d0c317435e435fcdd16aa9e42 data/tfmg/recipes/crafting/kinetics/pumpjack_hammer_head.json
c849bd3e7d677438e35381b0b2ab1e3aa3544356 data/tfmg/recipes/crafting/kinetics/purple_concrete.json c849bd3e7d677438e35381b0b2ab1e3aa3544356 data/tfmg/recipes/crafting/kinetics/purple_concrete.json
4a5b50b6b61896cd8eb0bdf2d9da6963d0576dbf data/tfmg/recipes/crafting/kinetics/purple_multimeter.json
7c21d2641d14b2bc6ee6bc09196b48e2e2b6258d data/tfmg/recipes/crafting/kinetics/purple_rebar_concrete.json 7c21d2641d14b2bc6ee6bc09196b48e2e2b6258d data/tfmg/recipes/crafting/kinetics/purple_rebar_concrete.json
130287b66b9ad3c463a7f2385884fe3f367a7165 data/tfmg/recipes/crafting/kinetics/radial_engine.json 130287b66b9ad3c463a7f2385884fe3f367a7165 data/tfmg/recipes/crafting/kinetics/radial_engine.json
75a33fc64dc47a0d07731aebbf8a99b762f2a276 data/tfmg/recipes/crafting/kinetics/raw_lead.json 75a33fc64dc47a0d07731aebbf8a99b762f2a276 data/tfmg/recipes/crafting/kinetics/raw_lead.json
@@ -458,6 +489,7 @@ da57294a42f4aa934e8bd09bfffbcfaad71f4d7e data/tfmg/recipes/crafting/kinetics/reb
7e0e2d15822b2e55d5634e5857ac4c060c604ba3 data/tfmg/recipes/crafting/kinetics/rebar_stairs.json 7e0e2d15822b2e55d5634e5857ac4c060c604ba3 data/tfmg/recipes/crafting/kinetics/rebar_stairs.json
ff5859c287185322feff83cf23b8d2a9ea48f3d2 data/tfmg/recipes/crafting/kinetics/rebar_wall.json ff5859c287185322feff83cf23b8d2a9ea48f3d2 data/tfmg/recipes/crafting/kinetics/rebar_wall.json
fc5ce9454a8464e5264d0b4f1696c01e4953aebf data/tfmg/recipes/crafting/kinetics/red_concrete.json fc5ce9454a8464e5264d0b4f1696c01e4953aebf data/tfmg/recipes/crafting/kinetics/red_concrete.json
2575654b599dca830032b50fd13f3e2454533ba1 data/tfmg/recipes/crafting/kinetics/red_multimeter.json
80cc4aff6d3296cceb394237c8232f5546168ab9 data/tfmg/recipes/crafting/kinetics/red_rebar_concrete.json 80cc4aff6d3296cceb394237c8232f5546168ab9 data/tfmg/recipes/crafting/kinetics/red_rebar_concrete.json
45e0349c5ff50a6d8de93bb0c6826400a03f7a1a data/tfmg/recipes/crafting/kinetics/regular_engine.json 45e0349c5ff50a6d8de93bb0c6826400a03f7a1a data/tfmg/recipes/crafting/kinetics/regular_engine.json
38559a4f46b8592c258b13b74d751113bb7c7fb8 data/tfmg/recipes/crafting/kinetics/rusted_blast_furnace_reinforcement.json 38559a4f46b8592c258b13b74d751113bb7c7fb8 data/tfmg/recipes/crafting/kinetics/rusted_blast_furnace_reinforcement.json
@@ -505,9 +537,11 @@ f5984b5d3c82f4605f08a88d16aa2fdfec5482fb data/tfmg/recipes/crafting/kinetics/tur
6ca672214a0639fbc93502774aff5e5a60650018 data/tfmg/recipes/crafting/kinetics/voltage_observer.json 6ca672214a0639fbc93502774aff5e5a60650018 data/tfmg/recipes/crafting/kinetics/voltage_observer.json
e2ec2eaf75166a30f3c9749e335c167793b54c14 data/tfmg/recipes/crafting/kinetics/voltmeter.json e2ec2eaf75166a30f3c9749e335c167793b54c14 data/tfmg/recipes/crafting/kinetics/voltmeter.json
5c740c1158f8cb1a928a1f79cd2eac2d13d80f1a data/tfmg/recipes/crafting/kinetics/white_concrete.json 5c740c1158f8cb1a928a1f79cd2eac2d13d80f1a data/tfmg/recipes/crafting/kinetics/white_concrete.json
eb0daeae165f64bfb8d33de5d48f82ee2c9546a2 data/tfmg/recipes/crafting/kinetics/white_multimeter.json
95a0c0882053843057d9d80b92d517738f44d4a3 data/tfmg/recipes/crafting/kinetics/white_rebar_concrete.json 95a0c0882053843057d9d80b92d517738f44d4a3 data/tfmg/recipes/crafting/kinetics/white_rebar_concrete.json
66b87962e18c3dcabd3bdf74ac6d4f91260f4c48 data/tfmg/recipes/crafting/kinetics/winding_machine.json 66b87962e18c3dcabd3bdf74ac6d4f91260f4c48 data/tfmg/recipes/crafting/kinetics/winding_machine.json
c09b785b8b182879ae71ab49e6604f6b1cf53ec1 data/tfmg/recipes/crafting/kinetics/yellow_concrete.json c09b785b8b182879ae71ab49e6604f6b1cf53ec1 data/tfmg/recipes/crafting/kinetics/yellow_concrete.json
5989a7ebc7ec6d734b7fcd1890c1186c52514817 data/tfmg/recipes/crafting/kinetics/yellow_multimeter.json
461258447e1c8a49fa017ea663511ec0a633ecba data/tfmg/recipes/crafting/kinetics/yellow_rebar_concrete.json 461258447e1c8a49fa017ea663511ec0a633ecba data/tfmg/recipes/crafting/kinetics/yellow_rebar_concrete.json
b673506b5ef4dd9ea08cc070b3f9f3fc01fa4398 data/tfmg/recipes/crafting/kinetics/zinc_frame.json b673506b5ef4dd9ea08cc070b3f9f3fc01fa4398 data/tfmg/recipes/crafting/kinetics/zinc_frame.json
56135df98436c7ff10516c4852cdddaef2367b53 data/tfmg/recipes/crafting/kinetics/zinc_grenade.json 56135df98436c7ff10516c4852cdddaef2367b53 data/tfmg/recipes/crafting/kinetics/zinc_grenade.json

View File

@@ -1,4 +1,4 @@
// 1.20.1 2025-05-09T22:55:10.3861864 Registrate Provider for tfmg [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] // 1.20.1 2025-05-10T09:58:50.664261 Registrate Provider for tfmg [Recipes, Advancements, Loot Tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)]
ff5a5721633b83465ab501cbdfdc579a0f20e938 assets/tfmg/blockstates/accumulator.json ff5a5721633b83465ab501cbdfdc579a0f20e938 assets/tfmg/blockstates/accumulator.json
e982a263b6af75821042107fdeff7bd809436d08 assets/tfmg/blockstates/air_intake.json e982a263b6af75821042107fdeff7bd809436d08 assets/tfmg/blockstates/air_intake.json
e7f63aadfc892e337d9f87b5e50af8b1c7e4103f assets/tfmg/blockstates/aluminum_bars.json e7f63aadfc892e337d9f87b5e50af8b1c7e4103f assets/tfmg/blockstates/aluminum_bars.json
@@ -437,8 +437,8 @@ a1988ec6a98f23cad8321b46345fbf1c5fd20489 assets/tfmg/blockstates/yellow_rebar_co
c58fa20c091e5ecddfb7164cba45538a8f911431 assets/tfmg/blockstates/yellow_rebar_concrete_wall.json c58fa20c091e5ecddfb7164cba45538a8f911431 assets/tfmg/blockstates/yellow_rebar_concrete_wall.json
0271e2b940bb94cdb7e951b81e277ee633d64d62 assets/tfmg/blockstates/zinc_frame.json 0271e2b940bb94cdb7e951b81e277ee633d64d62 assets/tfmg/blockstates/zinc_frame.json
1bd66f29acffb67f30bfe94c8535509bd009beab assets/tfmg/blockstates/zinc_truss.json 1bd66f29acffb67f30bfe94c8535509bd009beab assets/tfmg/blockstates/zinc_truss.json
40062ab10df958c2eadbe01f76539f209abca35a assets/tfmg/lang/en_ud.json 58acad4a6a1552ef82ee74f8127be3780974e05a assets/tfmg/lang/en_ud.json
be538c0f2b254d523b8910750bf4a78c075fc74f assets/tfmg/lang/en_us.json 838b69ddd96807c63085e1e6bdce2fd3efe4f0a5 assets/tfmg/lang/en_us.json
9e6a6b62f5e7528c4e4d4f72f3510edcd8f0c078 assets/tfmg/models/block/aluminum_block.json 9e6a6b62f5e7528c4e4d4f72f3510edcd8f0c078 assets/tfmg/models/block/aluminum_block.json
1d33a893d6ac05f9adaceb7f84423ebe9b195c01 assets/tfmg/models/block/aluminum_cable_hub.json 1d33a893d6ac05f9adaceb7f84423ebe9b195c01 assets/tfmg/models/block/aluminum_cable_hub.json
da469bf3233944085f07d4ef437827061e408838 assets/tfmg/models/block/aluminum_cap.json da469bf3233944085f07d4ef437827061e408838 assets/tfmg/models/block/aluminum_cap.json

View File

@@ -590,6 +590,8 @@
"creative_tab.tfmg_main": "ʍoɹ⅁ ʇsnW ʎɹoʇɔɐℲ ǝɥ⟘ :ǝʇɐǝɹƆ", "creative_tab.tfmg_main": "ʍoɹ⅁ ʇsnW ʎɹoʇɔɐℲ ǝɥ⟘ :ǝʇɐǝɹƆ",
"death.attack.tfmg.acid": "ɥʇɐq pıɔɐ uɐ ʞooʇ %1$s", "death.attack.tfmg.acid": "ɥʇɐq pıɔɐ uɐ ʞooʇ %1$s",
"death.attack.tfmg.acid.player": "ɥʇɐq pıɔɐ uɐ ʞooʇ %1$s", "death.attack.tfmg.acid.player": "ɥʇɐq pıɔɐ uɐ ʞooʇ %1$s",
"death.attack.tfmg.blast_furnace": "ןǝǝʇs uoqɹɐɔ uı pǝuɹnʇ sɐʍ %1$s",
"death.attack.tfmg.blast_furnace.player": "ǝɔɐuɹnɟ ʇsɐןq ɐ oʇuı uʍoɹɥʇ sɐʍ %1$s",
"death.attack.tfmg.concrete": "ǝʇǝɹɔuoƆ ʇɐǝ oʇ pǝıɹʇ %1$s", "death.attack.tfmg.concrete": "ǝʇǝɹɔuoƆ ʇɐǝ oʇ pǝıɹʇ %1$s",
"death.attack.tfmg.concrete.player": "ǝʇǝɹɔuoƆ ʇɐǝ oʇ pǝıɹʇ %1$s", "death.attack.tfmg.concrete.player": "ǝʇǝɹɔuoƆ ʇɐǝ oʇ pǝıɹʇ %1$s",
"effect.tfmg.hellfire": "ǝɹıɟןןǝH", "effect.tfmg.hellfire": "ǝɹıɟןןǝH",

View File

@@ -590,6 +590,8 @@
"creative_tab.tfmg_main": "Create: The Factory Must Grow", "creative_tab.tfmg_main": "Create: The Factory Must Grow",
"death.attack.tfmg.acid": "%1$s took an acid bath", "death.attack.tfmg.acid": "%1$s took an acid bath",
"death.attack.tfmg.acid.player": "%1$s took an acid bath", "death.attack.tfmg.acid.player": "%1$s took an acid bath",
"death.attack.tfmg.blast_furnace": "%1$s was turned in carbon steel",
"death.attack.tfmg.blast_furnace.player": "%1$s was thrown into a blast furnace",
"death.attack.tfmg.concrete": "%1$s tried to eat Concrete", "death.attack.tfmg.concrete": "%1$s tried to eat Concrete",
"death.attack.tfmg.concrete.player": "%1$s tried to eat Concrete", "death.attack.tfmg.concrete.player": "%1$s tried to eat Concrete",
"effect.tfmg.hellfire": "Hellfire", "effect.tfmg.hellfire": "Hellfire",

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/black_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/black_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/blue_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/blue_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/brown_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/brown_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/cyan_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/cyan_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/gray_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/gray_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/green_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/green_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/light_blue_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/light_blue_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/light_gray_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/light_gray_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/lime_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/lime_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/magenta_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/magenta_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:voltmeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/orange_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/orange_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/pink_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/pink_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/purple_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/purple_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/red_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/red_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/white_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/white_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,35 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_item": {
"conditions": {
"items": [
{
"items": [
"tfmg:multimeter"
]
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "tfmg:crafting/kinetics/yellow_multimeter"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_item",
"has_the_recipe"
]
],
"rewards": {
"recipes": [
"tfmg:crafting/kinetics/yellow_multimeter"
]
},
"sends_telemetry_event": false
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:black_dye"
}
],
"result": {
"item": "tfmg:black_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:blue_dye"
}
],
"result": {
"item": "tfmg:blue_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:brown_dye"
}
],
"result": {
"item": "tfmg:brown_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:cyan_dye"
}
],
"result": {
"item": "tfmg:cyan_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:gray_dye"
}
],
"result": {
"item": "tfmg:gray_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:green_dye"
}
],
"result": {
"item": "tfmg:green_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:light_blue_dye"
}
],
"result": {
"item": "tfmg:light_blue_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:light_gray_dye"
}
],
"result": {
"item": "tfmg:light_gray_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:lime_dye"
}
],
"result": {
"item": "tfmg:lime_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:magenta_dye"
}
],
"result": {
"item": "tfmg:magenta_multimeter"
}
}

View File

@@ -0,0 +1,24 @@
{
"type": "minecraft:crafting_shaped",
"category": "misc",
"key": {
"B": {
"tag": "forge:plates/brass"
},
"G": {
"item": "tfmg:voltmeter"
},
"W": {
"tag": "forge:wires/copper"
}
},
"pattern": [
"BGB",
"BWB",
"BWB"
],
"result": {
"item": "tfmg:multimeter"
},
"show_notification": true
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:orange_dye"
}
],
"result": {
"item": "tfmg:orange_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:pink_dye"
}
],
"result": {
"item": "tfmg:pink_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:purple_dye"
}
],
"result": {
"item": "tfmg:purple_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:red_dye"
}
],
"result": {
"item": "tfmg:red_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:white_dye"
}
],
"result": {
"item": "tfmg:white_multimeter"
}
}

View File

@@ -0,0 +1,15 @@
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "tfmg:multimeter"
},
{
"item": "minecraft:yellow_dye"
}
],
"result": {
"item": "tfmg:yellow_multimeter"
}
}

View File

@@ -27,6 +27,16 @@ public class TFMGShapes {
.add(0, 5, -1, 3, 7, 1) .add(0, 5, -1, 3, 7, 1)
.add(15, 5, 9, 15, 11, 9) .add(15, 5, 9, 15, 11, 9)
.forDirectional(NORTH), .forDirectional(NORTH),
TURBINE_ENGINE_FRONT = shape(2, 2, 0, 14, 14, 16)
.add(3, 0, 8, 13, 2, 16)
.forHorizontal(SOUTH),
TURBINE_ENGINE_MIDDLE = shape(11, 0, 2, 16, 5, 14)
.add(1, 1, 0, 15, 15, 16)
.add(0, 0, 2, 5, 5, 14)
.forHorizontal(SOUTH),
TURBINE_ENGINE_BACK = shape(5.3, 0, 5, 11.3, 3, 14)
.add(3, 3, 2, 13, 13, 16)
.forHorizontal(SOUTH),
ENGINE_CONTROLLER = shape(0, 0, 0, 4, 5, 16) ENGINE_CONTROLLER = shape(0, 0, 0, 4, 5, 16)
.add(2, 5, 5, 14, 12, 14) .add(2, 5, 5, 14, 12, 14)
.add(4, 0, 5, 15, 5, 16) .add(4, 0, 5, 15, 5, 16)

View File

@@ -8,7 +8,6 @@ import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
@@ -31,7 +30,6 @@ public class ElectricBlockEntity extends SmartBlockEntity implements IElectric,
} }
@Override @Override
public void addBehaviours(List<BlockEntityBehaviour> behaviours) { public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
} }
@@ -60,14 +58,14 @@ public class ElectricBlockEntity extends SmartBlockEntity implements IElectric,
@Override @Override
public void lazyTick() { public void lazyTick() {
super.lazyTick(); super.lazyTick();
if(data.failTimer >=4){ //if (data.failTimer >= 4) {
this.blockFail(); // this.blockFail();
data.failTimer = 0; // data.failTimer = 0;
sendStuff(); // sendStuff();
} else if((data.voltage>getMaxVoltage()&&getMaxVoltage()>0)||(getCurrent()>getMaxCurrent()&&getMaxCurrent()>0)){ //} else if ((data.voltage > getMaxVoltage() && getMaxVoltage() > 0) || (getCurrent() > getMaxCurrent())) {
blockFail(); // blockFail();
data.failTimer++; // data.failTimer++;
} //}
} }
@Override @Override
@@ -118,7 +116,9 @@ public class ElectricBlockEntity extends SmartBlockEntity implements IElectric,
for (Direction direction : Direction.values()) { for (Direction direction : Direction.values()) {
if (hasElectricitySlot(direction)) { if (hasElectricitySlot(direction)) {
if (level.getBlockEntity(getBlockPos().relative(direction)) instanceof VoltageAlteringBlockEntity be) { if (level.getBlockEntity(getBlockPos().relative(direction)) instanceof VoltageAlteringBlockEntity be&&be.canWork()) {
if (be.getData().getId() != getData().getId()) if (be.getData().getId() != getData().getId())
if (be.getData().getVoltage() != 0) if (be.getData().getVoltage() != 0)
if (be.hasElectricitySlot(direction)) { if (be.hasElectricitySlot(direction)) {

View File

@@ -1,5 +1,9 @@
package com.drmangotea.tfmg.content.electricity.base; package com.drmangotea.tfmg.content.electricity.base;
import com.drmangotea.tfmg.content.electricity.utilities.diode.ElectricDiodeBlockEntity;
import com.drmangotea.tfmg.content.electricity.utilities.electric_motor.ElectricMotorBlockEntity;
import com.drmangotea.tfmg.content.electricity.utilities.transformer.TransformerBlockEntity;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -54,7 +58,9 @@ public class ElectricalNetwork {
int powerPercentage = resistance > 0 ? (int) (Math.min(((float) power / (float) resistance * 100f), 100)) : 100; int powerPercentage = resistance > 0 ? (int) (Math.min(((float) power / (float) resistance * 100f), 100)) : 100;
for (IElectric member : members) { List<IElectric> list = new ArrayList<>(members);
for (IElectric member : list) {
int oldVoltage = member.getData().getVoltage(); int oldVoltage = member.getData().getVoltage();
int oldPower = member.getPowerUsage(); int oldPower = member.getPowerUsage();
@@ -76,16 +82,23 @@ public class ElectricalNetwork {
for (IElectric member : members) { for (IElectric member : members) {
member.getData().highestCurrent = getCableCurrent(member); member.getData().highestCurrent = getCableCurrent(member);
member.updateNearbyNetworks(member); member.updateNearbyNetworks(member);
if (member instanceof KineticElectricBlockEntity be) // if (member instanceof KineticElectricBlockEntity be) {
be.updateGeneratedRotation(); // be.updateGeneratedRotation();
// }
} }
if (!members.isEmpty()) if (!members.isEmpty())
if (members.get(0).getNetworkPowerUsage() > members.get(0).getNetworkPowerGeneration()) { if (members.get(0).getNetworkPowerUsage() > members.get(0).getNetworkPowerGeneration()) {
for (IElectric member : members) { for (IElectric member : members) {
member.getData().notEnoughtPower = true; member.getData().notEnoughtPower = true;
if (member instanceof KineticElectricBlockEntity be) if (member instanceof ElectricMotorBlockEntity be) {
be.updateGeneratedRotation(); be.updateGeneratedRotation();
be.preventSpeedUpdate = 20;
}
if (member instanceof ElectricDiodeBlockEntity be)
be.updateInFront=true;
if (member instanceof TransformerBlockEntity be)
be.updateInFront();
} }
} }
} }

View File

@@ -5,6 +5,7 @@ import com.drmangotea.tfmg.base.TFMGUtils;
import com.drmangotea.tfmg.registry.TFMGPackets; import com.drmangotea.tfmg.registry.TFMGPackets;
import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.CreateLang;
import net.createmod.catnip.theme.Color;
import net.minecraft.ChatFormatting; import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
@@ -76,7 +77,6 @@ public interface IElectric {
default void onConnected() { default void onConnected() {
BlockPos pos = BlockPos.of(getPos()); BlockPos pos = BlockPos.of(getPos());
for (Direction d : Direction.values()) { for (Direction d : Direction.values()) {
if (hasElectricitySlot(d)) if (hasElectricitySlot(d))
@@ -98,7 +98,6 @@ public interface IElectric {
} }
sendStuff(); sendStuff();
} }
@@ -107,6 +106,12 @@ public interface IElectric {
.style(ChatFormatting.WHITE) .style(ChatFormatting.WHITE)
.forGoggles(tooltip); .forGoggles(tooltip);
if(getData().notEnoughtPower) {
CreateLang.text("NOT ENOUGHT POWER")
.color(Color.RED)
.forGoggles(tooltip, 1);
// return true;
}
if (voltageGeneration() > 0) { if (voltageGeneration() > 0) {
CreateLang.translate("multimeter.power_generated") CreateLang.translate("multimeter.power_generated")
.add(Component.literal(TFMGUtils.formatUnits(powerGeneration(), "W"))) .add(Component.literal(TFMGUtils.formatUnits(powerGeneration(), "W")))
@@ -121,9 +126,6 @@ public interface IElectric {
.forGoggles(tooltip); .forGoggles(tooltip);
} }
CreateLang.text(" R = " + TFMGUtils.formatUnits(voltageGeneration() > 0 ? getGeneratorResistance() : resistance(), "Ω")) CreateLang.text(" R = " + TFMGUtils.formatUnits(voltageGeneration() > 0 ? getGeneratorResistance() : resistance(), "Ω"))
.color(0xc98969) .color(0xc98969)
.forGoggles(tooltip, 1); .forGoggles(tooltip, 1);
@@ -146,6 +148,20 @@ public interface IElectric {
.forGoggles(tooltip, 1); .forGoggles(tooltip, 1);
} }
if(isPlayerSneaking) {
CreateLang.text("----------------------------")
.style(ChatFormatting.WHITE)
.forGoggles(tooltip);
CreateLang.text("Network Power Generation: " + TFMGUtils.formatUnits(getNetworkPowerGeneration(), "W"))
.color(0xcc4b74)
.forGoggles(tooltip, 1);
CreateLang.text("Network Power Consumption: " + TFMGUtils.formatUnits(getNetworkPowerUsage(), "W"))
.color(0xcc4b74)
.forGoggles(tooltip, 1);
}
return true; return true;
} }
@@ -170,7 +186,7 @@ public interface IElectric {
} }
default void blockFail() { default void blockFail() {
getLevelAccessor().destroyBlock(BlockPos.of(getPos()), false); //getLevelAccessor().destroyBlock(BlockPos.of(getPos()), false);
} }
default int getPowerUsage() { default int getPowerUsage() {
@@ -207,6 +223,10 @@ public interface IElectric {
default float getGeneratorResistance() { default float getGeneratorResistance() {
if (getData().voltageSupply == 0) if (getData().voltageSupply == 0)
return 0; return 0;
if((float) getData().networkPowerGeneration * (float) getNetworkResistance()==0)
return 0;
return (float) powerGeneration() / (float) getData().networkPowerGeneration * (float) getNetworkResistance(); return (float) powerGeneration() / (float) getData().networkPowerGeneration * (float) getNetworkResistance();
} }

View File

@@ -31,6 +31,8 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
data.connectNextTick = true; data.connectNextTick = true;
} }
//@Override //@Override
//public boolean addToTooltip(List<Component> tooltip, boolean isPlayerSneaking) { //public boolean addToTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
// CreateLang.text("MAX POWER: "+getNetworkPowerGeneration()).forGoggles(tooltip); // CreateLang.text("MAX POWER: "+getNetworkPowerGeneration()).forGoggles(tooltip);
@@ -224,12 +226,12 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
public void tick() { public void tick() {
super.tick(); super.tick();
if(timer == 2){ //if(timer == 2){
updateNextTick(); // updateNextTick();
} //}
if(timer<=2){ //if(timer<=2){
timer++; // timer++;
} //}
if(data.connectNextTick) { if(data.connectNextTick) {
@@ -270,11 +272,17 @@ public class KineticElectricBlockEntity extends GeneratingKineticBlockEntity imp
} }
@Override @Override
public void onSpeedChanged(float previousSpeed) { public void onSpeedChanged(float previousSpeed) {
super.onSpeedChanged(previousSpeed); super.onSpeedChanged(previousSpeed);
updateNextTick(); TFMG.LOGGER.debug("SPEEED CHANGED "+getBlockPos().getX()+" "+getBlockPos().getY()+" "+getBlockPos().getZ());
notifyNetworkAboutSpeedChange();
timer = 0; timer = 0;
} }
public void notifyNetworkAboutSpeedChange(){
updateNextTick();
}
} }

View File

@@ -28,6 +28,7 @@ public class UpdateInFrontPacket extends BlockEntityDataPacket<SmartBlockEntity>
if(blockEntity instanceof ElectricDiodeBlockEntity be) { if(blockEntity instanceof ElectricDiodeBlockEntity be) {
be.updateInFrontNextTick(); be.updateInFrontNextTick();
} }
} }

View File

@@ -1,16 +1,12 @@
package com.drmangotea.tfmg.content.electricity.electrians_wrench; package com.drmangotea.tfmg.content.electricity.configuration_wrench;
import com.drmangotea.tfmg.base.TFMGUtils;
import com.drmangotea.tfmg.content.electricity.base.IElectric; import com.drmangotea.tfmg.content.electricity.base.IElectric;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResult;
import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
public class ElectricBlockItem extends BlockItem { public class ElectricBlockItem extends BlockItem {
public ElectricBlockItem(Block p_40565_, Properties p_40566_) { public ElectricBlockItem(Block p_40565_, Properties p_40566_) {

View File

@@ -1,15 +1,11 @@
package com.drmangotea.tfmg.content.electricity.electrians_wrench; package com.drmangotea.tfmg.content.electricity.configuration_wrench;
import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.base.TFMGUtils; import com.drmangotea.tfmg.base.TFMGUtils;
import com.drmangotea.tfmg.content.electricity.base.ConnectNeightborsPacket;
import com.drmangotea.tfmg.content.electricity.base.IElectric; import com.drmangotea.tfmg.content.electricity.base.IElectric;
import com.drmangotea.tfmg.content.electricity.base.KineticElectricBlockEntity;
import com.drmangotea.tfmg.content.engines.base.AbstractEngineBlockEntity; import com.drmangotea.tfmg.content.engines.base.AbstractEngineBlockEntity;
import com.drmangotea.tfmg.registry.TFMGPackets;
import com.simibubi.create.content.equipment.symmetryWand.SymmetryWandScreen;
import net.createmod.catnip.gui.ScreenOpener; import net.createmod.catnip.gui.ScreenOpener;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource; import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
@@ -23,7 +19,6 @@ import net.minecraft.world.level.Level;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.network.PacketDistributor;
public class ElectriciansWrenchItem extends Item { public class ElectriciansWrenchItem extends Item {
public ElectriciansWrenchItem(Properties p_41383_) { public ElectriciansWrenchItem(Properties p_41383_) {
@@ -58,6 +53,8 @@ public class ElectriciansWrenchItem extends Item {
be.getData().group.id = context.getItemInHand().getOrCreateTag().getInt("Number"); be.getData().group.id = context.getItemInHand().getOrCreateTag().getInt("Number");
TFMGUtils.playSound(level, pos, SoundEvents.ITEM_PICKUP, SoundSource.BLOCKS, context.getPlayer()); TFMGUtils.playSound(level, pos, SoundEvents.ITEM_PICKUP, SoundSource.BLOCKS, context.getPlayer());
if(be instanceof KineticElectricBlockEntity kineticBE)
kineticBE.updateGeneratedRotation();
be.updateNextTick(); be.updateNextTick();
be.sendStuff(); be.sendStuff();

View File

@@ -1,8 +1,7 @@
package com.drmangotea.tfmg.content.electricity.electrians_wrench; package com.drmangotea.tfmg.content.electricity.configuration_wrench;
import com.drmangotea.tfmg.TFMG; import com.drmangotea.tfmg.TFMG;
import com.simibubi.create.content.equipment.zapper.ZapperItem;
import com.simibubi.create.foundation.networking.SimplePacketBase; import com.simibubi.create.foundation.networking.SimplePacketBase;
import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;

View File

@@ -1,4 +1,4 @@
package com.drmangotea.tfmg.content.electricity.electrians_wrench; package com.drmangotea.tfmg.content.electricity.configuration_wrench;
import com.drmangotea.tfmg.registry.TFMGGuiTextures; import com.drmangotea.tfmg.registry.TFMGGuiTextures;
import com.drmangotea.tfmg.registry.TFMGPackets; import com.drmangotea.tfmg.registry.TFMGPackets;

View File

@@ -9,22 +9,13 @@ import net.minecraft.network.FriendlyByteBuf;
public class CableRemovalPacket extends BlockEntityDataPacket<SmartBlockEntity> { public class CableRemovalPacket extends BlockEntityDataPacket<SmartBlockEntity> {
public CableRemovalPacket(BlockPos pos) { public CableRemovalPacket(BlockPos pos) {
super(pos); super(pos);
} }
public CableRemovalPacket(FriendlyByteBuf buffer) { public CableRemovalPacket(FriendlyByteBuf buffer) {
super(buffer); super(buffer);
} }
@Override @Override
protected void writeData(FriendlyByteBuf buffer) {} protected void writeData(FriendlyByteBuf buffer) {}
@@ -34,8 +25,5 @@ public class CableRemovalPacket extends BlockEntityDataPacket<SmartBlockEntity>
if(blockEntity instanceof CableConnectorBlockEntity be) { if(blockEntity instanceof CableConnectorBlockEntity be) {
// be.removeConnections(true); // be.removeConnections(true);
} }
} }
}
}

View File

@@ -7,6 +7,7 @@ import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnection
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity; import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnectorBlockEntity;
import com.drmangotea.tfmg.content.engines.base.AbstractEngineBlockEntity; import com.drmangotea.tfmg.content.engines.base.AbstractEngineBlockEntity;
import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerBlockEntity; import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerBlockEntity;
import com.drmangotea.tfmg.content.engines.types.AbstractSmallEngineBlockEntity;
import com.drmangotea.tfmg.content.engines.types.large_engine.LargeEngineBlockEntity; import com.drmangotea.tfmg.content.engines.types.large_engine.LargeEngineBlockEntity;
import com.drmangotea.tfmg.content.engines.types.regular_engine.RegularEngineBlockEntity; import com.drmangotea.tfmg.content.engines.types.regular_engine.RegularEngineBlockEntity;
import com.drmangotea.tfmg.content.machinery.metallurgy.blast_stove.BlastStoveBlockEntity; import com.drmangotea.tfmg.content.machinery.metallurgy.blast_stove.BlastStoveBlockEntity;
@@ -63,6 +64,7 @@ public class DebugCinderBlockItem extends Item {
} else { } else {
TFMG.LOGGER.debug(be.shift.name()); TFMG.LOGGER.debug(be.shift.name());
TFMGUtils.debugMessage(level, "ENGINE "+(be.engine!=null));
} }
return InteractionResult.SUCCESS; return InteractionResult.SUCCESS;
} }
@@ -99,7 +101,7 @@ public class DebugCinderBlockItem extends Item {
} }
if (level.getBlockEntity(pos) instanceof IElectric be) { if (level.getBlockEntity(pos) instanceof IElectric be) {
be.onPlaced(); // be.onPlaced();
if (context.getPlayer().isShiftKeyDown()) { if (context.getPlayer().isShiftKeyDown()) {
@@ -111,7 +113,7 @@ public class DebugCinderBlockItem extends Item {
TFMG.LOGGER.debug("Group " + be.getData().group.id); TFMG.LOGGER.debug("Group " + be.getData().group.id);
TFMG.LOGGER.debug("///////////////////////////////"); TFMG.LOGGER.debug("///////////////////////////////");
} else { } else {
be.updateNextTick();
TFMGUtils.debugMessage(level, "Power " + be.getNetworkPowerUsage()); TFMGUtils.debugMessage(level, "Power " + be.getNetworkPowerUsage());
TFMGUtils.debugMessage(level, "Voltage " + be.getData().getVoltage()); TFMGUtils.debugMessage(level, "Voltage " + be.getData().getVoltage());
@@ -151,11 +153,15 @@ public class DebugCinderBlockItem extends Item {
} }
} }
if (level.getBlockEntity(pos) instanceof AbstractEngineBlockEntity be) { if (level.getBlockEntity(pos) instanceof AbstractSmallEngineBlockEntity be) {
be.highestSignal=0; //be.getControllerBE().highestSignal=0;
be.controlled = false; //be.getControllerBE().rpm = 0;
be.updateGeneratedRotation(); //be.getControllerBE().engineController = null;
TFMGUtils.debugMessage(level, "RPM "+be.rpm); //be.getControllerBE().updateGeneratedRotation();
TFMGUtils.debugMessage(level, "RPM "+be.getControllerBE().rpm);
TFMGUtils.debugMessage(level, "SIGNAL "+be.getControllerBE().signal);
TFMGUtils.debugMessage(level, "HSIGNAL "+be.getControllerBE().highestSignal);
TFMGUtils.debugMessage(level, "RATE "+be.getControllerBE().fuelInjectionRate);
} }
if (level.getBlockEntity(pos) instanceof CastingBasinBlockEntity be) { if (level.getBlockEntity(pos) instanceof CastingBasinBlockEntity be) {
be.findRecipe(); be.findRecipe();

View File

@@ -1,5 +1,6 @@
package com.drmangotea.tfmg.content.electricity.generators; package com.drmangotea.tfmg.content.electricity.generators;
import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.config.TFMGConfigs; import com.drmangotea.tfmg.config.TFMGConfigs;
import com.drmangotea.tfmg.content.electricity.base.KineticElectricBlockEntity; import com.drmangotea.tfmg.content.electricity.base.KineticElectricBlockEntity;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
@@ -42,6 +43,7 @@ public class GeneratorBlockEntity extends KineticElectricBlockEntity {
@Override @Override
public void onNetworkChanged(int oldVoltage, int oldPower) { public void onNetworkChanged(int oldVoltage, int oldPower) {
super.onNetworkChanged(oldVoltage, oldPower); super.onNetworkChanged(oldVoltage, oldPower);

View File

@@ -3,6 +3,7 @@ package com.drmangotea.tfmg.content.electricity.generators.large_generator;
import com.drmangotea.tfmg.config.TFMGConfigs; import com.drmangotea.tfmg.config.TFMGConfigs;
import com.drmangotea.tfmg.content.electricity.base.KineticElectricBlockEntity; import com.drmangotea.tfmg.content.electricity.base.KineticElectricBlockEntity;
import com.drmangotea.tfmg.content.electricity.generators.large_generator.StatorBlock.StatorState;
import com.drmangotea.tfmg.registry.TFMGBlocks; import com.drmangotea.tfmg.registry.TFMGBlocks;
import net.createmod.catnip.animation.LerpedFloat; import net.createmod.catnip.animation.LerpedFloat;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
@@ -11,7 +12,6 @@ import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
import com.drmangotea.tfmg.content.electricity.generators.large_generator.StatorBlock.StatorState;
import java.util.*; import java.util.*;
@@ -25,15 +25,13 @@ import static net.minecraft.world.level.block.DirectionalBlock.FACING;
public class RotorBlockEntity extends KineticElectricBlockEntity { public class RotorBlockEntity extends KineticElectricBlockEntity {
LerpedFloat visualSpeed = LerpedFloat.linear(); LerpedFloat visualSpeed = LerpedFloat.linear();
float angle; float angle;
List<BlockPos> stators = new ArrayList<>(); List<BlockPos> stators = new ArrayList<>();
public static final Map<Axis,Map<StatorOffset, BlockState>> statorPosition = setStatorPositons(); public static final Map<Axis, Map<StatorOffset, BlockState>> statorPosition = setStatorPositons();
public RotorBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) { public RotorBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state); super(type, pos, state);
@@ -47,7 +45,7 @@ public class RotorBlockEntity extends KineticElectricBlockEntity {
@Override @Override
protected void read(CompoundTag compound, boolean clientPacket) { protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket); super.read(compound, clientPacket);
visualSpeed.chase(getGeneratedSpeed(), 1 / 128f, LerpedFloat.Chaser.EXP); visualSpeed.chase(getGeneratedSpeed(), 1 / 128f, LerpedFloat.Chaser.EXP);
} }
@Override @Override
@@ -55,34 +53,42 @@ public class RotorBlockEntity extends KineticElectricBlockEntity {
super.tick(); super.tick();
manageRotation(); manageRotation();
} }
@Override @Override
public void lazyTick() { public void lazyTick() {
super.lazyTick(); super.lazyTick();
findStators(); findStators();
} }
@Override @Override
public void onPlaced() { public void onPlaced() {
super.onPlaced(); super.onPlaced();
findStators(); findStators();
} }
@Override @Override
public int voltageGeneration() { public int voltageGeneration() {
return (int) Math.min(3000,generation()*3); return (int) Math.min(3000, generation() * 3);
} }
public int generation() { public int generation() {
if (stators.size() != 8)
return 0;
float modifier = TFMGConfigs.common().machines.largeGeneratorModifier.getF(); float modifier = TFMGConfigs.common().machines.largeGeneratorModifier.getF();
float maxSpeed = TFMGConfigs.common().machines.largeGeneratorMinSpeed.getF(); float maxSpeed = TFMGConfigs.common().machines.largeGeneratorMinSpeed.getF();
return (int) Math.max(0,((Math.abs(getSpeed())-maxSpeed)*modifier)); return (int) Math.max(0, ((Math.abs(getSpeed()) - maxSpeed) * modifier));
} }
@Override @Override
public int powerGeneration() { public int powerGeneration() {
return generation()*40; return generation() * 40;
} }
public void findStators(){
public void findStators() {
Axis axis = getBlockState().getValue(AXIS); Axis axis = getBlockState().getValue(AXIS);
Map<StatorOffset, BlockState> position = statorPosition.get(axis); Map<StatorOffset, BlockState> position = statorPosition.get(axis);
@@ -96,22 +102,21 @@ public class RotorBlockEntity extends KineticElectricBlockEntity {
if (be.rotor == null || be.rotor == getBlockPos()) { if (be.rotor == null || be.rotor == getBlockPos()) {
stators.add(pos); stators.add(pos);
level.setBlock(pos, state, 2); level.setBlock(pos, state, 2);
be.rotor = getBlockPos(); be.rotor = getBlockPos();
} else { } else {
stators = new ArrayList<>(); stators = new ArrayList<>();
updateNextTick();
} }
} else { } else {
stators = new ArrayList<>(); stators = new ArrayList<>();
updateNextTick();
} }
})); }));
} }
public void manageRotation(){
public void manageRotation() {
float targetSpeed = getSpeed(); float targetSpeed = getSpeed();
visualSpeed.updateChaseTarget(targetSpeed); visualSpeed.updateChaseTarget(targetSpeed);
visualSpeed.tickChaser(); visualSpeed.tickChaser();
@@ -122,67 +127,66 @@ public class RotorBlockEntity extends KineticElectricBlockEntity {
@Override @Override
public boolean hasElectricitySlot(Direction direction) { public boolean hasElectricitySlot(Direction direction) {
return direction.getAxis()!=getBlockState().getValue(AXIS); return direction.getAxis() != getBlockState().getValue(AXIS);
} }
public static Map<Axis,Map<StatorOffset, BlockState>> setStatorPositons(){ public static Map<Axis, Map<StatorOffset, BlockState>> setStatorPositons() {
Map<Axis,Map<StatorOffset, BlockState>> statorPositions = new HashMap<>(); Map<Axis, Map<StatorOffset, BlockState>> statorPositions = new HashMap<>();
BlockState defaultState = TFMGBlocks.STATOR.getDefaultState(); BlockState defaultState = TFMGBlocks.STATOR.getDefaultState();
BlockState cornerState = defaultState.setValue(STATOR_STATE,StatorState.CORNER); BlockState cornerState = defaultState.setValue(STATOR_STATE, StatorState.CORNER);
BlockState horizontal = defaultState.setValue(STATOR_STATE,StatorState.CORNER_HORIZONTAL); BlockState horizontal = defaultState.setValue(STATOR_STATE, StatorState.CORNER_HORIZONTAL);
BlockState sideState = defaultState.setValue(STATOR_STATE,StatorState.SIDE); BlockState sideState = defaultState.setValue(STATOR_STATE, StatorState.SIDE);
BlockState cornerFlipped = cornerState.setValue(VALUE, false); BlockState cornerFlipped = cornerState.setValue(VALUE, false);
BlockState sideFlipped = sideState.setValue(VALUE, false); BlockState sideFlipped = sideState.setValue(VALUE, false);
Map<StatorOffset, BlockState> xPos = new HashMap<>(); Map<StatorOffset, BlockState> xPos = new HashMap<>();
xPos.put(pos(UP ), sideFlipped .setValue(FACING,DOWN )); xPos.put(pos(UP), sideFlipped.setValue(FACING, DOWN));
xPos.put(pos(DOWN ), sideFlipped .setValue(FACING,UP )); xPos.put(pos(DOWN), sideFlipped.setValue(FACING, UP));
xPos.put(pos(NORTH ), sideFlipped .setValue(FACING,SOUTH )); xPos.put(pos(NORTH), sideFlipped.setValue(FACING, SOUTH));
xPos.put(pos(SOUTH ), sideFlipped .setValue(FACING,NORTH )); xPos.put(pos(SOUTH), sideFlipped.setValue(FACING, NORTH));
xPos.put(pos(UP,NORTH ), cornerState .setValue(FACING,EAST )); xPos.put(pos(UP, NORTH), cornerState.setValue(FACING, EAST));
xPos.put(pos(UP,SOUTH ), cornerState .setValue(FACING,WEST )); xPos.put(pos(UP, SOUTH), cornerState.setValue(FACING, WEST));
xPos.put(pos(DOWN,NORTH ), cornerFlipped.setValue(FACING,EAST )); xPos.put(pos(DOWN, NORTH), cornerFlipped.setValue(FACING, EAST));
xPos.put(pos(DOWN,SOUTH ), cornerFlipped.setValue(FACING,WEST )); xPos.put(pos(DOWN, SOUTH), cornerFlipped.setValue(FACING, WEST));
Map<StatorOffset, BlockState> yPos = new HashMap<>(); Map<StatorOffset, BlockState> yPos = new HashMap<>();
yPos.put(pos(EAST ), sideState .setValue(FACING,WEST )); yPos.put(pos(EAST), sideState.setValue(FACING, WEST));
yPos.put(pos(WEST ), sideState .setValue(FACING,EAST )); yPos.put(pos(WEST), sideState.setValue(FACING, EAST));
yPos.put(pos(SOUTH ), sideState .setValue(FACING,NORTH )); yPos.put(pos(SOUTH), sideState.setValue(FACING, NORTH));
yPos.put(pos(NORTH ), sideState .setValue(FACING,SOUTH )); yPos.put(pos(NORTH), sideState.setValue(FACING, SOUTH));
yPos.put(pos(NORTH,WEST ), horizontal .setValue(FACING,NORTH)); yPos.put(pos(NORTH, WEST), horizontal.setValue(FACING, NORTH));
yPos.put(pos(SOUTH,EAST ), horizontal .setValue(FACING,SOUTH)); yPos.put(pos(SOUTH, EAST), horizontal.setValue(FACING, SOUTH));
yPos.put(pos(SOUTH,WEST ), horizontal .setValue(FACING,WEST )); yPos.put(pos(SOUTH, WEST), horizontal.setValue(FACING, WEST));
yPos.put(pos(NORTH,EAST ), horizontal .setValue(FACING,EAST )); yPos.put(pos(NORTH, EAST), horizontal.setValue(FACING, EAST));
Map<StatorOffset, BlockState> zPos = new HashMap<>(); Map<StatorOffset, BlockState> zPos = new HashMap<>();
zPos.put(pos(UP ), sideState .setValue(FACING,DOWN )); zPos.put(pos(UP), sideState.setValue(FACING, DOWN));
zPos.put(pos(DOWN ), sideState .setValue(FACING,UP )); zPos.put(pos(DOWN), sideState.setValue(FACING, UP));
zPos.put(pos(WEST ), sideFlipped .setValue(FACING,EAST )); zPos.put(pos(WEST), sideFlipped.setValue(FACING, EAST));
zPos.put(pos(EAST ), sideFlipped .setValue(FACING,WEST )); zPos.put(pos(EAST), sideFlipped.setValue(FACING, WEST));
zPos.put(pos(UP,WEST ), cornerState .setValue(FACING,UP )); zPos.put(pos(UP, WEST), cornerState.setValue(FACING, UP));
zPos.put(pos(UP,EAST ), cornerState .setValue(FACING,SOUTH )); zPos.put(pos(UP, EAST), cornerState.setValue(FACING, SOUTH));
zPos.put(pos(DOWN,WEST ), cornerFlipped.setValue(FACING,UP )); zPos.put(pos(DOWN, WEST), cornerFlipped.setValue(FACING, UP));
zPos.put(pos(DOWN,EAST ), cornerFlipped.setValue(FACING,SOUTH )); zPos.put(pos(DOWN, EAST), cornerFlipped.setValue(FACING, SOUTH));
statorPositions.put(Axis.X,xPos); statorPositions.put(Axis.X, xPos);
statorPositions.put(Axis.Y,yPos); statorPositions.put(Axis.Y, yPos);
statorPositions.put(Axis.Z,zPos); statorPositions.put(Axis.Z, zPos);
return statorPositions; return statorPositions;
} }
private static StatorOffset pos(Direction dir1){ private static StatorOffset pos(Direction dir1) {
return new StatorOffset(dir1, Optional.empty()); return new StatorOffset(dir1, Optional.empty());
} }
private static StatorOffset pos(Direction dir1,Direction dir2){ private static StatorOffset pos(Direction dir1, Direction dir2) {
return new StatorOffset(dir1, Optional.of(dir2)); return new StatorOffset(dir1, Optional.of(dir2));
} }
private static class StatorOffset {
private static class StatorOffset{
public final Direction direction1; public final Direction direction1;
public final Optional<Direction> direction2; public final Optional<Direction> direction2;
public StatorOffset(Direction dir1,Optional<Direction> dir2){ public StatorOffset(Direction dir1, Optional<Direction> dir2) {
this.direction1 = dir1; this.direction1 = dir1;
this.direction2 = dir2; this.direction2 = dir2;
@@ -192,5 +196,4 @@ public class RotorBlockEntity extends KineticElectricBlockEntity {
} }
} }

View File

@@ -6,11 +6,7 @@ import com.drmangotea.tfmg.config.TFMGConfigs;
import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity; import com.drmangotea.tfmg.content.electricity.base.ElectricBlockEntity;
import com.drmangotea.tfmg.content.electricity.base.IElectric; import com.drmangotea.tfmg.content.electricity.base.IElectric;
import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterBlockEntity; import com.drmangotea.tfmg.content.electricity.utilities.converter.ConverterBlockEntity;
import com.drmangotea.tfmg.content.engines.base.AbstractEngineBlockEntity;
import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.simibubi.create.foundation.utility.CreateLang; import com.simibubi.create.foundation.utility.CreateLang;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
@@ -38,28 +34,31 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
public BlockPos controller = getBlockPos(); public BlockPos controller = getBlockPos();
int signal; int signal;
boolean signalChanged; boolean signalChanged;
public AccumulatorBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) { public AccumulatorBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state); super(type, pos, state);
energyCapability = LazyOptional.of(() -> energy); energyCapability = LazyOptional.of(() -> energy);
} }
@Override @Override
public void lazyTick() { public void lazyTick() {
super.lazyTick(); super.lazyTick();
neighbourChanged(); neighbourChanged();
} }
public void neighbourChanged() { public void neighbourChanged() {
if (!hasLevel()) if (!hasLevel())
return; return;
if(isController()){ if (isController()) {
int power = level.getBestNeighborSignal(worldPosition); int power = level.getBestNeighborSignal(worldPosition);
if (power != signal) if (power != signal)
signalChanged = true; signalChanged = true;
} }
if(level.getBlockEntity(controller) instanceof AccumulatorBlockEntity be) { if (level.getBlockEntity(controller) instanceof AccumulatorBlockEntity be) {
int power = level.getBestNeighborSignal(worldPosition); int power = level.getBestNeighborSignal(worldPosition);
@@ -69,7 +68,6 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
} }
@Override @Override
public void remove() { public void remove() {
super.remove(); super.remove();
@@ -82,6 +80,28 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
refreshController(); refreshController();
} }
@Override
public boolean makeMultimeterTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
super.makeMultimeterTooltip(tooltip, isPlayerSneaking);
CreateLang.text("Capacity ")
.add(Component.literal(TFMGUtils.formatUnits(energy.getEnergyStored(), "FE")))
.color(0x127799)
.forGoggles(tooltip, 1);
CreateLang.text("Charging Rate ")
.add(CreateLang.number(getChargingRate()))
.color(0x127799)
.forGoggles(tooltip, 1);
CreateLang.text("Max Capacity ")
.add(CreateLang.number(getMaxCapacity()))
.color(0x127799)
.forGoggles(tooltip, 1);
return true;
}
public void refreshController() { public void refreshController() {
Direction facing = getBlockState().getValue(FACING); Direction facing = getBlockState().getValue(FACING);
@@ -114,12 +134,12 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
length = newLength; length = newLength;
int oldEnergy = energy.getEnergyStored(); int oldEnergy = energy.getEnergyStored();
energy = createEnergyStorage(length); energy = createEnergyStorage(length);
energy.setEnergy(Math.min(oldEnergy,energy.getMaxEnergyStored()*length)); energy.setEnergy(Math.min(oldEnergy, energy.getMaxEnergyStored() * length));
refreshCapability(); refreshCapability();
updateNextTick(); updateNextTick();
for (int i = 1; i < length; i++) { for (int i = 1; i < length; i++) {
BlockPos pos = getBlockPos().relative(getBlockState().getValue(FACING).getOpposite(), i); BlockPos pos = getBlockPos().relative(getBlockState().getValue(FACING).getOpposite(), i);
if(level.getBlockEntity(pos) instanceof AccumulatorBlockEntity be){ if (level.getBlockEntity(pos) instanceof AccumulatorBlockEntity be) {
be.refreshCapability(); be.refreshCapability();
be.sendStuff(); be.sendStuff();
} }
@@ -146,16 +166,17 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
} }
return super.getCapability(cap, side); return super.getCapability(cap, side);
} }
public boolean isController() { public boolean isController() {
return controller == getBlockPos(); return controller == getBlockPos();
} }
public TFMGForgeEnergyStorage createEnergyStorage(int multiplier) { public TFMGForgeEnergyStorage createEnergyStorage(int multiplier) {
return new TFMGForgeEnergyStorage(getMaxCapacity()*multiplier, 10000) { return new TFMGForgeEnergyStorage(getMaxCapacity() * multiplier, 10000) {
@Override @Override
public void onEnergyChanged(int amount, int oldAmount) { public void onEnergyChanged(int amount, int oldAmount) {
if((oldAmount==0&&amount>0)||(this.energy==0)) { if ((oldAmount == 0 && amount > 0) || (this.energy == 0)) {
updateNextTick(); updateNextTick();
} }
sendStuff(); sendStuff();
@@ -166,19 +187,20 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
public void setCapacity(ItemStack stack) { public void setCapacity(ItemStack stack) {
energy.setEnergy(stack.getOrCreateTag().getInt("Storage")); energy.setEnergy(stack.getOrCreateTag().getInt("Storage"));
} }
protected void analogSignalChanged() { protected void analogSignalChanged() {
if(!isController()) { if (!isController()) {
signal = level.getBestNeighborSignal(controller); signal = level.getBestNeighborSignal(controller);
return; return;
} }
int newSignal = 0; int newSignal = 0;
for(int i = 0;i<length;i++){ for (int i = 0; i < length; i++) {
BlockPos pos = getBlockPos().relative(getBlockState().getValue(FACING).getOpposite(),i); BlockPos pos = getBlockPos().relative(getBlockState().getValue(FACING).getOpposite(), i);
newSignal = Math.max(newSignal,level.getBestNeighborSignal(pos)); newSignal = Math.max(newSignal, level.getBestNeighborSignal(pos));
} }
@@ -187,6 +209,7 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
signal = newSignal; signal = newSignal;
} }
@Override @Override
public void tick() { public void tick() {
super.tick(); super.tick();
@@ -246,25 +269,30 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
int power = 0; int power = 0;
for (IElectric member : getOrCreateElectricNetwork().members) for (IElectric member : getOrCreateElectricNetwork().members)
if (!(member instanceof ConverterBlockEntity)&&!(member instanceof AccumulatorBlockEntity)) if (!(member instanceof ConverterBlockEntity) && !(member instanceof AccumulatorBlockEntity))
power += member.getPowerUsage(); power += member.getPowerUsage();
if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() <= getOutputVoltage() || canPower()) if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() <= getOutputVoltage() || canPower())
return 0; return 0;
if(Math.min(Math.max((data.networkPowerGeneration - power), 0), getMaxChargingRate())==0){
return 0;
}
return (float) Math.min((Math.pow(data.voltage, 2)) / Math.min(Math.max((data.networkPowerGeneration - power), 0), getMaxChargingRate()),750);
return (float) (data.voltage * data.voltage) /Math.min(Math.max((data.networkPowerGeneration - power), 0), getMaxChargingRate());
} }
public boolean canPower() { public boolean canPower() {
return getData().networkResistance > 0 && (getData().getVoltage() <= getOutputVoltage()) && energy.getEnergyStored() > 0&&signal ==0; return getData().networkResistance > 0 && (getData().getVoltage() <= getOutputVoltage()) && energy.getEnergyStored() > 0 && signal == 0;
} }
public int getChargingRate() { public int getChargingRate() {
int chargingRate = Math.max((data.networkPowerGeneration - getNetworkPowerUsage()), 0); //
if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() < getOutputVoltage() || canPower()) // int chargingRate = Math.max((data.networkPowerGeneration - getNetworkPowerUsage()), 0);
if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() < getOutputVoltage() || canPower()|| data.notEnoughtPower)
return 0; return 0;
return Math.min(chargingRate, getMaxChargingRate());
//return Math.min(chargingRate, getMaxChargingRate());
return getMaxChargingRate();
} }
@Override @Override
@@ -280,7 +308,7 @@ public class AccumulatorBlockEntity extends ElectricBlockEntity {
} }
public int getMaxCapacity() { public int getMaxCapacity() {
return TFMGConfigs.common().machines.accumulatorStorage.get(); return TFMGConfigs.common().machines.accumulatorStorage.get()*length;
} }
//in FE per tick //in FE per tick

View File

@@ -108,7 +108,9 @@ public class ConverterBlockEntity extends ElectricBlockEntity {
power += member.getPowerUsage(); power += member.getPowerUsage();
if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() <= voltageGenerated.getValue() || canPower()) if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() <= voltageGenerated.getValue() || canPower())
return 0; return 0;
if(Math.min(Math.max((data.networkPowerGeneration - power), 0), getMaxChargingRate())==0){
return 0;
}
return (float) (data.voltage * data.voltage) /Math.min(Math.max((data.networkPowerGeneration - power), 0), getMaxChargingRate()); return (float) (data.voltage * data.voltage) /Math.min(Math.max((data.networkPowerGeneration - power), 0), getMaxChargingRate());
@@ -125,10 +127,13 @@ public class ConverterBlockEntity extends ElectricBlockEntity {
public int getChargingRate() { public int getChargingRate() {
int chargingRate = Math.max((data.networkPowerGeneration - getNetworkPowerUsage()), 0); //
if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() < voltageGenerated.getValue() || canPower()) // int chargingRate = Math.max((data.networkPowerGeneration - getNetworkPowerUsage()), 0);
if (energy.getEnergyStored() == getMaxCapacity() || getData().getVoltage() < voltageGenerated.value || canPower()|| data.notEnoughtPower)
return 0; return 0;
return Math.min(chargingRate, getMaxChargingRate());
//return Math.min(chargingRate, getMaxChargingRate());
return getMaxChargingRate();
} }
@Override @Override

View File

@@ -43,6 +43,8 @@ public class ElectricMotorBlock extends DirectionalKineticBlock implements IBE<E
return defaultBlockState().setValue(FACING, preferred); return defaultBlockState().setValue(FACING, preferred);
} }
@Override @Override
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
return face == state.getValue(FACING); return face == state.getValue(FACING);

View File

@@ -51,6 +51,10 @@ public class ElectricMotorBlockEntity extends KineticElectricBlockEntity {
return direction == getBlockState().getValue(FACING).getOpposite() || (direction.getAxis().isHorizontal() && direction == Direction.DOWN); return direction == getBlockState().getValue(FACING).getOpposite() || (direction.getAxis().isHorizontal() && direction == Direction.DOWN);
} }
@Override
public void notifyNetworkAboutSpeedChange() {
super.notifyNetworkAboutSpeedChange();
}
@Override @Override
public void onNetworkChanged(int oldVoltage, int oldPower) { public void onNetworkChanged(int oldVoltage, int oldPower) {
@@ -70,7 +74,8 @@ public class ElectricMotorBlockEntity extends KineticElectricBlockEntity {
return 0; return 0;
//if(getPowerUsage() >= machineConfig.electricMotorMinimumPower.get()){ //if(getPowerUsage() >= machineConfig.electricMotorMinimumPower.get()){
return Math.min(Math.abs(generatedSpeed.getValue()), data.getVoltage() / 2); return generatedSpeed.getValue() <0 ? -Math.min(Math.abs(data.getVoltage()/2),Math.abs(generatedSpeed.getValue())) : Math.min(Math.abs(data.getVoltage()/2),Math.abs(generatedSpeed.getValue()));
//} //}
@@ -127,6 +132,8 @@ public class ElectricMotorBlockEntity extends KineticElectricBlockEntity {
.rotateZ(-AngleHelper.horizontalAngle(facing) + 180); .rotateZ(-AngleHelper.horizontalAngle(facing) + 180);
} }
@Override @Override
protected boolean isSideActive(BlockState state, Direction direction) { protected boolean isSideActive(BlockState state, Direction direction) {
Direction facing = state.getValue(FACING); Direction facing = state.getValue(FACING);

View File

@@ -241,7 +241,7 @@ public class ElectricPumpBlockEntity extends PumpBlockEntity implements IElectri
@Override @Override
public float resistance() { public float resistance() {
return 50; return 100;
} }

View File

@@ -10,6 +10,7 @@ import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.DirectionalBlock; import net.minecraft.world.level.block.DirectionalBlock;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
@@ -50,6 +51,20 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
} }
} }
@Override
public void destroy() {
super.destroy();
BlockPos pos = this.getBlockPos();
if(!primaryCoil.isEmpty()){
ItemEntity item = new ItemEntity(level, pos.getX()+.5f,pos.getY()+.5f,pos.getZ()+.5f,primaryCoil);
level.addFreshEntity(item);
}
if(!secondaryCoil.isEmpty()){
ItemEntity item = new ItemEntity(level, pos.getX()+.5f,pos.getY()+.5f,pos.getZ()+.5f,secondaryCoil);
level.addFreshEntity(item);
}
}
@Override @Override
public int getPowerUsage() { public int getPowerUsage() {
@@ -85,7 +100,21 @@ public class TransformerBlockEntity extends VoltageAlteringBlockEntity {
} }
@Override
public boolean makeMultimeterTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
super.makeMultimeterTooltip(tooltip, isPlayerSneaking);
if(coilRatio!=0) {
CreateLang.text("----------------------------")
.style(ChatFormatting.WHITE)
.forGoggles(tooltip);
CreateLang.translate("multimeter.transformer_ration")
.add(CreateLang.number(coilRatio))
.color(0xc6e82c)
.forGoggles(tooltip, 1);
}
return true;
}
@Override @Override
public float resistance() { public float resistance() {

View File

@@ -1,5 +1,6 @@
package com.drmangotea.tfmg.content.engines.base; package com.drmangotea.tfmg.content.engines.base;
import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.config.TFMGConfigs; import com.drmangotea.tfmg.config.TFMGConfigs;
import com.drmangotea.tfmg.content.electricity.base.KineticElectricBlockEntity; import com.drmangotea.tfmg.content.electricity.base.KineticElectricBlockEntity;
import com.drmangotea.tfmg.content.engines.fuels.BaseFuelTypes; import com.drmangotea.tfmg.content.engines.fuels.BaseFuelTypes;
@@ -52,7 +53,7 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
public int highestSignal; public int highestSignal;
public int signal; public int signal;
// //
public boolean controlled = false; public BlockPos engineController;
// //
// //
@@ -85,16 +86,25 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
public void tankUpdated(FluidStack stack) { public void tankUpdated(FluidStack stack) {
sendData(); sendData();
setChanged(); setChanged();
} }
public boolean hasEngineController() {
return engineController != null;
}
@Override
public void updateNetwork() {
//TFMG.LOGGER.debug("UPDATE ENGINE NETWORK");
super.updateNetwork();
}
protected void analogSignalChanged() { protected void analogSignalChanged() {
if (controlled) { if (hasEngineController()) {
fuelInjectionRate = highestSignal / 15f; fuelInjectionRate = highestSignal / 15f;
return; return;
} }
@@ -131,6 +141,8 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
neighbourChanged(); neighbourChanged();
manageFuelAndExhaust(); manageFuelAndExhaust();
} }
@@ -172,7 +184,7 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
public boolean canWork() { public boolean canWork() {
if(fuelTank.isEmpty()) if (fuelTank.isEmpty())
return false; return false;
if (exhaustTank.getSpace() == 0) if (exhaustTank.getSpace() == 0)
@@ -265,7 +277,8 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
reverse = compound.getBoolean("Reverse"); reverse = compound.getBoolean("Reverse");
signal = compound.getInt("Signal"); signal = compound.getInt("Signal");
controlled = compound.getBoolean("Controlled"); if (hasEngineController())
engineController = BlockPos.of(compound.getLong("EngineController"));
rpm = compound.getFloat("RPM"); rpm = compound.getFloat("RPM");
// if (isController()) { // if (isController()) {
@@ -277,7 +290,7 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
highestSignal = compound.getInt("HighestSignal"); highestSignal = compound.getInt("HighestSignal");
signalChanged = true; //signalChanged = true;
updateRotation(); updateRotation();
updateGeneratedRotation(); updateGeneratedRotation();
@@ -291,7 +304,8 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
compound.putBoolean("Reverse", reverse); compound.putBoolean("Reverse", reverse);
compound.putInt("Signal", signal); compound.putInt("Signal", signal);
compound.putBoolean("Controlled", controlled); if (hasEngineController())
compound.putLong("EngineController", engineController.asLong());
compound.putFloat("RPM", rpm); compound.putFloat("RPM", rpm);
@@ -304,8 +318,6 @@ public abstract class AbstractEngineBlockEntity extends KineticElectricBlockEnti
} }
public abstract int getFuelConsumption(); public abstract int getFuelConsumption();

View File

@@ -2,11 +2,13 @@ package com.drmangotea.tfmg.content.engines.base;
import com.drmangotea.tfmg.TFMG; import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.base.TFMGShapes; import com.drmangotea.tfmg.base.TFMGShapes;
import com.drmangotea.tfmg.content.electricity.base.UpdateInFrontPacket;
import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerBlockEntity; import com.drmangotea.tfmg.content.engines.engine_controller.EngineControllerBlockEntity;
import com.drmangotea.tfmg.content.engines.types.AbstractSmallEngineBlockEntity; import com.drmangotea.tfmg.content.engines.types.AbstractSmallEngineBlockEntity;
import com.drmangotea.tfmg.content.engines.upgrades.EnginePipingUpgrade; import com.drmangotea.tfmg.content.engines.upgrades.EnginePipingUpgrade;
import com.drmangotea.tfmg.content.engines.upgrades.TransmissionUpgrade; import com.drmangotea.tfmg.content.engines.upgrades.TransmissionUpgrade;
import com.drmangotea.tfmg.registry.TFMGBlocks; import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.drmangotea.tfmg.registry.TFMGPackets;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock; import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
@@ -29,6 +31,7 @@ import net.minecraft.world.level.block.state.properties.Property;
import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraft.world.phys.shapes.VoxelShape;
import net.minecraftforge.network.PacketDistributor;
import java.util.Optional; import java.util.Optional;
@@ -56,17 +59,26 @@ public class EngineBlock extends HorizontalKineticBlock {
if (be.upgrade.isPresent()) { if (be.upgrade.isPresent()) {
if (be.upgrade.get() instanceof TransmissionUpgrade) { if (be.upgrade.get() instanceof TransmissionUpgrade) {
if (be.getControllerBE().controller != null){ if (be.getControllerBE().engineController != null){
if (level.getBlockEntity(be.getControllerBE().controller) instanceof EngineControllerBlockEntity engineController) { if (level.getBlockEntity(be.getControllerBE().engineController) instanceof EngineControllerBlockEntity engineController) {
engineController.engineStarted = false;
engineController.accelerationRate = 0;
engineController.shift = TransmissionUpgrade.TransmissionState.NEUTRAL;
engineController.engine = null;
engineController.enginePos = null; engineController.enginePos = null;
engineController.disconnectEngine(); engineController.disconnectEngine();
engineController.sendData();
} }
} }
be.getControllerBE().controlled =false; //if(!level.isClientSide)
// TFMGPackets.getChannel().send(PacketDistributor.ALL.noArg(), new UpdateInFrontPacket(BlockPos.of(be.getPos())));
be.getControllerBE().engineController =null;
be.getControllerBE().highestSignal = 0; be.getControllerBE().highestSignal = 0;
be.getControllerBE().connectNextTick=true;
be.getControllerBE().fuelInjectionRate=0;
be.updateGeneratedRotation();
be.getControllerBE().updateGeneratedRotation(); be.getControllerBE().updateGeneratedRotation();
be.getControllerBE().updateRotation(); be.getControllerBE().sendData();
be.getControllerBE().controller = null;
} }

View File

@@ -49,7 +49,7 @@ public class EngineControllerBlock extends TFMGHorizontalDirectionalBlock implem
@Override @Override
public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) { public VoxelShape getShape(BlockState p_60555_, BlockGetter p_60556_, BlockPos p_60557_, CollisionContext p_60558_) {
return TFMGShapes.ENGINE_CONTROLLER.get(p_60555_.getValue(FACING)); return TFMGShapes.ENGINE_CONTROLLER.get(p_60555_.getValue(FACING).getOpposite());
} }
@Override @Override

View File

@@ -131,6 +131,14 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
setChanged(); setChanged();
} }
@Override
public void destroy() {
super.destroy();
Entity playerEntity = ((ServerLevel) level).getEntity(user);
if (playerEntity instanceof Player)
stopUsing((Player) playerEntity);
}
public void shiftBack() { public void shiftBack() {
int max = TransmissionUpgrade.TransmissionState.values().length; int max = TransmissionUpgrade.TransmissionState.values().length;
for (int i = 0; i < max; i++) { for (int i = 0; i < max; i++) {
@@ -246,11 +254,9 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
tickRendering(); tickRendering();
} }
if (enginePos != null && (engine == null)) { if (enginePos != null && (engine == null)) {
if (level.getBlockEntity(enginePos) instanceof AbstractSmallEngineBlockEntity be) { if (level.getBlockEntity(enginePos) instanceof AbstractSmallEngineBlockEntity be) {
engine = be; engine = be;
TFMG.LOGGER.debug("TICK");
engine.getControllerBE().highestSignal=4; engine.getControllerBE().highestSignal=4;
} }
} }
@@ -279,8 +285,7 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
public void updateEngine() { public void updateEngine() {
if (engine == null) if (engine == null)
return; return;
TFMG.LOGGER.debug("Update Engine "+accelerationRate); engine.getControllerBE().engineController = this.getBlockPos();
engine.getControllerBE().controlled = true;
engine.getControllerBE().highestSignal = accelerationRate; engine.getControllerBE().highestSignal = accelerationRate;
engine.getControllerBE().fuelInjectionRate = engine.getControllerBE().highestSignal / 15f; engine.getControllerBE().fuelInjectionRate = engine.getControllerBE().highestSignal / 15f;
engine.getControllerBE().updateRotation(); engine.getControllerBE().updateRotation();
@@ -291,9 +296,8 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
public void disconnectEngine() { public void disconnectEngine() {
if (engine == null) if (engine == null)
return; return;
TFMG.LOGGER.debug("DISCONNECT");
engine.getControllerBE().highestSignal = 0; engine.getControllerBE().highestSignal = 0;
engine.getControllerBE().controlled = false; engine.getControllerBE().engineController = null;
engine.getControllerBE().updateGeneratedRotation(); engine.getControllerBE().updateGeneratedRotation();
} }
@@ -304,17 +308,11 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
steeringWheelAngle.chase(isPressed(2) ? -40 : isPressed(3) ? 40 : 0, 0.25, LerpedFloat.Chaser.EXP); steeringWheelAngle.chase(isPressed(2) ? -40 : isPressed(3) ? 40 : 0, 0.25, LerpedFloat.Chaser.EXP);
clutchPedalMotion.chase(isPressed(4) ? 2 / 16f : 0, 0.25, LerpedFloat.Chaser.EXP); clutchPedalMotion.chase(isPressed(4) ? 2 / 16f : 0, 0.25, LerpedFloat.Chaser.EXP);
gasPedalMotion.chase(isPressed(0) ? 2 / 16f : 0, 0.25, LerpedFloat.Chaser.EXP); gasPedalMotion.chase(isPressed(0) ? 2 / 16f : 0, 0.25, LerpedFloat.Chaser.EXP);
brakePedalMotion.chase(isPressed(1) ? 2 / 16f : 0, 0.25, LerpedFloat.Chaser.EXP); brakePedalMotion.chase(isPressed(1) ? 2 / 16f : 0, 0.25, LerpedFloat.Chaser.EXP);
transmissionLeverAngle.chase(shift == TransmissionUpgrade.TransmissionState.REVERSE ? -20 : (shift.value * 20), 0.25, LerpedFloat.Chaser.EXP); transmissionLeverAngle.chase(shift == TransmissionUpgrade.TransmissionState.REVERSE ? -20 : (shift.value * 20), 0.25, LerpedFloat.Chaser.EXP);
fuelDial.chase(engine == null ? 0 : ((double) engine.getControllerBE().fuelTank.getFluidAmount() / (double) engine.fuelTank.getCapacity()) * 180f, 0.25, LerpedFloat.Chaser.EXP); fuelDial.chase(engine == null ? 0 : ((double) engine.getControllerBE().fuelTank.getFluidAmount() / (double) engine.fuelTank.getCapacity()) * 180f, 0.25, LerpedFloat.Chaser.EXP);
rpmDial.chase(engine == null ? 0 : ((double) engine.getControllerBE().rpm / 6000f) * 180f, 0.25, LerpedFloat.Chaser.EXP); rpmDial.chase(engine == null ? 0 : ((double) engine.getControllerBE().rpm / 6000f) * 180f, 0.25, LerpedFloat.Chaser.EXP);
transmissionLeverAngle.tickChaser(); transmissionLeverAngle.tickChaser();
@@ -340,7 +338,6 @@ public class EngineControllerBlockEntity extends SmartBlockEntity implements IHa
} }
public void tryStopUsing(Player player) { public void tryStopUsing(Player player) {
TFMG.LOGGER.debug("Try Stop Using");
if (isUsedBy(player)) if (isUsedBy(player))
stopUsing(player); stopUsing(player);
} }

View File

@@ -0,0 +1,29 @@
package com.drmangotea.tfmg.content.engines.engine_controller;
import com.drmangotea.tfmg.content.engines.base.AbstractEngineBlockEntity;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.networking.BlockEntityDataPacket;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
public class TransmissionRemovePacket extends BlockEntityDataPacket<SmartBlockEntity> {
public TransmissionRemovePacket(BlockPos pos) {
super(pos);
}
public TransmissionRemovePacket(FriendlyByteBuf buffer) {
super(buffer);
}
@Override
protected void writeData(FriendlyByteBuf buffer) {}
@Override
protected void handlePacket(SmartBlockEntity blockEntity) {
if(blockEntity instanceof AbstractEngineBlockEntity be) {
be.highestSignal = 0;
}
}
}

View File

@@ -27,7 +27,7 @@ public class EngineGearboxBlock extends HorizontalKineticBlock implements IBE<En
@Override @Override
public VoxelShape getShape(BlockState state, BlockGetter blockGetter, BlockPos pos, CollisionContext context) { public VoxelShape getShape(BlockState state, BlockGetter blockGetter, BlockPos pos, CollisionContext context) {
return TFMGShapes.ENGINE_GEARBOX.get(state.getValue(HORIZONTAL_FACING).getOpposite()); return TFMGShapes.ENGINE_GEARBOX.get(state.getValue(HORIZONTAL_FACING));
} }
@Override @Override

View File

@@ -130,7 +130,6 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
super.lazyTick(); super.lazyTick();
upgrade.ifPresent(engineUpgrade -> engineUpgrade.lazyTickUpgrade(this)); upgrade.ifPresent(engineUpgrade -> engineUpgrade.lazyTickUpgrade(this));
} }
@@ -192,7 +191,7 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
if (controller == null) if (controller == null)
return; return;
if (controlled) { if (hasEngineController()) {
fuelInjectionRate = highestSignal / 15f; fuelInjectionRate = highestSignal / 15f;
return; return;
} }
@@ -387,35 +386,35 @@ public abstract class AbstractSmallEngineBlockEntity extends AbstractEngineBlock
return true; return true;
} }
} }
if (EngineUpgrade.getUpgrades().containsKey(itemStack.getItem())) { if (upgrade.isEmpty())
Optional<? extends EngineUpgrade> itemUpgrade = EngineUpgrade.getUpgrades().get(itemStack.getItem()).createUpgrade(); if (EngineUpgrade.getUpgrades().containsKey(itemStack.getItem())) {
Optional<? extends EngineUpgrade> itemUpgrade = EngineUpgrade.getUpgrades().get(itemStack.getItem()).createUpgrade();
if (itemUpgrade.isPresent() && isUpgradeFirst(itemUpgrade.get())) { if (itemUpgrade.isPresent() && isUpgradeFirst(itemUpgrade.get())) {
upgrade = itemUpgrade; upgrade = itemUpgrade;
playInsertionSound(); playInsertionSound();
updateRotation(); updateRotation();
upgrade.ifPresent(u -> u.updateUpgrade(this)); upgrade.ifPresent(u -> u.updateUpgrade(this));
itemStack.shrink(1); itemStack.shrink(1);
if (upgrade.isPresent()) if (upgrade.isPresent())
if (upgrade.get() instanceof TransmissionUpgrade transmissionUpgrade) { if (upgrade.get() instanceof TransmissionUpgrade transmissionUpgrade) {
if (itemStack.getOrCreateTag().contains("Position") && itemStack.getOrCreateTag().get("Position") != null) { if (itemStack.getOrCreateTag().contains("Position") && itemStack.getOrCreateTag().get("Position") != null) {
BlockPos pos = BlockPos.of(itemStack.getOrCreateTag().getLong("Position")); BlockPos pos = BlockPos.of(itemStack.getOrCreateTag().getLong("Position"));
if (level.getBlockEntity(pos) instanceof EngineControllerBlockEntity engineControllerBE) { if (level.getBlockEntity(pos) instanceof EngineControllerBlockEntity engineControllerBE) {
this.getControllerBE().updateGeneratedRotation(); this.getControllerBE().updateGeneratedRotation();
getControllerBE().controller = pos; getControllerBE().controller = pos;
engineControllerBE.enginePos = this.getBlockPos(); engineControllerBE.enginePos = this.getBlockPos();
TFMG.LOGGER.debug("INSERT ITEM"); getControllerBE().highestSignal = 0;
getControllerBE().highestSignal = 0; }
} }
} }
} setChanged();
setChanged(); sendData();
sendData(); return true;
return true; }
} }
}
if (!isController()) if (!isController())
return false; return false;

View File

@@ -1,15 +1,19 @@
package com.drmangotea.tfmg.content.engines.types.turbine_engine; package com.drmangotea.tfmg.content.engines.types.turbine_engine;
import com.drmangotea.tfmg.base.TFMGShapes;
import com.drmangotea.tfmg.content.electricity.base.IElectric; import com.drmangotea.tfmg.content.electricity.base.IElectric;
import com.drmangotea.tfmg.content.engines.base.EngineBlock; import com.drmangotea.tfmg.content.engines.base.EngineBlock;
import com.drmangotea.tfmg.registry.TFMGBlockEntities; import com.drmangotea.tfmg.registry.TFMGBlockEntities;
import com.simibubi.create.foundation.block.IBE; import com.simibubi.create.foundation.block.IBE;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction; import net.minecraft.core.Direction;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.LevelReader;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
public class TurbineEngineBlock extends EngineBlock implements IBE<TurbineEngineBlockEntity> { public class TurbineEngineBlock extends EngineBlock implements IBE<TurbineEngineBlockEntity> {
public TurbineEngineBlock(Properties properties) { public TurbineEngineBlock(Properties properties) {
@@ -23,6 +27,16 @@ public class TurbineEngineBlock extends EngineBlock implements IBE<TurbineEngine
public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) { public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) {
IBE.onRemove(state, level, pos, newState); IBE.onRemove(state, level, pos, newState);
} }
@Override
public VoxelShape getShape(BlockState state, BlockGetter p_60556_, BlockPos pos, CollisionContext p_60558_) {
return switch (state.getValue(ENGINE_STATE)){
case NORMAL -> TFMGShapes.TURBINE_ENGINE_MIDDLE.get(state.getValue(SHAFT_FACING));
case SHAFT, SINGLE -> TFMGShapes.TURBINE_ENGINE_BACK.get(state.getValue(SHAFT_FACING));
case BACK -> TFMGShapes.TURBINE_ENGINE_FRONT.get(state.getValue(SHAFT_FACING));
};
}
@Override @Override
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
return face==state.getValue(SHAFT_FACING)&&state.getValue(ENGINE_STATE)==EngineState.BACK; return face==state.getValue(SHAFT_FACING)&&state.getValue(ENGINE_STATE)==EngineState.BACK;

View File

@@ -1,11 +1,22 @@
package com.drmangotea.tfmg.content.engines.upgrades; package com.drmangotea.tfmg.content.engines.upgrades;
import com.drmangotea.tfmg.content.engines.types.AbstractSmallEngineBlockEntity;
import com.drmangotea.tfmg.content.engines.types.regular_engine.RegularEngineBlockEntity;
import com.drmangotea.tfmg.registry.TFMGItems; import com.drmangotea.tfmg.registry.TFMGItems;
import com.drmangotea.tfmg.registry.TFMGPartialModels;
import com.mojang.blaze3d.vertex.PoseStack;
import net.createmod.catnip.render.CachedBuffers;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.item.Item; import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.state.BlockState;
import java.util.Optional; import java.util.Optional;
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
public class TransmissionUpgrade extends EngineUpgrade{ public class TransmissionUpgrade extends EngineUpgrade{
TransmissionState shift = TransmissionState.NEUTRAL; TransmissionState shift = TransmissionState.NEUTRAL;
@@ -18,6 +29,30 @@ public class TransmissionUpgrade extends EngineUpgrade{
} }
@Override
public void render(AbstractSmallEngineBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light) {
BlockState state = be.getBlockState();
Direction facing = state.getValue(FACING);
boolean side = false;
ms.pushPose();
if (be instanceof RegularEngineBlockEntity blockEntity) {
side = blockEntity.type.upgradesOnSide;
}
CachedBuffers.partial(TFMGPartialModels.TRANSMISSION, state)
.center()
.translateY(side ? -2/16f :0)
.rotateYDegrees(facing.toYRot())
.rotateZDegrees(side ? 90 : 0)
.translateY(side ? 4 / 16f : 0)
.uncenter()
.light(light)
.renderInto(ms, buffer.getBuffer(RenderType.solid()));
ms.popPose();
}
@Override @Override
public Item getItem() { public Item getItem() {

View File

@@ -0,0 +1,63 @@
package com.drmangotea.tfmg.content.machinery.misc.winding_machine;
import com.drmangotea.tfmg.content.engines.types.AbstractSmallEngineBlockEntity;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.IRotate;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityVisual;
import com.simibubi.create.content.kinetics.base.RotatingInstance;
import com.simibubi.create.foundation.render.AllInstanceTypes;
import dev.engine_room.flywheel.api.instance.Instance;
import dev.engine_room.flywheel.api.visualization.VisualizationContext;
import dev.engine_room.flywheel.lib.model.Models;
import net.createmod.catnip.data.Iterate;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.level.block.Block;
import org.jetbrains.annotations.Nullable;
import java.util.function.Consumer;
import static com.simibubi.create.content.kinetics.base.HorizontalKineticBlock.HORIZONTAL_FACING;
public class WindingMachineVisual extends KineticBlockEntityVisual<WindingMachineBlockEntity> {
protected final RotatingInstance shaft;
public WindingMachineVisual(VisualizationContext context, WindingMachineBlockEntity blockEntity, float partialTick) {
super(context, blockEntity, partialTick);
Direction facing = blockEntity.getBlockState().getValue(HORIZONTAL_FACING).getCounterClockWise();
shaft = instancerProvider().instancer(AllInstanceTypes.ROTATING, Models.partial(AllPartialModels.SHAFT_HALF))
.createInstance();
shaft.setup(blockEntity)
.setPosition(getVisualPosition())
.rotateToFace(Direction.SOUTH, facing)
.setChanged();
}
@Override
public void update(float pt) {
shaft.setup(blockEntity)
.setChanged();
}
@Override
public void updateLight(float partialTick) {
Direction facing = blockEntity.getBlockState().getValue(HORIZONTAL_FACING).getCounterClockWise();
BlockPos behind = pos.relative(facing);
relight(behind, shaft);
}
@Override
protected void _delete() {
shaft.delete();
}
@Override
public void collectCrumblingInstances(Consumer<Instance> consumer) {
consumer.accept(shaft);
}
}

View File

@@ -21,7 +21,8 @@ import java.util.Objects;
public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements IVatMachine { public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements IVatMachine {
ElectrodeType electrodeType = ElectrodeType.NONE; ElectrodeType electrodeType = ElectrodeType.NONE;
boolean isTallEnough=true; boolean isTallEnough = true;
public ElectrodeHolderBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) { public ElectrodeHolderBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state); super(type, pos, state);
} }
@@ -41,7 +42,7 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
} else return true; } else return true;
} }
} }
if (!simulate&&hasLevel()) if (!simulate && hasLevel())
VatBlock.updateVatState(getBlockState(), getLevel(), getBlockPos().relative(Direction.DOWN)); VatBlock.updateVatState(getBlockState(), getLevel(), getBlockPos().relative(Direction.DOWN));
sendData(); sendData();
return false; return false;
@@ -51,18 +52,18 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
@Override @Override
public float resistance() { public float resistance() {
if(electrodeType !=ElectrodeType.NONE){ if (electrodeType != ElectrodeType.NONE) {
if(electrodeType == ElectrodeType.GRAPHITE){ return 20;
return 5;
}else {
return 20;
}
} }
return 0; return 0;
} }
@Override
public boolean canBeInGroups() {
return true;
}
public boolean setElectrode(String name, boolean simulate) { public boolean setElectrode(String name, boolean simulate) {
for (ElectrodeType type : ElectrodeType.values()) { for (ElectrodeType type : ElectrodeType.values()) {
if (Objects.equals(type.name, name)) { if (Objects.equals(type.name, name)) {
@@ -71,7 +72,7 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
} else return true; } else return true;
} }
} }
if (!simulate&&hasLevel()) if (!simulate && hasLevel())
VatBlock.updateVatState(getBlockState(), getLevel(), getBlockPos().relative(Direction.DOWN)); VatBlock.updateVatState(getBlockState(), getLevel(), getBlockPos().relative(Direction.DOWN));
sendData(); sendData();
return false; return false;
@@ -83,17 +84,19 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
VatBlock.updateVatState(getBlockState(), level, getBlockPos().relative(Direction.DOWN)); VatBlock.updateVatState(getBlockState(), level, getBlockPos().relative(Direction.DOWN));
} }
boolean isSuperheated(){ boolean isSuperheated() {
return electrodeType == ElectrodeType.GRAPHITE && getCurrent() >= TFMGConfigs.common().machines.graphiteElectrodeCurrent.get(); return electrodeType == ElectrodeType.GRAPHITE && getCurrent() >= TFMGConfigs.common().machines.graphiteElectrodeCurrent.get();
} }
boolean isOperational(){
return getCurrent() >= TFMGConfigs.common().machines.electrolysisMinimumCurrent.get(); boolean isOperational() {
return getCurrent() >= TFMGConfigs.common().machines.electrolysisMinimumCurrent.get()&&canWork();
} }
@Override @Override
public AABB getRenderBoundingBox() { public AABB getRenderBoundingBox() {
return new AABB(getBlockPos()).setMinY(getBlockPos().getY()-2); return new AABB(getBlockPos()).setMinY(getBlockPos().getY() - 2);
} }
@Override @Override
public void write(CompoundTag compound, boolean clientPacket) { public void write(CompoundTag compound, boolean clientPacket) {
for (ElectrodeType electrode : ElectrodeType.values()) { for (ElectrodeType electrode : ElectrodeType.values()) {
@@ -108,12 +111,16 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
protected void read(CompoundTag compound, boolean clientPacket) { protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket); super.read(compound, clientPacket);
setElectrode(compound.getString("Electrode"),false); setElectrode(compound.getString("Electrode"), false);
} }
@Override @Override
public String getOperationId() { public String getOperationId() {
return switch (electrodeType){
return switch (electrodeType) {
case NONE -> ""; case NONE -> "";
case COPPER, ZINC -> isOperational() ? "tfmg:electrode" : ""; case COPPER, ZINC -> isOperational() ? "tfmg:electrode" : "";
@@ -123,7 +130,7 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
@Override @Override
public int getWorkPercentage() { public int getWorkPercentage() {
return (getPowerUsage()/5000)*100; return (getPowerUsage() / 5000) * 100;
} }
@Override @Override
@@ -137,9 +144,7 @@ public class ElectrodeHolderBlockEntity extends ElectricBlockEntity implements I
NONE("none", ItemStack.EMPTY, null), NONE("none", ItemStack.EMPTY, null),
COPPER("copper", TFMGItems.COPPER_ELECTRODE.asStack(), TFMGPartialModels.COPPER_ELECTRODE), COPPER("copper", TFMGItems.COPPER_ELECTRODE.asStack(), TFMGPartialModels.COPPER_ELECTRODE),
ZINC("zinc", TFMGItems.ZINC_ELECTRODE.asStack(), TFMGPartialModels.ZINC_ELECTRODE), ZINC("zinc", TFMGItems.ZINC_ELECTRODE.asStack(), TFMGPartialModels.ZINC_ELECTRODE),
GRAPHITE("graphite", TFMGItems.GRAPHITE_ELECTRODE.asStack(), TFMGPartialModels.GRAPHITE_ELECTRODE) GRAPHITE("graphite", TFMGItems.GRAPHITE_ELECTRODE.asStack(), TFMGPartialModels.GRAPHITE_ELECTRODE);
;
public final String name; public final String name;
public final ItemStack item; public final ItemStack item;

View File

@@ -1211,6 +1211,16 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.pattern("WTR") .pattern("WTR")
.pattern("WLR")), .pattern("WLR")),
MULTIMETER = create(TFMGItems.MULTIMETER)
.unlockedBy(TFMGBlocks.VOLTMETER::get)
.viaShaped(b -> b
.define('G', TFMGBlocks.VOLTMETER)
.define('W', copperWire())
.define('B', brassSheet())
.pattern("BGB")
.pattern("BWB")
.pattern("BWB")),
COPPER_CABLE_HUB = create(TFMGBlocks.COPPER_CABLE_HUB).returns(2) COPPER_CABLE_HUB = create(TFMGBlocks.COPPER_CABLE_HUB).returns(2)
.unlockedBy(TFMGItems.MAGNET::get) .unlockedBy(TFMGItems.MAGNET::get)
.viaShaped(b -> b .viaShaped(b -> b
@@ -1831,6 +1841,109 @@ public class TFMGStandardRecipeGen extends TFMGRecipeProvider {
.requires(ItemTags.WOODEN_DOORS)), .requires(ItemTags.WOODEN_DOORS)),
////////
WHITE_MULTIMETER = create(TFMGItems.MULTIMETERS.get("white")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("white"))),
YELLOW_MULTIMETER = create(TFMGItems.MULTIMETERS.get("yellow")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("yellow"))),
BROWN_MULTIMETER = create(TFMGItems.MULTIMETERS.get("brown")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("brown"))),
ORANGE_MULTIMETER = create(TFMGItems.MULTIMETERS.get("orange")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("orange"))),
BLACK_MULTIMETER = create(TFMGItems.MULTIMETERS.get("black")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("black"))),
CYAN_MULTIMETER = create(TFMGItems.MULTIMETERS.get("cyan")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("cyan"))),
BLUE_MULTIMETER = create(TFMGItems.MULTIMETERS.get("blue")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("blue"))),
LIGHT_BLUE_MULTIMETER = create(TFMGItems.MULTIMETERS.get("light_blue")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("light_blue"))),
GRAY_MULTIMETER = create(TFMGItems.MULTIMETERS.get("gray")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("gray"))),
LIGHT_GRAY_MULTIMETER = create(TFMGItems.MULTIMETERS.get("light_gray")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("light_gray"))),
GREEN_MULTIMETER = create(TFMGItems.MULTIMETERS.get("green")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("green"))),
LIME_MULTIMETER = create(TFMGItems.MULTIMETERS.get("lime")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("lime"))),
PINK_MULTIMETER = create(TFMGItems.MULTIMETERS.get("pink")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("pink"))),
PURPLE_MULTIMETER = create(TFMGItems.MULTIMETERS.get("purple")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("purple"))),
MAGENTA_MULTIMETER = create(TFMGItems.MULTIMETERS.get("magenta")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("magenta"))),
RED_MULTIMETER = create(TFMGItems.MULTIMETERS.get("red")::get)
.unlockedBy(() -> TFMGItems.MULTIMETER)
.viaShapeless(b -> b
.requires(TFMGItems.MULTIMETER)
.requires(DYES_FROM_COLOR.get("red"))),
////////
WHITE_CONCRETE = create(TFMGBlocks.COLORED_CONCRETE.get("white").block).returns(8) WHITE_CONCRETE = create(TFMGBlocks.COLORED_CONCRETE.get("white").block).returns(8)
.unlockedBy(TFMGBlocks.CONCRETE.block::get) .unlockedBy(TFMGBlocks.CONCRETE.block::get)
.viaShaped(b -> b .viaShaped(b -> b

View File

@@ -0,0 +1,53 @@
package com.drmangotea.tfmg.datagen.recipes.values.create;
import com.drmangotea.tfmg.datagen.recipes.TFMGProcessingRecipeGen;
import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.drmangotea.tfmg.registry.TFMGItems;
import com.drmangotea.tfmg.registry.TFMGPaletteStoneTypes;
import com.simibubi.create.AllRecipeTypes;
import net.minecraft.data.PackOutput;
import static com.drmangotea.tfmg.datagen.recipes.TFMGRecipeProvider.I.*;
public class TFMGCrushingRecipeGen extends TFMGProcessingRecipeGen {
GeneratedRecipe
COPPER_SULFATE = create(I::copperSulfate, b -> b
.output(boneMeal(), 4)
.output(.25f, boneMeal(), 3)
.output(.5f, cyanDye(), 1)
.output(.75f, blueDye(), 1)
),
LIGNITE = create(TFMGBlocks.LIGNITE::get, b -> b
.output(.75f,coal(), 1)
.output(.2f,coal(), 1)
),
BAUXITE = create(TFMGPaletteStoneTypes.BAUXITE.getBaseBlock()::get, b -> b
.output(.75f, TFMGItems.BAUXITE_POWDER, 2)
.output(.2f,TFMGItems.BAUXITE_POWDER, 1)
),
LIMESAND = create(I::limestone, b -> b
.output(limesand(), 1)
),
COAL_COKE = create(I::coalCoke, b -> b
.output(coalCokeDust(), 1)
),
SALTPETER = create(I::dirt, b -> b
.output(.05f, nitrateDust(), 1)
),
SULFUR = create(() -> TFMGBlocks.SULFUR, b -> b
.output(.2f, sulfurDust(), 1)
.output(.1f, sulfurDust(), 1)
);
public TFMGCrushingRecipeGen(PackOutput output) {
super(output);
}
@Override
protected AllRecipeTypes getRecipeType() {
return AllRecipeTypes.CRUSHING;
}
}

View File

@@ -102,7 +102,6 @@ public class GoggleOverlayRendererMixin {
if(isElectricBlock&&!hasGoggles) { if(isElectricBlock&&!hasGoggles) {
ItemStack item = TFMGItems.MULTIMETER.asStack(); ItemStack item = TFMGItems.MULTIMETER.asStack();
List<Component> tooltip = new ArrayList<>(); List<Component> tooltip = new ArrayList<>();
tooltip.add(CreateLang.number(1).component());
((IElectric) be).makeMultimeterTooltip(tooltip, isShifting); ((IElectric) be).makeMultimeterTooltip(tooltip, isShifting);
@@ -111,8 +110,7 @@ public class GoggleOverlayRendererMixin {
tfmg$hoverTicks = 0; tfmg$hoverTicks = 0;
} else { } else {
//
//
if (tooltip.isEmpty()) { if (tooltip.isEmpty()) {
tfmg$hoverTicks = 0; tfmg$hoverTicks = 0;
} else { } else {

View File

@@ -0,0 +1,147 @@
package com.drmangotea.tfmg.ponder;
import com.drmangotea.tfmg.TFMG;
import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.drmangotea.tfmg.registry.TFMGItems;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems;
import com.tterrag.registrate.util.entry.RegistryEntry;
import net.createmod.catnip.platform.CatnipServices;
import net.createmod.ponder.api.registration.PonderTagRegistrationHelper;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.ItemLike;
public class TFMGPonderTags {
public static final ResourceLocation
OIL_PROCESSING = loc("oil_processing"),
ENGINES = loc("engines"),
METALLURGY = loc("metallurgy"),
ELECTRIC_MACHINERY = loc("electric_machinery"),
CHEMICAL_VAT = loc("chemical_vat")
;
private static ResourceLocation loc(String id) {
return TFMG.asResource(id);
}
public static void register(PonderTagRegistrationHelper<ResourceLocation> helper) {
PonderTagRegistrationHelper<RegistryEntry<?>> HELPER = helper.withKeyFunction(RegistryEntry::getId);
PonderTagRegistrationHelper<ItemLike> itemHelper = helper.withKeyFunction(
CatnipServices.REGISTRIES::getKeyOrThrow);
helper.registerTag(OIL_PROCESSING)
.addToIndex()
.item(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER, true, false)
.title("Oil Processing Machinery")
.description("Block used for refining and mining oil")
.register();
helper.registerTag(ENGINES)
.addToIndex()
.item(TFMGBlocks.TURBINE_ENGINE, true, false)
.title("Engines")
.description("Engines and equipment related to them")
.register();
helper.registerTag(METALLURGY)
.addToIndex()
.item(TFMGBlocks.BLAST_FURNACE_OUTPUT, true, false)
.title("Metallurgy")
.description("Blocks related to processing metal")
.register();
helper.registerTag(ELECTRIC_MACHINERY)
.addToIndex()
.item(TFMGBlocks.ROTOR, true, true)
.title("Electric Machinery")
.description("Block which use, produce or transfer electricity")
.register();
helper.registerTag(CHEMICAL_VAT)
.addToIndex()
.item(TFMGBlocks.STEEL_CHEMICAL_VAT, true, false)
.title("Chemical Vat")
.description("Chemical vat and machines that expand it")
.register();
HELPER.addToTag(OIL_PROCESSING)
.add(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER)
.add(TFMGBlocks.STEEL_DISTILLATION_OUTPUT)
.add(TFMGBlocks.INDUSTRIAL_PIPE)
.add(TFMGBlocks.SURFACE_SCANNER)
.add(TFMGBlocks.PUMPJACK_BASE)
.add(TFMGBlocks.PUMPJACK_CRANK)
.add(TFMGBlocks.PUMPJACK_HAMMER)
.add(TFMGBlocks.PUMPJACK_HAMMER_CONNECTOR)
.add(TFMGBlocks.PUMPJACK_HAMMER_HEAD)
.add(TFMGBlocks.PUMPJACK_HAMMER_PART)
.add(TFMGBlocks.LARGE_PUMPJACK_HAMMER_CONNECTOR)
.add(TFMGBlocks.LARGE_PUMPJACK_HAMMER_HEAD)
.add(TFMGBlocks.LARGE_PUMPJACK_HAMMER_PART)
;
HELPER.addToTag(ENGINES)
.add(TFMGBlocks.REGULAR_ENGINE)
.add(TFMGBlocks.TURBINE_ENGINE)
.add(TFMGBlocks.RADIAL_ENGINE)
.add(TFMGBlocks.LARGE_ENGINE)
.add(TFMGBlocks.SIMPLE_LARGE_ENGINE)
.add(TFMGBlocks.ENGINE_CONTROLLER)
.add(TFMGBlocks.ENGINE_GEARBOX)
.add(TFMGBlocks.EXHAUST)
.add(TFMGBlocks.AIR_INTAKE)
.add(TFMGItems.OIL_CAN)
.add(TFMGItems.COOLING_FLUID_BOTTLE)
.add(TFMGItems.TRANSMISSION)
.add(TFMGItems.TURBO);
HELPER.addToTag(METALLURGY)
.add(TFMGBlocks.BLAST_FURNACE_OUTPUT)
.add(TFMGBlocks.BLAST_FURNACE_HATCH)
.add(TFMGBlocks.FIREPROOF_BRICKS)
.add(TFMGBlocks.FIREPROOF_BRICK_REINFORCEMENT)
.add(TFMGBlocks.BLAST_FURNACE_REINFORCEMENT)
.add(TFMGBlocks.RUSTED_BLAST_FURNACE_REINFORCEMENT)
.add(TFMGBlocks.BLAST_STOVE)
.add(TFMGBlocks.CASTING_BASIN);
HELPER.addToTag(ELECTRIC_MACHINERY)
.add(TFMGBlocks.ROTOR)
.add(TFMGBlocks.STATOR)
.add(TFMGBlocks.GENERATOR)
.add(TFMGBlocks.ELECTRIC_MOTOR)
.add(TFMGBlocks.CABLE_CONNECTOR)
.add(TFMGBlocks.GLASS_CABLE_CONNECTOR)
.add(TFMGBlocks.POLARIZER)
.add(TFMGBlocks.ACCUMULATOR)
.add(TFMGBlocks.TRANSFORMER)
.add(TFMGBlocks.ELECTRICAL_SWITCH)
.add(TFMGBlocks.DIODE)
.add(TFMGBlocks.POTENTIOMETER)
.add(TFMGBlocks.ELECTRIC_PUMP)
.add(TFMGBlocks.LIGHT_BULB)
.add(TFMGBlocks.BRASS_CABLE_HUB)
.add(TFMGBlocks.SEGMENTED_DISPLAY)
.add(TFMGBlocks.CONVERTER)
.add(TFMGBlocks.TRAFFIC_LIGHT)
.add(TFMGItems.COPPER_SPOOL)
.add(TFMGItems.ALUMINUM_SPOOL)
;
HELPER.addToTag(CHEMICAL_VAT)
.add(TFMGBlocks.STEEL_CHEMICAL_VAT)
.add(TFMGBlocks.CAST_IRON_CHEMICAL_VAT)
.add(TFMGBlocks.FIREPROOF_CHEMICAL_VAT)
.add(TFMGBlocks.INDUSTRIAL_MIXER)
.add(TFMGBlocks.ELECTRODE_HOLDER)
.add(TFMGItems.COPPER_ELECTRODE)
.add(TFMGItems.ZINC_ELECTRODE)
.add(TFMGItems.GRAPHITE_ELECTRODE)
.add(TFMGItems.MIXER_BLADE)
.add(TFMGItems.CENTRIFUGE)
;
}
}

View File

@@ -84,6 +84,7 @@ import com.drmangotea.tfmg.content.machinery.misc.machine_input.MachineInputBloc
import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackBlockEntity; import com.drmangotea.tfmg.content.machinery.misc.smokestack.SmokestackBlockEntity;
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineBlockEntity; import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineBlockEntity;
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineRenderer; import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineRenderer;
import com.drmangotea.tfmg.content.machinery.misc.winding_machine.WindingMachineVisual;
import com.drmangotea.tfmg.content.machinery.oil_processing.distillation_tower.controller.DistillationControllerBlockEntity; import com.drmangotea.tfmg.content.machinery.oil_processing.distillation_tower.controller.DistillationControllerBlockEntity;
import com.drmangotea.tfmg.content.machinery.oil_processing.distillation_tower.controller.DistillationControllerRenderer; import com.drmangotea.tfmg.content.machinery.oil_processing.distillation_tower.controller.DistillationControllerRenderer;
import com.drmangotea.tfmg.content.machinery.oil_processing.distillation_tower.output.DistillationOutputBlockEntity; import com.drmangotea.tfmg.content.machinery.oil_processing.distillation_tower.output.DistillationOutputBlockEntity;
@@ -536,7 +537,7 @@ public class TFMGBlockEntities {
public static final BlockEntityEntry<WindingMachineBlockEntity> WINDING_MACHINE = REGISTRATE public static final BlockEntityEntry<WindingMachineBlockEntity> WINDING_MACHINE = REGISTRATE
.blockEntity("winding_machine", WindingMachineBlockEntity::new) .blockEntity("winding_machine", WindingMachineBlockEntity::new)
.visual(() -> OrientedRotatingVisual.of(AllPartialModels.SHAFT_HALF),true) .visual(() -> WindingMachineVisual::new,true)
.validBlocks(TFMGBlocks.WINDING_MACHINE) .validBlocks(TFMGBlocks.WINDING_MACHINE)
.renderer(() -> WindingMachineRenderer::new) .renderer(() -> WindingMachineRenderer::new)
.register(); .register();

View File

@@ -6,7 +6,7 @@ import com.drmangotea.tfmg.base.TFMGTiers;
import com.drmangotea.tfmg.content.decoration.gearbox.SteelVerticalGearboxItem; import com.drmangotea.tfmg.content.decoration.gearbox.SteelVerticalGearboxItem;
import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnection; import com.drmangotea.tfmg.content.electricity.connection.cables.CableConnection;
import com.drmangotea.tfmg.content.electricity.debug.DebugCinderBlockItem; import com.drmangotea.tfmg.content.electricity.debug.DebugCinderBlockItem;
import com.drmangotea.tfmg.content.electricity.electrians_wrench.ElectriciansWrenchItem; import com.drmangotea.tfmg.content.electricity.configuration_wrench.ElectriciansWrenchItem;
import com.drmangotea.tfmg.content.electricity.measurement.MultimeterItem; import com.drmangotea.tfmg.content.electricity.measurement.MultimeterItem;
import com.drmangotea.tfmg.content.electricity.utilities.fuse_block.FuseItem; import com.drmangotea.tfmg.content.electricity.utilities.fuse_block.FuseItem;
import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorItem; import com.drmangotea.tfmg.content.electricity.utilities.resistor.ResistorItem;
@@ -35,6 +35,7 @@ import com.simibubi.create.foundation.data.CreateRegistrate;
import com.tterrag.registrate.builders.ItemBuilder; import com.tterrag.registrate.builders.ItemBuilder;
import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.DataIngredient;
import com.tterrag.registrate.util.entry.ItemEntry; import com.tterrag.registrate.util.entry.ItemEntry;
import com.tterrag.registrate.util.entry.RegistryEntry;
import dev.engine_room.flywheel.lib.model.baked.PartialModel; import dev.engine_room.flywheel.lib.model.baked.PartialModel;
import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeCategory;
import net.minecraft.tags.TagKey; import net.minecraft.tags.TagKey;
@@ -43,7 +44,9 @@ import net.minecraft.world.level.block.Blocks;
import net.minecraftforge.common.Tags; import net.minecraftforge.common.Tags;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import static com.drmangotea.tfmg.TFMG.REGISTRATE; import static com.drmangotea.tfmg.TFMG.REGISTRATE;
import static com.drmangotea.tfmg.base.TFMGBuilderTransformers.COLORS; import static com.drmangotea.tfmg.base.TFMGBuilderTransformers.COLORS;
@@ -253,9 +256,9 @@ public class TFMGItems {
.properties(p -> p.stacksTo(1)) .properties(p -> p.stacksTo(1))
.register(); .register();
static {
multimeters(); public static final Map<String, RegistryEntry<MultimeterItem>> MULTIMETERS = multimeters();
}
public static final ItemEntry<MultimeterItem> MULTIMETER = REGISTRATE.item("multimeter", MultimeterItem::new) public static final ItemEntry<MultimeterItem> MULTIMETER = REGISTRATE.item("multimeter", MultimeterItem::new)
.register(); .register();
@@ -408,13 +411,16 @@ public class TFMGItems {
.register(); .register();
} }
public static void multimeters() { public static Map<String, RegistryEntry<MultimeterItem>> multimeters() {
Map<String, RegistryEntry<MultimeterItem>> map = new HashMap<>();
for (String color : COLORS) { for (String color : COLORS) {
REGISTRATE.item(color + "_multimeter", MultimeterItem::new)
.register(); map.put(color,REGISTRATE.item(color + "_multimeter", MultimeterItem::new)
.register());
} }
return map;
} }
public static ItemBuilder<SpoolItem, CreateRegistrate> spoolItem(String name, PartialModel model, int barColor, CableConnection.CableType type) { public static ItemBuilder<SpoolItem, CreateRegistrate> spoolItem(String name, PartialModel model, int barColor, CableConnection.CableType type) {

View File

@@ -7,8 +7,8 @@ import com.drmangotea.tfmg.content.electricity.base.ConnectionPacket;
import com.drmangotea.tfmg.content.electricity.base.NetworkUpdatePacket; import com.drmangotea.tfmg.content.electricity.base.NetworkUpdatePacket;
import com.drmangotea.tfmg.content.electricity.base.UpdateInFrontPacket; import com.drmangotea.tfmg.content.electricity.base.UpdateInFrontPacket;
import com.drmangotea.tfmg.content.electricity.connection.cables.CablePlacePacket; import com.drmangotea.tfmg.content.electricity.connection.cables.CablePlacePacket;
import com.drmangotea.tfmg.content.electricity.connection.cables.CableRemovalPacket; import com.drmangotea.tfmg.content.electricity.configuration_wrench.ElectriciansWrenchPacket;
import com.drmangotea.tfmg.content.electricity.electrians_wrench.ElectriciansWrenchPacket; import com.drmangotea.tfmg.content.engines.engine_controller.TransmissionRemovePacket;
import com.drmangotea.tfmg.content.engines.engine_controller.packets.*; import com.drmangotea.tfmg.content.engines.engine_controller.packets.*;
import com.drmangotea.tfmg.content.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonPacket; import com.drmangotea.tfmg.content.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonPacket;
import com.drmangotea.tfmg.content.items.weapons.quad_potato_cannon.QuadPotatoCannonPacket; import com.drmangotea.tfmg.content.items.weapons.quad_potato_cannon.QuadPotatoCannonPacket;
@@ -42,7 +42,7 @@ public enum TFMGPackets {
VAT_EVALUATION(VatEvaluationPacket.class, VatEvaluationPacket::new, PLAY_TO_CLIENT), VAT_EVALUATION(VatEvaluationPacket.class, VatEvaluationPacket::new, PLAY_TO_CLIENT),
COKE_OVEN_PACKET(CokeOvenPacket.class, CokeOvenPacket::new, PLAY_TO_CLIENT), COKE_OVEN_PACKET(CokeOvenPacket.class, CokeOvenPacket::new, PLAY_TO_CLIENT),
UPDATE_IN_FRONT_PACKET(UpdateInFrontPacket.class, UpdateInFrontPacket::new, PLAY_TO_CLIENT), UPDATE_IN_FRONT_PACKET(UpdateInFrontPacket.class, UpdateInFrontPacket::new, PLAY_TO_CLIENT),
CABLE_PACKET(CableRemovalPacket.class, CableRemovalPacket::new, PLAY_TO_CLIENT), TRANSMISSION_REMOVE(TransmissionRemovePacket.class, TransmissionRemovePacket::new, PLAY_TO_CLIENT),
CABLE_PLACE_PACKET(CablePlacePacket.class, CablePlacePacket::new, PLAY_TO_CLIENT), CABLE_PLACE_PACKET(CablePlacePacket.class, CablePlacePacket::new, PLAY_TO_CLIENT),
ELECTRICIANS_WRENCH_PACKET(ElectriciansWrenchPacket.class, ElectriciansWrenchPacket::new, PLAY_TO_SERVER), ELECTRICIANS_WRENCH_PACKET(ElectriciansWrenchPacket.class, ElectriciansWrenchPacket::new, PLAY_TO_SERVER),
ENGINE_CONTROLLER_INPUT(EngineControllerInputPacket.class, EngineControllerInputPacket::new, PLAY_TO_SERVER), ENGINE_CONTROLLER_INPUT(EngineControllerInputPacket.class, EngineControllerInputPacket::new, PLAY_TO_SERVER),

View File

@@ -89,6 +89,7 @@ public class TFMGPartialModels {
MIXER = block("industrial_mixer/mixer"), MIXER = block("industrial_mixer/mixer"),
MIXER_SHAFT = block("industrial_mixer/mixer_shaft"), MIXER_SHAFT = block("industrial_mixer/mixer_shaft"),
ENGINE_GENERATOR = block("engine_upgrades/generator"), ENGINE_GENERATOR = block("engine_upgrades/generator"),
TRANSMISSION = PartialModel.of(TFMG.asResource("item/transmission_model")),
TURBO = block("engine_upgrades/turbo"), TURBO = block("engine_upgrades/turbo"),
TURBO_PROPELLER = block("engine_upgrades/turbo_propeller"), TURBO_PROPELLER = block("engine_upgrades/turbo_propeller"),
GOLDEN_TURBO = block("engine_upgrades/golden_turbo"), GOLDEN_TURBO = block("engine_upgrades/golden_turbo"),

View File

@@ -80,6 +80,9 @@
"death.attack.tfmg.acid": "%1$s took an acid bath", "death.attack.tfmg.acid": "%1$s took an acid bath",
"death.attack.tfmg.acid.player": "%1$s took an acid bath", "death.attack.tfmg.acid.player": "%1$s took an acid bath",
"death.attack.tfmg.blast_furnace": "%1$s was turned in carbon steel",
"death.attack.tfmg.blast_furnace.player": "%1$s was thrown into a blast furnace",
"create.tooltip.fuse": "Rating: %1$s", "create.tooltip.fuse": "Rating: %1$s",
"create.tooltip.resistor": "Resistance: %1$s", "create.tooltip.resistor": "Resistance: %1$s",
"create.tooltip.coils": "Turns: %1$s", "create.tooltip.coils": "Turns: %1$s",

View File

@@ -7,9 +7,9 @@
}, },
"elements": [ "elements": [
{ {
"from": [5, 11, 4], "from": [5, 11, 3],
"to": [11, 14, 13], "to": [11, 14, 12],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [3, 3, 4.5, 6], "rotation": 270, "texture": "#2"}, "north": {"uv": [3, 3, 4.5, 6], "rotation": 270, "texture": "#2"},
"east": {"uv": [1.5, 7.5, 0, 3], "rotation": 90, "texture": "#2"}, "east": {"uv": [1.5, 7.5, 0, 3], "rotation": 90, "texture": "#2"},
@@ -20,9 +20,9 @@
} }
}, },
{ {
"from": [5, 11, 3], "from": [5, 11, 2],
"to": [10, 14, 4], "to": [10, 14, 3],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [7.5, 0, 9, 2.5], "rotation": 270, "texture": "#2"}, "north": {"uv": [7.5, 0, 9, 2.5], "rotation": 270, "texture": "#2"},
"east": {"uv": [9, 2.5, 7.5, 2], "rotation": 90, "texture": "#2"}, "east": {"uv": [9, 2.5, 7.5, 2], "rotation": 90, "texture": "#2"},
@@ -33,9 +33,9 @@
} }
}, },
{ {
"from": [4, 11, 13], "from": [4, 11, 12],
"to": [12, 15, 15], "to": [12, 15, 14],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [4.5, 0, 6.5, 4], "rotation": 270, "texture": "#2"}, "north": {"uv": [4.5, 0, 6.5, 4], "rotation": 270, "texture": "#2"},
"east": {"uv": [11, 2, 9, 1], "rotation": 90, "texture": "#2"}, "east": {"uv": [11, 2, 9, 1], "rotation": 90, "texture": "#2"},
@@ -46,9 +46,9 @@
} }
}, },
{ {
"from": [4, 15, 8], "from": [4, 15, 7],
"to": [12, 15, 10], "to": [12, 15, 9],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [0, 0, 0, 4], "rotation": 270, "texture": "#2"}, "north": {"uv": [0, 0, 0, 4], "rotation": 270, "texture": "#2"},
"east": {"uv": [0, 1, 0, 0], "rotation": 90, "texture": "#2"}, "east": {"uv": [0, 1, 0, 0], "rotation": 90, "texture": "#2"},
@@ -59,9 +59,9 @@
} }
}, },
{ {
"from": [12, 11, 8], "from": [12, 11, 7],
"to": [12, 15, 10], "to": [12, 15, 9],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"}, "north": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"},
"east": {"uv": [11, 0, 9, 1], "rotation": 90, "texture": "#2"}, "east": {"uv": [11, 0, 9, 1], "rotation": 90, "texture": "#2"},
@@ -72,9 +72,9 @@
} }
}, },
{ {
"from": [4, 11, 8], "from": [4, 11, 7],
"to": [4, 15, 10], "to": [4, 15, 9],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"}, "north": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"},
"east": {"uv": [11, 0, 9, 1], "rotation": 90, "texture": "#2"}, "east": {"uv": [11, 0, 9, 1], "rotation": 90, "texture": "#2"},
@@ -85,9 +85,9 @@
} }
}, },
{ {
"from": [12, 11, 11], "from": [12, 11, 10],
"to": [12, 15, 12], "to": [12, 15, 11],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"}, "north": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"},
"east": {"uv": [11, 1, 9, 0.5], "rotation": 90, "texture": "#2"}, "east": {"uv": [11, 1, 9, 0.5], "rotation": 90, "texture": "#2"},
@@ -98,9 +98,9 @@
} }
}, },
{ {
"from": [4, 15, 11], "from": [4, 15, 10],
"to": [12, 15, 12], "to": [12, 15, 11],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [0, 0, 0, 4], "rotation": 270, "texture": "#2"}, "north": {"uv": [0, 0, 0, 4], "rotation": 270, "texture": "#2"},
"east": {"uv": [0, 0.5, 0, 0], "rotation": 90, "texture": "#2"}, "east": {"uv": [0, 0.5, 0, 0], "rotation": 90, "texture": "#2"},
@@ -111,9 +111,9 @@
} }
}, },
{ {
"from": [4, 11, 11], "from": [4, 11, 10],
"to": [4, 15, 12], "to": [4, 15, 11],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"}, "north": {"uv": [0, 0, 2, 0], "rotation": 270, "texture": "#2"},
"east": {"uv": [11.5, 0.5, 9.5, 0], "rotation": 90, "texture": "#2"}, "east": {"uv": [11.5, 0.5, 9.5, 0], "rotation": 90, "texture": "#2"},
@@ -124,9 +124,9 @@
} }
}, },
{ {
"from": [11, 12, 4], "from": [11, 12, 3],
"to": [12, 13, 13], "to": [12, 13, 12],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [1.5, 10.5, 2, 11], "rotation": 270, "texture": "#2"}, "north": {"uv": [1.5, 10.5, 2, 11], "rotation": 270, "texture": "#2"},
"east": {"uv": [3.5, 7.5, 3, 3], "rotation": 90, "texture": "#2"}, "east": {"uv": [3.5, 7.5, 3, 3], "rotation": 90, "texture": "#2"},
@@ -137,9 +137,9 @@
} }
}, },
{ {
"from": [10, 12, 3], "from": [10, 12, 2],
"to": [12, 13, 4], "to": [12, 13, 3],
"rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 9]}, "rotation": {"angle": 0, "axis": "z", "origin": [9, 4, 8]},
"faces": { "faces": {
"north": {"uv": [3, 3.5, 3.5, 4.5], "rotation": 270, "texture": "#2"}, "north": {"uv": [3, 3.5, 3.5, 4.5], "rotation": 270, "texture": "#2"},
"east": {"uv": [3.5, 6, 3, 5.5], "rotation": 90, "texture": "#2"}, "east": {"uv": [3.5, 6, 3, 5.5], "rotation": 90, "texture": "#2"},

Some files were not shown because too many files have changed in this diff Show More