From b711aa2dc31a84ca5285f5a0743090fe98fc96eb Mon Sep 17 00:00:00 2001 From: DrMangoTea Date: Thu, 4 Jul 2024 20:07:35 +0200 Subject: [PATCH] 0.9.0 --- build.gradle | 37 +- gradle.properties | 6 +- settings.gradle | 5 +- .../2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 | 817 ++++- .../9047e4e94996e73e9dfde3738763637fb609e07e | 4 +- .../cast_iron_distillation_controller.json | 7 - .../cast_iron_distillation_output.json | 7 - .../blockstates/caution_block.json | 7 - .../blockstates/crude_oil_fluid.json | 7 - .../blockstates/red_caution_block.json | 14 +- .../steel_distillation_controller.json | 46 +- .../assets/createindustry/lang/en_ud.json | 295 -- .../assets/createindustry/lang/en_us.json | 458 --- .../models/block/caution_block.json | 6 - .../models/block/crude_oil_fluid.json | 5 - .../models/block/red_caution_block.json | 5 +- .../cast_iron_distillation_controller.json | 3 - .../item/cast_iron_distillation_output.json | 3 - .../models/item/caution_block.json | 3 - .../models/item/crude_oil_fluid_bucket.json | 6 - .../data/create/tags/blocks/casing.json | 3 +- .../create/tags/blocks/fan_transparent.json | 6 +- .../data/create/tags/blocks/safe_nbt.json | 3 +- .../create/tags/blocks/wrench_pickup.json | 5 +- .../data/create/tags/items/casing.json | 3 +- .../data/create/tags/items/create_ingots.json | 5 +- ...ars_from_ingots_aluminum_stonecutting.json | 32 - ...der_from_ingots_aluminum_stonecutting.json | 32 - ...ing_from_ingots_aluminum_stonecutting.json | 32 - ...l_bars_from_ingots_steel_stonecutting.json | 32 - ...ladder_from_ingots_steel_stonecutting.json | 32 - ...olding_from_ingots_steel_stonecutting.json | 32 - .../cast_iron_distillation_controller.json | 20 - .../blocks/cast_iron_distillation_output.json | 20 - .../loot_tables/blocks/caution_block.json | 20 - .../loot_tables/blocks/red_caution_block.json | 2 +- .../forge/tags/blocks/storage_blocks.json | 3 + .../forge/tags/items/buckets/gasoline.json | 1 - .../data/forge/tags/items/storage_blocks.json | 3 + .../tags/blocks/azalea_root_replaceable.json | 3 +- .../tags/blocks/beacon_base_blocks.json | 5 +- .../data/minecraft/tags/blocks/climbable.json | 5 +- .../blocks/dripstone_replaceable_blocks.json | 3 +- .../tags/blocks/lush_ground_replaceable.json | 3 +- .../minecraft/tags/blocks/mineable/axe.json | 29 +- .../tags/blocks/mineable/pickaxe.json | 231 +- .../tags/blocks/moss_replaceable.json | 3 +- .../tags/blocks/needs_iron_tool.json | 3 + .../tags/blocks/needs_stone_tool.json | 26 +- .../data/minecraft/tags/blocks/slabs.json | 6 +- .../data/minecraft/tags/blocks/stairs.json | 6 +- .../data/minecraft/tags/blocks/walls.json | 8 +- .../data/minecraft/tags/items/slabs.json | 6 +- .../data/minecraft/tags/items/stairs.json | 6 +- .../data/minecraft/tags/items/walls.json | 6 +- .../drmangotea/createindustry/CreateTFMG.java | 55 +- .../createindustry/CreateTFMGClient.java | 20 +- .../base/TFMGBuilderTransformers.java | 28 +- .../createindustry/base/TFMGLangPartials.java | 2 + .../createindustry/base/TFMGSpriteShifts.java | 29 +- .../base/{ => util}/spark/BlueSpark.java | 4 +- .../{ => util}/spark/BlueSparkRenderer.java | 2 +- .../base/{ => util}/spark/GreenSpark.java | 4 +- .../{ => util}/spark/GreenSparkRenderer.java | 2 +- .../base/{ => util}/spark/Spark.java | 2 +- .../base/{ => util}/spark/SparkRenderer.java | 2 +- .../flywheels/TFMGFlywheelBlock.java | 2 +- .../flywheels/TFMGFlywheelBlockEntity.java | 2 +- .../flywheels/TFMGFlywheelInstance.java | 2 +- .../flywheels/TFMGFlywheelRenderer.java | 2 +- .../blocks/deposits/FluidDepositBlock.java | 10 +- .../deposits/FluidDepositBlockEntity.java | 53 - .../SurfaceScannerBlockEntity.java | 18 +- .../encased/TFMGEncasedCogwheelBlock.java | 45 +- .../compact/CompactEngineBlockEntity.java | 26 +- .../diesel/DieselEngineBlockEntity.java | 42 +- .../engines/diesel/DieselEngineInstance.java | 4 +- .../engines/diesel/DieselEngineRenderer.java | 5 +- .../radial/RadialEngineBlockEntity.java | 11 +- .../engines/radial/RadialEngineRenderer.java | 2 +- .../large/LargeRadialEngineBlockEntity.java | 7 +- ...ty.java => AbstractEngineBlockEntity.java} | 24 +- .../small/UniversalEngineRenderer.java | 4 +- .../gasoline/GasolineEngineTileEntity.java | 9 +- .../small/lpg/LPGEngineTileEntity.java | 10 +- .../turbine/TurbineEngineTileEntity.java | 10 +- .../blocks/fluids/BurnableFluid.java | 91 - .../machines/exhaust/ExhaustBlockEntity.java | 1 + .../flarestack/FlarestackBlockEntity.java | 15 +- .../BlastFurnaceOutputBlock.java | 6 +- .../BlastFurnaceOutputBlockEntity.java | 380 +-- .../blast_furnace/BlastFurnaceRenderer.java | 22 - .../blast_furnace/MoltenMetalBlock.java | 25 +- .../casting_basin/CastingBasinBlock.java | 3 + .../CastingBasinBlockEntity.java | 7 + .../coke_oven/CokeOvenBlock.java | 4 + .../coke_oven/CokeOvenBlockEntity.java | 9 + .../FluidProcessingBlockEntity.java | 95 - .../DistillationControllerBlock.java | 83 - .../DistillationControllerBlockEntity.java | 229 -- .../DistillationOutputBlock.java | 42 - .../DistillationOutputBlockEntity.java | 427 --- .../DistillationTowerData.java | 403 --- .../IndustrialPipeBlock.java | 25 - .../distillery/DistilleryControllerBlock.java | 45 - .../DistilleryControllerBlockEntity.java | 217 -- .../distillery/DistilleryOutputBlock.java | 42 - .../DistilleryOutputBlockEntity.java | 406 --- .../base/PumpjackBaseBlockEntity.java | 39 +- .../pumpjack/hammer/PumpjackContraption.java | 2 +- .../normal/aluminum/AluminumPipeBlock.java | 9 +- .../aluminum/EncasedAluminumPipeBlock.java | 9 +- .../aluminum/GlassAluminumPipeBlock.java | 13 +- .../pipes/normal/brass/BrassPipeBlock.java | 9 +- .../normal/brass/EncasedBrassPipeBlock.java | 9 +- .../normal/brass/GlassBrassPipeBlock.java | 13 +- .../normal/cast_iron/CastIronPipeBlock.java | 9 +- .../cast_iron/EncasedCastIronPipeBlock.java | 9 +- .../cast_iron/GlassCastIronPipeBlock.java | 13 +- .../plastic/EncasedPlasticPipeBlock.java | 9 +- .../normal/plastic/GlassPlasticPipeBlock.java | 13 +- .../normal/plastic/PlasticPipeBlock.java | 8 +- .../normal/steel/EncasedSteelPipeBlock.java | 7 +- .../normal/steel/GlassSteelPipeBlock.java | 11 +- .../pipes/normal/steel/SteelPipeBlock.java | 7 +- .../blocks/tanks/SteelFluidTankRenderer.java | 10 +- .../blocks/tanks/SteelTankBlock.java | 39 +- .../blocks/tanks/SteelTankBlockEntity.java | 164 +- ...BucketItem.java => BadFuelBucketItem.java} | 8 +- .../createindustry/items/ScrewdriverItem.java | 7 +- .../explosives/napalm/NapalmBombBlock.java | 2 +- .../explosives/napalm/NapalmBombEntity.java | 30 +- .../explosives/napalm/NapalmBombRenderer.java | 2 +- .../thermite_grenades/ChemicalColor.java | 2 +- .../thermite_grenades/ThermiteGrenade.java | 8 +- .../ThermiteGrenadeItem.java | 2 +- .../ThermiteGrenadeRenderer.java | 2 +- .../thermite_grenades/fire/BlueFireBlock.java | 2 +- .../fire/GreenFireBlock.java | 2 +- .../fire/TFMGColoredFires.java | 2 +- .../QuadPotatoCannonItem.java | 5 +- .../QuadPotatoCannonItemRenderer.java | 2 +- .../QuadPotatoCannonRenderHandler.java | 15 +- .../AllOreFeatureConfigEntriesMixin.java | 7 +- .../mixins/FluidPropagatorMixin.java | 15 +- .../ponder/TFMGPonderIndex.java | 19 +- .../createindustry/ponder/TFMGPonderTag.java | 4 + .../recipes/casting/CastingRecipe.java | 4 +- .../AbstractDistillationRecipe.java | 264 -- .../AdvancedDistillationRecipe.java | 66 - .../distillation/DistillationRecipe.java | 80 +- .../jei/AdvancedDistillationCategory.java | 11 +- .../recipes/jei/CokingCategory.java | 2 - .../recipes/jei/DistillationCategory.java | 87 - .../createindustry/recipes/jei/TFMGJei.java | 13 +- .../recipes/jei/machines/Distillery.java | 121 - .../registry/TFMGBlockEntities.java | 373 ++- .../createindustry/registry/TFMGBlocks.java | 2887 ++++++++++------- .../{base => registry}/TFMGContraptions.java | 2 +- .../registry/TFMGEntityTypes.java | 30 +- .../createindustry/registry/TFMGFluids.java | 498 ++- .../createindustry/registry/TFMGItems.java | 227 +- .../registry/TFMGPaletteStoneTypes.java | 6 + .../registry/TFMGPartialModels.java | 23 +- .../registry/TFMGRecipeTypes.java | 14 +- .../createindustry/registry/TFMGShapes.java | 58 +- .../worldgen/TFMGConfiguredFeatures.java | 58 +- .../createindustry/worldgen/TFMGFeatures.java | 14 +- .../worldgen/TFMGLayeredPatterns.java | 34 +- src/main/resources/META-INF/mods.toml | 2 +- .../lang/default/interface.json | 61 +- .../createindustry/lang/default/ponders.json | 14 +- .../block/formwork_block/block_base.json | 6 +- .../block/{ => lo}/brass_pipe/casing.json | 0 .../{ => lo}/brass_pipe/connection/down.json | 0 .../{ => lo}/brass_pipe/connection/east.json | 0 .../{ => lo}/brass_pipe/connection/north.json | 0 .../{ => lo}/brass_pipe/connection/south.json | 0 .../{ => lo}/brass_pipe/connection/up.json | 0 .../{ => lo}/brass_pipe/connection/west.json | 0 .../block/{ => lo}/brass_pipe/core_x.json | 0 .../block/{ => lo}/brass_pipe/core_y.json | 0 .../block/{ => lo}/brass_pipe/core_z.json | 0 .../block/{ => lo}/brass_pipe/drain/down.json | 0 .../block/{ => lo}/brass_pipe/drain/east.json | 0 .../{ => lo}/brass_pipe/drain/north.json | 0 .../{ => lo}/brass_pipe/drain/south.json | 0 .../block/{ => lo}/brass_pipe/drain/up.json | 0 .../block/{ => lo}/brass_pipe/drain/west.json | 0 .../block/{ => lo}/brass_pipe/item.json | 0 .../block/{ => lo}/brass_pipe/rim/down.json | 0 .../block/{ => lo}/brass_pipe/rim/east.json | 0 .../block/{ => lo}/brass_pipe/rim/north.json | 0 .../block/{ => lo}/brass_pipe/rim/south.json | 0 .../block/{ => lo}/brass_pipe/rim/up.json | 0 .../block/{ => lo}/brass_pipe/rim/west.json | 0 .../brass_pipe/rim_connector/down.json | 0 .../brass_pipe/rim_connector/east.json | 0 .../brass_pipe/rim_connector/north.json | 0 .../brass_pipe/rim_connector/south.json | 0 .../{ => lo}/brass_pipe/rim_connector/up.json | 0 .../brass_pipe/rim_connector/west.json | 0 .../block/{ => lo}/brass_pipe/window.json | 0 .../block/{ => lo}/brass_pipe/window_alt.json | 0 .../block/pumpjack_hammer/block_wide.json | 2 +- .../steel_distillation_controller/block.json | 12 +- .../models/block/surface_scanner/block.json | 95 - .../models/block/surface_scanner/dial.json | 3 +- .../models/block/surface_scanner/item.json | 86 +- .../textures/block/bauxite_cap.png | Bin 257 -> 0 bytes .../textures/block/blast_furnace_slot.png | Bin 174 -> 0 bytes .../cast_iron_distillation_controller.png | Bin 19028 -> 0 bytes .../block/cast_iron_distillation_output.png | Bin 19028 -> 0 bytes .../coke_oven/coke_oven_front_top_on.png | Bin 415 -> 389 bytes .../textures/block/cut_bauxite.png | Bin 545 -> 0 bytes .../textures/block/cut_bauxite_brick.png | Bin 251 -> 0 bytes .../createindustry/textures/block/exhaust.png | Bin 385 -> 385 bytes .../block/heavy_casing_door_bottom.png | Bin 290 -> 265 bytes .../textures/block/heavy_casing_top.png | Bin 293 -> 297 bytes .../textures/block/heavy_machinery_casing.png | Bin 256 -> 252 bytes .../heavy_machinery_casing_connected.png | Bin 1845 -> 2343 bytes .../heavy_machinery_encased_cogwheel_side.png | Bin 276 -> 254 bytes ...hinery_encased_cogwheel_side_connected.png | Bin 398 -> 367 bytes ..._machinery_encased_cogwheel_side_large.png | Bin 242 -> 255 bytes .../textures/block/lead_block.png | Bin 264 -> 0 bytes .../textures/block/machine_input.png | Bin 19028 -> 0 bytes .../textures/block/napalm_bomb.png | Bin 19028 -> 0 bytes .../textures/block/polished_cut_bauxite.png | Bin 398 -> 0 bytes .../textures/block/pumpjack_crank.png | Bin 1098 -> 0 bytes .../steel_encased_cogwheel_side_connected.png | Bin 883 -> 767 bytes .../textures/block/surface_scanner.png | Bin 1027 -> 656 bytes .../createindustry/textures/fluid/air.png | Bin 11808 -> 0 bytes ..._fluid_bucket.png => crude_oil_bucket.png} | Bin .../textures/item/heavy_casing_door.png | Bin 325 -> 257 bytes .../textures/item/lead_ingot.png | Bin 266 -> 0 bytes src/main/resources/createindustry.mixins.json | 4 +- .../forge/biome_modifier/yeehaw.json | 2 +- .../full_block/black_concrete.json | 17 - .../full_block/black_concrete_q.json | 17 - .../full_block/blue_concrete.json | 17 - .../full_block/blue_concrete_q.json | 17 - .../full_block/brown_concrete.json | 17 - .../full_block/brown_concrete_q.json | 17 - .../full_block/cyan_concrete.json | 17 - .../full_block/cyan_concrete_q.json | 17 - .../full_block/gray_concrete.json | 17 - .../full_block/gray_concrete_q.json | 17 - .../full_block/green_concrete.json | 17 - .../full_block/green_concrete_q.json | 17 - .../full_block/light_blue_concrete.json | 17 - .../full_block/light_blue_concrete_q.json | 17 - .../full_block/light_gray_concrete.json | 17 - .../full_block/light_gray_concrete_q.json | 17 - .../full_block/lime_concrete.json | 17 - .../full_block/lime_concrete_q.json | 17 - .../full_block/magenta_concrete.json | 17 - .../full_block/magenta_concrete_q.json | 17 - .../full_block/orange_concrete.json | 17 - .../full_block/orange_concrete_q.json | 17 - .../full_block/pink_concrete.json | 17 - .../full_block/pink_concrete_q.json | 17 - .../full_block/purple_concrete.json | 17 - .../full_block/purple_concrete_q.json | 17 - .../full_block/red_concrete.json | 17 - .../full_block/red_concrete_q.json | 17 - .../full_block/white_concrete.json | 17 - .../full_block/white_concrete_q.json | 17 - .../full_block/yellow_concrete.json | 17 - .../full_block/yellow_concrete_q.json | 17 - .../crafting/blast_furnace_output.json | 2 +- .../crafting/coal_coke_from_block.json | 4 +- .../crude_oil.json | 28 +- .../crude_oil_no_naphtha.json} | 20 +- .../recipes/distillation/heavy_oil.json | 35 - .../recipes/distillation/naphtha.json | 35 - .../recipes/industrial_blasting/steel.json | 4 +- .../createindustry/recipes/mixing/cement.json | 2 +- .../recipes/mixing/concrete_mixture.json | 2 +- .../mixing/concrete_mixture_from_slag.json | 2 +- .../red_caution_block.json | 0 .../yellow_caution_block.json} | 2 +- 281 files changed, 4590 insertions(+), 7178 deletions(-) delete mode 100644 src/generated/resources/assets/createindustry/blockstates/cast_iron_distillation_controller.json delete mode 100644 src/generated/resources/assets/createindustry/blockstates/cast_iron_distillation_output.json delete mode 100644 src/generated/resources/assets/createindustry/blockstates/caution_block.json delete mode 100644 src/generated/resources/assets/createindustry/blockstates/crude_oil_fluid.json delete mode 100644 src/generated/resources/assets/createindustry/lang/en_ud.json delete mode 100644 src/generated/resources/assets/createindustry/lang/en_us.json delete mode 100644 src/generated/resources/assets/createindustry/models/block/caution_block.json delete mode 100644 src/generated/resources/assets/createindustry/models/block/crude_oil_fluid.json delete mode 100644 src/generated/resources/assets/createindustry/models/item/cast_iron_distillation_controller.json delete mode 100644 src/generated/resources/assets/createindustry/models/item/cast_iron_distillation_output.json delete mode 100644 src/generated/resources/assets/createindustry/models/item/caution_block.json delete mode 100644 src/generated/resources/assets/createindustry/models/item/crude_oil_fluid_bucket.json delete mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_bars_from_ingots_aluminum_stonecutting.json delete mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_ladder_from_ingots_aluminum_stonecutting.json delete mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json delete mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_bars_from_ingots_steel_stonecutting.json delete mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_ladder_from_ingots_steel_stonecutting.json delete mode 100644 src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_scaffolding_from_ingots_steel_stonecutting.json delete mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_distillation_controller.json delete mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_distillation_output.json delete mode 100644 src/generated/resources/data/createindustry/loot_tables/blocks/caution_block.json rename src/main/java/com/drmangotea/createindustry/base/{ => util}/spark/BlueSpark.java (97%) rename src/main/java/com/drmangotea/createindustry/base/{ => util}/spark/BlueSparkRenderer.java (98%) rename src/main/java/com/drmangotea/createindustry/base/{ => util}/spark/GreenSpark.java (97%) rename src/main/java/com/drmangotea/createindustry/base/{ => util}/spark/GreenSparkRenderer.java (98%) rename src/main/java/com/drmangotea/createindustry/base/{ => util}/spark/Spark.java (98%) rename src/main/java/com/drmangotea/createindustry/base/{ => util}/spark/SparkRenderer.java (98%) rename src/main/java/com/drmangotea/createindustry/blocks/decoration/{ => kinetics}/flywheels/TFMGFlywheelBlock.java (96%) rename src/main/java/com/drmangotea/createindustry/blocks/decoration/{ => kinetics}/flywheels/TFMGFlywheelBlockEntity.java (94%) rename src/main/java/com/drmangotea/createindustry/blocks/decoration/{ => kinetics}/flywheels/TFMGFlywheelInstance.java (96%) rename src/main/java/com/drmangotea/createindustry/blocks/decoration/{ => kinetics}/flywheels/TFMGFlywheelRenderer.java (96%) delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/deposits/FluidDepositBlockEntity.java rename src/main/java/com/drmangotea/createindustry/blocks/engines/small/{AbstractEngineTileEntity.java => AbstractEngineBlockEntity.java} (96%) delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/fluids/BurnableFluid.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/FluidProcessingBlockEntity.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlock.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlock.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlockEntity.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationTowerData.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/IndustrialPipeBlock.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryControllerBlock.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryControllerBlockEntity.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryOutputBlock.java delete mode 100644 src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryOutputBlockEntity.java rename src/main/java/com/drmangotea/createindustry/items/{CreosoteBucketItem.java => BadFuelBucketItem.java} (66%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/napalm/NapalmBombBlock.java (98%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/napalm/NapalmBombEntity.java (81%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/napalm/NapalmBombRenderer.java (97%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/thermite_grenades/ChemicalColor.java (55%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/thermite_grenades/ThermiteGrenade.java (94%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/thermite_grenades/ThermiteGrenadeItem.java (97%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/thermite_grenades/ThermiteGrenadeRenderer.java (97%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/thermite_grenades/fire/BlueFireBlock.java (99%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/thermite_grenades/fire/GreenFireBlock.java (99%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/explosives/thermite_grenades/fire/TFMGColoredFires.java (95%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/quad_potato_cannon/QuadPotatoCannonItem.java (97%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/quad_potato_cannon/QuadPotatoCannonItemRenderer.java (97%) rename src/main/java/com/drmangotea/createindustry/items/{gadgets => weapons}/quad_potato_cannon/QuadPotatoCannonRenderHandler.java (84%) delete mode 100644 src/main/java/com/drmangotea/createindustry/recipes/distillation/AbstractDistillationRecipe.java delete mode 100644 src/main/java/com/drmangotea/createindustry/recipes/distillation/AdvancedDistillationRecipe.java delete mode 100644 src/main/java/com/drmangotea/createindustry/recipes/jei/DistillationCategory.java delete mode 100644 src/main/java/com/drmangotea/createindustry/recipes/jei/machines/Distillery.java rename src/main/java/com/drmangotea/createindustry/{base => registry}/TFMGContraptions.java (90%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/casing.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/connection/down.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/connection/east.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/connection/north.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/connection/south.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/connection/up.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/connection/west.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/core_x.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/core_y.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/core_z.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/drain/down.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/drain/east.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/drain/north.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/drain/south.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/drain/up.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/drain/west.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/item.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim/down.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim/east.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim/north.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim/south.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim/up.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim/west.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim_connector/down.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim_connector/east.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim_connector/north.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim_connector/south.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim_connector/up.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/rim_connector/west.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/window.json (100%) rename src/main/resources/assets/createindustry/models/block/{ => lo}/brass_pipe/window_alt.json (100%) delete mode 100644 src/main/resources/assets/createindustry/models/block/surface_scanner/block.json delete mode 100644 src/main/resources/assets/createindustry/textures/block/bauxite_cap.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/blast_furnace_slot.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/cast_iron_distillation_controller.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/cast_iron_distillation_output.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/cut_bauxite.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/cut_bauxite_brick.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/lead_block.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/machine_input.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/napalm_bomb.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/polished_cut_bauxite.png delete mode 100644 src/main/resources/assets/createindustry/textures/block/pumpjack_crank.png delete mode 100644 src/main/resources/assets/createindustry/textures/fluid/air.png rename src/main/resources/assets/createindustry/textures/item/{crude_oil_fluid_bucket.png => crude_oil_bucket.png} (100%) delete mode 100644 src/main/resources/assets/createindustry/textures/item/lead_ingot.png delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete_q.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete.json delete mode 100644 src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete_q.json rename src/main/resources/data/createindustry/recipes/{fractional_distillation => distillation}/crude_oil.json (69%) rename src/main/resources/data/createindustry/recipes/{fractional_distillation/crude_oil_sus.json => distillation/crude_oil_no_naphtha.json} (65%) delete mode 100644 src/main/resources/data/createindustry/recipes/distillation/heavy_oil.json delete mode 100644 src/main/resources/data/createindustry/recipes/distillation/naphtha.json rename src/main/resources/data/createindustry/recipes/stonecutting/{ => caution_blocks}/red_caution_block.json (100%) rename src/main/resources/data/createindustry/recipes/stonecutting/{caution_block.json => caution_blocks/yellow_caution_block.json} (68%) diff --git a/build.gradle b/build.gradle index 93c779f6..785f2da8 100644 --- a/build.gradle +++ b/build.gradle @@ -4,11 +4,15 @@ buildscript { maven { url = 'https://maven.minecraftforge.net' } mavenCentral() jcenter() + maven { url = 'https://maven.parchmentmc.org' } maven { url = 'https://repo.spongepowered.org/repository/maven-public' } + } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true + classpath "org.parchmentmc:librarian:${librarian_version}" classpath "org.spongepowered:mixingradle:0.7-SNAPSHOT" + } } // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. @@ -18,12 +22,14 @@ plugins { id 'com.matthewprenger.cursegradle' version '1.4.0' } apply plugin: 'net.minecraftforge.gradle' +apply plugin: 'org.parchmentmc.librarian.forgegradle' apply plugin: 'org.spongepowered.mixin' + //mixin { // add sourceSets.main, "createindustry.refmap.json" //} -version = '0.7.0c-1.19.2' +version = '0.9.0b-1.19.2' group = 'com.drmangotea.createindustry' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'createindustry' @@ -32,7 +38,8 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(17) println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { - mappings channel: 'official', version: '1.19.2' + mappings channel: 'parchment', version: "${parchment_version}-${minecraft_version}" + // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Currently, this location cannot be changed from the default. @@ -101,7 +108,12 @@ sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { - + maven { + url = 'https://www.cursemaven.com' + content { + includeGroup "curse.maven" + } + } maven { // location of the maven that hosts JEI files since January 2023 // location of the maven for Vazkii's mods @@ -119,12 +131,25 @@ repositories { dependencies { - minecraft 'net.minecraftforge:forge:1.19.2-43.2.3' + minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" + compileOnly fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}") - implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") + implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${minecraft_version}:${flywheel_version}") - implementation fg.deobf("com.simibubi.create:create-${create_minecraft_version}:${create_version}:all") { transitive = false } + implementation fg.deobf("com.simibubi.create:create-${minecraft_version}:${create_version}:all") { transitive = false } + + + implementation fg.deobf("curse.maven:createaddition-439890:5070245") + implementation fg.deobf("curse.maven:zinclib-968773:5110339") + + implementation fg.deobf("curse.maven:mekanism-268560:4644795") + + implementation fg.deobf("curse.maven:selene-499980:4983974") + + implementation fg.deobf("curse.maven:spark-361579:4505309") + + //implementation fg.deobf("curse.maven:create-steam-n-rails-688231:5246888") compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-common-api:${jei_version}") compileOnly fg.deobf("mezz.jei:jei-${jei_minecraft_version}-forge-api:${jei_version}") diff --git a/gradle.properties b/gradle.properties index acc154b2..16310e38 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,10 +3,12 @@ org.gradle.daemon=false jei_minecraft_version = 1.19.2 jei_version = 11.4.0.274 +forge_version = 43.2.8 -create_minecraft_version = 1.19.2 -flywheel_minecraft_version = 1.19.2 +minecraft_version = 1.19.2 flywheel_version = 0.6.10-20 create_version = 0.5.1.f-45 +librarian_version = 1.+ +parchment_version = 2022.11.27 registrate_version = MC1.19-1.1.5 \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 3703f364..47f49eae 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,5 +2,8 @@ pluginManagement { repositories { gradlePluginPortal() maven { url = 'https://maven.minecraftforge.net/' } + + } -} \ No newline at end of file + +} diff --git a/src/generated/resources/.cache/2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 b/src/generated/resources/.cache/2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 index c4080766..deb3235b 100644 --- a/src/generated/resources/.cache/2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 +++ b/src/generated/resources/.cache/2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 @@ -1,9 +1,13 @@ -// 1.19.2 2024-01-12T20:54:31.7281576 Registrate Provider for createindustry [Recipes, Advancements, Loot tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +// 1.19.2 2024-07-03T15:07:29.6139549 Registrate Provider for createindustry [Recipes, Advancements, Loot tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +618a4fde84a56aca00c6990dbde278f8fb76bb1e assets/createindustry/blockstates/accumulator.json 50db526af77cf0ead08cadfd3f7daa8b84a40312 assets/createindustry/blockstates/air_intake.json 429437419b2ec98bd716e7ba15583b84da7488d5 assets/createindustry/blockstates/aluminum_bars.json 9e2417e479011e42ebf00685068e6b6f515f0b11 assets/createindustry/blockstates/aluminum_block.json +6d01a5ebdfe7b01419b524c170c347337a3f394c assets/createindustry/blockstates/aluminum_cable_hub.json +a369bdd4d280a25f088926a8193dfa8f6db23b18 assets/createindustry/blockstates/aluminum_cogwheel.json 73ea21f494b17ab22570f9a711ad34750e856bfa assets/createindustry/blockstates/aluminum_fluid_valve.json e6f974f62b1cb82dadf863eb5a64a6a78e68ae6e assets/createindustry/blockstates/aluminum_flywheel.json +2e52e4039e36ca6579e7bbbc4235403f0b7a0e85 assets/createindustry/blockstates/aluminum_frame.json 4cd51bd466f090170d7be0b404c1667990b0be63 assets/createindustry/blockstates/aluminum_ladder.json 9c734fc64a47d08dbdcb0c9be3400afa5bfc4b8e assets/createindustry/blockstates/aluminum_mechanical_pump.json ebced038a54e27ddedbf1cf1b6d922e5fa432e27 assets/createindustry/blockstates/aluminum_pipe.json @@ -18,30 +22,41 @@ e464e2a4f734edddc561ed16c6ef59cff24f7c48 assets/createindustry/blockstates/aspha 93a81066656b7dd0e3ddfa5c0acef85773691cbe assets/createindustry/blockstates/black_concrete_stairs.json e7be4ba03250473eed90673c18fa8ff499df4b2e assets/createindustry/blockstates/black_concrete_wall.json 9444760b497a6f7a8b01dbbb9ef3c6d1c4cce578 assets/createindustry/blockstates/blast_furnace_output.json +7d985fc27492c127bdb8dc5cc7fa4d4038ca92fe assets/createindustry/blockstates/blue_caution_block.json f844fd0e8d4d18f36fc3cf4e8872f1427f273101 assets/createindustry/blockstates/blue_concrete.json c45124689815c652aae0f78c9be6eb6e28d4d5d4 assets/createindustry/blockstates/blue_concrete_slab.json b1cbcdfd1c4d9db7fb6a8d11ab91ffa9e877178a assets/createindustry/blockstates/blue_concrete_stairs.json 77980f7474030b6feefcc8b5d9d300c9bb69c4d6 assets/createindustry/blockstates/blue_concrete_wall.json +8a90b5e764b9d6a50683ec9a48daee16d0d518ce assets/createindustry/blockstates/brass_cable_hub.json b41a25394267c8a67f92ce325e19055a2b9827b1 assets/createindustry/blockstates/brass_fluid_valve.json +29fe5e1a0817094d9d9ebf42e78dd1fdc1810bb2 assets/createindustry/blockstates/brass_frame.json eab0ebf7279ed3be599e766fa1acd9c2640eb841 assets/createindustry/blockstates/brass_mechanical_pump.json 5031dc5aaf42a50a63b13a3e0d820c4880b95eb5 assets/createindustry/blockstates/brass_pipe.json f3f7d901b28c30fd97ef1f5474fd02ba785cda72 assets/createindustry/blockstates/brass_smart_fluid_pipe.json +b106d5f22035e94359d478f7dcc8bcc9e9f74e0c assets/createindustry/blockstates/brass_truss.json +dff59e41674da50cb45e678c0d276462fd8a5ee8 assets/createindustry/blockstates/brown_caution_block.json 79495b325e63b7d851e381cd0f8de21cd270fb96 assets/createindustry/blockstates/brown_concrete.json 382d3bb62766da361c080c3072196f544fc5cc67 assets/createindustry/blockstates/brown_concrete_slab.json 8e06983a11a2c6181014b5136769f483673818c7 assets/createindustry/blockstates/brown_concrete_stairs.json 1353f11b5ef09f4e00f8b09e73530db2db3c9c64 assets/createindustry/blockstates/brown_concrete_wall.json +1c79e0f642892cd18b26ba6f7f03884515a9b068 assets/createindustry/blockstates/cable_connector.json +00b4e27e34656d2df6f26126644f2e8b502ad7b7 assets/createindustry/blockstates/cable_tube.json +432108d884f509ee34c276202986439db085aa9a assets/createindustry/blockstates/capacitor.json 8351fe2e2c5e6c5e366668df46805d17b653abce assets/createindustry/blockstates/casting_basin.json 252e0dc036bb9533c18e864090ff3c9f0e8a87f6 assets/createindustry/blockstates/casting_spout.json +282d641c650a2bf15f89d9a9bb1105cde810b895 assets/createindustry/blockstates/cast_iron_bars.json baa8699516c5a31748ad83fef65c43a4c304f8fd assets/createindustry/blockstates/cast_iron_block.json -75542a94db5d08b736dc3942696d24d0a9bbc529 assets/createindustry/blockstates/cast_iron_distillation_controller.json -be36f2a5275f631c638540e1c0f5196160a1b3dd assets/createindustry/blockstates/cast_iron_distillation_output.json a98f722172fb5b746d204319003e791a6f1ebfe1 assets/createindustry/blockstates/cast_iron_fluid_valve.json 39a1bc487c9cba5bc6b32ac0894045990d86078a assets/createindustry/blockstates/cast_iron_flywheel.json +5ff6a7dc5e061d704f58384449bac8520d7ae15e assets/createindustry/blockstates/cast_iron_frame.json +a7455513820ce51a45de9d8667db9f188cbf1b50 assets/createindustry/blockstates/cast_iron_ladder.json b6ced97eb0587a10c67856f7955dca35d8b20706 assets/createindustry/blockstates/cast_iron_mechanical_pump.json ed7d5676c02a397baf4f7b70c522eae9cca743c3 assets/createindustry/blockstates/cast_iron_pipe.json 0983bfcfcdcab4e82f3153729ef31fdb1a0cf06e assets/createindustry/blockstates/cast_iron_smart_fluid_pipe.json -41fc862534cfef76f81d0a209bb88bfe649fab42 assets/createindustry/blockstates/caution_block.json +07ea6ae500425c729d48dcf9416a21cf080880d3 assets/createindustry/blockstates/cast_iron_truss.json c0758abf43c65fe23bf2a16cd74759d084228751 assets/createindustry/blockstates/cement.json +5d0f01a919a332a3c8a4a55fb5844af446fdb8d7 assets/createindustry/blockstates/cinderflour_block.json +be79fa6706ed754f2aaedc700813864cca116a3c assets/createindustry/blockstates/cinder_block.json eb886624f3c4ebc6ee27a1d1767a08fbb31334db assets/createindustry/blockstates/coal_coke_block.json ca4b91d51ddbf905cedfb0af43999b463858705d assets/createindustry/blockstates/coke_oven.json d04c82112220b535a28e33d6116656409c8ddd8c assets/createindustry/blockstates/compact_engine.json @@ -49,14 +64,22 @@ d04c82112220b535a28e33d6116656409c8ddd8c assets/createindustry/blockstates/compa 37f3bb963b224ba9adb2e35a99f201b2be8143cd assets/createindustry/blockstates/concrete_slab.json 05d99d329620179b8842da32534dadc133186885 assets/createindustry/blockstates/concrete_stairs.json 8487301395b2d39f8bf25938c64ea53f78b60043 assets/createindustry/blockstates/concrete_wall.json +cc3835c2d69f9139afa37bb5828ac1d9ef070774 assets/createindustry/blockstates/converter.json b1a929cbb34d608818f4ffd58999a91dc5053e80 assets/createindustry/blockstates/cooling_fluid.json +2d5dee02926310a74859009610e21a6e6a06032b assets/createindustry/blockstates/copper_cable_hub.json +cadc46a6502aba36fea4a80d387fffbbacc79f44 assets/createindustry/blockstates/copper_coil.json 130e2e729febb20408fd35a6b2633934b5666a38 assets/createindustry/blockstates/copper_encased_aluminum_pipe.json 876be907efabb2cce415e30f076c6250845f765b assets/createindustry/blockstates/copper_encased_brass_pipe.json f3e211d8fc19d912a88209dbefcd67781f470ba6 assets/createindustry/blockstates/copper_encased_cast_iron_pipe.json 13c1a812e614c19181459976349f515424d56418 assets/createindustry/blockstates/copper_encased_plastic_pipe.json 654ef6ff74fff86439d662bad6273b82696ad1ba assets/createindustry/blockstates/copper_encased_steel_pipe.json +c42ace0adc74764648547d759c45f38a7d5c19a3 assets/createindustry/blockstates/copper_frame.json +0ecb04c7dbf85c128717808e1c1d9e41aff00849 assets/createindustry/blockstates/copper_truss.json +b0244621ae12d6926f9df514ed8b50920eb2d81e assets/createindustry/blockstates/copycat_cable_base.json +3dff9e1ec59415779195d2abfa9f07bc17b428a1 assets/createindustry/blockstates/copycat_cable_block.json +11c2546cc8c8927ed222d2ed68491046fd9116b8 assets/createindustry/blockstates/creative_generator.json 543085791f2c28ec759ccdf34b0ddde4a7d95132 assets/createindustry/blockstates/creosote.json -893fed4d652e22be7bce36936254bf0f6774d372 assets/createindustry/blockstates/crude_oil_fluid.json +36407fd2d4cfe17f81c50afa542d67caf9f1ba63 assets/createindustry/blockstates/crude_oil.json ec39d103576d7ad0c2a62d9d5decc3dffd73a1ed assets/createindustry/blockstates/cut_bauxite.json c0129a2aff5a4f022894959872341a8fd0f97d49 assets/createindustry/blockstates/cut_bauxite_bricks.json c2922f9b346fd45cd49f79636cf7cbe0bd98fff4 assets/createindustry/blockstates/cut_bauxite_brick_slab.json @@ -65,59 +88,106 @@ c7e2725c557419d6a8f56b649f2c085c8b0e1f5b assets/createindustry/blockstates/cut_b 7f72f84889fd6510f6a2dae7ae9cb88db1004f4d assets/createindustry/blockstates/cut_bauxite_slab.json cd2c4c910a23d184be8bf3da3fe54e7957b5fb76 assets/createindustry/blockstates/cut_bauxite_stairs.json 05cb51f352da64e65a6f200541272032afd480b1 assets/createindustry/blockstates/cut_bauxite_wall.json +71619d1b5ab8f23904cf055245c0112cb57070dd assets/createindustry/blockstates/cut_galena.json +31f10872c1ba7ef0bd20034b477b913a53c669de assets/createindustry/blockstates/cut_galena_bricks.json +18b0727c0bc90da770b65ac6925357433ef89db5 assets/createindustry/blockstates/cut_galena_brick_slab.json +9e9c66d7ad7ef16dd96f8f83f0862f5ea0ca195f assets/createindustry/blockstates/cut_galena_brick_stairs.json +773854fd07c4fd02f99e62803b376519efb01e77 assets/createindustry/blockstates/cut_galena_brick_wall.json +b32b447293c43df608a05e44ec8d22662a3a990f assets/createindustry/blockstates/cut_galena_slab.json +f727c213b8161eae6160f4b98a50190a1e8130fc assets/createindustry/blockstates/cut_galena_stairs.json +0c07e59d3dd558e14586ad1d085eedad0c929286 assets/createindustry/blockstates/cut_galena_wall.json +92c86bbc20680d5d86698017b6ea0f90e1015f3f assets/createindustry/blockstates/cyan_caution_block.json d5ea02135a0386bad895f38b993c21544121fb39 assets/createindustry/blockstates/cyan_concrete.json c3e330ed44a83e3784695845db0dbe0d919da650 assets/createindustry/blockstates/cyan_concrete_slab.json ae2e5410147ee522e6cc88ff87a03da9f975ae49 assets/createindustry/blockstates/cyan_concrete_stairs.json 342bfe718c60403eb1da43b47544156157637bf0 assets/createindustry/blockstates/cyan_concrete_wall.json +53ebd0539efadc6a20f3c33b1de4be4f1bd196ad assets/createindustry/blockstates/deepslate_lead_ore.json +53ddb879a6ec1b3e5467b51e22091db32c9343f5 assets/createindustry/blockstates/deepslate_lithium_ore.json +fa724d9f51d730db6b04f199ed5361dadefc9ad2 assets/createindustry/blockstates/deepslate_nickel_ore.json +723bb74be2b23f68e035c9d85dcd66ca1694ad77 assets/createindustry/blockstates/diagonal_cable_block.json feb128b184a60f3cd2f69d089200f905c763a684 assets/createindustry/blockstates/diesel.json 23c43f8889ebbf0ae0793721cc980749ebe31fbb assets/createindustry/blockstates/diesel_engine.json f845e774564ba3cf1ce6994176ac98f53d003dd7 assets/createindustry/blockstates/diesel_engine_expansion.json +476605b77826e915e3d4f70c0699f94dda08678f assets/createindustry/blockstates/electric_casing.json +e8ce7c83197ea374c2708efc98cc32b637cdeda0 assets/createindustry/blockstates/electric_motor.json +9d919d3281900cd251a118220b39390d948e8e7f assets/createindustry/blockstates/energy_meter.json f8cabee32628fc2f2369a43c404821e1738d25b9 assets/createindustry/blockstates/exhaust.json a925b70e3c26e20525b6929edf02565e2d02baf5 assets/createindustry/blockstates/factory_floor.json 725c924b0ec371efff37b1421a14228de9d88717 assets/createindustry/blockstates/factory_floor_slab.json e5f2c9437f90c1f10f8eaabb26864aa857a1919a assets/createindustry/blockstates/factory_floor_stairs.json +5db0139dd45b28282c59f723f80b1fb3d1524981 assets/createindustry/blockstates/firebox.json 80076f6c8d4152eaa9e9922d0c7dd2f99749cb5e assets/createindustry/blockstates/fireclay.json 99208a5e408102130b13f510ccebfaeb44290826 assets/createindustry/blockstates/fireproof_bricks.json cc2530ffc221ed2a1c2fd35526f720b40a94628b assets/createindustry/blockstates/fireproof_brick_reinforcement.json db10fa8e367e21a0e2a8031ce119acc3146580f6 assets/createindustry/blockstates/flarestack.json 37df5306e8020d0993c2db8008b65975b84912a2 assets/createindustry/blockstates/formwork_block.json d49ae2f7556fb9d5892399783e4a51554162761f assets/createindustry/blockstates/fossilstone.json +c6acb588494564b6c3a8d2a14430780e3c2c403a assets/createindustry/blockstates/galena.json +a833fe9e6ecd382ff3d1c601398f915496bcfad7 assets/createindustry/blockstates/galena_pillar.json +5dfb2a3abfe4b486c56e3aac4c1f00598a7e4381 assets/createindustry/blockstates/galvanic_cell.json a63ad8c657fa49551fc4552096f52ab8bcdbb595 assets/createindustry/blockstates/gasoline.json 4592263bfa62c44e0720cf5b90184b32bf9ead15 assets/createindustry/blockstates/gasoline_engine.json 12ecb60f467a7c95d0291ff3da3ead73b419e2bc assets/createindustry/blockstates/gasoline_engine_back.json +c681c3deadb71f7cf4792696c7c43b674cd99e25 assets/createindustry/blockstates/generator.json 730fed5bb54be2e8cd749257e0ae43e1820f5217 assets/createindustry/blockstates/glass_aluminum_pipe.json 2a08e710383b732d23e653bbb80366360f1d45a6 assets/createindustry/blockstates/glass_brass_pipe.json 15bdcea8e00b0c7a672079ced5cf7275d20fa4ec assets/createindustry/blockstates/glass_cast_iron_pipe.json d05eed0b249ba54c5b5fa743dcbb90d2ca1fd3cf assets/createindustry/blockstates/glass_plastic_pipe.json 6b25d8de2a655bfd06e419697a56ca4cd9ef9f7f assets/createindustry/blockstates/glass_steel_pipe.json +cf781c443b98a17822877ba96509f24045c91f3b assets/createindustry/blockstates/gray_caution_block.json 1a1af14c3e856776f2bd78e0810524fcb4432601 assets/createindustry/blockstates/gray_concrete.json 60144dca8fe0d44811b7c0fb14ea4f2c8c209459 assets/createindustry/blockstates/gray_concrete_slab.json e5b90d9ab4cb2d06ea8f34f31869307c873665e3 assets/createindustry/blockstates/gray_concrete_stairs.json 34e1a0bce6304e3bba5ce8da72ffbc35003b0761 assets/createindustry/blockstates/gray_concrete_wall.json +34dc30be4fee34f6aae0b1e0b053dfc625e70622 assets/createindustry/blockstates/green_caution_block.json a00b1a62ac48d461e6df44a25bf5e71d01c592ba assets/createindustry/blockstates/green_concrete.json 5a2df8dabebe2317557b27f8579f01a2e21c3b7d assets/createindustry/blockstates/green_concrete_slab.json 22b9bdcaffdb56db35006a45b37a53f4e88c4f44 assets/createindustry/blockstates/green_concrete_stairs.json f052043e59444d20616a9984360d05fb2edc0d7d assets/createindustry/blockstates/green_concrete_wall.json ccfb75a61bbc66bc5a5d56d4dfa8ff4267652bfa assets/createindustry/blockstates/hardened_planks.json +9cf58096befa8062b04c4cf115910d804b6a5f3e assets/createindustry/blockstates/hardened_planks_slab.json +4aa27c72c1d0a32a82495eeb999698c105b05775 assets/createindustry/blockstates/heavy_cable_hub.json af9bed28b8bd7912e439912d59cb59dd41c61b10 assets/createindustry/blockstates/heavy_casing_door.json +dbb00b2aef80772adf4ff3c62ac4fcfb9778eae2 assets/createindustry/blockstates/heavy_casing_encased_aluminum_cogwheel.json +605024d8361c108c021bbcb6ab2bd254b45f0cb3 assets/createindustry/blockstates/heavy_casing_encased_cogwheel.json +1ced8d51de2e4c936d3d799a547afe65a81c2888 assets/createindustry/blockstates/heavy_casing_encased_large_aluminum_cogwheel.json +3d1a41294dc3540cefe507674ebd613cbd843111 assets/createindustry/blockstates/heavy_casing_encased_large_cogwheel.json +1bc129b86d0f270fe52ec14474cc822638fb373c assets/createindustry/blockstates/heavy_casing_encased_large_steel_cogwheel.json +152f6e9fc29d4e4f96771be7f258ba106d9accb2 assets/createindustry/blockstates/heavy_casing_encased_shaft.json +f9abe1066f98e766b3033ef14ea9b104737eb974 assets/createindustry/blockstates/heavy_casing_encased_steel_cogwheel.json a418d47559d0981dd7da1441e56d3eea026bce99 assets/createindustry/blockstates/heavy_machinery_casing.json 5d6b14700e8f04cbd4308c83b0451b5443e4cf91 assets/createindustry/blockstates/heavy_oil.json 2d0d439047ff77b031930aa39db7ac742e4d42cf assets/createindustry/blockstates/industrial_pipe.json 593e5338e012eeb345ad42731fb603e0df9e942e assets/createindustry/blockstates/kerosene.json +0d579a5f11c1f6e367abf98d4fac762a74c0f1c9 assets/createindustry/blockstates/large_aluminum_cogwheel.json 365f8641879d2abf8bd391805e38911b79f84170 assets/createindustry/blockstates/large_pumpjack_hammer_connector.json a1923e104f2409222bb4f0676ec6b44538b303ac assets/createindustry/blockstates/large_pumpjack_hammer_head.json 4f9f94512b1f3f398a33fc96d21d339381ac2d94 assets/createindustry/blockstates/large_pumpjack_hammer_part.json c12a01a86e320e3e4e64f18bbd071cfd00fcd43b assets/createindustry/blockstates/large_radial_engine.json +fa7ea240a6125efd8737bd9d99085f597e8ed171 assets/createindustry/blockstates/large_steel_cogwheel.json 814026b6a1e8b66af769e80b0bc94e735e5c5dbb assets/createindustry/blockstates/layered_bauxite.json +57c1ced17c1bdaa35578bd575e1d2d21fee8a8ff assets/createindustry/blockstates/layered_galena.json +67ba91e3b179ba6a50622216878e702bc0f1daa5 assets/createindustry/blockstates/lead_bars.json +292164d778604fdea81c1fc83aa99d61599784a9 assets/createindustry/blockstates/lead_block.json +f8d0af09b96fe63fa2953913484ce96e0e3d44c1 assets/createindustry/blockstates/lead_flywheel.json +47ebc7889aeb29ddceef63f911553a281b2d92c0 assets/createindustry/blockstates/lead_frame.json +39cbc997cf6c1b4548bd8b62f2d6ca96ff4939ca assets/createindustry/blockstates/lead_glass.json +fc6301319dd45e971a148edefc6e6652f7b71374 assets/createindustry/blockstates/lead_ladder.json +2b6b5fc9efa7ef85863dcca0561d55f125eced96 assets/createindustry/blockstates/lead_ore.json +6d00222c2ab8913d8dcb6488d1c2c7896373af2b assets/createindustry/blockstates/lead_truss.json +fc69317ceca7bfdabb4608d7a6c800b2c96f9044 assets/createindustry/blockstates/light_blue_caution_block.json 1f0e2beeef1759b1c3d07b89409144d5c4110d9b assets/createindustry/blockstates/light_blue_concrete.json fb2c5a29e37055fcc813528345692663e5acfcd9 assets/createindustry/blockstates/light_blue_concrete_slab.json 35b60b295eaa36bb41154687c9e827dfa0600481 assets/createindustry/blockstates/light_blue_concrete_stairs.json 6358b490442fea72fcaceb4defdc6b463566072f assets/createindustry/blockstates/light_blue_concrete_wall.json +aa52e210e4527d7bf5ee56ce68c8daf2220646f3 assets/createindustry/blockstates/light_bulb.json +bd70eab333e75925e344014de29253ba600def60 assets/createindustry/blockstates/light_gray_caution_block.json 5406f09f9fd2cbe418c65f67587a679269609be5 assets/createindustry/blockstates/light_gray_concrete.json 5db344c2a21c193ad64832f953d26c2ff9ce4bde assets/createindustry/blockstates/light_gray_concrete_slab.json d569d82f1434baa451f91e69bf2c118c5844c1f5 assets/createindustry/blockstates/light_gray_concrete_stairs.json fb0edc8845d35010438896bb3b7770282815766d assets/createindustry/blockstates/light_gray_concrete_wall.json 95bed1b1b1bcdf5de63118e205d2084ab1c62aad assets/createindustry/blockstates/lignite.json +05d8edca6dc43d14bf903862b19c608741c5bd3f assets/createindustry/blockstates/lime_caution_block.json a653e0713238dcb16cc7a393eab9e984e2c4cd48 assets/createindustry/blockstates/lime_concrete.json a79d3cbd02aa473cbd2b5d922bcbee8bb069297d assets/createindustry/blockstates/lime_concrete_slab.json 9c4c1babf6fd2ece5b33755e4093d90a9befc58e assets/createindustry/blockstates/lime_concrete_stairs.json @@ -125,10 +195,15 @@ e14c3e5d369063369019aefd80ee6ca2d9e14f0c assets/createindustry/blockstates/lime_ f3931b54b47361a614669c9fc6ae895bb2a27b57 assets/createindustry/blockstates/liquid_asphalt.json c23687b4ab2088f55aa111bc684fa4e6b60c4c55 assets/createindustry/blockstates/liquid_concrete.json 07062de042c890ce78541122070b3ff3a69522c1 assets/createindustry/blockstates/liquid_plastic.json +91ea49c2bc152059641785942b63a53122b0efa2 assets/createindustry/blockstates/lithium_block.json +57d2bdce5501ea20bd188385455baeabf02d30cd assets/createindustry/blockstates/lithium_ore.json +0f57ffdc9bc1feed74cb276c914890bc08bd5543 assets/createindustry/blockstates/lithium_torch.json +d925067d00c283d586b00d8d203f9e448065518c assets/createindustry/blockstates/low_grade_fuel_engine.json 80d229b56a6350aaa3bf4812a9f98415f37aa559 assets/createindustry/blockstates/lpg_engine.json a252deac056427e3550e43b8a4e7725da5b44c52 assets/createindustry/blockstates/lpg_engine_back.json 5b3e3f4004af2ec8cb2bcd54aac2b542e14c218e assets/createindustry/blockstates/lubrication_oil.json a04aa3b50ecd99ff544eec3545839c366842c1b7 assets/createindustry/blockstates/machine_input.json +666ddd35c5a762e69bae0d853e78036a1ad5d5cb assets/createindustry/blockstates/magenta_caution_block.json 0e0fbf4bfc983c83c484b46be8b7700000988817 assets/createindustry/blockstates/magenta_concrete.json 8453d4ffb2826b584ae6ef773bb113bffa26b1ea assets/createindustry/blockstates/magenta_concrete_slab.json 4f1d369aa9c02f0c277885b3909682a95c664c78 assets/createindustry/blockstates/magenta_concrete_stairs.json @@ -139,11 +214,21 @@ e55a75698478f584341b6aaecfb0db76792ac694 assets/createindustry/blockstates/molte c4a26bc7214af60c64265bee05f5da0cbe8f38ac assets/createindustry/blockstates/napalm.json 39b6e7066ba40e494561caacf891248b2f517c5e assets/createindustry/blockstates/napalm_bomb.json 72cfa9dca5d9732d65f789b5222f8a31ab1885ae assets/createindustry/blockstates/naphtha.json +f610a7f7e0211100dfe0c624fece9fe14752ed54 assets/createindustry/blockstates/neon_tube.json +3d329c530349ab7fdc4d76c896386b29d417e204 assets/createindustry/blockstates/nickel_bars.json +cecbb418ad37c7b3f84452367bb9bf9709c502c1 assets/createindustry/blockstates/nickel_block.json +e39f4d88a7665c5a08c961d84a01330b238e1ce7 assets/createindustry/blockstates/nickel_flywheel.json +4f1deb7cab5c288fb2ea2d1a4117e07f53719c7b assets/createindustry/blockstates/nickel_frame.json +7372d685af97e87a6acbb84055db214f9bb03600 assets/createindustry/blockstates/nickel_ladder.json +389de6a97189024ebb5983fe632099313d9f2296 assets/createindustry/blockstates/nickel_ore.json +ca3326568a6e989375df89236256375264bdb32a assets/createindustry/blockstates/nickel_truss.json c6e6a15e28f9edc9d110243a31b7dc1ef72fb505 assets/createindustry/blockstates/oil_deposit.json +b28fe50b3f439e5bdae0a8ae9891d147c2822e5d assets/createindustry/blockstates/orange_caution_block.json b4e9ff5bb34898400b89d2bbd156497eb85b7477 assets/createindustry/blockstates/orange_concrete.json 8b79302e858de13e87e38d0fc42169cb9129a44e assets/createindustry/blockstates/orange_concrete_slab.json d7cc96a2d39072df88da7d4198365cc9a829bcde assets/createindustry/blockstates/orange_concrete_stairs.json 4599e213d3a013509f1205db7477420d358026a8 assets/createindustry/blockstates/orange_concrete_wall.json +193d966d27512f78477f25b20ca4df3f46d70016 assets/createindustry/blockstates/pink_caution_block.json 33ee7a2f79d9e29006d4cfd624a2be42c5132652 assets/createindustry/blockstates/pink_concrete.json 61082578db1f0c0583cac0e254422c335f199e88 assets/createindustry/blockstates/pink_concrete_slab.json 2f4e84753e13b2af267f8a33f66363f6e8b44154 assets/createindustry/blockstates/pink_concrete_stairs.json @@ -153,16 +238,22 @@ b49ed4e23dc298ebeb48d6b0be03f61799bf405a assets/createindustry/blockstates/plast 859778ba680a90c386fb070accddb0d83956d0c2 assets/createindustry/blockstates/plastic_mechanical_pump.json 9be9d5149b1ec9ceb361d4b1b94ce158c52706f7 assets/createindustry/blockstates/plastic_pipe.json e0630034aba4445702d39aef3299b684c76673d2 assets/createindustry/blockstates/plastic_smart_fluid_pipe.json +b20bbb267417a5e299b71289a0435877dbebb7e7 assets/createindustry/blockstates/polarizer.json 551da8fbe32e39f5e1ad4fed261ed185fa06230e assets/createindustry/blockstates/polished_cut_bauxite.json a61dc809bdc16e362eb3d7cc2e351a4af8383dcc assets/createindustry/blockstates/polished_cut_bauxite_slab.json 5549b547d5c295c8794205894a7b8aa61108612c assets/createindustry/blockstates/polished_cut_bauxite_stairs.json 90b5a9dad00c8df5594dad7e38ebd52930f1f8f8 assets/createindustry/blockstates/polished_cut_bauxite_wall.json +156efb58de5d548284e9ec76a371380951b2b001 assets/createindustry/blockstates/polished_cut_galena.json +77bae2961f0d56714f82c097b356092c3e7bf81b assets/createindustry/blockstates/polished_cut_galena_slab.json +ddad25c58c765c55c077cd4a41260e53b24ba14c assets/createindustry/blockstates/polished_cut_galena_stairs.json +6b2998714ca66c75c35b049009babc0815ae79a6 assets/createindustry/blockstates/polished_cut_galena_wall.json 75646f4e5d638d0f708fc6fde6e79eeccbd82f15 assets/createindustry/blockstates/pumpjack_base.json e5a2e7df7999cb2ed93de381d1eae739d5761cc8 assets/createindustry/blockstates/pumpjack_crank.json 2842c74b855f8585c3aa5b8b3b88fa2b7fbb8cf4 assets/createindustry/blockstates/pumpjack_hammer.json 3deb1b3c6cac306c2cbb64d672b29071f8922913 assets/createindustry/blockstates/pumpjack_hammer_connector.json 0fcc24d7447863893b29d09bc447f6fc7fbf3a34 assets/createindustry/blockstates/pumpjack_hammer_head.json 32c2a749ee4c977d17823a44bf752934b9134cc6 assets/createindustry/blockstates/pumpjack_hammer_part.json +2ee1434ee657ba6698bf5ca797b7a6a76176699d assets/createindustry/blockstates/purple_caution_block.json f09f808e75c89fae044b9c6f495004e8cfcace89 assets/createindustry/blockstates/purple_concrete.json 8752258a22b4d93a18de3f6808aca31ecef0d420 assets/createindustry/blockstates/purple_concrete_slab.json cadf8506d3b034033bae6a3712e444fe93fc3005 assets/createindustry/blockstates/purple_concrete_stairs.json @@ -175,25 +266,44 @@ fcced0d2b802867a9851db5e3576a84325fb1527 assets/createindustry/blockstates/rebar 2c3f21e21bf8febbb992d6646d4c24a06c96376c assets/createindustry/blockstates/rebar_concrete_stairs.json 1a30d82bf5a5a0901a5806b121af19d9ee4a7971 assets/createindustry/blockstates/rebar_concrete_wall.json dda566610e00d926b78f61b7c21a0a69277ea750 assets/createindustry/blockstates/rebar_formwork_block.json -328fece6d3fc4e8b915a5381842267f0e449739e assets/createindustry/blockstates/red_caution_block.json +7e30c322903237d8397dc3192ba5a36c1c249b52 assets/createindustry/blockstates/red_caution_block.json 09409ef66d4818fbaa673d1a90e4edb409d3eaf0 assets/createindustry/blockstates/red_concrete.json af32107d6c27676ddc734e6ee855d7158ff990dd assets/createindustry/blockstates/red_concrete_slab.json 74c151f96c67238329614d451e86c84cb9ebc798 assets/createindustry/blockstates/red_concrete_stairs.json 3e13896a5662505c77058a00cfd185a6eafe12c8 assets/createindustry/blockstates/red_concrete_wall.json +154918bcebf9323c038b5b19cecb1df4f07c73ee assets/createindustry/blockstates/resistor.json +e03778f5ab38867e416e15ca0b62aa7178110f93 assets/createindustry/blockstates/rgb_light_bulb.json +82d4dab47c5431f1a459a0529d02752ace054c83 assets/createindustry/blockstates/rotor.json 986890bbecdc9b6393b76e316b9860989f0a0f4a assets/createindustry/blockstates/small_bauxite_bricks.json cfeffb79459e870bcbc689066a5dc5796a6740c3 assets/createindustry/blockstates/small_bauxite_brick_slab.json 62ce13755dfb3af82c6f79c1d0e132c3e8c8fd4d assets/createindustry/blockstates/small_bauxite_brick_stairs.json 0706ac987a7018dbb2cbd7856ffbc84dcbd27cb3 assets/createindustry/blockstates/small_bauxite_brick_wall.json +5f5f2baee2ae4ba6527087fd464bb789528384e1 assets/createindustry/blockstates/small_galena_bricks.json +8a5194cade855448d70a02b21331aaa9eb28eb32 assets/createindustry/blockstates/small_galena_brick_slab.json +37abbd734810bbd59c92e333a0a3d792bb6179bb assets/createindustry/blockstates/small_galena_brick_stairs.json +643729c917d84af122be05baedacbc7a4f90135f assets/createindustry/blockstates/small_galena_brick_wall.json +4b51d15f34485ee8c5649d4b58bedc8f47312ec3 assets/createindustry/blockstates/stator.json b920367311493b09d04aece60b7bb31ef8dbe725 assets/createindustry/blockstates/steel_bars.json 971aaeeb9224b9530cc94e60004c7d662e2ee33a assets/createindustry/blockstates/steel_block.json +64416397bcbe34e0bdd9c5e62065cd4a16da59d8 assets/createindustry/blockstates/steel_cable_hub.json f6758defb35319cd27e9ebef307f23d58d79505a assets/createindustry/blockstates/steel_casing.json -f1fcbc33836ee794684dc715131e184f588515e9 assets/createindustry/blockstates/steel_distillation_controller.json +dd8eba7c9f8d1bbe11943221dc3361ea4eb142d7 assets/createindustry/blockstates/steel_casing_cable_hub.json +6a16311ec345a83f01c7a33992345bfca60f6368 assets/createindustry/blockstates/steel_cogwheel.json +e48452574e61139228a22a11d325b46991c1e6ed assets/createindustry/blockstates/steel_distillation_controller.json 0d9f0847a584e7aaa111a50aa44ca471ec58f524 assets/createindustry/blockstates/steel_distillation_output.json e67bfac13d06829552862e60ddc8ba8bfc129228 assets/createindustry/blockstates/steel_door.json +2f5f0fb340f686b21e638d7a6226aa701c60b269 assets/createindustry/blockstates/steel_encased_aluminum_cogwheel.json +7c5560de0a94fc9a2fa5a21942dd37c83e2f555f assets/createindustry/blockstates/steel_encased_cogwheel.json +9dad9222006e8ad496868e0efa791861ae060f28 assets/createindustry/blockstates/steel_encased_large_aluminum_cogwheel.json +a6ca9ac046c8901f1ba1ba6181efb2ff592a1acd assets/createindustry/blockstates/steel_encased_large_cogwheel.json +48d4647d660b7aa76f2443fdddf8a68c98a5e548 assets/createindustry/blockstates/steel_encased_large_steel_cogwheel.json +40a8702813b48c1b62aafaa8a91426d668550ffd assets/createindustry/blockstates/steel_encased_shaft.json +e7b1485857d0986e93efd594926cedc16d0325e0 assets/createindustry/blockstates/steel_encased_steel_cogwheel.json 5886babd046ad3259f77a7a3a4e641e702ffcd6b assets/createindustry/blockstates/steel_fluid_tank.json 137a8b1fc60285bc033dbdf12778ec7bbc394079 assets/createindustry/blockstates/steel_fluid_valve.json ae1eeb60729d163fc4892866cad74c57cea962cf assets/createindustry/blockstates/steel_flywheel.json a4500fc8d238098e6287768e19ba3bee0c350ec4 assets/createindustry/blockstates/steel_frame.json +2a3c3bd52a1f80efd3ef3e622b5fc7d9b6ae8836 assets/createindustry/blockstates/steel_gearbox.json 18fd7e6f7ad3b4f5c3e6365739bbd83c7acb713f assets/createindustry/blockstates/steel_ladder.json 085922665ee5c62eb33386ba83e2c0ede6d4027f assets/createindustry/blockstates/steel_mechanical_pump.json 6ab493e40dca3f409373aeb019b37a6964bb8d36 assets/createindustry/blockstates/steel_pipe.json @@ -201,20 +311,28 @@ a4500fc8d238098e6287768e19ba3bee0c350ec4 assets/createindustry/blockstates/steel e7cff3850d33c4ffc08e994f45e00e9d41dff949 assets/createindustry/blockstates/steel_smart_fluid_pipe.json a67ee1a6ad823afc0610b53027d6087dd0c818a3 assets/createindustry/blockstates/steel_truss.json 20081f153e580df934ab5eafc77f50fe0e6728f0 assets/createindustry/blockstates/sulfur.json +014be87464893e6fcccfefdfdefe213511e8b5c3 assets/createindustry/blockstates/sulfuric_acid.json 948e990093d78be9c06de41c421cd4dafbfb3625 assets/createindustry/blockstates/surface_scanner.json 778445f5df96734462c0b88f75713d8f29748df0 assets/createindustry/blockstates/turbine_engine.json b421e350aa7c418643df967f01032ae2956c4841 assets/createindustry/blockstates/turbine_engine_back.json +9ef82598819f8718429e4e1a601bf087a6efd50e assets/createindustry/blockstates/voltage_cube.json +d706f709855aebbbf4563b11b64affd0c2f126ea assets/createindustry/blockstates/voltmeter.json +29564324de63abc0e66df9a7381a1463dcf53844 assets/createindustry/blockstates/white_caution_block.json 7082337663779f149e605d93c832400a25a4168e assets/createindustry/blockstates/white_concrete.json 293f2a72d115c5f70ebc624ae5e35aa90e283d53 assets/createindustry/blockstates/white_concrete_slab.json db4bb303eae3f1306d9d2a076f0090644d845e0e assets/createindustry/blockstates/white_concrete_stairs.json b78c8d250e7ebaf757ee7c52828be3c265d2f872 assets/createindustry/blockstates/white_concrete_wall.json +9e57e1862802318a4ad50a46e7187e166882ff3d assets/createindustry/blockstates/yellow_caution_block.json 8f49fad25e42313e4b8983c4dc165b39c07eecfc assets/createindustry/blockstates/yellow_concrete.json d7114f093ed9d4700045f04469b7e83ea91f46bb assets/createindustry/blockstates/yellow_concrete_slab.json a3376853404f164207006a3e6797872b39748966 assets/createindustry/blockstates/yellow_concrete_stairs.json cf86260011f9890489b886d2f29eec92ca423f94 assets/createindustry/blockstates/yellow_concrete_wall.json -d070e535c6568f4190821d578d8c74fb261f09e6 assets/createindustry/lang/en_ud.json -fb17d14dbb2db15980ab38a878d41a54d147278e assets/createindustry/lang/en_us.json +0305f011b989c226baf09bc39547daceff7ac826 assets/createindustry/blockstates/zinc_frame.json +cbdfdcd64606aff5f426f6be20e9d60b155bed55 assets/createindustry/blockstates/zinc_truss.json +956bbc8f41a89742a1e2690097f91de990b76a7d assets/createindustry/lang/en_ud.json +648834006ff13f225f188bfd357e6c81e7f31b38 assets/createindustry/lang/en_us.json c97ace9182228ac09c3decbeae4a1c5f19bf2729 assets/createindustry/models/block/aluminum_block.json +04ac8fe21a740f3dd29d3d6083d59729f129b14b assets/createindustry/models/block/aluminum_cable_hub.json eadb8c93c688022b4f6e9d928a09f6e3da7d1ff8 assets/createindustry/models/block/aluminum_cap.json 57d4ce9c693d61ef313079fc379649847b0a226a assets/createindustry/models/block/aluminum_cap_alt.json b39922e109117301b0b4eef2893c1e7a1a1ab983 assets/createindustry/models/block/aluminum_ladder.json @@ -270,6 +388,7 @@ b1cb25fd75ba3214259057a2dcf15a1e53d172a7 assets/createindustry/models/block/blac 2874710cce75d9843bfda790d33450fa9d3c8633 assets/createindustry/models/block/black_concrete_wall_post.json 91f43a357e0bc0eab574dcd1dbc99cce0c95a1a6 assets/createindustry/models/block/black_concrete_wall_side.json 6d174eda9847bedac4bf8b5cd8e8fa1a60dee253 assets/createindustry/models/block/black_concrete_wall_side_tall.json +b62d4db4af4c24552dccfe3e664bce643d6a47c1 assets/createindustry/models/block/blue_caution_block.json f63e93efe0f94a2ac0305a22da0bd789be4e54b0 assets/createindustry/models/block/blue_concrete.json 67fd5155f2c2023090effe05a3dc74fc9246d581 assets/createindustry/models/block/blue_concrete_bottom.json 0bd92cb7c5640afb38fb39bc39b5cf6fdc83c51f assets/createindustry/models/block/blue_concrete_stairs.json @@ -279,6 +398,7 @@ a2f845cdecbc279ddf71c1da471f4cc9fb623f34 assets/createindustry/models/block/blue 4c2a21a9c2830203515fab5e049f5987f3cdd443 assets/createindustry/models/block/blue_concrete_wall_post.json 162b1c65795913b54c7073b582d29958204f9c86 assets/createindustry/models/block/blue_concrete_wall_side.json 74014104817e0c95892eb9f5aa64213e790df8eb assets/createindustry/models/block/blue_concrete_wall_side_tall.json +8e30f8579f348fc2cbe42e6b36254b8e74d22dd9 assets/createindustry/models/block/brass_cable_hub.json 3098717a2d7710282004d455ad0f7cdf1d5f6cfc assets/createindustry/models/block/brass_pipe/d_x.json 8b026148ba567265461444a7bf2dcca8aa975afd assets/createindustry/models/block/brass_pipe/d_y.json d18a5bfc18447e1d402b52c8a20c2af6bb815d83 assets/createindustry/models/block/brass_pipe/d_z.json @@ -309,6 +429,7 @@ b4ccb36fa642e9061a7c229fbc98e84874e269a8 assets/createindustry/models/block/bras 9ce472a36555b47b89f1f86517eddaa138af2091 assets/createindustry/models/block/brass_pipe/u_x.json 4dd24829eb88777c6767715e21d973a132661ae9 assets/createindustry/models/block/brass_pipe/u_y.json 688f13166f1f5aaee7cb04ab8b865be25506201c assets/createindustry/models/block/brass_pipe/u_z.json +a8c8f237f490cdb78656814604ee5490436085c7 assets/createindustry/models/block/brown_caution_block.json 72b6cd1d57d9332697c41570777202632f75f87b assets/createindustry/models/block/brown_concrete.json 6d7a1be18f6bc520c4395e1ec3af61f57895e650 assets/createindustry/models/block/brown_concrete_bottom.json 40c4545f9aae8e1f44eabc5dfe4490a39d356500 assets/createindustry/models/block/brown_concrete_stairs.json @@ -319,6 +440,9 @@ bc760ff788e6ce9a43aee67f97c2970399dd64e4 assets/createindustry/models/block/brow c3289fb780a4197f46a80fca33660181fe93c07c assets/createindustry/models/block/brown_concrete_wall_side.json b54e92f146093ca5f22429a9da8330a4ffa8b7d7 assets/createindustry/models/block/brown_concrete_wall_side_tall.json bf8feee51794c5e1feaeca30f5258af60fdeb139 assets/createindustry/models/block/cast_iron_block.json +4389b3b33788b20fdb4674bb8fd5539b2bacb0af assets/createindustry/models/block/cast_iron_cap.json +8907a8544a80493a518b54d469e87c96aee83ca1 assets/createindustry/models/block/cast_iron_cap_alt.json +1b8d16cc754b3e17f2303349ab2e28f5a6dba311 assets/createindustry/models/block/cast_iron_ladder.json 9c8d249bb7a0e5d678adb22aafb8eca80a6b1e57 assets/createindustry/models/block/cast_iron_pipe/d_x.json ff5331f2407b6f58ced5cdeded61b7f6d8c7811e assets/createindustry/models/block/cast_iron_pipe/d_y.json d06cf3e4a741ce0a4bcd4cda6c268623f2ddffc2 assets/createindustry/models/block/cast_iron_pipe/d_z.json @@ -349,7 +473,10 @@ de1c4250b8832668b4ee228bb595c0f4e6dbbdbc assets/createindustry/models/block/cast 7db7980d26743ee0382fdfaabb48e80677a5d38e assets/createindustry/models/block/cast_iron_pipe/u_x.json b71e66442d05bda1d9c3473166b4a029f36b959e assets/createindustry/models/block/cast_iron_pipe/u_y.json 2944540dce593b3597cf6c99cb526775760e641d assets/createindustry/models/block/cast_iron_pipe/u_z.json -cdb0a5e359041e68c0c37a52ffea3421573b9ac8 assets/createindustry/models/block/caution_block.json +18499bb39a7e1785ca9b2d7c8750ebacd926664d assets/createindustry/models/block/cast_iron_post.json +61109de5d8cc960dbf89c4a81f2e8da520cb3101 assets/createindustry/models/block/cast_iron_post_ends.json +ae404e371146ad53f1da866e36e3024d551bee07 assets/createindustry/models/block/cast_iron_side.json +7b2d5ec49f0af4db80d234857c25175481803516 assets/createindustry/models/block/cast_iron_side_alt.json 84f3b5e3d14aa8baff486d5f9b78ab43e1e8d6b3 assets/createindustry/models/block/cement.json dd1c91238fd43ce8b90d8bc8ccc0e1376393ff73 assets/createindustry/models/block/coal_coke_block.json d2647b37261aef880613a2882496f4d37aa84a4d assets/createindustry/models/block/concrete.json @@ -362,8 +489,10 @@ d6c23c1b878762b3a0267dd81b3ff0f6d65b3c06 assets/createindustry/models/block/conc 7d89561d73d23126d4f07fc3952506c08838683c assets/createindustry/models/block/concrete_wall_side.json 2193252fc9d242613a0256331d4ccbe123777ee1 assets/createindustry/models/block/concrete_wall_side_tall.json 12e4e222078f06756d0b9e0ad1aad6016a6b7dc4 assets/createindustry/models/block/cooling_fluid.json +c26869ccc6b72d01f65d0f43ee115e1d835b9c4e assets/createindustry/models/block/copper_cable_hub.json +68898e8ad1cf670534d627ded66f681726d6b9ef assets/createindustry/models/block/creative_generator.json 995ee4d147c8c5ae5dace5ba87b3c0b6ec473a30 assets/createindustry/models/block/creosote.json -a839f5f41155d2d016ebc3e4c55b8e3913530441 assets/createindustry/models/block/crude_oil_fluid.json +a839f5f41155d2d016ebc3e4c55b8e3913530441 assets/createindustry/models/block/crude_oil.json f4823ef8247df7813486ab6cd8d1368589a35f26 assets/createindustry/models/block/cut_bauxite.json 59e0ef48968c23ca1b6a195064ae572004c4baa9 assets/createindustry/models/block/cut_bauxite_bricks.json 7aad41081bd580dfabe76639816959b5b3242583 assets/createindustry/models/block/cut_bauxite_bricks_wall_post.json @@ -382,6 +511,25 @@ e26f0756e8a86e0803be83a866c76a0c674573c3 assets/createindustry/models/block/cut_ 2a37d4588f3209f76566ee0a13d7f42432d6b5c5 assets/createindustry/models/block/cut_bauxite_wall_post.json 3cbda32062aeec69b1fc6e8b1b8bb0fc652d2eeb assets/createindustry/models/block/cut_bauxite_wall_side.json 760fa38d52d7dc1ab37d7bdac704c0c11de3d3ed assets/createindustry/models/block/cut_bauxite_wall_side_tall.json +c144dcecabf60ff3c4fb08927f5594353e2371b4 assets/createindustry/models/block/cut_galena.json +7b78c16484951d0b776b4817a95274a4a4278ae2 assets/createindustry/models/block/cut_galena_bricks.json +69d6ed569cc1f498a38f4b4da34fa6e63c942d94 assets/createindustry/models/block/cut_galena_bricks_wall_post.json +2698a39e15b81f22fcc25e3c4b329e66c7659949 assets/createindustry/models/block/cut_galena_bricks_wall_side.json +ae19f44c8cd22de4b22666ac9efca46cb09b08dd assets/createindustry/models/block/cut_galena_bricks_wall_side_tall.json +a809dc51b3eb5e184790738cbf00c89409267d0a assets/createindustry/models/block/cut_galena_brick_slab.json +c7b2627236615bde6e98d4c29f28fcc1c1cadf82 assets/createindustry/models/block/cut_galena_brick_slab_top.json +2b0e1cc96a4feadb430bbed12965de2985b4ead4 assets/createindustry/models/block/cut_galena_brick_stairs.json +836be712db06dec6c32d0d13d0204d83b7868229 assets/createindustry/models/block/cut_galena_brick_stairs_inner.json +7106b7d26cb5d1ff4b3052215a3312b73b2ceb64 assets/createindustry/models/block/cut_galena_brick_stairs_outer.json +553713e331ee08199586019c1aec84a0840545d8 assets/createindustry/models/block/cut_galena_slab.json +38782ebe49a37fa000c09b9c1317f4b3f6ba5ed8 assets/createindustry/models/block/cut_galena_slab_top.json +d33e2bf5e98f253b69979b71e247da1335172346 assets/createindustry/models/block/cut_galena_stairs.json +b618e126cc94f674638591876d6f3aa4910edb38 assets/createindustry/models/block/cut_galena_stairs_inner.json +6bf0d6831c7aa096af950fcbff1dd15a374643df assets/createindustry/models/block/cut_galena_stairs_outer.json +a08f96b5280ed3b3441f287bc25e70f23c2c510e assets/createindustry/models/block/cut_galena_wall_post.json +7b374a006e2710c38ede81ba4100b5049aacaf32 assets/createindustry/models/block/cut_galena_wall_side.json +a52f65ca30369ae811819a384c0f9580d01b396c assets/createindustry/models/block/cut_galena_wall_side_tall.json +21ef297c59be3add8e63e7c8dbb9228a99b0ba2f assets/createindustry/models/block/cyan_caution_block.json 49b7b4ef7a276fb5d8a16e3b96c921e991e22094 assets/createindustry/models/block/cyan_concrete.json fbe0c368f247f0d38e240162b202afd407e8665d assets/createindustry/models/block/cyan_concrete_bottom.json 321013c1867f62b4d30734fa10e9243077135177 assets/createindustry/models/block/cyan_concrete_stairs.json @@ -391,7 +539,11 @@ deb1c3d631a93433008b15db2b93957d66f5656b assets/createindustry/models/block/cyan a08c602b4d8ce499d743226fadfda954f8ebfa91 assets/createindustry/models/block/cyan_concrete_wall_post.json b6b9e62dc27178b799f9048d03799e41d940006e assets/createindustry/models/block/cyan_concrete_wall_side.json 2d7bf79ba3e6e3dab9ac818f64d30f171b801c90 assets/createindustry/models/block/cyan_concrete_wall_side_tall.json +047fa51daac7ef98ad20c50c82fe809d0fbd1030 assets/createindustry/models/block/deepslate_lead_ore.json +bcc8dcf0bf7da09bc5069d8ae6c3d6cfb2890719 assets/createindustry/models/block/deepslate_lithium_ore.json +22a6c6a981f40e3d90713ff3e02255305e106be7 assets/createindustry/models/block/deepslate_nickel_ore.json 0d7faebe7aab6d77855023a81d4c576990323451 assets/createindustry/models/block/diesel.json +39f59804aa4f78cf9d3bdf63c8f98ba4272e6f97 assets/createindustry/models/block/electric_casing.json 294fa24913dbd339adccba741762f80281267750 assets/createindustry/models/block/factory_floor.json e1e4f3b39217735e396719fa5114f1f3ff2d9bd3 assets/createindustry/models/block/factory_floor_bottom.json 8161c3a06efe4481d8e6fb01935fc561c070de8b assets/createindustry/models/block/factory_floor_stairs.json @@ -404,7 +556,14 @@ e1e4f3b39217735e396719fa5114f1f3ff2d9bd3 assets/createindustry/models/block/fact 5ccef430d7d4768a444fb9c4df05aa8a972c8b2e assets/createindustry/models/block/fireproof_brick_reinforcement_wall_side.json d222386101c8e54e41c3fa63ebb25e451343bc78 assets/createindustry/models/block/fireproof_brick_reinforcement_wall_side_tall.json 94612d92d85d3a687b6dcf77bb72c0498d7d3cfe assets/createindustry/models/block/fossilstone.json +3d8753f09d26238c9588aa0eed83204f022e5e0b assets/createindustry/models/block/galena_natural_0.json +d3a33e53fd26e0b0fc528ff1d713dc583a22b877 assets/createindustry/models/block/galena_natural_1.json +848713e37986c993138c92e5edf0d20a857aee8e assets/createindustry/models/block/galena_natural_2.json +297e357baccc189038b80cf15ab02cd519de5edd assets/createindustry/models/block/galena_natural_3.json +879d71ca2b7e0c109616bb3edc56550231934eb3 assets/createindustry/models/block/galena_pillar.json +450bfc97f709eba274a399f89b9b2e906b096545 assets/createindustry/models/block/galena_pillar_horizontal.json cf177434837147fac4519da98f52681c6743c504 assets/createindustry/models/block/gasoline.json +57dc32573b27b3854f05253d24c741e64b4ae967 assets/createindustry/models/block/gray_caution_block.json 9929d5a9ad3e67850341952fe7cb30c51b410196 assets/createindustry/models/block/gray_concrete.json fef1e876d1452814dba01d1990de4bfd457da9fd assets/createindustry/models/block/gray_concrete_bottom.json 6f65166dea054f73c9a1b490c14b385ece9d3637 assets/createindustry/models/block/gray_concrete_stairs.json @@ -414,6 +573,7 @@ ac6a51b1b6a8e0169327ccdee6303d5accb7feb0 assets/createindustry/models/block/gray cd0ab908b986b7198f4d0b5085bc53aa64caa43c assets/createindustry/models/block/gray_concrete_wall_post.json ceeef4511e89148f056e390f762a592f9b320b12 assets/createindustry/models/block/gray_concrete_wall_side.json 42d1bd6828c930778130ecd2b053576b1f69c4d1 assets/createindustry/models/block/gray_concrete_wall_side_tall.json +9960728e47f2a20d8ee2b0fa0b99b1de8e1a3a56 assets/createindustry/models/block/green_caution_block.json c231aaaeaf829c6e3dc89b75d50ca2ae22b770a7 assets/createindustry/models/block/green_concrete.json 378c10df4308118d09825dbc71c9342dcf62d8be assets/createindustry/models/block/green_concrete_bottom.json 24664573bf5d4856c606ea92cb62237352beb529 assets/createindustry/models/block/green_concrete_stairs.json @@ -424,10 +584,49 @@ c231aaaeaf829c6e3dc89b75d50ca2ae22b770a7 assets/createindustry/models/block/gree 772f0a37d30f055e9d5e368773ee08376bfe31ac assets/createindustry/models/block/green_concrete_wall_side.json 4792f36ccfb07338434e4e2ec4d2602fa46b7a16 assets/createindustry/models/block/green_concrete_wall_side_tall.json d8ee1eb6c101f05b891f97cfa95e146c546b400d assets/createindustry/models/block/hardened_planks.json +acfa9149bea03e9d8829c3bdd76a0f292ec8c385 assets/createindustry/models/block/hardened_planks_bottom.json +fd88bb0e11d538e3e639594bb7350b96c8e48e44 assets/createindustry/models/block/hardened_planks_top.json +eba434765c84276257de901ae19cc9b5ee9c4ae9 assets/createindustry/models/block/heavy_cable_hub.json +760c39e36467df83e279f66d03749d4c2861ae2b assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel.json +16a5012855457fcbb7bfdab06b5f83be27a4b496 assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_bottom.json +0587c4a9b7d2805e0a3045cda1c18746ff1816f7 assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top.json +8211e7f7cdcf1461c6d62d2bff23c4155e991ce8 assets/createindustry/models/block/heavy_casing_encased_aluminum_cogwheel_top_bottom.json +760c39e36467df83e279f66d03749d4c2861ae2b assets/createindustry/models/block/heavy_casing_encased_cogwheel.json +16a5012855457fcbb7bfdab06b5f83be27a4b496 assets/createindustry/models/block/heavy_casing_encased_cogwheel_bottom.json +0587c4a9b7d2805e0a3045cda1c18746ff1816f7 assets/createindustry/models/block/heavy_casing_encased_cogwheel_top.json +8211e7f7cdcf1461c6d62d2bff23c4155e991ce8 assets/createindustry/models/block/heavy_casing_encased_cogwheel_top_bottom.json +bf4543cca753c5fe370b60711eae9b4d66b28048 assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel.json +04c42e0cdd979b90bf614effd335229d804816bd assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_bottom.json +8cb49501ec99cbea7776c42ff83f06027e435cab assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top.json +b73ca9be56239ad58b40d19e8b4e5c6eff36c476 assets/createindustry/models/block/heavy_casing_encased_large_aluminum_cogwheel_top_bottom.json +bf4543cca753c5fe370b60711eae9b4d66b28048 assets/createindustry/models/block/heavy_casing_encased_large_cogwheel.json +04c42e0cdd979b90bf614effd335229d804816bd assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_bottom.json +8cb49501ec99cbea7776c42ff83f06027e435cab assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top.json +b73ca9be56239ad58b40d19e8b4e5c6eff36c476 assets/createindustry/models/block/heavy_casing_encased_large_cogwheel_top_bottom.json +bf4543cca753c5fe370b60711eae9b4d66b28048 assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel.json +04c42e0cdd979b90bf614effd335229d804816bd assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_bottom.json +8cb49501ec99cbea7776c42ff83f06027e435cab assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top.json +b73ca9be56239ad58b40d19e8b4e5c6eff36c476 assets/createindustry/models/block/heavy_casing_encased_large_steel_cogwheel_top_bottom.json +760c39e36467df83e279f66d03749d4c2861ae2b assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel.json +16a5012855457fcbb7bfdab06b5f83be27a4b496 assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_bottom.json +0587c4a9b7d2805e0a3045cda1c18746ff1816f7 assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top.json +8211e7f7cdcf1461c6d62d2bff23c4155e991ce8 assets/createindustry/models/block/heavy_casing_encased_steel_cogwheel_top_bottom.json 2a45d057b1f65b6f317987233f999280cea75f86 assets/createindustry/models/block/heavy_machinery_casing.json cbff84083f277898f53279510a4bb2ab95790716 assets/createindustry/models/block/heavy_oil.json 80d385a00efb3aa680bdffd18a7ca9a83d7d9cc9 assets/createindustry/models/block/kerosene.json 61ef88a2a78934188c77c4034dd47c46e4763f1d assets/createindustry/models/block/layered_bauxite.json +19e0e28e4b00fd8b241f1b25b6dc2989a1e88108 assets/createindustry/models/block/layered_galena.json +1d2e903e1d009f6bdc07f8738e2e60a6d2a06cf3 assets/createindustry/models/block/lead_block.json +67f0fdc2bcf194f789bc97e69afed392ac6a0277 assets/createindustry/models/block/lead_cap.json +7a608a4d534817af7119a4163c5dd89c013f6dca assets/createindustry/models/block/lead_cap_alt.json +80a31a6c13b5c2bed0e4b9cb2a8e98bbe6f69606 assets/createindustry/models/block/lead_glass.json +296b7a7963e7a083132bc3f75db4463556ec8319 assets/createindustry/models/block/lead_ladder.json +255d99125dc939db4ab1cd1a40e190d0b2dcb620 assets/createindustry/models/block/lead_ore.json +7f44d83fb4677831ce87e9af9c59269b51f4a4eb assets/createindustry/models/block/lead_post.json +8b4ce9e0e4e1919be3c8d3e52efbd4ef15b22085 assets/createindustry/models/block/lead_post_ends.json +3fae00e58d96fb960e85dc310d47c2c69ef37847 assets/createindustry/models/block/lead_side.json +1549b3f115bc4d3816bf0e07ca13d96086a73ea9 assets/createindustry/models/block/lead_side_alt.json +0f3098c83c379b13bda14dc06af17da2d2972e2f assets/createindustry/models/block/light_blue_caution_block.json 6ba00792062a59044b10c6d52123a6ba3d5a7940 assets/createindustry/models/block/light_blue_concrete.json b0aca5a9ed4800f79cefe87082d1da4e5e5ffafe assets/createindustry/models/block/light_blue_concrete_bottom.json 827bd5647ef7aba13dc85991b50fad49c61c540e assets/createindustry/models/block/light_blue_concrete_stairs.json @@ -437,6 +636,7 @@ ad7b4944541af8dcad5d34dd9ee1dbc13b80f88b assets/createindustry/models/block/ligh 6f49afa3d8111f2867c35e1eab585b9a07683a8e assets/createindustry/models/block/light_blue_concrete_wall_post.json f4870d6d935a6f5586bacd81f075703134772e12 assets/createindustry/models/block/light_blue_concrete_wall_side.json 3c1b550ce04f7644ba5f4544b3bf2a1b72b01ded assets/createindustry/models/block/light_blue_concrete_wall_side_tall.json +5060781e60a95937b483cf577cc6f5d22a69e8ec assets/createindustry/models/block/light_gray_caution_block.json 6c75c89627a1541437a9e0e06d04bf10156c5f68 assets/createindustry/models/block/light_gray_concrete.json d39936787d91a82af2347bb9d8db17b3d2528e4f assets/createindustry/models/block/light_gray_concrete_bottom.json 49951428456b8772baa8cc0467d0bb6170014d35 assets/createindustry/models/block/light_gray_concrete_stairs.json @@ -447,6 +647,7 @@ ae510fefdb848506b4f036364c352481173128a5 assets/createindustry/models/block/ligh cd27684311c3a2f5cdc98261f126feb3b8617cd2 assets/createindustry/models/block/light_gray_concrete_wall_side.json 79f333b041420f33972e44b881dfe91ad5e07541 assets/createindustry/models/block/light_gray_concrete_wall_side_tall.json e000d57a54b95702b3cd1c16d6f4703e81c2907d assets/createindustry/models/block/lignite.json +c2cf21aa9a9402d2dceb2a703a03ca889456ee54 assets/createindustry/models/block/lime_caution_block.json d8ee20b80f653494f67aa554627d8f4dd74c337f assets/createindustry/models/block/lime_concrete.json 375dc6d83799986f79ac70c22be47f670079883b assets/createindustry/models/block/lime_concrete_bottom.json 7461dac3119bd50f1ff7746e32dcdf15e2b4ebd3 assets/createindustry/models/block/lime_concrete_stairs.json @@ -459,7 +660,10 @@ e5d2ab1e0b8ed0eabda2b0559f83933f5fa17449 assets/createindustry/models/block/lime b8e7ab20548bd404cb29dce6e7d4d937b4fe7a8b assets/createindustry/models/block/liquid_asphalt.json 8ffaa3e567866b2574f9d20b17936d3564c8e6ad assets/createindustry/models/block/liquid_concrete.json be225406ccfe1e027fadff7d0d00c0f77fc9f43f assets/createindustry/models/block/liquid_plastic.json +bc97254c00d0a0b6661e92d7eb6898a6345cbd9a assets/createindustry/models/block/lithium_block.json +ee30fab3c5229c44225a6a75e4317a346acf6d1d assets/createindustry/models/block/lithium_ore.json 0b51764dcc3107a766f431c6799b159f86a0bb80 assets/createindustry/models/block/lubrication_oil.json +96c35afd2613059a14b509b7efc2d651e8558dc6 assets/createindustry/models/block/magenta_caution_block.json 6859094c3c4d4c2f574c740fe0d03e40517ac920 assets/createindustry/models/block/magenta_concrete.json 8fcf69923cd233df6903c55e8a549b2d45671df3 assets/createindustry/models/block/magenta_concrete_bottom.json 24a3e5e0f0e13f52aa80dfacf9948eaaf43d07fe assets/createindustry/models/block/magenta_concrete_stairs.json @@ -474,7 +678,17 @@ b1ad411dce4232640e5affc15296f184aab9e600 assets/createindustry/models/block/molt c89f3bea30b47f666fc2f95d7fe6df21c9bb8fb4 assets/createindustry/models/block/molten_steel.json 3b339d809be62ca8790afeb2cad9ace793840d27 assets/createindustry/models/block/napalm.json b49c6631c166e4556fcd55986e288c027e837f67 assets/createindustry/models/block/naphtha.json +588af19c4956e4e7e5b7a1b0f0aac163637ab2b6 assets/createindustry/models/block/nickel_block.json +8665daa3d163a17238bf3b65f6d7176e299b45e5 assets/createindustry/models/block/nickel_cap.json +25c3aa994511939ee96031897a95fb22eeccf0e3 assets/createindustry/models/block/nickel_cap_alt.json +b2655ef3a19951cd6e2d92db5d5181f828ba7d21 assets/createindustry/models/block/nickel_ladder.json +6a2fe6201e7696215015288fc74ef6a7629af501 assets/createindustry/models/block/nickel_ore.json +13ce2050bb808948bee43cc469e3dbf604acd4f0 assets/createindustry/models/block/nickel_post.json +ef10e653df3e9fefb0166351064890d4d9f14a35 assets/createindustry/models/block/nickel_post_ends.json +23ad1d54545c570c2381e1121a7d39f811835ba6 assets/createindustry/models/block/nickel_side.json +eec858dee5b8575edcdd0e50cbd7f60e873f4a61 assets/createindustry/models/block/nickel_side_alt.json b563e2a0ea87b9f9a9b25f70d9430c028af73ea4 assets/createindustry/models/block/oil_deposit.json +741c31a5d12955e0b5a0fd0b96b7da48b105bc28 assets/createindustry/models/block/orange_caution_block.json 924c251ca2505a84cd5093f463b67f54849c769f assets/createindustry/models/block/orange_concrete.json c5c85e3ef09d54a1ca93ee2298cbd9f55c950749 assets/createindustry/models/block/orange_concrete_bottom.json 9d55714f7c05f8812dc04978cb3f7ee4927e40f2 assets/createindustry/models/block/orange_concrete_stairs.json @@ -484,6 +698,7 @@ c5c85e3ef09d54a1ca93ee2298cbd9f55c950749 assets/createindustry/models/block/oran 4f06dc32e516e98ee5483f5c289d54d31f2ac133 assets/createindustry/models/block/orange_concrete_wall_post.json bfdaadc525fa185eb88d8c02142e5ebca73cdfc0 assets/createindustry/models/block/orange_concrete_wall_side.json e8fe1f6a2ba04acd73a9f8c0fffe8e9d817c85e8 assets/createindustry/models/block/orange_concrete_wall_side_tall.json +1df966d157303b985235cb49bd33a2f19238a7a2 assets/createindustry/models/block/pink_caution_block.json f5d3e482fb7a6b0fe04c0d78ab1696c73a413f8a assets/createindustry/models/block/pink_concrete.json 109db286d515334aa80f61605abc52de14374764 assets/createindustry/models/block/pink_concrete_bottom.json 86e93b6afa0d8e92a3cba5e0b53ac6cab47b9bb1 assets/createindustry/models/block/pink_concrete_stairs.json @@ -534,6 +749,17 @@ c50db4a452a736a0bd7304b06afc693859633f1b assets/createindustry/models/block/poli e4495d1bdaf9b421b656836b81ace226862dd150 assets/createindustry/models/block/polished_cut_bauxite_wall_post.json 25fa788b7dde944c860badd7a8f0701ee7634f39 assets/createindustry/models/block/polished_cut_bauxite_wall_side.json 4c157ed310c21d51c92088ee417df7c2b66be833 assets/createindustry/models/block/polished_cut_bauxite_wall_side_tall.json +2ac9de3839750e8a4be82ad18b0f6d4c7a25fdc5 assets/createindustry/models/block/polished_cut_galena.json +21405ee920547db300349badd5f30e57c1fb46fa assets/createindustry/models/block/polished_cut_galena_slab.json +3245179f4eab8dbc3c9ad3f25e4c1fe1b48cf89d assets/createindustry/models/block/polished_cut_galena_slab_double.json +72ecbf7b4ea712e8be184a41f75eda39f795a8e4 assets/createindustry/models/block/polished_cut_galena_slab_top.json +eebf6d1756083cde190dd8d49e024c0d53f949d4 assets/createindustry/models/block/polished_cut_galena_stairs.json +6ade04a5663ebfa59be48c65745f72c5bdd054e1 assets/createindustry/models/block/polished_cut_galena_stairs_inner.json +01d19acd0a8105ea7944bb3dda184b7157b6aa22 assets/createindustry/models/block/polished_cut_galena_stairs_outer.json +e1927871fc8d1414b36b7deee937aca115ea0d57 assets/createindustry/models/block/polished_cut_galena_wall_post.json +42478df40bc995354a93de6fa2bf38d7d26c41f9 assets/createindustry/models/block/polished_cut_galena_wall_side.json +c9b10c78e18cde49bbd805c44140d46b8c6c401c assets/createindustry/models/block/polished_cut_galena_wall_side_tall.json +ebe39d7fea7c0f8f0cfe7b7d00f123413dcfd7d2 assets/createindustry/models/block/purple_caution_block.json f3d118dd147e9a573b6f2c26278be516b5b9943d assets/createindustry/models/block/purple_concrete.json c53f73f2a9ac76c8bbe5215843a4617799c9684f assets/createindustry/models/block/purple_concrete_bottom.json eb549e0eb7c513ddeb03c552605584660f674d9b assets/createindustry/models/block/purple_concrete_stairs.json @@ -552,7 +778,7 @@ c1f5aec80b2d3744177d2b5c6e71ab6d2b50784b assets/createindustry/models/block/reba 745d182daddd3634e3e9c379a7acd8564e17823e assets/createindustry/models/block/rebar_concrete_wall_post.json 154e6f43751770dea5fed9931424a66c9880d726 assets/createindustry/models/block/rebar_concrete_wall_side.json b6093a3e06caad64792e9749242cbce74f43b868 assets/createindustry/models/block/rebar_concrete_wall_side_tall.json -dfa78b9a483a68afb1ac8e2824629a3a9fb1d5b9 assets/createindustry/models/block/red_caution_block.json +9fcc99d4ab0a05ff1d8f2c300327a00b9e7c90aa assets/createindustry/models/block/red_caution_block.json 361615cfd01c200ff5502f09f8035a949c9c4577 assets/createindustry/models/block/red_concrete.json d5095646b929eb8cb62a3413dac445b1af11ccb1 assets/createindustry/models/block/red_concrete_bottom.json cbec73732c50f9e8fa77e101c1104d94b68917e8 assets/createindustry/models/block/red_concrete_stairs.json @@ -571,10 +797,45 @@ cb9f4d6f8aa0999acec517cf854bbdd8ed86e21a assets/createindustry/models/block/smal 1a397bb31d6c49f11a33f953b2c2477d60d2b8bf assets/createindustry/models/block/small_bauxite_brick_stairs.json 95556e28f5ef36e086f7da4b86977f19e9367e3c assets/createindustry/models/block/small_bauxite_brick_stairs_inner.json 1f1e0a9b964528fa40812892484e217dcde3dab5 assets/createindustry/models/block/small_bauxite_brick_stairs_outer.json +64fbadcf67b1df14652dee0ea6500b8f25255ada assets/createindustry/models/block/small_galena_bricks.json +4fba9608032c9bb623c90ae7ce3f847c331b57bf assets/createindustry/models/block/small_galena_bricks_wall_post.json +9f1d031996ad3baa417836d4a3b41311bcd1f2b4 assets/createindustry/models/block/small_galena_bricks_wall_side.json +ab4625b11de420796a6db4a51ac05e69d84f8cdd assets/createindustry/models/block/small_galena_bricks_wall_side_tall.json +ec2bae2327eae37847897a4c3df0b1b0b0d9c357 assets/createindustry/models/block/small_galena_brick_slab.json +5299f918e55e0ecffaf6a81d73398c21a327b47d assets/createindustry/models/block/small_galena_brick_slab_top.json +50934151221cb8dc0103032ff92860f3ba3c6856 assets/createindustry/models/block/small_galena_brick_stairs.json +ab2234699838be8a5fd4dfdfbfc4da067178d35f assets/createindustry/models/block/small_galena_brick_stairs_inner.json +39f8feb5c69212b0bdd186952f6266dd111dcfdd assets/createindustry/models/block/small_galena_brick_stairs_outer.json 2b3ba9bf0b6b3a403ba6175c2102cd25a75498d0 assets/createindustry/models/block/steel_block.json +0f978d8559ae84931d78cc985f8fd3ec7b597aea assets/createindustry/models/block/steel_cable_hub.json bd806021e77979d7c26da7a9d05a6216d28b853a assets/createindustry/models/block/steel_cap.json 488c8a24f90b5d2c8f3d2a0475350edf634ceab3 assets/createindustry/models/block/steel_cap_alt.json cbb5472e27ec5293e917bab19b74c8e821c512a3 assets/createindustry/models/block/steel_casing.json +9ec0d754c73b2928c9e704cdc7883d791f5e49e0 assets/createindustry/models/block/steel_casing_cable_hub.json +1f05f3ff6abf74026aa43967e1756d4b793f03df assets/createindustry/models/block/steel_encased_aluminum_cogwheel.json +68058b33c5d3fd221401e693023e2f53d7e51a45 assets/createindustry/models/block/steel_encased_aluminum_cogwheel_bottom.json +1be0171626c53474ecbbe0a666d21a0ffeea34e9 assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top.json +571f4f1178c9b319a6fab8f298d09571504b37ce assets/createindustry/models/block/steel_encased_aluminum_cogwheel_top_bottom.json +1f05f3ff6abf74026aa43967e1756d4b793f03df assets/createindustry/models/block/steel_encased_cogwheel.json +68058b33c5d3fd221401e693023e2f53d7e51a45 assets/createindustry/models/block/steel_encased_cogwheel_bottom.json +1be0171626c53474ecbbe0a666d21a0ffeea34e9 assets/createindustry/models/block/steel_encased_cogwheel_top.json +571f4f1178c9b319a6fab8f298d09571504b37ce assets/createindustry/models/block/steel_encased_cogwheel_top_bottom.json +0b96c98405a7426420633050595a33eb5e022abb assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel.json +86b8ab624856cbad47f7cc229c37560e59106f9b assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_bottom.json +2b83eb8208a5ec92d70839efb1d671fb2c87816b assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top.json +826d5630f53c2fa8af790fd6ea7f8d6218544a1f assets/createindustry/models/block/steel_encased_large_aluminum_cogwheel_top_bottom.json +0b96c98405a7426420633050595a33eb5e022abb assets/createindustry/models/block/steel_encased_large_cogwheel.json +86b8ab624856cbad47f7cc229c37560e59106f9b assets/createindustry/models/block/steel_encased_large_cogwheel_bottom.json +2b83eb8208a5ec92d70839efb1d671fb2c87816b assets/createindustry/models/block/steel_encased_large_cogwheel_top.json +826d5630f53c2fa8af790fd6ea7f8d6218544a1f assets/createindustry/models/block/steel_encased_large_cogwheel_top_bottom.json +0b96c98405a7426420633050595a33eb5e022abb assets/createindustry/models/block/steel_encased_large_steel_cogwheel.json +86b8ab624856cbad47f7cc229c37560e59106f9b assets/createindustry/models/block/steel_encased_large_steel_cogwheel_bottom.json +2b83eb8208a5ec92d70839efb1d671fb2c87816b assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top.json +826d5630f53c2fa8af790fd6ea7f8d6218544a1f assets/createindustry/models/block/steel_encased_large_steel_cogwheel_top_bottom.json +1f05f3ff6abf74026aa43967e1756d4b793f03df assets/createindustry/models/block/steel_encased_steel_cogwheel.json +68058b33c5d3fd221401e693023e2f53d7e51a45 assets/createindustry/models/block/steel_encased_steel_cogwheel_bottom.json +1be0171626c53474ecbbe0a666d21a0ffeea34e9 assets/createindustry/models/block/steel_encased_steel_cogwheel_top.json +571f4f1178c9b319a6fab8f298d09571504b37ce assets/createindustry/models/block/steel_encased_steel_cogwheel_top_bottom.json 63646b0593fc11776f1e4022b79b838ad17cc165 assets/createindustry/models/block/steel_ladder.json f5b9f682a2b9cb1577f4e89e67618e0f2344bbb6 assets/createindustry/models/block/steel_pipe/d_x.json ae83363f1b0512cb50c164186844fd153c704dc6 assets/createindustry/models/block/steel_pipe/d_y.json @@ -613,6 +874,9 @@ b7cb9811dafe991f80ecd7eb1babe4993dcb9a4d assets/createindustry/models/block/stee e74a84dc1d998da42ed9801bd652cb817e33fa5f assets/createindustry/models/block/steel_side.json 245a3699dacac457aab93af0ce2e5ae8dff4b9de assets/createindustry/models/block/steel_side_alt.json 4db64688e5b0ee3d48aa73de9b5609016c929105 assets/createindustry/models/block/sulfur.json +9c43316a0d77623dbfc6e2d820ca104202eea626 assets/createindustry/models/block/sulfuric_acid.json +c4f760dffeb3dbea6a544503f36a3ffd55cdccaf assets/createindustry/models/block/voltage_cube.json +16a94ce15dc9972726c687d11c46d3a8a05106a2 assets/createindustry/models/block/white_caution_block.json 6feb62eb5f8ea8f065d8805aac7f5a43304ed3a8 assets/createindustry/models/block/white_concrete.json 5da6146585e428bedf4a029b9f40096bfd9bdd48 assets/createindustry/models/block/white_concrete_bottom.json 70b2fc544d25c91cf5eac74800519ee45bc54aeb assets/createindustry/models/block/white_concrete_stairs.json @@ -622,6 +886,7 @@ b22388ff14bc6a46029531ccc4289e7d86596389 assets/createindustry/models/block/whit a4b02e457ba0337aecece38711168b75dd47e385 assets/createindustry/models/block/white_concrete_wall_post.json 54e5de2db2b87fe57b03fd6e7f7367a9fbf0831b assets/createindustry/models/block/white_concrete_wall_side.json 3fd3260e54f9faac8afc35ff6fff66cc9916bd19 assets/createindustry/models/block/white_concrete_wall_side_tall.json +38ca617ee93a79664597c87e7b844a188155a432 assets/createindustry/models/block/yellow_caution_block.json 6462121ac6c7d9f5c832103829b5fbb791fabea3 assets/createindustry/models/block/yellow_concrete.json 924bf73c8d593af605efccd6b94d2ab1df961d88 assets/createindustry/models/block/yellow_concrete_bottom.json 2d6ce34399fc952daff7988d4c53ad454e16ed5a assets/createindustry/models/block/yellow_concrete_stairs.json @@ -631,18 +896,30 @@ b093b0807e7b1f4a23cc380368a93c8131532bbf assets/createindustry/models/block/yell cf31ec6629a9250e914707879c1506e84d73d062 assets/createindustry/models/block/yellow_concrete_wall_post.json b493d128843b448de8dda98115fff7c352b76b4b assets/createindustry/models/block/yellow_concrete_wall_side.json b0d03bc429c349874b4355f167012b68b4925b0b assets/createindustry/models/block/yellow_concrete_wall_side_tall.json +5378eb08d7140f99cd09583cc8986f4e1ec6a8b7 assets/createindustry/models/item/accumulator.json +35cb1bcb272af0e36cd10bf9beb0c75796c3f03c assets/createindustry/models/item/advanced_potato_cannon.json +3c185af381288fa883113544455ecbce0ae48314 assets/createindustry/models/item/air_bucket.json df4e783f6e5b68ff02876d7a6d323e34217fc9ef assets/createindustry/models/item/air_intake.json +60b4e8ac4323607ea9dd754d32ea2da2e590bd43 assets/createindustry/models/item/aluminum_axe.json 419f613a51a3d3e7ba082ace90ec38bed954e5eb assets/createindustry/models/item/aluminum_bars.json 3ff7e1f4089e55ca8015ca30cc7308c0de9c719d assets/createindustry/models/item/aluminum_block.json +47f55ac60c73b095e91071369127906835267a9c assets/createindustry/models/item/aluminum_cable_hub.json +1be0c59777db86b0ae7f391b8392fb0d37fc2285 assets/createindustry/models/item/aluminum_cogwheel.json 5198f0e5321ee3ccb52675c4cf669dbbe90db854 assets/createindustry/models/item/aluminum_fluid_valve.json e4ee378b2aed2a321dceae8747e55390b81b1d9e assets/createindustry/models/item/aluminum_flywheel.json +780380b59b76b6ee00b0681fd8f2962f04e54447 assets/createindustry/models/item/aluminum_frame.json +6037c327dfdf70a75d4b0b2dda31abd29c651125 assets/createindustry/models/item/aluminum_hoe.json 43fe266d771d41ec0870a575e12a3ccc1712e0bc assets/createindustry/models/item/aluminum_ingot.json fbb0ce24b0dadb8bd9fefb03fd8ea867286b5e03 assets/createindustry/models/item/aluminum_ladder.json 312d7c1a6185c875539339f0745b4f09708e11de assets/createindustry/models/item/aluminum_mechanical_pump.json +29d3f4320f503857f7a4288cecd7787a32c88a35 assets/createindustry/models/item/aluminum_pickaxe.json c072641fed50ff4deb5ddd6a983ef65e71a8a51b assets/createindustry/models/item/aluminum_pipe.json 4708c4481904b69c0a137ebec1fca04c08030180 assets/createindustry/models/item/aluminum_scaffolding.json +d5975461d0e1e24cef1d54f2cd39cade8d63d41e assets/createindustry/models/item/aluminum_shovel.json 705d241709cf189e306a6b5d9b630af157d8f8c1 assets/createindustry/models/item/aluminum_smart_fluid_pipe.json +5a1a52ca2f89ac3cb0318eaef133b3c6fcc33e37 assets/createindustry/models/item/aluminum_sword.json d8abf6e8062bfbaa095d1dd96d0b218a0f7f0cd7 assets/createindustry/models/item/aluminum_truss.json +7d8d9f1e43f7bf296868d7f5b89d1418accbd083 assets/createindustry/models/item/aluminum_wire.json 86dbdbc23c12decc92c5d4fe1341b87303bab9e9 assets/createindustry/models/item/asphalt.json 920b542474d634c8d85ff32cbfff01d5f3ef9712 assets/createindustry/models/item/bauxite.json 321e843a2c02fa4fdaa60ced846af2f6c8e880b9 assets/createindustry/models/item/bauxite_pillar.json @@ -654,31 +931,49 @@ d781586c69140d00c4698d434426725148e53127 assets/createindustry/models/item/black bffbc5ebd39352eaca157e47c44cf3a7d43a29dc assets/createindustry/models/item/blasting_mixture.json eb79e25c93a3d2251496fddc141e749d2ace2b01 assets/createindustry/models/item/blast_furnace_output.json c7e6bbd897b6eb363505e2840b62ec9cee129894 assets/createindustry/models/item/block_mold.json +7d7d4580545f0732e28341f8b2ad6fa059309866 assets/createindustry/models/item/blue_caution_block.json 0e500b3a21b83741ff9a6015fa60bd944f4a9dc0 assets/createindustry/models/item/blue_concrete.json d45354dde8bd8d573bd9ef0e879562795b9b0816 assets/createindustry/models/item/blue_concrete_slab.json dd8075aec7c0dc30cc77f94cd4b87813379e0fd9 assets/createindustry/models/item/blue_concrete_stairs.json fec9cd678c1a4f0cae123fee01cfe358c4756bbf assets/createindustry/models/item/blue_concrete_wall.json +4aa0496e593bf765cdef621ae2a932871684630c assets/createindustry/models/item/bottle_of_battery_acid.json +0aa3432d3f8007b4a68e57e3993750bc2b1ed285 assets/createindustry/models/item/bottle_of_concrete.json +d7d6e55547aeb0afd6ed8b1c8c8a35a0a950103f assets/createindustry/models/item/brass_cable_hub.json d832d50832e1b4ca9421edf71563ff4db5add8a6 assets/createindustry/models/item/brass_fluid_valve.json +3d96671aac1edcf9bebef5d6ee11b8aed73da23e assets/createindustry/models/item/brass_frame.json ac45e3b374db329bc064ab46a33777881596e326 assets/createindustry/models/item/brass_mechanical_pump.json 0ed18f11882e007d99645aee79262b249152b119 assets/createindustry/models/item/brass_pipe.json 07bd9829b388ce667b69b6f74f2e076de129ed26 assets/createindustry/models/item/brass_smart_fluid_pipe.json +0fff77186ff3d976fb70f7669b3d516b9385392d assets/createindustry/models/item/brass_truss.json +b83500d54e854b5fed94d82b2a2f53de15cfe49f assets/createindustry/models/item/brown_caution_block.json 36461f7f8297e259f09311f5fbf1353729fc5e77 assets/createindustry/models/item/brown_concrete.json c2f7be5a86f2e90c2d4df99b977e20f2d69b1560 assets/createindustry/models/item/brown_concrete_slab.json 80078af280956744a32d80f3483558659f15ed15 assets/createindustry/models/item/brown_concrete_stairs.json e4cd211a7f3dc7dbe2b5fc2934a4ce93a65d4c47 assets/createindustry/models/item/brown_concrete_wall.json +9127068be78c8e8c74a9ddb5c4b62ba64506f05f assets/createindustry/models/item/butane_bucket.json +e7cd06011d990cefc0bb0e5c4d322b21c0880ac9 assets/createindustry/models/item/cable_connector.json +3e8a58744f3cb03793da04a91d51ae8b427cdfaa assets/createindustry/models/item/cable_tube.json +f175d7c61d59d3446b26427b22d063d75e5a41e9 assets/createindustry/models/item/capacitor.json +ce8dd3be5850f99d872e1dd3ebee1122d374bd66 assets/createindustry/models/item/capacitor_.json +d365b06724b9af57bafadc1ebe45240e9715ad4e assets/createindustry/models/item/carbon_dioxide_bucket.json bd1274aa4df047befd8aa63d073ae6a2e382432a assets/createindustry/models/item/casting_basin.json c16644574407f152b635b950f5c15a0eb3cb1bdf assets/createindustry/models/item/casting_spout.json +272a5dab679e6cdd3adb6eb326d1cf3fb2edefc9 assets/createindustry/models/item/cast_iron_bars.json bcc628930b459ed69c16e0cc33f2e04d5c367045 assets/createindustry/models/item/cast_iron_block.json -7dfdd11724f4ba63589d32f8418eaf78d448b14e assets/createindustry/models/item/cast_iron_distillation_controller.json -a9894a4751c14ceddcf13cfee01305ffa950aa17 assets/createindustry/models/item/cast_iron_distillation_output.json 31bf7ebfb0a210e60d861cf2f965b08732184d26 assets/createindustry/models/item/cast_iron_fluid_valve.json 1d401f00bd6c3e713f6cfd1cea8aa876fd78faf5 assets/createindustry/models/item/cast_iron_flywheel.json +00860ab5ddbe919010a54c100ae3d2326e38a2e0 assets/createindustry/models/item/cast_iron_frame.json 68f91b86115da5e4545bea414959949f68493422 assets/createindustry/models/item/cast_iron_ingot.json +a8e6f1d0bc0f2561bf36855a3c7b4546cf5ae61c assets/createindustry/models/item/cast_iron_ladder.json 42393162bc16f755238c5bc1ab9e9d4cc1bbeac6 assets/createindustry/models/item/cast_iron_mechanical_pump.json 19c49bcee254ff6b45dcfcdc5548fe6bc3688f54 assets/createindustry/models/item/cast_iron_pipe.json bed785632798f760451d7c2cd5245659352994d2 assets/createindustry/models/item/cast_iron_smart_fluid_pipe.json -bb102f339788990402a4675237abcf05f7ae1010 assets/createindustry/models/item/caution_block.json +160dcd2398e5a6dc2e98ef932b5af1ddeb918f5c assets/createindustry/models/item/cast_iron_truss.json 35a49862fa70c47882d7d5cb47831075755bf0d8 assets/createindustry/models/item/cement.json +e2c022c71c9e47caae630cec00b0176890da7e1b assets/createindustry/models/item/cinderblock.json +731076980bdefee05cfee673276bfc19969b4bb3 assets/createindustry/models/item/cinderflourblock.json +b6c8f40e7b483bb05cefa33448b2047d2a9ca12b assets/createindustry/models/item/cinderflour_block.json +12ace214b81e90ba7cc29e8a596f9421d0981c8a assets/createindustry/models/item/cinder_block.json 193ac78905aa8db6ea533d5aa207ae7e8355d01d assets/createindustry/models/item/coal_coke.json 2df55d7b93afe66992be20528b7cb03d2dfd8326 assets/createindustry/models/item/coal_coke_block.json 29b82a0ddc14e73adceb43f8e83425f0a4a2931c assets/createindustry/models/item/coal_coke_dust.json @@ -689,10 +984,20 @@ e777ecfdc7c4e356782cf094f998a990f8ba2c64 assets/createindustry/models/item/compa 0a1143ce48399a90b3c8686c834afcdd484cb98e assets/createindustry/models/item/concrete_slab.json 2e3318e2d03c39c336cdf05abbba1dbff3573bc7 assets/createindustry/models/item/concrete_stairs.json ce1f6f960f1e440b39c9e63a62f04d2ced3758ad assets/createindustry/models/item/concrete_wall.json +271628c589f91d3a39fb1c2fb936426e73c1ba48 assets/createindustry/models/item/converter.json 90c95d02c97b3436880ea95e939a64ecbf2727aa assets/createindustry/models/item/cooling_fluid_bucket.json +98b5a27e6430dca33cfa787060cc3eb769e2caed assets/createindustry/models/item/copper_cable.json +cc24fbb55ffa1d39a6ac9e9a4f8da3100013b196 assets/createindustry/models/item/copper_cable_hub.json +80404604e0170b67d5c2c08230a96d7348fc93c7 assets/createindustry/models/item/copper_coil.json +b16997500173f5fc478cdc8edd1907f3f1cf2169 assets/createindustry/models/item/copper_frame.json 49d87ad25fd676050099ea115d6f863926362852 assets/createindustry/models/item/copper_grenade.json +f60abd7d5e52ce2095ab260a81e45a1954714742 assets/createindustry/models/item/copper_sulfate.json +ad6fd2b94712c059de051174f63a21907fa73fd0 assets/createindustry/models/item/copper_truss.json +1a2b71500e243770795cd4a12abc7bb7a92aee64 assets/createindustry/models/item/copper_wire.json +81ea4bf17eafc2bb807a9a8bb49cace0d867180b assets/createindustry/models/item/copycat_cable_block.json +dce61219226312eb7fdbdce7bec12544c489ee25 assets/createindustry/models/item/creative_generator.json 8ed004c50a5c1c9670025cb76afebc0e283055ca assets/createindustry/models/item/creosote_bucket.json -85000c80c1b61f66b8fdbfce61d529d8b1539b72 assets/createindustry/models/item/crude_oil_fluid_bucket.json +a85e90a5c9bab0a92d41c173d959fec8957e7269 assets/createindustry/models/item/crude_oil_bucket.json 2a8d55f43b7c42ca0cee6b1ba99ced8d292c0b31 assets/createindustry/models/item/cut_bauxite.json deeee538592054d621289d581b33a401c1850dd3 assets/createindustry/models/item/cut_bauxite_bricks.json a66e7cc98c5ed70b26911d383644c41df69e1e61 assets/createindustry/models/item/cut_bauxite_brick_slab.json @@ -701,61 +1006,116 @@ a66e7cc98c5ed70b26911d383644c41df69e1e61 assets/createindustry/models/item/cut_b 9276b50cdc74c3d8d200f76d1fd3763ba95ad36b assets/createindustry/models/item/cut_bauxite_slab.json 41904eb26eee5fcfeab50bcef6c8805c0c0ed641 assets/createindustry/models/item/cut_bauxite_stairs.json 8f65ac76b67e9f686a417f9d34554844c427311f assets/createindustry/models/item/cut_bauxite_wall.json +e91733c44646be9e5137e7d9b86a38a27301d9a8 assets/createindustry/models/item/cut_galena.json +1d831ef586a6184ddd2dfd746289c01eb70885f1 assets/createindustry/models/item/cut_galena_bricks.json +01808d550d21090515fb66c2c864f5ce7631b2c7 assets/createindustry/models/item/cut_galena_brick_slab.json +021494977df980ff8556309080d2e148bf5d16a8 assets/createindustry/models/item/cut_galena_brick_stairs.json +b4daa6bed63954e3cfaafca574faa315875506da assets/createindustry/models/item/cut_galena_brick_wall.json +8e6b89ff957112e3ec1913ffba11b66b8965b83b assets/createindustry/models/item/cut_galena_slab.json +ad98aec68ac1358b227ebef45dda0fa2eeb7eee2 assets/createindustry/models/item/cut_galena_stairs.json +dc05501bab4d5581e19e5f667183a9d868203b9a assets/createindustry/models/item/cut_galena_wall.json +80f22e16f69aea1ed4490eb52f3479e5a6de3891 assets/createindustry/models/item/cyan_caution_block.json b332104528dd1893b02efaca5b8842b0cce278cd assets/createindustry/models/item/cyan_concrete.json 1bd83ce18bbabed97b2bd95f98b7a826fae34485 assets/createindustry/models/item/cyan_concrete_slab.json fdfc5e7361fb6abd88dd51dc7cb46f52c73c13da assets/createindustry/models/item/cyan_concrete_stairs.json a41929b5df14622b2132c410bcf434b0d728359b assets/createindustry/models/item/cyan_concrete_wall.json +cb092460bb27a7df026ac74a012c6dcffc907c30 assets/createindustry/models/item/deepslate_lead_ore.json +1fa06bbf168d3a6ac3dfb4bbe3b442a001a9c380 assets/createindustry/models/item/deepslate_lithium_ore.json +1278a140102bad5f4d21ee374c5b09ed5a381089 assets/createindustry/models/item/deepslate_nickel_ore.json +cdc9e338da0eb3e4be2a1ad6cef511202d4b6798 assets/createindustry/models/item/diagonal_cable_block.json c41b0d18dd34675d2a9bde1a1a47fb62800e0197 assets/createindustry/models/item/diesel_bucket.json a52e5b74d112f98514db2f39db50cf3f90f9e21c assets/createindustry/models/item/diesel_engine.json 6bff071e67b471a8c6cf0da2442568022ad03edf assets/createindustry/models/item/diesel_engine_expansion.json +b198dbb3a8f8ce36107d0e295587b3581e685157 assets/createindustry/models/item/electric_casing.json +fd0d7ccbdeaf7f2c93ae478045bd18a791780009 assets/createindustry/models/item/electric_motor.json +a12c9cfbf24627a91595f454cdeffefa3186efe6 assets/createindustry/models/item/energy_meter.json 48a0ea668640b5c304f741b2dc65897ec0810d13 assets/createindustry/models/item/engine_base.json 83e4b84c02445ef94071122a1f9e4841bc4f6672 assets/createindustry/models/item/engine_chamber.json +ac56b55bbbf607bd42ce882b7af8ac048d0045c4 assets/createindustry/models/item/ethylene_bucket.json 2e64755176a4d754a4157884e654ea010f9f11aa assets/createindustry/models/item/exhaust.json 19de5aea7331fb1d50f95ee5ac3524e1c4de73e6 assets/createindustry/models/item/factory_floor.json a3aa70d1667e1cb2ad3a355aa2df5f02fe19fa87 assets/createindustry/models/item/factory_floor_slab.json 6dd276ab541bed52e01ce67170e5d4bb90ee6fcf assets/createindustry/models/item/factory_floor_stairs.json +b78bcaf39174b7019b2224c15f2ea56c730f1416 assets/createindustry/models/item/firebox.json 3c314a4f48bfc43b46023c1426e77c0555233253 assets/createindustry/models/item/fireclay.json b59c027fe75c566a73d1c068f0558e0c8d262226 assets/createindustry/models/item/fireclay_ball.json 3458844b44afee270059968cc283e48783833311 assets/createindustry/models/item/fireproof_brick.json 5977d3dbc4baaef30bbaf5fc1f0dba0ee8df2008 assets/createindustry/models/item/fireproof_bricks.json 4375c1b9f57ca9b5b5cf700b9b7c4ff25c554650 assets/createindustry/models/item/fireproof_brick_reinforcement.json +12c9549ea0701818057a9a8e5c75803b33f5ba14 assets/createindustry/models/item/flamethrower.json 004725e848bb688280bcb1e0bb03901ab640318a assets/createindustry/models/item/flarestack.json 51b592f033acb1ebef30bcccb5893e8532169eeb assets/createindustry/models/item/formwork_block.json 643ec369a783780a0c783c3190613930536d2141 assets/createindustry/models/item/fossilstone.json +d3a33e53fd26e0b0fc528ff1d713dc583a22b877 assets/createindustry/models/item/galena.json +014dd309c6abd5d5118060b9127ed7bd1f68b487 assets/createindustry/models/item/galena_pillar.json +e883396a11d714d0a41b29e093443754e2635b82 assets/createindustry/models/item/galvanic_cell.json 8eae8b27001b130d84e2b06411e0db08f0e2fdc6 assets/createindustry/models/item/gasoline_bucket.json 13cd9f2565b1eedee35ffbdc9649d135b9b37f76 assets/createindustry/models/item/gasoline_engine.json 742c124367971a0dbecfb6636b9df6badb5197d1 assets/createindustry/models/item/gasoline_engine_back.json +c493c6afd25b76963401fd7f104288d4fd7eeb01 assets/createindustry/models/item/generator.json +2622ca252f4b4351a4ec37976e85e7b18a175815 assets/createindustry/models/item/gray_caution_block.json 8b4649b6a5e75a41b8423d69ad7e1a23b6f605ba assets/createindustry/models/item/gray_concrete.json 3aaf56439b5aa67f9957dc37b2a973f7ffe1ebc5 assets/createindustry/models/item/gray_concrete_slab.json f2e482ff0d0b555b4581c15edb4e01b9c7935820 assets/createindustry/models/item/gray_concrete_stairs.json 52c6759e1aabefb729c15e08991b905792b42474 assets/createindustry/models/item/gray_concrete_wall.json +7159c146637003f6ab787b13ef1782b2755c8291 assets/createindustry/models/item/green_caution_block.json 9c83d9da0735be26cd161fca9c9cf45313e8ce3f assets/createindustry/models/item/green_concrete.json 054e9d4105f28ca00c2af958d0cd35a36430bdce assets/createindustry/models/item/green_concrete_slab.json 9dc32af56bdb7d25366ef1dcb4e24ba24ca38993 assets/createindustry/models/item/green_concrete_stairs.json 54e1b1c148e2a5f3235ed472d7386324fad82163 assets/createindustry/models/item/green_concrete_wall.json 05529b1cd0b8e6f5ae54440f59bdf33b0e3a50b7 assets/createindustry/models/item/hardened_planks.json +cc83f31a318b8c43e9bdc125c62d1c25750019ff assets/createindustry/models/item/hardened_planks_slab.json +f72c5699b4f2ed494d460dc4c9e05e69e12fddc0 assets/createindustry/models/item/heavy_cable_hub.json 3ea2174152c3617010a278e23923c08917da844e assets/createindustry/models/item/heavy_casing_door.json +e8c4d2eb1eba75a042a07210c237c9eb380370d0 assets/createindustry/models/item/heavy_casing_encased_aluminum_cogwheel.json +e8c4d2eb1eba75a042a07210c237c9eb380370d0 assets/createindustry/models/item/heavy_casing_encased_cogwheel.json +d5f317b48f46b37fa65afb3d76c1c729438b08ac assets/createindustry/models/item/heavy_casing_encased_large_aluminum_cogwheel.json +d5f317b48f46b37fa65afb3d76c1c729438b08ac assets/createindustry/models/item/heavy_casing_encased_large_cogwheel.json +d5f317b48f46b37fa65afb3d76c1c729438b08ac assets/createindustry/models/item/heavy_casing_encased_large_steel_cogwheel.json +74eaea168a32e0e6b4c7544b2f9ecb9fe81e5fa7 assets/createindustry/models/item/heavy_casing_encased_shaft.json +e8c4d2eb1eba75a042a07210c237c9eb380370d0 assets/createindustry/models/item/heavy_casing_encased_steel_cogwheel.json 3350ad95bdea61d3cc059f47071c890f0972fb3d assets/createindustry/models/item/heavy_machinery_casing.json bb21d0a35fad1c88f62c53a4cec1c2015570357b assets/createindustry/models/item/heavy_oil_bucket.json f5fb667375a46af9fe0c912dbf17e7ab3ab1e359 assets/createindustry/models/item/heavy_plate.json 11d94f7781a201b621cf983f8f62ba461a94fc88 assets/createindustry/models/item/industrial_pipe.json 005e0eff39d8333ed5dfcb052c85e2a7a23545eb assets/createindustry/models/item/ingot_mold.json cfbcdeb84045805de391d11ce1b92919208c37cc assets/createindustry/models/item/kerosene_bucket.json +9b971eb53f5f8b7a03d886dc1ce598a79a89207e assets/createindustry/models/item/large_aluminum_cogwheel.json 3447d7f6014ce4b3cad86ebd5857db7e66e9fa54 assets/createindustry/models/item/large_pumpjack_hammer_connector.json de50273ea6fd0584de530333aec99e08b2cd9741 assets/createindustry/models/item/large_pumpjack_hammer_head.json e18d2b221804a5be6d74686611a155029a3dd72f assets/createindustry/models/item/large_pumpjack_hammer_part.json e764465c7be6c9b06a3800aca0f99794f4c201ca assets/createindustry/models/item/large_radial_engine.json +e32d21c2cc02fcb6c07334eb7b3ab55a2139676b assets/createindustry/models/item/large_steel_cogwheel.json d7a7d4fc5fcf2a1bbe56b43501a04f5aabd98459 assets/createindustry/models/item/layered_bauxite.json +1d7deb8d342391a4afc7e02ef13a21f998802432 assets/createindustry/models/item/layered_galena.json +5f8f733ebd11ceaccaa2f7ba57ce436c4a1d16ab assets/createindustry/models/item/lead_axe.json +28057ad0c46f83138876dfb20f730d57ccf0f0f8 assets/createindustry/models/item/lead_bars.json +92a8784237dad34027fc1d0121e43eef12bef3a7 assets/createindustry/models/item/lead_block.json +19bdbdb9a9fef4cfbab14473d38784b0d7bdb831 assets/createindustry/models/item/lead_flywheel.json +0aeeb0b4d4baf4edbec6872361fe9b96a1a14b27 assets/createindustry/models/item/lead_frame.json +eac2595d50e5196dfc1e826669885824e5172d11 assets/createindustry/models/item/lead_glass.json +d1fa72ad52b2bcc4147dbfaa0601825a7dd5fb41 assets/createindustry/models/item/lead_hoe.json +c8060688f48f18a9e3f540aa9f76fe00fee3dabe assets/createindustry/models/item/lead_ingot.json +441e8886d0337751d696cc9e66286852321aa106 assets/createindustry/models/item/lead_ladder.json +e8cba64a95a08e7ec8257a1caba83d3670dce491 assets/createindustry/models/item/lead_ore.json +252cd78baf9639d4d96dca37357a03ec3cc8e199 assets/createindustry/models/item/lead_pickaxe.json +765027c13df8f325106a00f6ad5529a83e18d9d6 assets/createindustry/models/item/lead_shovel.json +d37e55125b64aa6db8df6575f2dd67e113403862 assets/createindustry/models/item/lead_sword.json +f750e7bdbaa82165d28945730a43a717a3174cb7 assets/createindustry/models/item/lead_truss.json +3b9d274e6f507f1c6b2b74a1421ed0399d73f59f assets/createindustry/models/item/light_blue_caution_block.json fb58c93d46093cc523944664ee965d9b5f27877c assets/createindustry/models/item/light_blue_concrete.json 9691dc0d4a7e9b39fe35c0cce4b3a192e6d7baac assets/createindustry/models/item/light_blue_concrete_slab.json f58973914440d0d4e1453d6e4c7ee04ba3f8a46c assets/createindustry/models/item/light_blue_concrete_stairs.json 21d1d17e9f69a4ab54d007c87ef69d4d7430119b assets/createindustry/models/item/light_blue_concrete_wall.json +a113b2be39e772b4a5b71d90ac67c282677b3cb8 assets/createindustry/models/item/light_bulb.json +e19d2a0f3af2ba5d1f55c91f09cb9f3305018c3c assets/createindustry/models/item/light_gray_caution_block.json c8c76e6969c6cf99e2ec6b2f1e661fbfbb00f3fa assets/createindustry/models/item/light_gray_concrete.json c13521ab7a3d7e386889b770c95dd5a826e24c6a assets/createindustry/models/item/light_gray_concrete_slab.json 9383a8976fe3b662aaf31d812663cc155715d4e4 assets/createindustry/models/item/light_gray_concrete_stairs.json c8a9634fe09987babbc8e9aa934090adfae577d8 assets/createindustry/models/item/light_gray_concrete_wall.json 721cb5ff317258671918097bcbf97190fb5cade3 assets/createindustry/models/item/lignite.json ef4355a0b90c09a0a83b86aad0ccf5559ca5b654 assets/createindustry/models/item/limesand.json +a0ff118ffc592a1e895bee410eecf13200252aa9 assets/createindustry/models/item/lime_caution_block.json 829094aced5c31b521ba8e2b2ac30cca838cc6db assets/createindustry/models/item/lime_concrete.json b24ad6cca7065be5e47a92fffbb3877b5093ff0a assets/createindustry/models/item/lime_concrete_slab.json b576ca63c1f0469b7a20aa235559166b4be13032 assets/createindustry/models/item/lime_concrete_stairs.json @@ -763,45 +1123,78 @@ b576ca63c1f0469b7a20aa235559166b4be13032 assets/createindustry/models/item/lime_ 0801c0e7a10d6c4377a2b057173b911029e8cce6 assets/createindustry/models/item/liquid_asphalt_bucket.json afd78a4a1dfd1a3d1162e4957d80f6e0eedd3aa9 assets/createindustry/models/item/liquid_concrete_bucket.json c8f3a5e8d32abd9c72bf8a0b04762ac47d112371 assets/createindustry/models/item/liquid_plastic_bucket.json +1a656232b881227b58b530b6f96799fcc342ceff assets/createindustry/models/item/lithium_blade.json +f2df53437f9cacd9b6fb5c0b94457d82268a54b7 assets/createindustry/models/item/lithium_block.json +f7bb7965f23b975b2a8358f1be44bbc3cac4a34a assets/createindustry/models/item/lithium_charge.json +a4eb58d370d12ff48d77f5e707e186adb52f0657 assets/createindustry/models/item/lithium_ingot.json +a0b556af2e412e9912d5e81190a2f0c8a79d0c17 assets/createindustry/models/item/lithium_ore.json +05f8b7ed5852f72d38dad2d340c0f150a7be2e25 assets/createindustry/models/item/lithium_torch.json +8ec37dd6353605d39cf97697505aa09c01b8fa9e assets/createindustry/models/item/lit_lithium_blade.json +7b75b33d23dd4f090d734e342bdde491c88e3817 assets/createindustry/models/item/low_grade_fuel_engine.json +c3c72b7230f9ebc5c8f90f6fc2643c59fa6f328f assets/createindustry/models/item/lpg_bucket.json 4426390b77de8371adc0936d353aa7caf1c39c7c assets/createindustry/models/item/lpg_engine.json 418426bff92e8e096aac43c5dbd6b408e5ae16b2 assets/createindustry/models/item/lpg_engine_back.json a0d9ca1b8e1823b3b418816b5d36fdac39239027 assets/createindustry/models/item/lubrication_oil_bucket.json 0bd1b1f676a937aad3c4c66aa74fc86ea5b3ec90 assets/createindustry/models/item/machine_input.json +85752c1fe9c1d747a60d4bbb66fdd7c494387c51 assets/createindustry/models/item/magenta_caution_block.json 1b15d7e74c5269237673bfcc4448fd13815eca67 assets/createindustry/models/item/magenta_concrete.json bcbfceca042e181d90ea6135e12e7b48ea56b248 assets/createindustry/models/item/magenta_concrete_slab.json d0a0503e21424a6f533cefaa60471605de370ad9 assets/createindustry/models/item/magenta_concrete_stairs.json 21a2e72be43c89b20f77dea402843961f6f02a60 assets/createindustry/models/item/magenta_concrete_wall.json +9a01875f7438cc2015ff14e8e6b8326d42f2e478 assets/createindustry/models/item/magnetic_ingot.json aebcae23af867cb986a10274104127ab0988f637 assets/createindustry/models/item/molten_slag_bucket.json fdebd90ac32bf767e522475428c8297d8d645bcb assets/createindustry/models/item/molten_steel_bucket.json 95c6e94b357b30089d87716aeaa8cf6d75a2e612 assets/createindustry/models/item/napalm_bomb.json 72abb5ff07489f9ac15b5f8b4d6ec3fafd2f6619 assets/createindustry/models/item/napalm_bucket.json +edba99aeeb8cf04dc4d57ec29901210de3f649b7 assets/createindustry/models/item/napalm_potato.json 712eff36a495bb13d396ca1792417100e2ac9d6b assets/createindustry/models/item/naphtha_bucket.json +ac4660ef41838faac45866fe35df5764e5ec0d86 assets/createindustry/models/item/neon_bucket.json +ea8db3551762a9afa7b38be90d306b18f97b668c assets/createindustry/models/item/neon_tube.json +5dded0eda3ed262faec7baab5183aae76f472298 assets/createindustry/models/item/nickel_bars.json +503619d4d6ade14ededd93ceaa8c2d23470b8364 assets/createindustry/models/item/nickel_block.json +6557ee745742c13fafa6c7d77e99ad4cfc1287c0 assets/createindustry/models/item/nickel_flywheel.json +09fc9f9c1010ac6320a4ae9b662b65c039ad8d27 assets/createindustry/models/item/nickel_frame.json +29ded87ac2f8a88424e07f64c385b804e6efdbe2 assets/createindustry/models/item/nickel_ingot.json +6fb21c34e751355f025adcae430ecb4369ad9115 assets/createindustry/models/item/nickel_ladder.json +094be44527abd2ecba8e36054804989ce8d77e0d assets/createindustry/models/item/nickel_ore.json +18b341394ead01634b4605d173b71d24b24d1040 assets/createindustry/models/item/nickel_truss.json dc171bfad49fad0f8b6ec251edce2bcd90768546 assets/createindustry/models/item/nitrate_dust.json eedf72e518ec4e6ad1c1ecf4aed3233544e878f9 assets/createindustry/models/item/oil_deposit.json +11c0ab369a2812d0f94565758da49802fe4b57aa assets/createindustry/models/item/orange_caution_block.json 1511f75e2f546ae188e0d1c7f6e2687f9fd3ff7e assets/createindustry/models/item/orange_concrete.json 107a58705769ec7182c24617338cca534b266501 assets/createindustry/models/item/orange_concrete_slab.json 651d56ca7c7307daaef9e7feeeead5582e37fa7e assets/createindustry/models/item/orange_concrete_stairs.json 347e09ffe2856f7e0548b2b234fd7cb116bfae51 assets/createindustry/models/item/orange_concrete_wall.json +36dac3746759d33e995890ce3987be1bf4055cea assets/createindustry/models/item/pink_caution_block.json 3105f6e596992405e49c96c1c88b8b00b1f78c95 assets/createindustry/models/item/pink_concrete.json 07076a67a02ecb9ab966646b16e6e9bd0ba94367 assets/createindustry/models/item/pink_concrete_slab.json 528630894888bb25f00928310e4c21c272ab64c8 assets/createindustry/models/item/pink_concrete_stairs.json 613727f4f1358377bb53a7870d652d1d49084432 assets/createindustry/models/item/pink_concrete_wall.json +d3c50cee5df6cf12c86b42946ac82bee2e5f1e9d assets/createindustry/models/item/pipe_bomb.json 05cf025f200145a6eeddb453147c4126c88a6c80 assets/createindustry/models/item/plastic_block.json 07a099a846b4a9a300e2e24bb47ce4fa5f38211a assets/createindustry/models/item/plastic_fluid_valve.json 99680a2f6e046cde691cf2ed42911a16b7eaa3e2 assets/createindustry/models/item/plastic_mechanical_pump.json 283488f515d6995fef4361f17c1d90adad4a2002 assets/createindustry/models/item/plastic_pipe.json df072fd082642ee0dc58073f5d8728cafc31aa42 assets/createindustry/models/item/plastic_sheet.json c50ba841e47e130f878acfb098692c66e57ed8f1 assets/createindustry/models/item/plastic_smart_fluid_pipe.json +11a7aeca0850dca587c9f112c1fe090d81b1a43d assets/createindustry/models/item/polarizer.json 807c3ef2aade29d8b1899855908a3588f0de83b4 assets/createindustry/models/item/polished_cut_bauxite.json ee64549dca25b08c0c1a65f37baae463f573b328 assets/createindustry/models/item/polished_cut_bauxite_slab.json 02868715b44fad3e3f997d0f43ea12fcaded3c3e assets/createindustry/models/item/polished_cut_bauxite_stairs.json 79442f95a17215f0c06b41878421694834f8ec81 assets/createindustry/models/item/polished_cut_bauxite_wall.json +ecc110e835800188539e3114622f4c277f97b22c assets/createindustry/models/item/polished_cut_galena.json +2c275876fbb0b4be9ff76561efd8ca6d42f66f81 assets/createindustry/models/item/polished_cut_galena_slab.json +8fae1fd67917488e0c84c6f0f0e2e87ac1061844 assets/createindustry/models/item/polished_cut_galena_stairs.json +41beb3993372ca2c7acc73ecaa4da74976ebe59c assets/createindustry/models/item/polished_cut_galena_wall.json +7f063b7e3ea7d6d4743b5ea0b065715cb3767fad assets/createindustry/models/item/propane_bucket.json +3363356cc2a01d45a3278806ef20074aa77b83da assets/createindustry/models/item/propylene_bucket.json 02ba8698be21bd1ce31e65d2729354fb06c141d7 assets/createindustry/models/item/pumpjack_base.json d8c739d1db200fee2dd200fb1cde9c7504c9371a assets/createindustry/models/item/pumpjack_crank.json 84474748c5b9ebe104627ccebc75e7f1981e803e assets/createindustry/models/item/pumpjack_hammer.json ae9babca4e5b69002d52e6b8f6120247ed4cf93f assets/createindustry/models/item/pumpjack_hammer_connector.json a3da7ffe1ff48a349e1fa8c51fad45a039df21cb assets/createindustry/models/item/pumpjack_hammer_head.json 551269d5d631800cc23c6df0f5dab49bd744270f assets/createindustry/models/item/pumpjack_hammer_part.json +67a5e5af8fd40632de1fbec74effdf74cb8b7388 assets/createindustry/models/item/purple_caution_block.json 9122863d975fd4d33444c52d3c805b4a7b7786e7 assets/createindustry/models/item/purple_concrete.json c7a3707d0cae163e42949b7aca308e3d7402690c assets/createindustry/models/item/purple_concrete_slab.json 842b58437912d821c0eef7bd674943d4fd1cd93d assets/createindustry/models/item/purple_concrete_stairs.json @@ -809,6 +1202,9 @@ c7a3707d0cae163e42949b7aca308e3d7402690c assets/createindustry/models/item/purpl c0d138febefccd29a2f792ba36a7134a0d1fb7bc assets/createindustry/models/item/quad_potato_cannon.json ba910eb8a90456ab5be8fc74bcd1132816f46453 assets/createindustry/models/item/radial_engine.json ab46704feee1d54d47a205e4446a935084133cd3 assets/createindustry/models/item/radial_engine_input_ponder.json +2087c78f8affba12a9c05f5eedef6ea188b3da06 assets/createindustry/models/item/raw_lead.json +408ee03935999b7db177660960d6f79a7ea52acb assets/createindustry/models/item/raw_lithium.json +fab94dcf9902a100ef8092c5fdba81c86df7a39f assets/createindustry/models/item/raw_nickel.json f97c2c92585febf752568efab2e4b32c42231c05 assets/createindustry/models/item/rebar.json 5fb2b3ff8e7512192f82e0a10a068cf4f492cf5d assets/createindustry/models/item/rebar_concrete.json 8ec23c118ed839444d06480276dc53f15cd64670 assets/createindustry/models/item/rebar_concrete_slab.json @@ -820,6 +1216,10 @@ f55cb21a13e77f008fb6a97bae4c5d64456b2a63 assets/createindustry/models/item/rebar 9ec7fa58804805fccdf04251f1468f28e6fc0e8d assets/createindustry/models/item/red_concrete_slab.json 6ad4e22736166fc74bfcfdc8793cc1d8701b233d assets/createindustry/models/item/red_concrete_stairs.json 066d534fccefc301667305c9f09edcc375429005 assets/createindustry/models/item/red_concrete_wall.json +ecea12128a81a3b06583cdbe3eb5c447c1e47382 assets/createindustry/models/item/resistor.json +da773cfc516d5c63fcf8b9121d8abd63e232db3c assets/createindustry/models/item/resistor_.json +16e5d1798a521ce9063648650aaf5e95bbca73f3 assets/createindustry/models/item/rgb_light_bulb.json +de354193657deba625f94197ca536b4d29332cb2 assets/createindustry/models/item/rotor.json 1b015e4f64dab5eba1321152bd56399f0b4c0c73 assets/createindustry/models/item/screw.json afbd7efe5382a3b4a4eba0f4ac291d0ab6fc938c assets/createindustry/models/item/screwdriver.json 7504aef53f2eaa95116f19d985a52730d8b77d3f assets/createindustry/models/item/slag.json @@ -827,28 +1227,57 @@ c87ca926e652a82a0daa63f88b7e665eb6bee723 assets/createindustry/models/item/small fbc93591dc855418e03c81d5f7495ad33790bc02 assets/createindustry/models/item/small_bauxite_brick_slab.json 9691ba54313969489d427ce74cf8bb187117b2b4 assets/createindustry/models/item/small_bauxite_brick_stairs.json 83e515600300c8466f658d1206c41e7bb360eecb assets/createindustry/models/item/small_bauxite_brick_wall.json +5f467ba2a9dd3f5fcf26e5a5acb52ca4176c7e24 assets/createindustry/models/item/small_galena_bricks.json +7dc6e4ad80da179ebab4bfe76d83d0c8c3e47f4b assets/createindustry/models/item/small_galena_brick_slab.json +616832b33b9ea46fbc71dfcff29b6295c2d0bb47 assets/createindustry/models/item/small_galena_brick_stairs.json +6b1ac89ea5e8f959e2dac82d3640efb5fd7248a3 assets/createindustry/models/item/small_galena_brick_wall.json c956bf54de0bb6510991596af1370831bbbbbd5a assets/createindustry/models/item/spark_plug.json +acb24572e3a546a810af0569b9b56a40f66d572c assets/createindustry/models/item/stator.json +03ec0cdf11d8c70110da1436592ac8d3f302ceea assets/createindustry/models/item/steel_axe.json f1ccc71e7bec0435a40c062f9fd2b5decdf46d2f assets/createindustry/models/item/steel_bars.json 67bdc15214f58b2dab1cf71fbb1db48e917881ce assets/createindustry/models/item/steel_block.json +e46d45cd25c12d053ac9a05ecdd8dde9178754ff assets/createindustry/models/item/steel_boots.json +122da04a6f01d0f86467ccdb3c835135da103378 assets/createindustry/models/item/steel_cable_hub.json 0bc0db3c9e33b0fabdbbf36af1bb06eff1a97022 assets/createindustry/models/item/steel_casing.json +dbe96840369470e3dc012e6d103f8a478681c264 assets/createindustry/models/item/steel_casing_cable_hub.json +f977b50f79ff96a7de9fc5d3cccac80382317490 assets/createindustry/models/item/steel_chestplate.json +e28810332f6772f1d726691f17c62050199dc2e3 assets/createindustry/models/item/steel_cogwheel.json 5f831c7585810fe28aeb8939ee01a725bfbac7c6 assets/createindustry/models/item/steel_distillation_controller.json b2e00aeba06f4dc6ef642668a71558c809a05216 assets/createindustry/models/item/steel_distillation_output.json 3ced9a065e2c9c21ed7dfbfc8ca5d2feabcc43d9 assets/createindustry/models/item/steel_door.json +6a14d9bbb3059659c692cda11c6f12d77662b101 assets/createindustry/models/item/steel_encased_aluminum_cogwheel.json +6a14d9bbb3059659c692cda11c6f12d77662b101 assets/createindustry/models/item/steel_encased_cogwheel.json +707afcdc82b1f4ada0c98f24db1c2b2208db5abf assets/createindustry/models/item/steel_encased_large_aluminum_cogwheel.json +707afcdc82b1f4ada0c98f24db1c2b2208db5abf assets/createindustry/models/item/steel_encased_large_cogwheel.json +707afcdc82b1f4ada0c98f24db1c2b2208db5abf assets/createindustry/models/item/steel_encased_large_steel_cogwheel.json +cd8ad31f7aebd2d87eb32bea8d07c9ba0307a266 assets/createindustry/models/item/steel_encased_shaft.json +6a14d9bbb3059659c692cda11c6f12d77662b101 assets/createindustry/models/item/steel_encased_steel_cogwheel.json 75e956841c1ae5d1e7787f2921f625d44693635c assets/createindustry/models/item/steel_fluid_tank.json a5f60256e5878ffc0ed8fb117e05ac20cb385905 assets/createindustry/models/item/steel_fluid_valve.json c1d40f4d0737b4c3040cb5ecda04f74f602807f0 assets/createindustry/models/item/steel_flywheel.json 361d0bd340e8d5cd176d59001f0d5e3e0b79f31b assets/createindustry/models/item/steel_frame.json +3b2483cb1333d880d0f6d1ccc261e6221dc81b72 assets/createindustry/models/item/steel_gearbox.json +7c7522b665573d758f3c583fffb7329ae3340bc6 assets/createindustry/models/item/steel_helmet.json +4393f390ce6b07e93ac64658fc17816cf5251b6e assets/createindustry/models/item/steel_hoe.json 53bb4fe19f76818636bb36220cba9889f4ecf447 assets/createindustry/models/item/steel_ingot.json 60cd0863e32adc6fa2b777708a6959195b929e06 assets/createindustry/models/item/steel_ladder.json +c184abc4092cb8653c1314510ed0c62c7e4fd9e7 assets/createindustry/models/item/steel_leggings.json 95f6dbcbc73eb13123e40e99d9550da7a182c01f assets/createindustry/models/item/steel_mechanical_pump.json 685754a465ae38c0c1152caa059e182cb48dbe4e assets/createindustry/models/item/steel_mechanism.json +d5a9f69cb29524c74ecd40dd2ac722d6c30d1935 assets/createindustry/models/item/steel_pickaxe.json c26791f5cec0897e6433f42df18157d60e44806c assets/createindustry/models/item/steel_pipe.json d07350d1b212d20f72fc62341956119db9e3d749 assets/createindustry/models/item/steel_scaffolding.json +4da35f266c293cdcc830449309b0333816862dec assets/createindustry/models/item/steel_shovel.json f199832f583f9a1ac7ba65c76119bc4624a2e2cb assets/createindustry/models/item/steel_smart_fluid_pipe.json +d9a44145f416ce14790c3b9e4c17d82a38620f61 assets/createindustry/models/item/steel_sword.json 485e157502ee3da48cad9f74db03c82e883c7898 assets/createindustry/models/item/steel_truss.json +9bcf354762d9f88f0a3869b79e3d45444753476f assets/createindustry/models/item/steel_vertical_gearbox.json 2332898aa14e1847b8b3e3aeafc94d4998c0f5cd assets/createindustry/models/item/sulfur.json +e14d8c2ff63fa711df18979bfc6131d3567c8bc4 assets/createindustry/models/item/sulfuric_acid_bucket.json c943695a021b2fc0bb36e7a671c5648070738d37 assets/createindustry/models/item/sulfur_dust.json bff025696eac672ccfdb51783d5ad546b41a920a assets/createindustry/models/item/surface_scanner.json +845da1a14aad6c5c9e2bd32d5fd9cc6fcb10de34 assets/createindustry/models/item/synthetic_leather.json +c061e9031da4e4f4be663de7a4bd189619525d6a assets/createindustry/models/item/synthetic_string.json 15749786c78c5ef7bf04d48eac0ec48c8b67882c assets/createindustry/models/item/thermite_grenade.json ea05672ac64a205706db24a4d540916e89d4d430 assets/createindustry/models/item/thermite_powder.json f1b2566064237571fa2cd5d175e246105e01966b assets/createindustry/models/item/turbine_blade.json @@ -859,23 +1288,37 @@ b5c22faad4faced0e44ee0fd32f4c6a93f5072f2 assets/createindustry/models/item/turbi 6497cd1f33b1caf3db078e4386e6a9b2ed1b7b91 assets/createindustry/models/item/unfinished_steel_mechanism.json 48a0ea668640b5c304f741b2dc65897ec0810d13 assets/createindustry/models/item/unfinished_turbine_engine.json 23aaf1573bef3182e89caf664404f13ab663d4e4 assets/createindustry/models/item/unprocessed_heavy_plate.json +9d9a525dd3a663ef470fbeafe7f4a8d88b50f072 assets/createindustry/models/item/voltage_cube.json +16d392c6739f2c62b6290b7ab665d8d10366d43a assets/createindustry/models/item/voltmeter.json +9b4990c50cd1b9107302690092127a59490ddeea assets/createindustry/models/item/white_caution_block.json 3646759e849f84e77624a2152335faffda3a2cf9 assets/createindustry/models/item/white_concrete.json 464e73eadefda465b139e54c7e2629421ecdbeef assets/createindustry/models/item/white_concrete_slab.json c27eaf6287f32f677ff4799d622286191e393f0a assets/createindustry/models/item/white_concrete_stairs.json 7af6e6b5bcee33ae922a1f0a05822b2ff7f4f680 assets/createindustry/models/item/white_concrete_wall.json +25779a3c12f6ad0077ac65edf771fc7a46b9af3c assets/createindustry/models/item/yellow_caution_block.json 054b234050081e53a18afc8987f06ae63ff5c397 assets/createindustry/models/item/yellow_concrete.json fe7417fd7d54aeb47cee0abf4378e6bbdcc82e0e assets/createindustry/models/item/yellow_concrete_slab.json ce4f2860cdc0feff4778dcca1fba56469a798d17 assets/createindustry/models/item/yellow_concrete_stairs.json 61a742bc45f9aa5de5d9136271502305732a195e assets/createindustry/models/item/yellow_concrete_wall.json +f85a96c73a2306a39e5d35b1d36e5b4bcf10c048 assets/createindustry/models/item/zinc_frame.json 22b37c38ee863195fba09737e007422e0af66916 assets/createindustry/models/item/zinc_grenade.json -d2674ab227f0eeb92258f423f03ef3286de168e3 data/createindustry/advancements/recipes/createindustry.base/aluminum_bars_from_ingots_aluminum_stonecutting.json -53b9aceb5cb31019574d63e722df0813affdcb40 data/createindustry/advancements/recipes/createindustry.base/aluminum_ladder_from_ingots_aluminum_stonecutting.json -009fd5fbd1380a356ff56b1789789c91cd4a50d7 data/createindustry/advancements/recipes/createindustry.base/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json -676ffb2246d0d0077aaccc5f6f2de4481b09bdf9 data/createindustry/advancements/recipes/createindustry.base/steel_bars_from_ingots_steel_stonecutting.json -7f0a202e2cdf6c9d07aabbccb2de107f732da92d data/createindustry/advancements/recipes/createindustry.base/steel_ladder_from_ingots_steel_stonecutting.json -341d7345e8c6384c0a1b051f4e4d69b98c4e0089 data/createindustry/advancements/recipes/createindustry.base/steel_scaffolding_from_ingots_steel_stonecutting.json +2cd34f48c7f132ca8d4dd06013eecf187c4127a9 assets/createindustry/models/item/zinc_sulfate.json +4de882e1851a07b56ce3c12fab1d6f791b766f2f assets/createindustry/models/item/zinc_truss.json +6596d3db10a1e564ec113915f2086b658c96c9be data/createindustry/advancements/recipes/createindustry.base/cinderblock_from_concrete_stonecutting.json +d2674ab227f0eeb92258f423f03ef3286de168e3 data/createindustry/advancements/recipes/createindustry.building/aluminum_bars_from_ingots_aluminum_stonecutting.json +53b9aceb5cb31019574d63e722df0813affdcb40 data/createindustry/advancements/recipes/createindustry.building/aluminum_ladder_from_ingots_aluminum_stonecutting.json +009fd5fbd1380a356ff56b1789789c91cd4a50d7 data/createindustry/advancements/recipes/createindustry.building/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json 1d5c52d2325fb70c9c556cd301db08f462eed0cb data/createindustry/advancements/recipes/createindustry.building/bauxite_from_stone_types_bauxite_stonecutting.json b7581ba7be6397c4ad1f35b330add15e6de9228a data/createindustry/advancements/recipes/createindustry.building/bauxite_pillar_from_stone_types_bauxite_stonecutting.json +5283cd6664990505f294ecff96617720850747d6 data/createindustry/advancements/recipes/createindustry.building/brass_frame_from_ingots_brass_stonecutting.json +0ca83190e88186440e0c9f9d8fd888cd81c81892 data/createindustry/advancements/recipes/createindustry.building/brass_truss_from_ingots_brass_stonecutting.json +967e04b6c4fb862ca6b8cbb9bdb7c4e254672584 data/createindustry/advancements/recipes/createindustry.building/cast_iron_bars_from_ingots_cast_iron_stonecutting.json +26c33f8368dc9ed39e9929a714d1e5110f94725d data/createindustry/advancements/recipes/createindustry.building/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json +10d9b0cf937e47b40bb980abb40ca5d6d164821d data/createindustry/advancements/recipes/createindustry.building/concrete_slab_from_concrete_stonecutting.json +aa800a1d2fd8649d7b49fc9e759657dc9eac8e72 data/createindustry/advancements/recipes/createindustry.building/concrete_stairs_from_concrete_stonecutting.json +d14cf84d9abf341d5769b45f1d67c5c155f5101e data/createindustry/advancements/recipes/createindustry.building/concrete_wall_from_concrete_stonecutting.json +83ad452f313b66a0d4cd1f73eb37cd431b30f7cb data/createindustry/advancements/recipes/createindustry.building/copper_frame_from_ingots_copper_stonecutting.json +7a5484d196fd31136724fa0c586cd659b7b2f665 data/createindustry/advancements/recipes/createindustry.building/copper_truss_from_ingots_copper_stonecutting.json a3110e8b923b33634597c52f6556c0a904a7f080 data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json 117be55b42fc29cb91a57d48ffca9be1940193e0 data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_brick_slab.json f625b9b56474aaf952aa98de085aa8704b930b24 data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json @@ -892,7 +1335,34 @@ a246b86c3021d4d17bae07a2de3c17d142e68117 data/createindustry/advancements/recipe 64084f9b105d6f77c81e5a47f578221c88d19457 data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json 55ec55bc691d1b5bab16ddc2161d4984e7af23eb data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_wall.json bf8c7c5b7bbcbf387c814157ecb1060cd8acfc76 data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json +29699ecb5c3403aa86a0c3e1754980a674dbff27 data/createindustry/advancements/recipes/createindustry.building/cut_galena_bricks_from_stone_types_galena_stonecutting.json +7ef1225e47df2fe698855002bb7ccf46745b578c data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab.json +351df7923d67712336d004b934d3422f875d69d8 data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json +ab9282952225bdd67c4117b5e6052938cdeb52f0 data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_slab_recycling.json +52ce62af6bc1a8582303264899806139ca198ad3 data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs.json +202621eda9d224a450b6b4cf0379d0ff0b96aba8 data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json +c3b12f7d58de29d64b3f2d6a73150a2a8108f02c data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall.json +af791dec8e29ae1dbadb424f91dbcb98563162e5 data/createindustry/advancements/recipes/createindustry.building/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json +f5a5d7b984ce522b7967ee87308a248e593c02cf data/createindustry/advancements/recipes/createindustry.building/cut_galena_from_stone_types_galena_stonecutting.json +25dfcdad1d0dd7b4062ad37d52d586a854c47f1b data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab.json +d1e3a37f4e2586833d0042a83796ff84c73725b5 data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_from_stone_types_galena_stonecutting.json +e4e2c3670ee4f62fc7d1442eba22539b496da85f data/createindustry/advancements/recipes/createindustry.building/cut_galena_slab_recycling.json +b84f0ff75600f120e5a6d19c107cd3c14224e95a data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs.json +61ad3008b0c4421768875529b3148242ec6916f5 data/createindustry/advancements/recipes/createindustry.building/cut_galena_stairs_from_stone_types_galena_stonecutting.json +134528494c677fb4e6062d29a35f5c97cb91fa26 data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall.json +39e5b7451f429210f362f7e0a732da312dfb5c87 data/createindustry/advancements/recipes/createindustry.building/cut_galena_wall_from_stone_types_galena_stonecutting.json +4b7b3ee4b321ef3f9f08e02c10f00d3ea4d6f9c6 data/createindustry/advancements/recipes/createindustry.building/galena_from_stone_types_galena_stonecutting.json +ab255209c912e9ac90c8430df6b75642f615c35d data/createindustry/advancements/recipes/createindustry.building/galena_pillar_from_stone_types_galena_stonecutting.json 584827d3369e4a9f7a2628df267ef782bd98b6f9 data/createindustry/advancements/recipes/createindustry.building/layered_bauxite_from_stone_types_bauxite_stonecutting.json +b18bd32defaa39d69e2acf33b23dfca2dbab89b8 data/createindustry/advancements/recipes/createindustry.building/layered_galena_from_stone_types_galena_stonecutting.json +6384e6ffce1c0ef227a2dd2284c58e2f09b61ea6 data/createindustry/advancements/recipes/createindustry.building/lead_bars_from_ingots_lead_stonecutting.json +f6addd0e793f5ba973de0ed416fa3f3bc1f133c1 data/createindustry/advancements/recipes/createindustry.building/lead_frame_from_ingots_lead_stonecutting.json +6b602cb386e43f343b8e53318034b79867a6aab3 data/createindustry/advancements/recipes/createindustry.building/lead_ladder_from_ingots_lead_stonecutting.json +09c09c4e318d8b5012f30154508b8be710527f2d data/createindustry/advancements/recipes/createindustry.building/lead_truss_from_ingots_lead_stonecutting.json +171db373d1846016b2ec665c57c7e98fe8558de6 data/createindustry/advancements/recipes/createindustry.building/nickel_bars_from_ingots_nickel_stonecutting.json +437d390f50060a63027fb128812a9bae9426b2fa data/createindustry/advancements/recipes/createindustry.building/nickel_frame_from_ingots_nickel_stonecutting.json +54291532100d1975263fb96587d1db0e8581fcc0 data/createindustry/advancements/recipes/createindustry.building/nickel_ladder_from_ingots_nickel_stonecutting.json +0154a88e337b1a6396eb74c12c6a93fdc5d4b435 data/createindustry/advancements/recipes/createindustry.building/nickel_truss_from_ingots_nickel_stonecutting.json cb14f63af64b6ea52af2f1676d4f94772f7707d5 data/createindustry/advancements/recipes/createindustry.building/polished_cut_bauxite_from_stone_types_bauxite_stonecutting.json 033df645e8ff979abd5d78fad26641c9a56ca5bd data/createindustry/advancements/recipes/createindustry.building/polished_cut_bauxite_slab.json 476faffb71beaff22049bf58c14624e947986f8d data/createindustry/advancements/recipes/createindustry.building/polished_cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json @@ -901,6 +1371,15 @@ a8fc04546b635c76ffd46b5504d034c2f33b8ee5 data/createindustry/advancements/recipe 5e19591924c6fff36fd4c76e79306f3995cd2c75 data/createindustry/advancements/recipes/createindustry.building/polished_cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json 20ef4013ae95f51e19b5ae88506e9e4b7a674d5e data/createindustry/advancements/recipes/createindustry.building/polished_cut_bauxite_wall.json ac4454d01768371cad54914e99f441b52c002730 data/createindustry/advancements/recipes/createindustry.building/polished_cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json +97d13d7341a8822e23b2024153be4d60aa663a0b data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_from_stone_types_galena_stonecutting.json +3bd87306a585756dddadd2c8f6ad814dda829653 data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab.json +f3fbe1cfc24a1d8598188e121261aebe54dd5065 data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json +b0c61949440e4867bd4a7d1a53b6d81401e3b45e data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_slab_recycling.json +042a3043ecd83db74e4890c7cae8d86d3a1aa1bf data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs.json +7cf05421ce7f91c2b526919073f2de13b00b2f92 data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json +19f98ebd97dd179292a0fb674f254fb26dbc0939 data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall.json +132e7001a262bb1ddf375c4d87ddd3f90bb6e3fc data/createindustry/advancements/recipes/createindustry.building/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json +0280358a26e7e09605674cf3293bde493e708491 data/createindustry/advancements/recipes/createindustry.building/rebar_concrete_slab_from_rebar_concrete_stonecutting.json e569c8560d069caf0b682a0eaa579a0ca2fbb634 data/createindustry/advancements/recipes/createindustry.building/small_bauxite_bricks_from_stone_types_bauxite_stonecutting.json aba10772636e91d259ad5d7aa183f68ca131db00 data/createindustry/advancements/recipes/createindustry.building/small_bauxite_brick_slab.json 8269301b00ac7508bb192dca97a47236eb6d769b data/createindustry/advancements/recipes/createindustry.building/small_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json @@ -909,11 +1388,28 @@ f876114cfe4f8b7c6ada57cbb849ba9de8ddc106 data/createindustry/advancements/recipe 24c3c15907ee04de50f05d98a6404009656fd1a9 data/createindustry/advancements/recipes/createindustry.building/small_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json 5354ae9b110d658b01576dec6b793c1489459a9b data/createindustry/advancements/recipes/createindustry.building/small_bauxite_brick_wall.json be4ce63f8fe5520dd62a05e91c08d30cedebb12e data/createindustry/advancements/recipes/createindustry.building/small_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json +22d924e968f07b31aa8f6babec6d707134800db2 data/createindustry/advancements/recipes/createindustry.building/small_galena_bricks_from_stone_types_galena_stonecutting.json +ae419cc5f03b6263bada6e966ed9a9fd958fc2c4 data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab.json +a2e8b97a34a6edae494364a41265226d2694ee84 data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_from_stone_types_galena_stonecutting.json +bb10c112f6a7b928ba05e00b9b10fad01c0c93b5 data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_slab_recycling.json +61d6db1683b4333316359bff9657b4e898b10a0f data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs.json +559efced7332e31591f0871838a6c7c45ae2cbd3 data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json +c48a298fb2a58e9fda99e05ee8f53999341dea3b data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall.json +ccfa4762f732fa30d22fbbea75ab7be37063428f data/createindustry/advancements/recipes/createindustry.building/small_galena_brick_wall_from_stone_types_galena_stonecutting.json +676ffb2246d0d0077aaccc5f6f2de4481b09bdf9 data/createindustry/advancements/recipes/createindustry.building/steel_bars_from_ingots_steel_stonecutting.json +7f0a202e2cdf6c9d07aabbccb2de107f732da92d data/createindustry/advancements/recipes/createindustry.building/steel_ladder_from_ingots_steel_stonecutting.json +341d7345e8c6384c0a1b051f4e4d69b98c4e0089 data/createindustry/advancements/recipes/createindustry.building/steel_scaffolding_from_ingots_steel_stonecutting.json +e87030d8e7c99edde9291fa703fd5c89a15f5c9b data/createindustry/advancements/recipes/createindustry.building/zinc_frame_from_ingots_zinc_stonecutting.json +7e1c572245dbeff28e34d48910d1dabca150735e data/createindustry/advancements/recipes/createindustry.building/zinc_truss_from_ingots_zinc_stonecutting.json +109c8f09132b868ee36e5812e9e5d94553b302e7 data/createindustry/loot_tables/blocks/accumulator.json 5fef1826b27f69f64a0f19528a6319d1a127c6e2 data/createindustry/loot_tables/blocks/air_intake.json 0be9560ffe35314525565c063938e7d767b7e64e data/createindustry/loot_tables/blocks/aluminum_bars.json ebbf17bc052e7a5ec1cd1d319f8501fa6b194c07 data/createindustry/loot_tables/blocks/aluminum_block.json +7385e6642fd8c44789da188d857be026067b6e1e data/createindustry/loot_tables/blocks/aluminum_cable_hub.json +de13c8ba74177fb8276ce2203915b77c11c96190 data/createindustry/loot_tables/blocks/aluminum_cogwheel.json 71e3b1200c584e79a15e5b3f1ab0b670e78f2b87 data/createindustry/loot_tables/blocks/aluminum_fluid_valve.json 2661171981d6a97e1af534e767c18945315a06a0 data/createindustry/loot_tables/blocks/aluminum_flywheel.json +962dbd82aab70b0b541e4b2d1b54018cfe3490e9 data/createindustry/loot_tables/blocks/aluminum_frame.json 1be680a4649d8436b0d3fa228a094cf4f9058192 data/createindustry/loot_tables/blocks/aluminum_ladder.json be5ce23649d6abd64d97df843a6a6e0c4db99843 data/createindustry/loot_tables/blocks/aluminum_mechanical_pump.json 5ecb3f80e62d650c6b9e800561dcc50de0bf253e data/createindustry/loot_tables/blocks/aluminum_pipe.json @@ -928,30 +1424,41 @@ d4877afdadc46be2f29b04b05efc0c99867f4e47 data/createindustry/loot_tables/blocks/ 098f069575ea2aae6b5319052aa7056c6f456924 data/createindustry/loot_tables/blocks/black_concrete_stairs.json 33af91d47277dfdb85241b92424cceba48dcc6ec data/createindustry/loot_tables/blocks/black_concrete_wall.json e695854289287dccc00102aa689eeaec111b52a1 data/createindustry/loot_tables/blocks/blast_furnace_output.json +6438a4f0600426fcbe9d08a7d7ebfb0d89f52b23 data/createindustry/loot_tables/blocks/blue_caution_block.json 31428000d99664e19e46cd9d84ccaf811a67f5c4 data/createindustry/loot_tables/blocks/blue_concrete.json 454f4c7dc8aaae9af0bcb8af2537bed95997a910 data/createindustry/loot_tables/blocks/blue_concrete_slab.json a0185a8d020b8169a1c8e3da37b454e389ec39f5 data/createindustry/loot_tables/blocks/blue_concrete_stairs.json 092f3cc6540f0d9d261548af127545f1045baa81 data/createindustry/loot_tables/blocks/blue_concrete_wall.json +7502e9c4b65179c9bb6fbb22d6d18e96508f7d80 data/createindustry/loot_tables/blocks/brass_cable_hub.json 75a19410142ebb90ca8a4f492b2940fbc484b3bf data/createindustry/loot_tables/blocks/brass_fluid_valve.json +6b767acce554c56f3ebe08698c8700bb65d1368d data/createindustry/loot_tables/blocks/brass_frame.json 0c56afdea1663dcdd68341ed65f17c1c4d503841 data/createindustry/loot_tables/blocks/brass_mechanical_pump.json 93c16313a722c8acd76b70ed7d7da0a26891f4f0 data/createindustry/loot_tables/blocks/brass_pipe.json c00a67cafb60e15380d35046c18392cff474c343 data/createindustry/loot_tables/blocks/brass_smart_fluid_pipe.json +3b6793f481c3cd7159734586e85944ed5ad8164e data/createindustry/loot_tables/blocks/brass_truss.json +2bb8ccaa7076340e2e7fec98c6063d2af77031c6 data/createindustry/loot_tables/blocks/brown_caution_block.json 5028e4464ea1d4bc54c8e3ecdfd379839ea1a991 data/createindustry/loot_tables/blocks/brown_concrete.json 020d5f54af4b39668a887411e270b5362a5f553b data/createindustry/loot_tables/blocks/brown_concrete_slab.json 98de8cd3480ff9177342d0b24e3de7068bc8c188 data/createindustry/loot_tables/blocks/brown_concrete_stairs.json e012548a7332d7473eb2fec6607abb697045db17 data/createindustry/loot_tables/blocks/brown_concrete_wall.json +8323a9acf25cfde4ab1bfecb41d8495c2c73a6d8 data/createindustry/loot_tables/blocks/cable_connector.json +640ce6fef2e99eb8833588322d9cf5a7e67658aa data/createindustry/loot_tables/blocks/cable_tube.json +69cf6cc3d59d89ced12f8a0c4cb8ce3c585d9ac0 data/createindustry/loot_tables/blocks/capacitor.json 9e70395695e67948e2e8c74932bdc27fe3e63aad data/createindustry/loot_tables/blocks/casting_basin.json 2810fae3c71fa499d80c441bbffc3059e07c8c1e data/createindustry/loot_tables/blocks/casting_spout.json +6f0cc830fcc18499f5b527d91d2e592515973f24 data/createindustry/loot_tables/blocks/cast_iron_bars.json a4f269ecd70cf6b473bfcbade5d8f6d716894f25 data/createindustry/loot_tables/blocks/cast_iron_block.json -dd7b9b6b30846eb0bc32d01a311daa5dfc07ba42 data/createindustry/loot_tables/blocks/cast_iron_distillation_controller.json -6757f35293d0f45c8dc3b3cae32893e16e542107 data/createindustry/loot_tables/blocks/cast_iron_distillation_output.json e1cbd1241cd4ceb15673eb834ffbd53fd8be81ae data/createindustry/loot_tables/blocks/cast_iron_fluid_valve.json 556e464e6fe6f00f08f1f82ac28e4d9b130225e9 data/createindustry/loot_tables/blocks/cast_iron_flywheel.json +e00a2677bb1c81ac0d3ee304a1d136e5e1735a41 data/createindustry/loot_tables/blocks/cast_iron_frame.json +6b508a7602195241fd424d4f43487dd7d818fdf1 data/createindustry/loot_tables/blocks/cast_iron_ladder.json 237fd607ec0e3d3157fa996fc45cc08cbb9e2aef data/createindustry/loot_tables/blocks/cast_iron_mechanical_pump.json f7a35ff98a9eaad9fc74daaae746191d21d7ec8c data/createindustry/loot_tables/blocks/cast_iron_pipe.json 95902dbca7e51e6b736ebad6b89a87e3217a62e3 data/createindustry/loot_tables/blocks/cast_iron_smart_fluid_pipe.json -87dd25491d8c7511977edddf56041c71d8155c4d data/createindustry/loot_tables/blocks/caution_block.json +4626d8faf68fb9752d2b66200ee37e97ea92925d data/createindustry/loot_tables/blocks/cast_iron_truss.json 675103fce4bd18b9f7b4d9885226fbe5a8a99ad2 data/createindustry/loot_tables/blocks/cement.json +75fa040f52f154f9934da3fbdbc32582700ffa8f data/createindustry/loot_tables/blocks/cinderflour_block.json +72b079b86bb258d97038369bc94ae19b4d10d828 data/createindustry/loot_tables/blocks/cinder_block.json fd15b78d7963ea4310b55055912d6855ae4845fe data/createindustry/loot_tables/blocks/coal_coke_block.json 938a9baa63fd3d1df69a866bcda422f98a677f1e data/createindustry/loot_tables/blocks/coke_oven.json 2bbc58709aec0cbeb580bbd25b781562103c60c3 data/createindustry/loot_tables/blocks/compact_engine.json @@ -959,11 +1466,19 @@ ea91f39f0ccd4f69fd32d868b8f0b05315ff1899 data/createindustry/loot_tables/blocks/ a2c99ecb24b56640ba92a7015e9ba116dccc137f data/createindustry/loot_tables/blocks/concrete_slab.json 4e82ad27235b31b27ed265952516c307a1c8689e data/createindustry/loot_tables/blocks/concrete_stairs.json cd3d6f08f6dfce6a87aa1fc606b667279747d0f7 data/createindustry/loot_tables/blocks/concrete_wall.json +bb5202fcee323ac6d7e8b6a0d8c5f41e2737ec89 data/createindustry/loot_tables/blocks/converter.json +be580b6e7ad3c420b5203528e1e885e8c948b35f data/createindustry/loot_tables/blocks/copper_cable_hub.json +a24fb94e0fe96b8e5f93e8988ddd51d8b7e8e675 data/createindustry/loot_tables/blocks/copper_coil.json 5ecb3f80e62d650c6b9e800561dcc50de0bf253e data/createindustry/loot_tables/blocks/copper_encased_aluminum_pipe.json 93c16313a722c8acd76b70ed7d7da0a26891f4f0 data/createindustry/loot_tables/blocks/copper_encased_brass_pipe.json f7a35ff98a9eaad9fc74daaae746191d21d7ec8c data/createindustry/loot_tables/blocks/copper_encased_cast_iron_pipe.json b171132904db927165b4abad85f3e152f19d74b9 data/createindustry/loot_tables/blocks/copper_encased_plastic_pipe.json b1937dfe872021eda9cf0cae6c39e472abc96016 data/createindustry/loot_tables/blocks/copper_encased_steel_pipe.json +40fe59b007ae3e47bc01e1434054a226788d2682 data/createindustry/loot_tables/blocks/copper_frame.json +265e51e733029939e94477896158de7c1216809f data/createindustry/loot_tables/blocks/copper_truss.json +2b2a4bde1a1c86393b28fa3ff9b81ef1ddeed22d data/createindustry/loot_tables/blocks/copycat_cable_base.json +dbaaba298362e906e182b156970e42613a453a47 data/createindustry/loot_tables/blocks/copycat_cable_block.json +24b3ed23332441556820576fa462d1607c68f334 data/createindustry/loot_tables/blocks/creative_generator.json 9a71d060e53f612b61a05a0805e268329728a8bc data/createindustry/loot_tables/blocks/cut_bauxite.json 290b7b45047b61bdebf93e976afe5ae11f73012b data/createindustry/loot_tables/blocks/cut_bauxite_bricks.json a27e1c8d858bffb20ac85d15fb930f1ac17a0038 data/createindustry/loot_tables/blocks/cut_bauxite_brick_slab.json @@ -972,72 +1487,134 @@ b36b1fca8b83453228f8631a984f7851f4e57ffe data/createindustry/loot_tables/blocks/ 0e2f0173e7b709500b0564d8ca11b5925a719542 data/createindustry/loot_tables/blocks/cut_bauxite_slab.json cdf7758482a7d20ed41e0681d1156407e797c7cb data/createindustry/loot_tables/blocks/cut_bauxite_stairs.json f6cfb3f73444058e24a64f1d60135e1b3b9e9ac2 data/createindustry/loot_tables/blocks/cut_bauxite_wall.json +084b494207e90f1749087a9e4af72af7abf9d316 data/createindustry/loot_tables/blocks/cut_galena.json +3c81fa8f664c838a3cd7c57fc1a5cd3cc0fd190a data/createindustry/loot_tables/blocks/cut_galena_bricks.json +8b33231881d87eb5e5e12f50b487da5965bc9552 data/createindustry/loot_tables/blocks/cut_galena_brick_slab.json +41841062bdaad5380eee87e4773940befdb5a3de data/createindustry/loot_tables/blocks/cut_galena_brick_stairs.json +25ad36361c2ee50265c06afb36f83821e0ab08a3 data/createindustry/loot_tables/blocks/cut_galena_brick_wall.json +0703706924abeb7260b271e787cd4e42ede5f21d data/createindustry/loot_tables/blocks/cut_galena_slab.json +0f2045e8936b8db002df8fa7bf2ea81617c6601e data/createindustry/loot_tables/blocks/cut_galena_stairs.json +cf7c43cc8b00e8ae184790092a8b1051b703153b data/createindustry/loot_tables/blocks/cut_galena_wall.json +5e43135eacc6beca11f59f95b9e161318b4166bd data/createindustry/loot_tables/blocks/cyan_caution_block.json 820e31cdc1149bbe313373368415c52959af9756 data/createindustry/loot_tables/blocks/cyan_concrete.json 570c759a87bda381b16adafc724cbee3881b5192 data/createindustry/loot_tables/blocks/cyan_concrete_slab.json 921b7a5a792b1b31dd0545ed22433447d5ccd7c6 data/createindustry/loot_tables/blocks/cyan_concrete_stairs.json 11cf03f3a09c7b3fbc26aa5269a13c7a477b9609 data/createindustry/loot_tables/blocks/cyan_concrete_wall.json +e478a811749334a0395c55bfd723d4b54d4c3f5c data/createindustry/loot_tables/blocks/deepslate_lead_ore.json +9fdf47714f8c25050fe2274b75230c1d10a58b1b data/createindustry/loot_tables/blocks/deepslate_lithium_ore.json +c7453e621e19b254ea3004685644f8ef2f437685 data/createindustry/loot_tables/blocks/deepslate_nickel_ore.json +e7c4da43398d0312deee60121623aa6d03c950b7 data/createindustry/loot_tables/blocks/diagonal_cable_block.json 2f638a72ecae45016961aef6e75858d7c60867b9 data/createindustry/loot_tables/blocks/diesel_engine.json 27bfddbf5c1d54d5065c6ffa750046682589ae79 data/createindustry/loot_tables/blocks/diesel_engine_expansion.json +77b82cfffe3be795983d2a91f257882917ddde3c data/createindustry/loot_tables/blocks/electric_casing.json +85e32d59f6197b1a48f1ea0dde2bc39e221979df data/createindustry/loot_tables/blocks/electric_motor.json +0588900da2ad7f80c4566031b6eb5f077ec396b7 data/createindustry/loot_tables/blocks/energy_meter.json 32b2730a820d312fb0dada7536183368446d8ed0 data/createindustry/loot_tables/blocks/exhaust.json ac5ec51544b0448f8cdfecdd12949fc896c3ec77 data/createindustry/loot_tables/blocks/factory_floor.json fb3f649c696e4eded44d7f1fe736ed0376699ef1 data/createindustry/loot_tables/blocks/factory_floor_slab.json 493ec9371adfabc679746d5af513851b2b18f282 data/createindustry/loot_tables/blocks/factory_floor_stairs.json +80b9951c00d609ad3c12d0671619f39a907431ef data/createindustry/loot_tables/blocks/firebox.json eeed2ad0af88d5e3048848be9302ae0abbba071a data/createindustry/loot_tables/blocks/fireclay.json 90f596af44be27cd43c4db44408e4bb78c495669 data/createindustry/loot_tables/blocks/fireproof_bricks.json 64a448ce12f834191e77eb96b5edbaf3d71c4b8d data/createindustry/loot_tables/blocks/fireproof_brick_reinforcement.json 6689e290ede100d11c15d60105ce24e7e3dbc723 data/createindustry/loot_tables/blocks/flarestack.json b340d10b7eda3c5d50aa44984bd4bf8173f10638 data/createindustry/loot_tables/blocks/formwork_block.json 0771c6f9b8a849cc5f826fba90669cbbdac3a34f data/createindustry/loot_tables/blocks/fossilstone.json +ac74e86294604a13dfe6e78210d5752ca59d13c8 data/createindustry/loot_tables/blocks/galena.json +1461483d9c65afde27ec917366648efe312e7b94 data/createindustry/loot_tables/blocks/galena_pillar.json +812c1b12dfb994a37b41cd2f593085488e1ce6b2 data/createindustry/loot_tables/blocks/galvanic_cell.json 10ff115156b8a5f74e68f78530493668312d3aec data/createindustry/loot_tables/blocks/gasoline_engine.json 75ab2769a995d42b43ea4456b8edbcd2d62025a0 data/createindustry/loot_tables/blocks/gasoline_engine_back.json +2ec40880e3202c79db796b6dd05a92c5ac230c8a data/createindustry/loot_tables/blocks/generator.json 5ecb3f80e62d650c6b9e800561dcc50de0bf253e data/createindustry/loot_tables/blocks/glass_aluminum_pipe.json b1937dfe872021eda9cf0cae6c39e472abc96016 data/createindustry/loot_tables/blocks/glass_brass_pipe.json f7a35ff98a9eaad9fc74daaae746191d21d7ec8c data/createindustry/loot_tables/blocks/glass_cast_iron_pipe.json b171132904db927165b4abad85f3e152f19d74b9 data/createindustry/loot_tables/blocks/glass_plastic_pipe.json b1937dfe872021eda9cf0cae6c39e472abc96016 data/createindustry/loot_tables/blocks/glass_steel_pipe.json +d40dea050b61c264ce5eca10c1cfff6508b257f0 data/createindustry/loot_tables/blocks/gray_caution_block.json 7ac4486f42c489a51d2bf3aebc867be3a40df975 data/createindustry/loot_tables/blocks/gray_concrete.json c964d588c9c8f3e5528fbb5ca88cda5627ba7968 data/createindustry/loot_tables/blocks/gray_concrete_slab.json b8a15ff3c69700e56058221e6b0a555e2aba0357 data/createindustry/loot_tables/blocks/gray_concrete_stairs.json 6449a457254fa661adeae11acff44acca129302f data/createindustry/loot_tables/blocks/gray_concrete_wall.json +87c8d8aba5b5851d9855b443a2810c72da540220 data/createindustry/loot_tables/blocks/green_caution_block.json b42f09a8a5dc4124b049c3721d12d79cbd4d64fc data/createindustry/loot_tables/blocks/green_concrete.json 1febdb8e858c73fa3c50d9b1d4200aa3f74e8951 data/createindustry/loot_tables/blocks/green_concrete_slab.json 56900ebd04d01ea7089e85d8d1168c26c27b1108 data/createindustry/loot_tables/blocks/green_concrete_stairs.json 23263cb24d57318cf5185ec4e99159124dd64678 data/createindustry/loot_tables/blocks/green_concrete_wall.json ef182f11c2e4a4452350cee98c2aa6d99b5ce8ff data/createindustry/loot_tables/blocks/hardened_planks.json +56eeb6ead1d57e244bea6cf8a5f98dae281bd2aa data/createindustry/loot_tables/blocks/hardened_planks_slab.json +f5900a63b29191c4a7b8d59165fe4417ac6ae733 data/createindustry/loot_tables/blocks/heavy_cable_hub.json 7e723e2728a3e83ea86ce73fbfd08e795d3b3aba data/createindustry/loot_tables/blocks/heavy_casing_door.json +13267c1251e76ae6271f7de72db60bde86aa0bfa data/createindustry/loot_tables/blocks/heavy_casing_encased_aluminum_cogwheel.json +13267c1251e76ae6271f7de72db60bde86aa0bfa data/createindustry/loot_tables/blocks/heavy_casing_encased_cogwheel.json +9d010fc3c8d0821d69b550ff0bcbf117be9a7005 data/createindustry/loot_tables/blocks/heavy_casing_encased_large_aluminum_cogwheel.json +9d010fc3c8d0821d69b550ff0bcbf117be9a7005 data/createindustry/loot_tables/blocks/heavy_casing_encased_large_cogwheel.json +9d010fc3c8d0821d69b550ff0bcbf117be9a7005 data/createindustry/loot_tables/blocks/heavy_casing_encased_large_steel_cogwheel.json +089c958a5b59e86ce39210901b2549a7a4a06ab0 data/createindustry/loot_tables/blocks/heavy_casing_encased_shaft.json +13267c1251e76ae6271f7de72db60bde86aa0bfa data/createindustry/loot_tables/blocks/heavy_casing_encased_steel_cogwheel.json 2d52ad6c125ad6b0aff1f43296dcfab4445b958f data/createindustry/loot_tables/blocks/heavy_machinery_casing.json b98b84953f7591fab77725714125f48962ef4306 data/createindustry/loot_tables/blocks/industrial_pipe.json +6eaa82ad1f7c3d7518d43ffc08043c9476f735f5 data/createindustry/loot_tables/blocks/large_aluminum_cogwheel.json 0c60c685c9feda940453d05722490e05371d8f8a data/createindustry/loot_tables/blocks/large_pumpjack_hammer_connector.json a7e55bd26dc98a102c4b8d83557c6b99660a8c45 data/createindustry/loot_tables/blocks/large_pumpjack_hammer_head.json f2cf5b37a9dcdbe19e37623f063b6822ea5f50f1 data/createindustry/loot_tables/blocks/large_pumpjack_hammer_part.json 384872bbfa5f2423abb75ea424be63cdcd8903a2 data/createindustry/loot_tables/blocks/large_radial_engine.json +a9d9249c8907e61a1cc4836f2d0db9b2d2f1041c data/createindustry/loot_tables/blocks/large_steel_cogwheel.json 36202757724a9230f132621bfea48a0c1ad16dc8 data/createindustry/loot_tables/blocks/layered_bauxite.json +cc64910875360df17ee36a86f8cb3f56fd72bb8d data/createindustry/loot_tables/blocks/layered_galena.json +0b89a192e7e4ec346fd511b2dd727d64fc961a62 data/createindustry/loot_tables/blocks/lead_bars.json +25299e5d1310eb0d75863ffa9bde797c9b12830f data/createindustry/loot_tables/blocks/lead_block.json +573b84e779dbdf203493452d321e05a174682b12 data/createindustry/loot_tables/blocks/lead_flywheel.json +5812e1d631222c406a68bc84e4faa07637743be5 data/createindustry/loot_tables/blocks/lead_frame.json +8593c947d9c4febc18a797840d1d2b718f55e72b data/createindustry/loot_tables/blocks/lead_glass.json +97a6d7d093824515b5af6056f62858d6663fcc75 data/createindustry/loot_tables/blocks/lead_ladder.json +374bfeb372c8a73ffd9720b9d4c415e795e1acad data/createindustry/loot_tables/blocks/lead_ore.json +54814e5fcf8710091eba55a3897642af9845bac0 data/createindustry/loot_tables/blocks/lead_truss.json +424a341647ae66029bccf39c6e06ffffece818fa data/createindustry/loot_tables/blocks/light_blue_caution_block.json ea659af1eef0db680a0ed545a673830506069f1b data/createindustry/loot_tables/blocks/light_blue_concrete.json eccefd712ba060534af4fd362de90a2c371504a4 data/createindustry/loot_tables/blocks/light_blue_concrete_slab.json 89aeac99f39c5292a3c9e0fa05fd501cec65878e data/createindustry/loot_tables/blocks/light_blue_concrete_stairs.json d7c1d702bdc2a136679dcf41f158a4cb267d3bc6 data/createindustry/loot_tables/blocks/light_blue_concrete_wall.json +0a95ef9f4cc9e2456ef775a58a86e817723e2fc5 data/createindustry/loot_tables/blocks/light_bulb.json +ae19b89798a0a1232c89023d44b5979e55ed0317 data/createindustry/loot_tables/blocks/light_gray_caution_block.json 64aa3cc3f1785f3d84fb3a36337c4083e0f92fb4 data/createindustry/loot_tables/blocks/light_gray_concrete.json c427efc226147fbf874e57ff13aaa925bf67d9b9 data/createindustry/loot_tables/blocks/light_gray_concrete_slab.json 7b5b83ac966ed7f6e05242ae993b6594b46f727c data/createindustry/loot_tables/blocks/light_gray_concrete_stairs.json 8c77ea9aacf57209a13c87108112afda53606dc0 data/createindustry/loot_tables/blocks/light_gray_concrete_wall.json 7ccc6c20cf1ba714e9a7a9da0a80791654c740df data/createindustry/loot_tables/blocks/lignite.json +1798a492f1450c9fdd2adb91e188f7a8ee74dab0 data/createindustry/loot_tables/blocks/lime_caution_block.json 159bb60da99bd435ec12a3eb09de5c1f73609da0 data/createindustry/loot_tables/blocks/lime_concrete.json 6a9b934b3ff9064cd67ca288d9b87013ea689540 data/createindustry/loot_tables/blocks/lime_concrete_slab.json d47a209bf2e0462acb46cec60c989c3d127e1594 data/createindustry/loot_tables/blocks/lime_concrete_stairs.json ef6ac8a42c73224a03e81a8e93dc380040da55dc data/createindustry/loot_tables/blocks/lime_concrete_wall.json +ee305157fed46e59d10fbfbd909e2c7443b157d6 data/createindustry/loot_tables/blocks/lithium_block.json +ffec80090c9c776fb7062bd169a163a68cd55072 data/createindustry/loot_tables/blocks/lithium_ore.json +11de43f47063705aed55ba292909d8fa8879ef6a data/createindustry/loot_tables/blocks/lithium_torch.json +71b746b367461213e442becb2d0a3af25d97a932 data/createindustry/loot_tables/blocks/low_grade_fuel_engine.json 4a8fda30b69611129576917879b522699d14d852 data/createindustry/loot_tables/blocks/lpg_engine.json b4eaef830dbbacf02a76ddc552447da1c43488f0 data/createindustry/loot_tables/blocks/lpg_engine_back.json 7c8ca6e7b7e0a2219bc317b29141e2015c0583a1 data/createindustry/loot_tables/blocks/machine_input.json +9405b74bb0e3e9dcbfcf5adc539d8b026b6a6508 data/createindustry/loot_tables/blocks/magenta_caution_block.json 3bf5df3c426476742f74a67471c6d429cb1f7abe data/createindustry/loot_tables/blocks/magenta_concrete.json 704e33fd633ea02e130b9e88e6d265a0899b24e9 data/createindustry/loot_tables/blocks/magenta_concrete_slab.json 746266f1d950d03d0671ff2f5c02c2b197c92da2 data/createindustry/loot_tables/blocks/magenta_concrete_stairs.json 194708c2010f51f37fe8c91a45788ec1fe953c86 data/createindustry/loot_tables/blocks/magenta_concrete_wall.json 0fecf340cfcc683852e9041752648cf32256c7df data/createindustry/loot_tables/blocks/napalm_bomb.json +089c958a5b59e86ce39210901b2549a7a4a06ab0 data/createindustry/loot_tables/blocks/neon_tube.json +c2618c13aa990b161d5274cc3c2818bd921b645b data/createindustry/loot_tables/blocks/nickel_bars.json +636d28dbc3dbca3123d217f41c63dd9dcac8efb0 data/createindustry/loot_tables/blocks/nickel_block.json +3f137fc42e32c894d81d00858b2d2f9a84d51295 data/createindustry/loot_tables/blocks/nickel_flywheel.json +9decc2df58708c622c101b05bd42c8d1fa7703e5 data/createindustry/loot_tables/blocks/nickel_frame.json +dd564d256b58b5a78e718f77d64f30b659282fc8 data/createindustry/loot_tables/blocks/nickel_ladder.json +6f3513528036dfbb4d8191821af9f3dba86ec68a data/createindustry/loot_tables/blocks/nickel_ore.json +61714690c747902c5c13cc30b072aff6023efb34 data/createindustry/loot_tables/blocks/nickel_truss.json 43be994d13f4b6d126f573ee4cf672e469ed9b75 data/createindustry/loot_tables/blocks/oil_deposit.json +4f0d54dcfbfd71493fc93419fa285d23666625a0 data/createindustry/loot_tables/blocks/orange_caution_block.json 5aa1f3916a1035e8e2ceb8c8bcdfa9a8c1f139af data/createindustry/loot_tables/blocks/orange_concrete.json 4ed26d0448717439f2e46de191dc1e3be57851ea data/createindustry/loot_tables/blocks/orange_concrete_slab.json 9eb054322f99bc50ad9514ea3cf78035a62db505 data/createindustry/loot_tables/blocks/orange_concrete_stairs.json 7803790e60e5afbebb10d91ee94bc027a6548017 data/createindustry/loot_tables/blocks/orange_concrete_wall.json +3eae03dd308beab37ccf32d1fdbc0b01733518e5 data/createindustry/loot_tables/blocks/pink_caution_block.json 9ecc5207e3256f9ad55637fe12f782fffc91ba17 data/createindustry/loot_tables/blocks/pink_concrete.json aa1d66bf666f3b6b28bfdec6696b24a060cc4eac data/createindustry/loot_tables/blocks/pink_concrete_slab.json 871c98b2a5ffc87f57d66e5a34433d978f197519 data/createindustry/loot_tables/blocks/pink_concrete_stairs.json @@ -1047,16 +1624,22 @@ c16fc7ecf4536cc04a0dbae4048d60adee88c76c data/createindustry/loot_tables/blocks/ dfa438af6febca64c07ad555616aa42f6439e24f data/createindustry/loot_tables/blocks/plastic_mechanical_pump.json b171132904db927165b4abad85f3e152f19d74b9 data/createindustry/loot_tables/blocks/plastic_pipe.json 021673e5e601ac4e59c797a3c773c713f5fedd76 data/createindustry/loot_tables/blocks/plastic_smart_fluid_pipe.json +69ab3dc0b155d41523338cfcb7c6b176be7d738c data/createindustry/loot_tables/blocks/polarizer.json f80db4897abf5db31d5e50112f09e0a3b7697f20 data/createindustry/loot_tables/blocks/polished_cut_bauxite.json a448f23ebfbc0a9b66d4d79defbab722539a3924 data/createindustry/loot_tables/blocks/polished_cut_bauxite_slab.json 3efa32eb34b290a80c06f2de1c85d4ac7360bae8 data/createindustry/loot_tables/blocks/polished_cut_bauxite_stairs.json 00ab1c448665bdf777cebb46565938f03480eec4 data/createindustry/loot_tables/blocks/polished_cut_bauxite_wall.json +dfe78cd6ec78e5ab29f177f933efd9d34150a140 data/createindustry/loot_tables/blocks/polished_cut_galena.json +0c273591b2b8238ee2076c1c007fc5f55d34b9bc data/createindustry/loot_tables/blocks/polished_cut_galena_slab.json +636406c288661cee6f802c2379653aaf18ef43e7 data/createindustry/loot_tables/blocks/polished_cut_galena_stairs.json +dcff825570ff84f83f839b5a8f363a6ece62607a data/createindustry/loot_tables/blocks/polished_cut_galena_wall.json aad1729e6dbef82af67a4b43b4968c439504aabe data/createindustry/loot_tables/blocks/pumpjack_base.json d2ae42a8f7604ecbb3ebbf4bc987b615aa179ae1 data/createindustry/loot_tables/blocks/pumpjack_crank.json 6401db2a15249d4fa68e94bea3ed973226812148 data/createindustry/loot_tables/blocks/pumpjack_hammer.json 40dbe570b9fa83a288fa6690827635154e351321 data/createindustry/loot_tables/blocks/pumpjack_hammer_connector.json 66a1c1ca6b4cd182a52abbb04f3d43ffa471dac5 data/createindustry/loot_tables/blocks/pumpjack_hammer_head.json fcc864612499add4fdd1083bda8f12502c7f89c0 data/createindustry/loot_tables/blocks/pumpjack_hammer_part.json +31c50123d94f0cb91c8958bd1ee9a2c20f25e686 data/createindustry/loot_tables/blocks/purple_caution_block.json 6d9d8f55548f73fa44cd366cb2f22be512506089 data/createindustry/loot_tables/blocks/purple_concrete.json d7a54d6540bb3a609cdb5f329249a468c674bb1d data/createindustry/loot_tables/blocks/purple_concrete_slab.json 3704829c4bedf58a98778b194e2db376c102a334 data/createindustry/loot_tables/blocks/purple_concrete_stairs.json @@ -1074,20 +1657,39 @@ ae8fe01c773036f43c889d98043d187b23b06142 data/createindustry/loot_tables/blocks/ aae56c391afc3288897dd13b9d4d3538f32457ff data/createindustry/loot_tables/blocks/red_concrete_slab.json f023759de1f54de939c09b486e5f9f0ffd35004d data/createindustry/loot_tables/blocks/red_concrete_stairs.json 0871202e37192816af0a49ec1824f63bc270e656 data/createindustry/loot_tables/blocks/red_concrete_wall.json +66edf2cf9a32a02b20fb39ff91079187e86e04bd data/createindustry/loot_tables/blocks/resistor.json +482ae141a5731c0db4ac5b8e3fd88120e72800cd data/createindustry/loot_tables/blocks/rgb_light_bulb.json +07ab2f7ca5f30777c0d0b05cba16d20a45ef6f3c data/createindustry/loot_tables/blocks/rotor.json 3825ea00972ecc3de4774492b752f83ade283707 data/createindustry/loot_tables/blocks/small_bauxite_bricks.json 1d23fcb391a7448fd282e739c516eb5c7dd36370 data/createindustry/loot_tables/blocks/small_bauxite_brick_slab.json eb2925c4fab05db57c5920f54c00185a21e92e0b data/createindustry/loot_tables/blocks/small_bauxite_brick_stairs.json 88bccaf6ae9b76dc111c58541766b7ac371db526 data/createindustry/loot_tables/blocks/small_bauxite_brick_wall.json +eeef3f769f102b2526bea6cc6efe11af1c39c306 data/createindustry/loot_tables/blocks/small_galena_bricks.json +21dd1f8982f92b53ad86ca050bc6f9cd3417f229 data/createindustry/loot_tables/blocks/small_galena_brick_slab.json +d53ee74c233c4921cc86273afc63c0e164b314a2 data/createindustry/loot_tables/blocks/small_galena_brick_stairs.json +2dbb0052daa7241cdaa8ab501f9f1af3af2c6db3 data/createindustry/loot_tables/blocks/small_galena_brick_wall.json +865f3aa1b4ca9cfc87a56b2b79e9903ae2537fd5 data/createindustry/loot_tables/blocks/stator.json 142b809df66101dd20c41395f36e50bba5a8cdbb data/createindustry/loot_tables/blocks/steel_bars.json 3bf6f570c51dfadb8ef74b19bc2d79e55c520514 data/createindustry/loot_tables/blocks/steel_block.json +9a5757e05b0a36dab58f0c53a66b0f35a9847a31 data/createindustry/loot_tables/blocks/steel_cable_hub.json 3dfe4d527dcb20d6eaa777df9b810538da3a4c48 data/createindustry/loot_tables/blocks/steel_casing.json +4c90117cac79ee9df81b4b8373ea52e547f55002 data/createindustry/loot_tables/blocks/steel_casing_cable_hub.json +6a6b7fe99da364d90aca04caeac1d0096bcb18f4 data/createindustry/loot_tables/blocks/steel_cogwheel.json 9b5d76d721c63dd61d072af2cd19271f02dc2c35 data/createindustry/loot_tables/blocks/steel_distillation_controller.json a52d0c8c33106e7f2ea3342ee3f26e4457c6c008 data/createindustry/loot_tables/blocks/steel_distillation_output.json 44b3ea53e91dd1c288ba7715611e5e60340d14ad data/createindustry/loot_tables/blocks/steel_door.json +13267c1251e76ae6271f7de72db60bde86aa0bfa data/createindustry/loot_tables/blocks/steel_encased_aluminum_cogwheel.json +13267c1251e76ae6271f7de72db60bde86aa0bfa data/createindustry/loot_tables/blocks/steel_encased_cogwheel.json +9d010fc3c8d0821d69b550ff0bcbf117be9a7005 data/createindustry/loot_tables/blocks/steel_encased_large_aluminum_cogwheel.json +9d010fc3c8d0821d69b550ff0bcbf117be9a7005 data/createindustry/loot_tables/blocks/steel_encased_large_cogwheel.json +9d010fc3c8d0821d69b550ff0bcbf117be9a7005 data/createindustry/loot_tables/blocks/steel_encased_large_steel_cogwheel.json +089c958a5b59e86ce39210901b2549a7a4a06ab0 data/createindustry/loot_tables/blocks/steel_encased_shaft.json +13267c1251e76ae6271f7de72db60bde86aa0bfa data/createindustry/loot_tables/blocks/steel_encased_steel_cogwheel.json 581627e80dfff55451940f5ba16f0a0a276d941e data/createindustry/loot_tables/blocks/steel_fluid_tank.json 731e5c53f236e83d1eadff24845b9d93fefb2d3a data/createindustry/loot_tables/blocks/steel_fluid_valve.json c5e7e815ddeaf8ed3a5a588b2569bd39318dd55a data/createindustry/loot_tables/blocks/steel_flywheel.json 0b2875eb6e183e7967a681f3b06872869c667a9b data/createindustry/loot_tables/blocks/steel_frame.json +cae0ec2c3c94a2835e97f350e5af58211135bc73 data/createindustry/loot_tables/blocks/steel_gearbox.json 9b0fa6990106e85b02d59b83ccc680e16d02c250 data/createindustry/loot_tables/blocks/steel_ladder.json 3c58fec9a8916214c2dda801e669881bad022944 data/createindustry/loot_tables/blocks/steel_mechanical_pump.json b1937dfe872021eda9cf0cae6c39e472abc96016 data/createindustry/loot_tables/blocks/steel_pipe.json @@ -1098,19 +1700,35 @@ dd66585c1aa07fd46d89fdb465e7667246670dfb data/createindustry/loot_tables/blocks/ 3fc3f4f5969d4b334cd00f3b656087c836e49dfa data/createindustry/loot_tables/blocks/surface_scanner.json 953918d3cae90c7a008e22547c2d46b133bd9102 data/createindustry/loot_tables/blocks/turbine_engine.json 79853bc61f9adb1bcbbd9c01f7051af2d14ec48e data/createindustry/loot_tables/blocks/turbine_engine_back.json +9db6e9991309df9de7337c9cfae63072b656674d data/createindustry/loot_tables/blocks/voltage_cube.json +ecbd27e1a85416d26d9f746b392d81d28df039e1 data/createindustry/loot_tables/blocks/voltmeter.json +a162f492e28f1b1af852fb94fd03aca3afc1b45c data/createindustry/loot_tables/blocks/white_caution_block.json 76c170fefbbc8e255731299d12ece564c3ded706 data/createindustry/loot_tables/blocks/white_concrete.json 9763c791ad06670449bcaf8e3b7c1868fc73af69 data/createindustry/loot_tables/blocks/white_concrete_slab.json 023fcc6fae030490daa529f9ad8acc11b7aed2c4 data/createindustry/loot_tables/blocks/white_concrete_stairs.json 9b1688256ae4067572a2c0c6b5168540b1a42eb5 data/createindustry/loot_tables/blocks/white_concrete_wall.json +d69e4e860b61e6ae32e33adacf1c520796203f2a data/createindustry/loot_tables/blocks/yellow_caution_block.json 5f0f8341bbe1e7008ba4cf17d77c8f62654fe68b data/createindustry/loot_tables/blocks/yellow_concrete.json ecf35fb5057d6642ed3db2674aa41e603f2eed89 data/createindustry/loot_tables/blocks/yellow_concrete_slab.json a2696e4085c0b77fc25e5c760087a5c0740ccaeb data/createindustry/loot_tables/blocks/yellow_concrete_stairs.json a3522de85d35503a732771a67c7421e67ce9967f data/createindustry/loot_tables/blocks/yellow_concrete_wall.json +7457ee418659e33b22f6d5af76b25a53c027814d data/createindustry/loot_tables/blocks/zinc_frame.json +75a07d5ff1abd7f4a6bbf053cf6f70fb38e4c290 data/createindustry/loot_tables/blocks/zinc_truss.json ba930ee89155dc321e546aef3df7e6275e7c8f3b data/createindustry/recipes/aluminum_bars_from_ingots_aluminum_stonecutting.json 9135989a22644e8676ab7dc6602b1a6aaf55badd data/createindustry/recipes/aluminum_ladder_from_ingots_aluminum_stonecutting.json 73173b977371d01cc437cf583ce233b7a439c58a data/createindustry/recipes/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json 50fedca289c3aae4c5a2aa5e4a9facb84c847da7 data/createindustry/recipes/bauxite_from_stone_types_bauxite_stonecutting.json abee45903bfc415321b86d794bd4ddcd91532660 data/createindustry/recipes/bauxite_pillar_from_stone_types_bauxite_stonecutting.json +498f518ba7465da1547da2ae6f082b345db9d2b7 data/createindustry/recipes/brass_frame_from_ingots_brass_stonecutting.json +809778aaf97d20c214a5b98ed13950388b2982a4 data/createindustry/recipes/brass_truss_from_ingots_brass_stonecutting.json +6d3f05fb8a16273588219d3b017f6043a4a2ff05 data/createindustry/recipes/cast_iron_bars_from_ingots_cast_iron_stonecutting.json +342bfbca2a3a51a772bf9b504336d80ae46dbf64 data/createindustry/recipes/cast_iron_ladder_from_ingots_cast_iron_stonecutting.json +a74b0a75d87d545c9a66ad660b02918b34fb28e2 data/createindustry/recipes/cinderblock_from_concrete_stonecutting.json +391cc55dc60dc7966d4c0e3d960f836f4cdb643a data/createindustry/recipes/concrete_slab_from_concrete_stonecutting.json +098ce9425e2c9f04dbd0e43eb1dcba494ea9429b data/createindustry/recipes/concrete_stairs_from_concrete_stonecutting.json +ae981285311081210a3462528e45f40c22859d97 data/createindustry/recipes/concrete_wall_from_concrete_stonecutting.json +b6b2f4ec7776002930bd1f32511cd6f9d6b7b585 data/createindustry/recipes/copper_frame_from_ingots_copper_stonecutting.json +2604f899cc0f5106a2adb90a53d1ef065d786de6 data/createindustry/recipes/copper_truss_from_ingots_copper_stonecutting.json 74f16377515e1dbbf6619bdf43ae3ea8e26dd651 data/createindustry/recipes/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json 521d8d2264fa9d8216134eb51505017464753cdb data/createindustry/recipes/cut_bauxite_brick_slab.json c46004f1c9c31bbb0f191bda599bb8b751b65ac7 data/createindustry/recipes/cut_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json @@ -1127,7 +1745,34 @@ bb71e547b7b36bde9bf82bb00f9a833a6b917733 data/createindustry/recipes/cut_bauxite 5f80d6275619363e4f6fea74862b656b7fd470de data/createindustry/recipes/cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json 22c953275d11afe3112311a51c273b7427b4cc3c data/createindustry/recipes/cut_bauxite_wall.json 85b9c2c3628b99e192d5fe80f72429f1bc4e57cd data/createindustry/recipes/cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json +dbac8be53c736604a1bb574490a5115bb1dc8cf4 data/createindustry/recipes/cut_galena_bricks_from_stone_types_galena_stonecutting.json +3828d1d0eade930fc2bf9e4aec676b710b4c26c9 data/createindustry/recipes/cut_galena_brick_slab.json +ddf5ba329e67712a8530165a8ea390121ce8ab44 data/createindustry/recipes/cut_galena_brick_slab_from_stone_types_galena_stonecutting.json +870982795ed9b14a707fdfa2fcb5fbf63c9f957d data/createindustry/recipes/cut_galena_brick_slab_recycling.json +d7581c9d8be1e568c07ee76db54124369fb62506 data/createindustry/recipes/cut_galena_brick_stairs.json +e31e9ef4e45ab069ba69913b76d2d27a5d53f2dc data/createindustry/recipes/cut_galena_brick_stairs_from_stone_types_galena_stonecutting.json +ea95db243db8446985f8fdc48648ec0880fb2941 data/createindustry/recipes/cut_galena_brick_wall.json +209336d856614e681594359d345b3bd71e16a06a data/createindustry/recipes/cut_galena_brick_wall_from_stone_types_galena_stonecutting.json +c02cfe7f2f366fbb3e51f23527a8632e95fbf373 data/createindustry/recipes/cut_galena_from_stone_types_galena_stonecutting.json +e13b4813338c3afde70afe032938cec3ab58f79a data/createindustry/recipes/cut_galena_slab.json +f46a721748cf5bf3289f9486bfacb0de38ae79d9 data/createindustry/recipes/cut_galena_slab_from_stone_types_galena_stonecutting.json +7a18f3b713d5bd851337eb43cd57e7bb78bfaa56 data/createindustry/recipes/cut_galena_slab_recycling.json +e4375725157ca0594a8facaa4326abecb5a00efe data/createindustry/recipes/cut_galena_stairs.json +a8b5f6ec2701058cc5a8a03d28429086e100d443 data/createindustry/recipes/cut_galena_stairs_from_stone_types_galena_stonecutting.json +9c003bb5033de93cfbdd96dbb29700ada7e4b0d5 data/createindustry/recipes/cut_galena_wall.json +52b7a8d7b028afd8a76b25aa433de82a54385902 data/createindustry/recipes/cut_galena_wall_from_stone_types_galena_stonecutting.json +4dd60c91dab6786525df4388ea338b125e2392ac data/createindustry/recipes/galena_from_stone_types_galena_stonecutting.json +0efdebc7cc2ab10a83da366e90ab82b9d45b4c1f data/createindustry/recipes/galena_pillar_from_stone_types_galena_stonecutting.json 25704cca2c6e1a8733542959c6b8cb62c4887d08 data/createindustry/recipes/layered_bauxite_from_stone_types_bauxite_stonecutting.json +d5f15df148876382599af5ca634aa4e13355f2f8 data/createindustry/recipes/layered_galena_from_stone_types_galena_stonecutting.json +4b2d95295687385c816c9004789fc7a6ceef876f data/createindustry/recipes/lead_bars_from_ingots_lead_stonecutting.json +25b6a5c836bb927f542c9fe517a8dde9e56388f3 data/createindustry/recipes/lead_frame_from_ingots_lead_stonecutting.json +87e87dd946b0ed5d8b8157e6f1958dc7605cdfa9 data/createindustry/recipes/lead_ladder_from_ingots_lead_stonecutting.json +c9b247458d6ed97000cf99fad9996dcf384fda7e data/createindustry/recipes/lead_truss_from_ingots_lead_stonecutting.json +f62e5d367c18c9802f322a37c05784fa57d1b6dc data/createindustry/recipes/nickel_bars_from_ingots_nickel_stonecutting.json +90cdd665bcee7f1b09058f644d4178ce0c2a14b4 data/createindustry/recipes/nickel_frame_from_ingots_nickel_stonecutting.json +18d96369990005fe7e20f58211b719f25203af40 data/createindustry/recipes/nickel_ladder_from_ingots_nickel_stonecutting.json +2fe0e7742fc2df5ebf6a9d1ca40a9e36b1807c23 data/createindustry/recipes/nickel_truss_from_ingots_nickel_stonecutting.json 5063ac5e6c029317ce9c808074bc5a61781b60cd data/createindustry/recipes/polished_cut_bauxite_from_stone_types_bauxite_stonecutting.json 63863bef147fa85f0cc5aca000164f805a504b66 data/createindustry/recipes/polished_cut_bauxite_slab.json f64d9e73f878cf66c9915c41bd7c6a78ca277ba7 data/createindustry/recipes/polished_cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json @@ -1136,6 +1781,15 @@ edc2860f77eac2077f0a47d7b703c2829369eaa7 data/createindustry/recipes/polished_cu 177e54c7b8a00446627e35abb75a88354bee1dd5 data/createindustry/recipes/polished_cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json ce3052551fc887305c5b64a957793cd9ead89af0 data/createindustry/recipes/polished_cut_bauxite_wall.json d658fc33f5d1b13c6cba345266add963ed466f96 data/createindustry/recipes/polished_cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json +c79ab52a13c00942be629985060d1e3e57077dd7 data/createindustry/recipes/polished_cut_galena_from_stone_types_galena_stonecutting.json +f9f1a78d917b90367ad37d853aa1e4914e126454 data/createindustry/recipes/polished_cut_galena_slab.json +49acd4a70a20d2584c25e7e23f4b9bccdb4b16fa data/createindustry/recipes/polished_cut_galena_slab_from_stone_types_galena_stonecutting.json +96e3893276f80d202e0308f70215553a8e450dac data/createindustry/recipes/polished_cut_galena_slab_recycling.json +b0fcd376ad0c8633c10bf179f41441ec43a82459 data/createindustry/recipes/polished_cut_galena_stairs.json +9cfa3caf0b7dfe705e0c0ace179a9f1743c3b8d9 data/createindustry/recipes/polished_cut_galena_stairs_from_stone_types_galena_stonecutting.json +52d3f5a086edb3dc21194c9d04762db7a9365e74 data/createindustry/recipes/polished_cut_galena_wall.json +462634ffcb403f5377f7a9beeaa1f6909ae4eb71 data/createindustry/recipes/polished_cut_galena_wall_from_stone_types_galena_stonecutting.json +5e0ad39f1c6de2d3cd897ae46c47c87aeaf32369 data/createindustry/recipes/rebar_concrete_slab_from_rebar_concrete_stonecutting.json 6f6a608aa0e725dffb9cbaba2db54efb0577b83b data/createindustry/recipes/small_bauxite_bricks_from_stone_types_bauxite_stonecutting.json b8d40a154023fac37543de2de2d5e57808682b85 data/createindustry/recipes/small_bauxite_brick_slab.json ea81ff80cfbb97837fb58a9b3413641acfce0f74 data/createindustry/recipes/small_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json @@ -1144,31 +1798,73 @@ ea81ff80cfbb97837fb58a9b3413641acfce0f74 data/createindustry/recipes/small_bauxi 394bdb518cdd844f1684211d0eb6dbd917294376 data/createindustry/recipes/small_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json c19e9bd9a6890cd581df8aab340450edacc037b5 data/createindustry/recipes/small_bauxite_brick_wall.json b36ae4afda731f02f9e9b90da534184e4e6300f0 data/createindustry/recipes/small_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json +0dadff591c1f6c4ca3a75cdefb667e04c427abdf data/createindustry/recipes/small_galena_bricks_from_stone_types_galena_stonecutting.json +82fad050571db5f311fa0e175ffbe4fea4414d8b data/createindustry/recipes/small_galena_brick_slab.json +6ee4a4197f71ce85c96713c9628b289e3fe2fc80 data/createindustry/recipes/small_galena_brick_slab_from_stone_types_galena_stonecutting.json +78b4d29a8a638b00dd600fcf7ced14c9ad7aef36 data/createindustry/recipes/small_galena_brick_slab_recycling.json +f0500eedd737123eeacb43ac19c361f916de1f2c data/createindustry/recipes/small_galena_brick_stairs.json +9134a8ddc7a5ef8e290f0334e33caa238956125c data/createindustry/recipes/small_galena_brick_stairs_from_stone_types_galena_stonecutting.json +d552da0f118007c997159e5bc12899e46325507b data/createindustry/recipes/small_galena_brick_wall.json +4fa1f9fbf19a6bc636d9edc5b9ca5da9dbbfc13c data/createindustry/recipes/small_galena_brick_wall_from_stone_types_galena_stonecutting.json 76687910efa99f4c1a04429ef5f6846c594f97eb data/createindustry/recipes/steel_bars_from_ingots_steel_stonecutting.json 4bd3f4b3e1612feee9253f9a77ffc8b03afca749 data/createindustry/recipes/steel_ladder_from_ingots_steel_stonecutting.json 3a8f9eee9835e5400a9dd664a150985ce336fa61 data/createindustry/recipes/steel_scaffolding_from_ingots_steel_stonecutting.json +0165af18f74ef648bf5bc43fa6a3e1bfecc28d37 data/createindustry/recipes/zinc_frame_from_ingots_zinc_stonecutting.json +daa491cd60ae376335b7127363d95f371386facf data/createindustry/recipes/zinc_truss_from_ingots_zinc_stonecutting.json +16e1a691a318f0b61485f03f9a53518f6dac1172 data/createindustry/tags/fluids/flammable.json +a02b460633b0dca808eb512863a03012741681bf data/createindustry/tags/fluids/gas.json 9790752bec1ad9dc61eb08c66e62caa28516713c data/createindustry/tags/items/stone_types/bauxite.json -5117a7556fb8ef2531c9953e9923b8fb0ce8e3d6 data/create/tags/blocks/casing.json -f562d1124549d82b6df1ef54fc09a15a5ada6b4d data/create/tags/blocks/fan_transparent.json -2ef30f5022955fbdc71af33650e35162e681760a data/create/tags/blocks/safe_nbt.json -f562d1124549d82b6df1ef54fc09a15a5ada6b4d data/create/tags/blocks/wrench_pickup.json -5117a7556fb8ef2531c9953e9923b8fb0ce8e3d6 data/create/tags/items/casing.json +452f588ae1f56a1550e8474a84475e247702956d data/createindustry/tags/items/stone_types/galena.json +f06c7fc56a3fd8c006ab1a4dc1bea7d249f5fa1a data/create/tags/blocks/casing.json +35b3777447fdf17e10ff74d8b28e705964912773 data/create/tags/blocks/fan_transparent.json +a093726da01b4fcb19963d6f34557ff74b67a7c5 data/create/tags/blocks/safe_nbt.json +5f7b79d7f624875e0bd5a6bc3c8bcb1c0f919ead data/create/tags/blocks/wrench_pickup.json +f06c7fc56a3fd8c006ab1a4dc1bea7d249f5fa1a data/create/tags/items/casing.json 23cf02cfaf4f4efd7feb2a328e623fc63523216b data/create/tags/items/contraption_controlled.json -e965ab18eaaad7ef6711ac74bd109399188ee729 data/create/tags/items/create_ingots.json +4df8911c28f1ee60aee18d14e9d282b130939b5c data/create/tags/items/create_ingots.json ecf1a4c60ac630afe103f9d1c8bfea432158bdf9 data/forge/tags/blocks/concrete.json a5782b1478ab73e6bc6582e4008338de550b3fc6 data/forge/tags/blocks/factory_floor.json +faaf46d02cda538209e0759358fb3c650c7b3289 data/forge/tags/blocks/ores.json +33ca6275487b460d11572c7d3c709daf3103ffdf data/forge/tags/blocks/ores/lead.json +c41bd89605764f3ba168f66d0eadf27ce8ec4ab0 data/forge/tags/blocks/ores/lithium.json +1af284a396dbe850a0fd1f5f0865a20f7c705022 data/forge/tags/blocks/ores/nickel.json +77b6039210e9521b123826dd8443de3c54727776 data/forge/tags/blocks/ores_in_ground/deepslate.json +66f8c315b8229187f33998509b166d53c397b52e data/forge/tags/blocks/ores_in_ground/stone.json 7ac2a059d30c530af1643d2dd5a1fbf662f7e89e data/forge/tags/blocks/rebar_concrete.json -f4f8fca186b4094d9bd6f44b8372b78bc40054ca data/forge/tags/blocks/storage_blocks.json +113375fc348d1824a2bee1356e1d468274baf668 data/forge/tags/blocks/storage_blocks.json efded5fd62c9bd1ccd0732322594a50ee5bd5fe9 data/forge/tags/blocks/storage_blocks/aluminum.json 518d4d4429ed06230f2241643df97c450da2574e data/forge/tags/blocks/storage_blocks/cast_iron.json +2fe4b90de0c5f37ea2be137b10ee02d5cd9372a4 data/forge/tags/blocks/storage_blocks/lead.json +96ec4c1c33f89d1085b9056a10b072993d8289c3 data/forge/tags/blocks/storage_blocks/lithium.json +ecf8d89b6ea54de92eef80fd46b80d57e4cbdc29 data/forge/tags/blocks/storage_blocks/nickel.json f73e06b84492bd449fee0b676be968885769777c data/forge/tags/blocks/storage_blocks/plastic.json 128ae15f2f20d394380ec75dc075e8e1c73fb445 data/forge/tags/blocks/storage_blocks/steel.json +8b1f772dd8cf60c266a02879c9946d928df3f62b data/forge/tags/fluids/crude_oil.json +434ccf8f1f9895b226a5a689d1b314f217c26be3 data/forge/tags/fluids/diesel.json +e36e12c8692fdb0c8cc3cc326661314ea1ef4caf data/forge/tags/fluids/gasoline.json +d9b88a62c5a9f74a6e870cf5f57112c3ba0befe8 data/forge/tags/fluids/heavy_oil.json +d9199cb7fa4c258563c31e0c1e85f8bfabd13925 data/forge/tags/fluids/kerosene.json +b155c2a248cf00210ec9bf5f667f5311fae11fac data/forge/tags/fluids/lpg.json +7ce9a02e99bee89703ff24fdbe21abcce1347a6a data/forge/tags/fluids/molten_steel.json +43cc953e0d37f106d45720e3b60d68b1326dc918 data/forge/tags/fluids/naphtha.json +fdf36a6ebc5ded27ea102a86a012e1e67cc04735 data/forge/tags/items/buckets/air.json +5d76fa22c3b4c2ed6179a747ee09e1f9a08c7330 data/forge/tags/items/buckets/butane.json +e984f557bf075b4520d7f5b4289495d42cdef8bf data/forge/tags/items/buckets/carbon_dioxide.json +56e275681f5a224499cd75db791b9fdb75d41de4 data/forge/tags/items/buckets/creosote.json +64c09a9649a4b8717586eec8735a8002a485a1f6 data/forge/tags/items/buckets/crude_oil.json 91713040b0e0f63ca939cd49cb6790ba8f4bbe56 data/forge/tags/items/buckets/diesel.json -3d192eb4cc94b23ccb6d8c2ec4934d55fa1a8502 data/forge/tags/items/buckets/gasoline.json +71b01dc21125186f1d721142e6b1fe5fa8c36b44 data/forge/tags/items/buckets/ethylene.json +cccd098fb747b51c1f93b9ab165dfcc84ee86685 data/forge/tags/items/buckets/gasoline.json +089a1707a509a2b162328f22e140b12f3ffc7ed6 data/forge/tags/items/buckets/heavy_oil.json e381969c78533c39cd1e932732de254e2c304cd4 data/forge/tags/items/buckets/kerosene.json +701ce1eb09cd3e0d5fdd02a12646293fab95cc71 data/forge/tags/items/buckets/lpg.json +9485e9a0bbe04d38fcd50814c099ddd9dcca2532 data/forge/tags/items/buckets/lubrication_oil.json aca84e6f923d3ad35e5b43b6fe9ebe9d4629c7a2 data/forge/tags/items/buckets/napalm.json bb6ed3bebbde28633a04b3c36c5ddfa2b761e2c1 data/forge/tags/items/buckets/naphtha.json +516d82bf43c328928ceb7454ab1dfc4555b7f587 data/forge/tags/items/buckets/neon.json 65a9d8cb47befdfc287db651a0aa2853d8260489 data/forge/tags/items/buckets/plastic.json +9db41900fdb93d4d633cbb69864a1e7e627f1703 data/forge/tags/items/buckets/propane.json +4d7922c8b7278b29c373a34a531e3ce1d5f762da data/forge/tags/items/buckets/propylene.json 9fbe71f4776547000044bcc08054bb6ab2da4639 data/forge/tags/items/buckets/slag.json 94945bea02cca0bfa9c9c05fa16b5533f47024c0 data/forge/tags/items/buckets/steel.json ecf1a4c60ac630afe103f9d1c8bfea432158bdf9 data/forge/tags/items/concrete.json @@ -1176,32 +1872,53 @@ ecf1a4c60ac630afe103f9d1c8bfea432158bdf9 data/forge/tags/items/concrete.json a5782b1478ab73e6bc6582e4008338de550b3fc6 data/forge/tags/items/factory_floor.json 6f21498ac0f4c376952c9c596a4813ec0919e966 data/forge/tags/items/ingots/aluminum.json 25e0089eed475f013f06ea955a40bacdab77340b data/forge/tags/items/ingots/cast_iron.json +60a42c446e1258adc8276f6cdbb98bcb0c99a58c data/forge/tags/items/ingots/lead.json +cdcb09fea99be8544bcd80cd70d38714656c633e data/forge/tags/items/ingots/lithium.json +2155a5c380a23e61aca81526f6b6c2ae0c18cce3 data/forge/tags/items/ingots/nickel.json 1ed58f41928d2a88ddf94afa3322ae68dfa94cd2 data/forge/tags/items/ingots/plastic.json 64f89e1182420c4d41311d8c75afe2e1bd26ef18 data/forge/tags/items/ingots/steel.json +c46525dfe2b04bebba51191fb2ad3421eac69e5a data/forge/tags/items/leather.json +faaf46d02cda538209e0759358fb3c650c7b3289 data/forge/tags/items/ores.json +33ca6275487b460d11572c7d3c709daf3103ffdf data/forge/tags/items/ores/lead.json +c41bd89605764f3ba168f66d0eadf27ce8ec4ab0 data/forge/tags/items/ores/lithium.json +1af284a396dbe850a0fd1f5f0865a20f7c705022 data/forge/tags/items/ores/nickel.json +77b6039210e9521b123826dd8443de3c54727776 data/forge/tags/items/ores_in_ground/deepslate.json +66f8c315b8229187f33998509b166d53c397b52e data/forge/tags/items/ores_in_ground/stone.json +fb491ffaab95a6a602b864788815b65cef1694ec data/forge/tags/items/plates/steel.json +4135533136b7d88bd7091eebc6e2859848d9b5e3 data/forge/tags/items/raw_materials.json +196bf55094705d685e1a0647662778129d6f52fd data/forge/tags/items/raw_materials/lead.json +f7017df993dfacb338d46068d2a00b9d36beb4b3 data/forge/tags/items/raw_materials/lithium.json +70ba49dd7f0be17029e0d682b5afc3fa8e64492a data/forge/tags/items/raw_materials/nickel.json 7ac2a059d30c530af1643d2dd5a1fbf662f7e89e data/forge/tags/items/rebar_concrete.json -f4f8fca186b4094d9bd6f44b8372b78bc40054ca data/forge/tags/items/storage_blocks.json +113375fc348d1824a2bee1356e1d468274baf668 data/forge/tags/items/storage_blocks.json efded5fd62c9bd1ccd0732322594a50ee5bd5fe9 data/forge/tags/items/storage_blocks/aluminum.json 518d4d4429ed06230f2241643df97c450da2574e data/forge/tags/items/storage_blocks/cast_iron.json +2fe4b90de0c5f37ea2be137b10ee02d5cd9372a4 data/forge/tags/items/storage_blocks/lead.json +96ec4c1c33f89d1085b9056a10b072993d8289c3 data/forge/tags/items/storage_blocks/lithium.json +ecf8d89b6ea54de92eef80fd46b80d57e4cbdc29 data/forge/tags/items/storage_blocks/nickel.json f73e06b84492bd449fee0b676be968885769777c data/forge/tags/items/storage_blocks/plastic.json 128ae15f2f20d394380ec75dc075e8e1c73fb445 data/forge/tags/items/storage_blocks/steel.json -c93e03d746cae5143427d5605bebd2b2a4006219 data/minecraft/tags/blocks/azalea_root_replaceable.json -36a138612b1f5e124d84df719a390b5abf099c3c data/minecraft/tags/blocks/beacon_base_blocks.json -1e81ea9779b8cd53f524e8ecd62fbb7c549ccc4e data/minecraft/tags/blocks/climbable.json +3f69f49c74dd80b5ac07a6e5152e29ccf2005301 data/forge/tags/items/string.json +4d37994e7106c5275162ea39a8e1089f6af23fdc data/forge/tags/items/wires/aluminum.json +ba87090d394b922629bea7c7d31439296f53b55d data/forge/tags/items/wires/copper.json +bfe14208dfd52956c9f8ef191e52402124ef9197 data/minecraft/tags/blocks/azalea_root_replaceable.json +51f3c3c1fc845adb85633f3686082776f43de33b data/minecraft/tags/blocks/beacon_base_blocks.json +0b5052b5672e53dff38b48a56649a227e2830b6b data/minecraft/tags/blocks/climbable.json 23cf02cfaf4f4efd7feb2a328e623fc63523216b data/minecraft/tags/blocks/doors.json -c93e03d746cae5143427d5605bebd2b2a4006219 data/minecraft/tags/blocks/dripstone_replaceable_blocks.json -c93e03d746cae5143427d5605bebd2b2a4006219 data/minecraft/tags/blocks/lush_ground_replaceable.json -282ca3bd0a5dfdaa604a604f844547fcc4be5306 data/minecraft/tags/blocks/mineable/axe.json -bf3205140c002e511521c7229d076cbcdcc53473 data/minecraft/tags/blocks/mineable/pickaxe.json -c93e03d746cae5143427d5605bebd2b2a4006219 data/minecraft/tags/blocks/moss_replaceable.json +bfe14208dfd52956c9f8ef191e52402124ef9197 data/minecraft/tags/blocks/dripstone_replaceable_blocks.json +bfe14208dfd52956c9f8ef191e52402124ef9197 data/minecraft/tags/blocks/lush_ground_replaceable.json +0135251ca2defce82e1a0a793b1cf049410e9e7e data/minecraft/tags/blocks/mineable/axe.json +d192f035136a3a60c6e9dbf3587ff9595f0c1771 data/minecraft/tags/blocks/mineable/pickaxe.json +bfe14208dfd52956c9f8ef191e52402124ef9197 data/minecraft/tags/blocks/moss_replaceable.json 8a3dfd27452a21f14ee2a9936ddc357c3dbb9ae4 data/minecraft/tags/blocks/needs_diamond_tool.json -c0d6e4e469f0314abef1f5221459942b0ea29558 data/minecraft/tags/blocks/needs_iron_tool.json -2df12a6f9ccd018fe31079e8b8e10b437959f5d9 data/minecraft/tags/blocks/needs_stone_tool.json -b01a7918c6295e37cd4cacb6da190dc31fa742bc data/minecraft/tags/blocks/slabs.json -393fb4c881cb7d1fe3b523ed03e0245b62210e4f data/minecraft/tags/blocks/stairs.json -63da3851064e81c50f0792645dff76a2291e5dfd data/minecraft/tags/blocks/walls.json +7f9d5c5e9c71eab5cf9c876e16959b9a741db3c1 data/minecraft/tags/blocks/needs_iron_tool.json +242f9a36d2b0e7c0bd5578d9de3af023c9d4dcda data/minecraft/tags/blocks/needs_stone_tool.json +78373a936afe2a40d0a891f4498ab54029245e44 data/minecraft/tags/blocks/slabs.json +b8ac4ce0d3db740b9d02b97853804db08ed0826c data/minecraft/tags/blocks/stairs.json +4e45d4da715835a2e978e35791b90fe7e97da935 data/minecraft/tags/blocks/walls.json 23cf02cfaf4f4efd7feb2a328e623fc63523216b data/minecraft/tags/blocks/wooden_doors.json 23cf02cfaf4f4efd7feb2a328e623fc63523216b data/minecraft/tags/items/doors.json -b01a7918c6295e37cd4cacb6da190dc31fa742bc data/minecraft/tags/items/slabs.json -5e0def7b0089eb61795e06637886edd4e6df59a0 data/minecraft/tags/items/stairs.json -4f93a6d9ea5711e2dfffaed26d6111b515cd5e18 data/minecraft/tags/items/walls.json +78373a936afe2a40d0a891f4498ab54029245e44 data/minecraft/tags/items/slabs.json +e6762fc1fcbf123230efd4f3eecf3ff760c7e08b data/minecraft/tags/items/stairs.json +660ee1a15765e09a2e77559d8d8c1e18708a9c10 data/minecraft/tags/items/walls.json 23cf02cfaf4f4efd7feb2a328e623fc63523216b data/quark/tags/blocks/non_double_door.json diff --git a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e index 6afb0218..e9c15bd9 100644 --- a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e +++ b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e @@ -1,2 +1,2 @@ -// 1.19.2 2024-01-12T20:54:31.7261534 Create: The Factory Must Grow's lang merger -98af1b1ba96b233fd0d321a932d7f5dcde5e7f19 assets/createindustry/lang/en_us.json +// 1.19.2 2024-07-03T15:07:29.6924992 Create: The Factory Must Grow's lang merger +33a8f334cb21003d00d77f8789288b83dd2bbb60 assets/createindustry/lang/en_us.json diff --git a/src/generated/resources/assets/createindustry/blockstates/cast_iron_distillation_controller.json b/src/generated/resources/assets/createindustry/blockstates/cast_iron_distillation_controller.json deleted file mode 100644 index 6df91344..00000000 --- a/src/generated/resources/assets/createindustry/blockstates/cast_iron_distillation_controller.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "createindustry:block/cast_iron_distillation_controller/block" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/cast_iron_distillation_output.json b/src/generated/resources/assets/createindustry/blockstates/cast_iron_distillation_output.json deleted file mode 100644 index 6ecd7ca9..00000000 --- a/src/generated/resources/assets/createindustry/blockstates/cast_iron_distillation_output.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "createindustry:block/cast_iron_distillation_output/block" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/caution_block.json b/src/generated/resources/assets/createindustry/blockstates/caution_block.json deleted file mode 100644 index e6dc36f4..00000000 --- a/src/generated/resources/assets/createindustry/blockstates/caution_block.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "createindustry:block/caution_block" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/crude_oil_fluid.json b/src/generated/resources/assets/createindustry/blockstates/crude_oil_fluid.json deleted file mode 100644 index 47d1828a..00000000 --- a/src/generated/resources/assets/createindustry/blockstates/crude_oil_fluid.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "variants": { - "": { - "model": "createindustry:block/crude_oil_fluid" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/red_caution_block.json b/src/generated/resources/assets/createindustry/blockstates/red_caution_block.json index d4c5e56c..8b57d715 100644 --- a/src/generated/resources/assets/createindustry/blockstates/red_caution_block.json +++ b/src/generated/resources/assets/createindustry/blockstates/red_caution_block.json @@ -1,7 +1,19 @@ { "variants": { - "": { + "facing=east": { + "model": "createindustry:block/red_caution_block", + "y": 90 + }, + "facing=north": { "model": "createindustry:block/red_caution_block" + }, + "facing=south": { + "model": "createindustry:block/red_caution_block", + "y": 180 + }, + "facing=west": { + "model": "createindustry:block/red_caution_block", + "y": 270 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/blockstates/steel_distillation_controller.json b/src/generated/resources/assets/createindustry/blockstates/steel_distillation_controller.json index 5d5dec04..7051b788 100644 --- a/src/generated/resources/assets/createindustry/blockstates/steel_distillation_controller.json +++ b/src/generated/resources/assets/createindustry/blockstates/steel_distillation_controller.json @@ -1,57 +1,19 @@ { "variants": { - "face=ceiling,facing=east": { - "model": "createindustry:block/steel_distillation_controller/block", - "x": 180, - "y": 270 - }, - "face=ceiling,facing=north": { - "model": "createindustry:block/steel_distillation_controller/block", - "x": 180, - "y": 180 - }, - "face=ceiling,facing=south": { - "model": "createindustry:block/steel_distillation_controller/block", - "x": 180 - }, - "face=ceiling,facing=west": { - "model": "createindustry:block/steel_distillation_controller/block", - "x": 180, - "y": 90 - }, - "face=floor,facing=east": { + "facing=east": { "model": "createindustry:block/steel_distillation_controller/block", "y": 90 }, - "face=floor,facing=north": { + "facing=north": { "model": "createindustry:block/steel_distillation_controller/block" }, - "face=floor,facing=south": { + "facing=south": { "model": "createindustry:block/steel_distillation_controller/block", "y": 180 }, - "face=floor,facing=west": { + "facing=west": { "model": "createindustry:block/steel_distillation_controller/block", "y": 270 - }, - "face=wall,facing=east": { - "model": "createindustry:block/steel_distillation_controller/block", - "x": 90, - "y": 90 - }, - "face=wall,facing=north": { - "model": "createindustry:block/steel_distillation_controller/block", - "x": 90 - }, - "face=wall,facing=south": { - "model": "createindustry:block/steel_distillation_controller/block", - "x": 90, - "y": 180 - }, - "face=wall,facing=west": { - "model": "createindustry:block/steel_distillation_controller/block", - "x": 90, - "y": 270 } } } \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/lang/en_ud.json b/src/generated/resources/assets/createindustry/lang/en_ud.json deleted file mode 100644 index fbeb8617..00000000 --- a/src/generated/resources/assets/createindustry/lang/en_ud.json +++ /dev/null @@ -1,295 +0,0 @@ -{ - "block.createindustry.air_intake": "ǝʞɐʇuI ɹıⱯ", - "block.createindustry.aluminum_bars": "sɹɐᗺ ɯnuıɯnןⱯ", - "block.createindustry.aluminum_block": "ɯnuıɯnןⱯ ɟo ʞɔoןᗺ", - "block.createindustry.aluminum_fluid_valve": "ǝʌןɐΛ pınןℲ ɯnuıɯnןⱯ", - "block.createindustry.aluminum_flywheel": "ןǝǝɥʍʎןℲ ɯnuıɯnןⱯ", - "block.createindustry.aluminum_ladder": "ɹǝppɐꞀ ɯnuıɯnןⱯ", - "block.createindustry.aluminum_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ɯnuıɯnןⱯ", - "block.createindustry.aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ", - "block.createindustry.aluminum_scaffolding": "buıpןoɟɟɐɔS ɯnuıɯnןⱯ", - "block.createindustry.aluminum_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ɯnuıɯnןⱯ", - "block.createindustry.aluminum_truss": "ssnɹ⟘ ɯnuıɯnןⱯ", - "block.createindustry.asphalt": "ʇןɐɥdsⱯ", - "block.createindustry.bauxite": "ǝʇıxnɐᗺ", - "block.createindustry.bauxite_pillar": "ɹɐןןıԀ ǝʇıxnɐᗺ", - "block.createindustry.black_concrete": "ǝʇǝɹɔuoƆ ʞɔɐןᗺ", - "block.createindustry.black_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʞɔɐןᗺ", - "block.createindustry.black_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʞɔɐןᗺ", - "block.createindustry.black_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʞɔɐןᗺ", - "block.createindustry.blast_furnace_output": "ʇndʇnO ǝɔɐuɹnℲ ʇsɐןᗺ", - "block.createindustry.blue_concrete": "ǝʇǝɹɔuoƆ ǝnןᗺ", - "block.createindustry.blue_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝnןᗺ", - "block.createindustry.blue_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝnןᗺ", - "block.createindustry.blue_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝnןᗺ", - "block.createindustry.brass_fluid_valve": "ǝʌןɐΛ pınןℲ ssɐɹᗺ", - "block.createindustry.brass_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ssɐɹᗺ", - "block.createindustry.brass_pipe": "ǝdıԀ ssɐɹᗺ", - "block.createindustry.brass_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ssɐɹᗺ", - "block.createindustry.brown_concrete": "ǝʇǝɹɔuoƆ uʍoɹᗺ", - "block.createindustry.brown_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ uʍoɹᗺ", - "block.createindustry.brown_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ uʍoɹᗺ", - "block.createindustry.brown_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ uʍoɹᗺ", - "block.createindustry.cast_iron_block": "uoɹI ʇsɐƆ ɟo ʞɔoןᗺ", - "block.createindustry.cast_iron_distillation_controller": "ɹǝןןoɹʇuoƆ uoıʇɐןןıʇsıᗡ uoɹI ʇsɐƆ", - "block.createindustry.cast_iron_distillation_output": "ʇndʇnO uoıʇɐןןıʇsıᗡ uoɹI ʇsɐƆ", - "block.createindustry.cast_iron_fluid_valve": "ǝʌןɐΛ pınןℲ uoɹI ʇsɐƆ", - "block.createindustry.cast_iron_flywheel": "ןǝǝɥʍʎןℲ uoɹI ʇsɐƆ", - "block.createindustry.cast_iron_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW uoɹI ʇsɐƆ", - "block.createindustry.cast_iron_pipe": "ǝdıԀ uoɹI ʇsɐƆ", - "block.createindustry.cast_iron_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS uoɹI ʇsɐƆ", - "block.createindustry.casting_basin": "uısɐᗺ buıʇsɐƆ", - "block.createindustry.casting_spout": "ʇnodS buıʇsɐƆ", - "block.createindustry.caution_block": "ʞɔoןᗺ uoıʇnɐƆ", - "block.createindustry.cement": "ʇuǝɯǝƆ", - "block.createindustry.coal_coke_block": "ǝʞoƆ ןɐoƆ ɟo ʞɔoןᗺ", - "block.createindustry.coke_oven": "uǝʌO ǝʞoƆ", - "block.createindustry.compact_engine": "ǝuıbuƎ ʇɔɐdɯoƆ", - "block.createindustry.concrete": "ǝʇǝɹɔuoƆ", - "block.createindustry.concrete_slab": "qɐןS ǝʇǝɹɔuoƆ", - "block.createindustry.concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ", - "block.createindustry.concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ", - "block.createindustry.cooling_fluid": "pınןℲ buıןooƆ", - "block.createindustry.copper_encased_aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ pǝsɐɔuƎ ɹǝddoƆ", - "block.createindustry.copper_encased_brass_pipe": "ǝdıԀ ssɐɹᗺ pǝsɐɔuƎ ɹǝddoƆ", - "block.createindustry.copper_encased_cast_iron_pipe": "ǝdıԀ uoɹI ʇsɐƆ pǝsɐɔuƎ ɹǝddoƆ", - "block.createindustry.copper_encased_plastic_pipe": "ǝdıԀ ɔıʇsɐןԀ pǝsɐɔuƎ ɹǝddoƆ", - "block.createindustry.copper_encased_steel_pipe": "ǝdıԀ ןǝǝʇS pǝsɐɔuƎ ɹǝddoƆ", - "block.createindustry.creosote": "ǝʇosoǝɹƆ", - "block.createindustry.crude_oil_fluid": "pınןℲ ןıO ǝpnɹƆ", - "block.createindustry.cut_bauxite": "ǝʇıxnɐᗺ ʇnƆ", - "block.createindustry.cut_bauxite_brick_slab": "qɐןS ʞɔıɹᗺ ǝʇıxnɐᗺ ʇnƆ", - "block.createindustry.cut_bauxite_brick_stairs": "sɹıɐʇS ʞɔıɹᗺ ǝʇıxnɐᗺ ʇnƆ", - "block.createindustry.cut_bauxite_brick_wall": "ןןɐM ʞɔıɹᗺ ǝʇıxnɐᗺ ʇnƆ", - "block.createindustry.cut_bauxite_bricks": "sʞɔıɹᗺ ǝʇıxnɐᗺ ʇnƆ", - "block.createindustry.cut_bauxite_slab": "qɐןS ǝʇıxnɐᗺ ʇnƆ", - "block.createindustry.cut_bauxite_stairs": "sɹıɐʇS ǝʇıxnɐᗺ ʇnƆ", - "block.createindustry.cut_bauxite_wall": "ןןɐM ǝʇıxnɐᗺ ʇnƆ", - "block.createindustry.cyan_concrete": "ǝʇǝɹɔuoƆ uɐʎƆ", - "block.createindustry.cyan_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ uɐʎƆ", - "block.createindustry.cyan_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ uɐʎƆ", - "block.createindustry.cyan_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ uɐʎƆ", - "block.createindustry.diesel": "ןǝsǝıᗡ", - "block.createindustry.diesel_engine": "ǝuıbuƎ ןǝsǝıᗡ", - "block.createindustry.diesel_engine_expansion": "uoısuɐdxƎ ǝuıbuƎ ןǝsǝıᗡ", - "block.createindustry.exhaust": "ʇsnɐɥxƎ", - "block.createindustry.factory_floor": "ɹooןℲ ʎɹoʇɔɐℲ", - "block.createindustry.factory_floor_slab": "qɐןS ɹooןℲ ʎɹoʇɔɐℲ", - "block.createindustry.factory_floor_stairs": "sɹıɐʇS ɹooןℲ ʎɹoʇɔɐℲ", - "block.createindustry.fireclay": "ʎɐןɔǝɹıℲ", - "block.createindustry.fireproof_brick_reinforcement": "ʇuǝɯǝɔɹoɟuıǝᴚ ʞɔıɹᗺ ɟooɹdǝɹıℲ", - "block.createindustry.fireproof_bricks": "sʞɔıɹᗺ ɟooɹdǝɹıℲ", - "block.createindustry.flarestack": "ʞɔɐʇsǝɹɐןℲ", - "block.createindustry.formwork_block": "ʞɔoןᗺ ʞɹoʍɯɹoℲ", - "block.createindustry.fossilstone": "ǝuoʇsןıssoℲ", - "block.createindustry.gasoline": "ǝuıןosɐ⅁", - "block.createindustry.gasoline_engine": "ǝuıbuƎ ǝuıןosɐ⅁", - "block.createindustry.gasoline_engine_back": "ʞɔɐᗺ ǝuıbuƎ ǝuıןosɐ⅁", - "block.createindustry.glass_aluminum_pipe": "ǝdıԀ ɯnuıɯnןⱯ ssɐן⅁", - "block.createindustry.glass_brass_pipe": "ǝdıԀ ssɐɹᗺ ssɐן⅁", - "block.createindustry.glass_cast_iron_pipe": "ǝdıԀ uoɹI ʇsɐƆ ssɐן⅁", - "block.createindustry.glass_plastic_pipe": "ǝdıԀ ɔıʇsɐןԀ ssɐן⅁", - "block.createindustry.glass_steel_pipe": "ǝdıԀ ןǝǝʇS ssɐן⅁", - "block.createindustry.gray_concrete": "ǝʇǝɹɔuoƆ ʎɐɹ⅁", - "block.createindustry.gray_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʎɐɹ⅁", - "block.createindustry.gray_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʎɐɹ⅁", - "block.createindustry.gray_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʎɐɹ⅁", - "block.createindustry.green_concrete": "ǝʇǝɹɔuoƆ uǝǝɹ⅁", - "block.createindustry.green_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ uǝǝɹ⅁", - "block.createindustry.green_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ uǝǝɹ⅁", - "block.createindustry.green_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ uǝǝɹ⅁", - "block.createindustry.hardened_planks": "sʞuɐןԀ pǝuǝpɹɐH", - "block.createindustry.heavy_casing_door": "ɹooᗡ buısɐƆ ʎʌɐǝH", - "block.createindustry.heavy_machinery_casing": "buısɐƆ ʎɹǝuıɥɔɐW ʎʌɐǝH", - "block.createindustry.heavy_oil": "ןıO ʎʌɐǝH", - "block.createindustry.industrial_pipe": "ǝdıԀ ןɐıɹʇsnpuI", - "block.createindustry.kerosene": "ǝuǝsoɹǝʞ", - "block.createindustry.large_pumpjack_hammer_connector": "ɹoʇɔǝuuoƆ ɹǝɯɯɐH ʞɔɐظdɯnԀ ǝbɹɐꞀ", - "block.createindustry.large_pumpjack_hammer_head": "pɐǝH ɹǝɯɯɐH ʞɔɐظdɯnԀ ǝbɹɐꞀ", - "block.createindustry.large_pumpjack_hammer_part": "ʇɹɐԀ ɹǝɯɯɐH ʞɔɐظdɯnԀ ǝbɹɐꞀ", - "block.createindustry.large_radial_engine": "ǝuıbuƎ ןɐıpɐᴚ ǝbɹɐꞀ", - "block.createindustry.layered_bauxite": "ǝʇıxnɐᗺ pǝɹǝʎɐꞀ", - "block.createindustry.light_blue_concrete": "ǝʇǝɹɔuoƆ ǝnןᗺ ʇɥbıꞀ", - "block.createindustry.light_blue_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝnןᗺ ʇɥbıꞀ", - "block.createindustry.light_blue_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝnןᗺ ʇɥbıꞀ", - "block.createindustry.light_blue_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝnןᗺ ʇɥbıꞀ", - "block.createindustry.light_gray_concrete": "ǝʇǝɹɔuoƆ ʎɐɹ⅁ ʇɥbıꞀ", - "block.createindustry.light_gray_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʎɐɹ⅁ ʇɥbıꞀ", - "block.createindustry.light_gray_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʎɐɹ⅁ ʇɥbıꞀ", - "block.createindustry.light_gray_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʎɐɹ⅁ ʇɥbıꞀ", - "block.createindustry.lignite": "ǝʇıubıꞀ", - "block.createindustry.lime_concrete": "ǝʇǝɹɔuoƆ ǝɯıꞀ", - "block.createindustry.lime_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝɯıꞀ", - "block.createindustry.lime_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝɯıꞀ", - "block.createindustry.lime_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝɯıꞀ", - "block.createindustry.liquid_asphalt": "ʇןɐɥdsⱯ pınbıꞀ", - "block.createindustry.liquid_concrete": "ǝʇǝɹɔuoƆ pınbıꞀ", - "block.createindustry.liquid_plastic": "ɔıʇsɐןԀ pınbıꞀ", - "block.createindustry.lpg_engine": "ǝuıbuƎ bdꞀ", - "block.createindustry.lpg_engine_back": "ʞɔɐᗺ ǝuıbuƎ bdꞀ", - "block.createindustry.lubrication_oil": "ןıO uoıʇɐɔıɹqnꞀ", - "block.createindustry.machine_input": "ʇnduI ǝuıɥɔɐW", - "block.createindustry.magenta_concrete": "ǝʇǝɹɔuoƆ ɐʇuǝbɐW", - "block.createindustry.magenta_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ɐʇuǝbɐW", - "block.createindustry.magenta_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ɐʇuǝbɐW", - "block.createindustry.magenta_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ɐʇuǝbɐW", - "block.createindustry.molten_metal": "ןɐʇǝW uǝʇןoW", - "block.createindustry.molten_slag": "bɐןS uǝʇןoW", - "block.createindustry.molten_steel": "ןǝǝʇS uǝʇןoW", - "block.createindustry.napalm": "ɯןɐdɐN", - "block.createindustry.napalm_bomb": "qɯoᗺ ɯןɐdɐN", - "block.createindustry.naphtha": "ɐɥʇɥdɐN", - "block.createindustry.oil_deposit": "ʇısodǝᗡ ןıO", - "block.createindustry.orange_concrete": "ǝʇǝɹɔuoƆ ǝbuɐɹO", - "block.createindustry.orange_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝbuɐɹO", - "block.createindustry.orange_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝbuɐɹO", - "block.createindustry.orange_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝbuɐɹO", - "block.createindustry.pink_concrete": "ǝʇǝɹɔuoƆ ʞuıԀ", - "block.createindustry.pink_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʞuıԀ", - "block.createindustry.pink_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʞuıԀ", - "block.createindustry.pink_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʞuıԀ", - "block.createindustry.plastic_block": "ɔıʇsɐןԀ ɟo ʞɔoןᗺ", - "block.createindustry.plastic_fluid_valve": "ǝʌןɐΛ pınןℲ ɔıʇsɐןԀ", - "block.createindustry.plastic_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ɔıʇsɐןԀ", - "block.createindustry.plastic_pipe": "ǝdıԀ ɔıʇsɐןԀ", - "block.createindustry.plastic_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ɔıʇsɐןԀ", - "block.createindustry.polished_cut_bauxite": "ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ", - "block.createindustry.polished_cut_bauxite_slab": "qɐןS ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ", - "block.createindustry.polished_cut_bauxite_stairs": "sɹıɐʇS ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ", - "block.createindustry.polished_cut_bauxite_wall": "ןןɐM ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ", - "block.createindustry.pumpjack_base": "ǝsɐᗺ ʞɔɐظdɯnԀ", - "block.createindustry.pumpjack_crank": "ʞuɐɹƆ ʞɔɐظdɯnԀ", - "block.createindustry.pumpjack_hammer": "ɹǝpןoH ɹǝɯɯɐH ʞɔɐظdɯnԀ", - "block.createindustry.pumpjack_hammer_connector": "ɹoʇɔǝuuoƆ ɹǝɯɯɐH ʞɔɐظdɯnԀ", - "block.createindustry.pumpjack_hammer_head": "pɐǝH ɹǝɯɯɐH ʞɔɐظdɯnԀ", - "block.createindustry.pumpjack_hammer_part": "ʇɹɐԀ ɹǝɯɯɐH ʞɔɐظdɯnԀ", - "block.createindustry.purple_concrete": "ǝʇǝɹɔuoƆ ǝןdɹnԀ", - "block.createindustry.purple_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝןdɹnԀ", - "block.createindustry.purple_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝןdɹnԀ", - "block.createindustry.purple_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝןdɹnԀ", - "block.createindustry.radial_engine": "ǝuıbuƎ ןɐıpɐᴚ", - "block.createindustry.radial_engine_input": "ʇnduI ǝuıbuƎ ןɐıpɐᴚ", - "block.createindustry.radial_engine_input_ponder": "ɹǝpuoԀ ʇnduI ǝuıbuƎ ןɐıpɐᴚ", - "block.createindustry.rebar_concrete": "ǝʇǝɹɔuoƆ ɹɐqǝᴚ", - "block.createindustry.rebar_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ɹɐqǝᴚ", - "block.createindustry.rebar_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ɹɐqǝᴚ", - "block.createindustry.rebar_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ɹɐqǝᴚ", - "block.createindustry.rebar_formwork_block": "ʞɔoןᗺ ʞɹoʍɯɹoℲ ɹɐqǝᴚ", - "block.createindustry.red_caution_block": "ʞɔoןᗺ uoıʇnɐƆ pǝᴚ", - "block.createindustry.red_concrete": "ǝʇǝɹɔuoƆ pǝᴚ", - "block.createindustry.red_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ pǝᴚ", - "block.createindustry.red_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ pǝᴚ", - "block.createindustry.red_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ pǝᴚ", - "block.createindustry.small_bauxite_brick_slab": "qɐןS ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", - "block.createindustry.small_bauxite_brick_stairs": "sɹıɐʇS ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", - "block.createindustry.small_bauxite_brick_wall": "ןןɐM ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", - "block.createindustry.small_bauxite_bricks": "sʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", - "block.createindustry.steel_bars": "sɹɐᗺ ןǝǝʇS", - "block.createindustry.steel_block": "ןǝǝʇS ɟo ʞɔoןᗺ", - "block.createindustry.steel_casing": "buısɐƆ ןǝǝʇS", - "block.createindustry.steel_distillation_controller": "ɹǝןןoɹʇuoƆ uoıʇɐןןıʇsıᗡ ןǝǝʇS", - "block.createindustry.steel_distillation_output": "ʇndʇnO uoıʇɐןןıʇsıᗡ ןǝǝʇS", - "block.createindustry.steel_door": "ɹooᗡ ןǝǝʇS", - "block.createindustry.steel_fluid_tank": "ʞuɐ⟘ pınןℲ ןǝǝʇS", - "block.createindustry.steel_fluid_valve": "ǝʌןɐΛ pınןℲ ןǝǝʇS", - "block.createindustry.steel_flywheel": "ןǝǝɥʍʎןℲ ןǝǝʇS", - "block.createindustry.steel_frame": "ǝɯɐɹℲ ןǝǝʇS", - "block.createindustry.steel_ladder": "ɹǝppɐꞀ ןǝǝʇS", - "block.createindustry.steel_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ןǝǝʇS", - "block.createindustry.steel_pipe": "ǝdıԀ ןǝǝʇS", - "block.createindustry.steel_scaffolding": "buıpןoɟɟɐɔS ןǝǝʇS", - "block.createindustry.steel_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ןǝǝʇS", - "block.createindustry.steel_truss": "ssnɹ⟘ ןǝǝʇS", - "block.createindustry.sulfur": "ɹnɟןnS", - "block.createindustry.surface_scanner": "ɹǝuuɐɔS ǝɔɐɟɹnS", - "block.createindustry.turbine_engine": "ǝuıbuƎ ǝuıqɹn⟘", - "block.createindustry.turbine_engine_back": "ʞɔɐᗺ ǝuıbuƎ ǝuıqɹn⟘", - "block.createindustry.white_concrete": "ǝʇǝɹɔuoƆ ǝʇıɥM", - "block.createindustry.white_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ǝʇıɥM", - "block.createindustry.white_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ǝʇıɥM", - "block.createindustry.white_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ǝʇıɥM", - "block.createindustry.yellow_concrete": "ǝʇǝɹɔuoƆ ʍoןןǝʎ", - "block.createindustry.yellow_concrete_slab": "qɐןS ǝʇǝɹɔuoƆ ʍoןןǝʎ", - "block.createindustry.yellow_concrete_stairs": "sɹıɐʇS ǝʇǝɹɔuoƆ ʍoןןǝʎ", - "block.createindustry.yellow_concrete_wall": "ןןɐM ǝʇǝɹɔuoƆ ʍoןןǝʎ", - "entity.createindustry.blue_spark": "ʞɹɐdS ǝnןᗺ", - "entity.createindustry.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ", - "entity.createindustry.green_spark": "ʞɹɐdS uǝǝɹ⅁", - "entity.createindustry.napalm_bomb_entity": "ʎʇıʇuƎ qɯoᗺ ɯןɐdɐN", - "entity.createindustry.spark": "ʞɹɐdS", - "entity.createindustry.thermite_grenade": "ǝpɐuǝɹ⅁ ǝʇıɯɹǝɥ⟘", - "entity.createindustry.zin_grenade": "ǝpɐuǝɹ⅁ uıZ", - "fluid.createindustry.air": "ɹıⱯ", - "fluid.createindustry.butane": "ǝuɐʇnᗺ", - "fluid.createindustry.carbon_dioxide": "ǝpıxoıᗡ uoqɹɐƆ", - "fluid.createindustry.cooling_fluid": "pınןℲ buıןooƆ", - "fluid.createindustry.creosote": "ǝʇosoǝɹƆ", - "fluid.createindustry.crude_oil_fluid": "ןıO ǝpnɹƆ", - "fluid.createindustry.diesel": "ןǝsǝıᗡ", - "fluid.createindustry.ethylene": "ǝuǝןʎɥʇƎ", - "fluid.createindustry.gasoline": "ǝuıןosɐ⅁", - "fluid.createindustry.heavy_oil": "ןıO ʎʌɐǝH", - "fluid.createindustry.kerosene": "ǝuǝsoɹǝʞ", - "fluid.createindustry.liquid_asphalt": "ʇןɐɥdsⱯ pınbıꞀ", - "fluid.createindustry.liquid_concrete": "ǝʇǝɹɔuoƆ pınbıꞀ", - "fluid.createindustry.liquid_plastic": "ɔıʇsɐןԀ pınbıꞀ", - "fluid.createindustry.lpg": "⅁ԀꞀ", - "fluid.createindustry.lubrication_oil": "ןıO uoıʇɐɔıɹqnꞀ", - "fluid.createindustry.molten_slag": "bɐןS uǝʇןoW", - "fluid.createindustry.molten_steel": "ןǝǝʇS uǝʇןoW", - "fluid.createindustry.napalm": "ɯןɐdɐN", - "fluid.createindustry.naphtha": "ɐɥʇɥdɐN", - "fluid.createindustry.propane": "ǝuɐdoɹԀ", - "fluid.createindustry.propylene": "ǝuǝןʎdoɹԀ", - "item.createindustry.aluminum_ingot": "ʇobuI ɯnuıɯnןⱯ", - "item.createindustry.bitumen": "uǝɯnʇıᗺ", - "item.createindustry.blasting_mixture": "ǝɹnʇxıW buıʇsɐןᗺ", - "item.createindustry.block_mold": "pןoW ʞɔoןᗺ", - "item.createindustry.cast_iron_ingot": "ʇobuI uoɹI ʇsɐƆ", - "item.createindustry.coal_coke": "ǝʞoƆ ןɐoƆ", - "item.createindustry.coal_coke_dust": "ʇsnᗡ ǝʞoƆ ןɐoƆ", - "item.createindustry.concrete_mixture": "ǝɹnʇxıW ǝʇǝɹɔuoƆ", - "item.createindustry.cooling_fluid_bucket": "ʇǝʞɔnᗺ pınןℲ buıןooƆ", - "item.createindustry.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ", - "item.createindustry.creosote_bucket": "ʇǝʞɔnᗺ ǝʇosoǝɹƆ", - "item.createindustry.crude_oil_fluid_bucket": "ʇǝʞɔnᗺ pınןℲ ןıO ǝpnɹƆ", - "item.createindustry.diesel_bucket": "ʇǝʞɔnᗺ ןǝsǝıᗡ", - "item.createindustry.engine_base": "ǝsɐᗺ ǝuıbuƎ", - "item.createindustry.engine_chamber": "ɹǝqɯɐɥƆ ǝuıbuƎ", - "item.createindustry.fireclay_ball": "ןןɐᗺ ʎɐןɔǝɹıℲ", - "item.createindustry.fireproof_brick": "ʞɔıɹᗺ ɟooɹdǝɹıℲ", - "item.createindustry.gasoline_bucket": "ʇǝʞɔnᗺ ǝuıןosɐ⅁", - "item.createindustry.heavy_oil_bucket": "ʇǝʞɔnᗺ ןıO ʎʌɐǝH", - "item.createindustry.heavy_plate": "ǝʇɐןԀ ʎʌɐǝH", - "item.createindustry.ingot_mold": "pןoW ʇobuI", - "item.createindustry.kerosene_bucket": "ʇǝʞɔnᗺ ǝuǝsoɹǝʞ", - "item.createindustry.limesand": "puɐsǝɯıꞀ", - "item.createindustry.liquid_asphalt_bucket": "ʇǝʞɔnᗺ ʇןɐɥdsⱯ pınbıꞀ", - "item.createindustry.liquid_concrete_bucket": "ʇǝʞɔnᗺ ǝʇǝɹɔuoƆ pınbıꞀ", - "item.createindustry.liquid_plastic_bucket": "ʇǝʞɔnᗺ ɔıʇsɐןԀ pınbıꞀ", - "item.createindustry.lubrication_oil_bucket": "ʇǝʞɔnᗺ ןıO uoıʇɐɔıɹqnꞀ", - "item.createindustry.molten_slag_bucket": "ʇǝʞɔnᗺ bɐןS uǝʇןoW", - "item.createindustry.molten_steel_bucket": "ʇǝʞɔnᗺ ןǝǝʇS uǝʇןoW", - "item.createindustry.napalm_bucket": "ʇǝʞɔnᗺ ɯןɐdɐN", - "item.createindustry.naphtha_bucket": "ʇǝʞɔnᗺ ɐɥʇɥdɐN", - "item.createindustry.nitrate_dust": "ʇsnᗡ ǝʇɐɹʇıN", - "item.createindustry.plastic_sheet": "ʇǝǝɥS ɔıʇsɐןԀ", - "item.createindustry.quad_potato_cannon": "uouuɐƆ oʇɐʇoԀ pɐnὉ", - "item.createindustry.rebar": "ɹɐqǝᴚ", - "item.createindustry.screw": "ʍǝɹɔS", - "item.createindustry.screwdriver": "ɹǝʌıɹpʍǝɹɔS", - "item.createindustry.slag": "bɐןS", - "item.createindustry.spark_plug": "bnןԀ ʞɹɐdS", - "item.createindustry.steel_ingot": "ʇobuI ןǝǝʇS", - "item.createindustry.steel_mechanism": "ɯsıuɐɥɔǝW ןǝǝʇS", - "item.createindustry.sulfur_dust": "ʇsnᗡ ɹnɟןnS", - "item.createindustry.thermite_grenade": "ǝpɐuǝɹ⅁ ǝʇıɯɹǝɥ⟘", - "item.createindustry.thermite_powder": "ɹǝpʍoԀ ǝʇıɯɹǝɥ⟘", - "item.createindustry.turbine_blade": "ǝpɐןᗺ ǝuıqɹn⟘", - "item.createindustry.unfinished_gasoline_engine": "ǝuıbuƎ ǝuıןosɐ⅁ pǝɥsıuıɟu∩", - "item.createindustry.unfinished_lpg_engine": "ǝuıbuƎ bdꞀ pǝɥsıuıɟu∩", - "item.createindustry.unfinished_steel_mechanism": "ɯsıuɐɥɔǝW ןǝǝʇS pǝɥsıuıɟu∩", - "item.createindustry.unfinished_turbine_engine": "ǝuıbuƎ ǝuıqɹn⟘ pǝɥsıuıɟu∩", - "item.createindustry.unprocessed_heavy_plate": "ǝʇɐןԀ ʎʌɐǝH pǝssǝɔoɹdu∩", - "item.createindustry.zinc_grenade": "ǝpɐuǝɹ⅁ ɔuıZ" -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/lang/en_us.json b/src/generated/resources/assets/createindustry/lang/en_us.json deleted file mode 100644 index 5edb8d1d..00000000 --- a/src/generated/resources/assets/createindustry/lang/en_us.json +++ /dev/null @@ -1,458 +0,0 @@ -{ - - "_": "->------------------------] Game Elements [------------------------<-", - - "block.createindustry.air_intake": "Air Intake", - "block.createindustry.aluminum_bars": "Aluminum Bars", - "block.createindustry.aluminum_block": "Block of Aluminum", - "block.createindustry.aluminum_fluid_valve": "Aluminum Fluid Valve", - "block.createindustry.aluminum_flywheel": "Aluminum Flywheel", - "block.createindustry.aluminum_ladder": "Aluminum Ladder", - "block.createindustry.aluminum_mechanical_pump": "Aluminum Mechanical Pump", - "block.createindustry.aluminum_pipe": "Aluminum Pipe", - "block.createindustry.aluminum_scaffolding": "Aluminum Scaffolding", - "block.createindustry.aluminum_smart_fluid_pipe": "Aluminum Smart Fluid Pipe", - "block.createindustry.aluminum_truss": "Aluminum Truss", - "block.createindustry.asphalt": "Asphalt", - "block.createindustry.bauxite": "Bauxite", - "block.createindustry.bauxite_pillar": "Bauxite Pillar", - "block.createindustry.black_concrete": "Black Concrete", - "block.createindustry.black_concrete_slab": "Black Concrete Slab", - "block.createindustry.black_concrete_stairs": "Black Concrete Stairs", - "block.createindustry.black_concrete_wall": "Black Concrete Wall", - "block.createindustry.blast_furnace_output": "Blast Furnace Output", - "block.createindustry.blue_concrete": "Blue Concrete", - "block.createindustry.blue_concrete_slab": "Blue Concrete Slab", - "block.createindustry.blue_concrete_stairs": "Blue Concrete Stairs", - "block.createindustry.blue_concrete_wall": "Blue Concrete Wall", - "block.createindustry.brass_fluid_valve": "Brass Fluid Valve", - "block.createindustry.brass_mechanical_pump": "Brass Mechanical Pump", - "block.createindustry.brass_pipe": "Brass Pipe", - "block.createindustry.brass_smart_fluid_pipe": "Brass Smart Fluid Pipe", - "block.createindustry.brown_concrete": "Brown Concrete", - "block.createindustry.brown_concrete_slab": "Brown Concrete Slab", - "block.createindustry.brown_concrete_stairs": "Brown Concrete Stairs", - "block.createindustry.brown_concrete_wall": "Brown Concrete Wall", - "block.createindustry.cast_iron_block": "Block of Cast Iron", - "block.createindustry.cast_iron_distillation_controller": "Cast Iron Distillation Controller", - "block.createindustry.cast_iron_distillation_output": "Cast Iron Distillation Output", - "block.createindustry.cast_iron_fluid_valve": "Cast Iron Fluid Valve", - "block.createindustry.cast_iron_flywheel": "Cast Iron Flywheel", - "block.createindustry.cast_iron_mechanical_pump": "Cast Iron Mechanical Pump", - "block.createindustry.cast_iron_pipe": "Cast Iron Pipe", - "block.createindustry.cast_iron_smart_fluid_pipe": "Cast Iron Smart Fluid Pipe", - "block.createindustry.casting_basin": "Casting Basin", - "block.createindustry.casting_spout": "Casting Spout", - "block.createindustry.caution_block": "Caution Block", - "block.createindustry.cement": "Cement", - "block.createindustry.coal_coke_block": "Block of Coal Coke", - "block.createindustry.coke_oven": "Coke Oven", - "block.createindustry.compact_engine": "Compact Engine", - "block.createindustry.concrete": "Concrete", - "block.createindustry.concrete_slab": "Concrete Slab", - "block.createindustry.concrete_stairs": "Concrete Stairs", - "block.createindustry.concrete_wall": "Concrete Wall", - "block.createindustry.cooling_fluid": "Cooling Fluid", - "block.createindustry.copper_encased_aluminum_pipe": "Copper Encased Aluminum Pipe", - "block.createindustry.copper_encased_brass_pipe": "Copper Encased Brass Pipe", - "block.createindustry.copper_encased_cast_iron_pipe": "Copper Encased Cast Iron Pipe", - "block.createindustry.copper_encased_plastic_pipe": "Copper Encased Plastic Pipe", - "block.createindustry.copper_encased_steel_pipe": "Copper Encased Steel Pipe", - "block.createindustry.creosote": "Creosote", - "block.createindustry.crude_oil_fluid": "Crude Oil Fluid", - "block.createindustry.cut_bauxite": "Cut Bauxite", - "block.createindustry.cut_bauxite_brick_slab": "Cut Bauxite Brick Slab", - "block.createindustry.cut_bauxite_brick_stairs": "Cut Bauxite Brick Stairs", - "block.createindustry.cut_bauxite_brick_wall": "Cut Bauxite Brick Wall", - "block.createindustry.cut_bauxite_bricks": "Cut Bauxite Bricks", - "block.createindustry.cut_bauxite_slab": "Cut Bauxite Slab", - "block.createindustry.cut_bauxite_stairs": "Cut Bauxite Stairs", - "block.createindustry.cut_bauxite_wall": "Cut Bauxite Wall", - "block.createindustry.cyan_concrete": "Cyan Concrete", - "block.createindustry.cyan_concrete_slab": "Cyan Concrete Slab", - "block.createindustry.cyan_concrete_stairs": "Cyan Concrete Stairs", - "block.createindustry.cyan_concrete_wall": "Cyan Concrete Wall", - "block.createindustry.diesel": "Diesel", - "block.createindustry.diesel_engine": "Diesel Engine", - "block.createindustry.diesel_engine_expansion": "Diesel Engine Expansion", - "block.createindustry.exhaust": "Exhaust", - "block.createindustry.factory_floor": "Factory Floor", - "block.createindustry.factory_floor_slab": "Factory Floor Slab", - "block.createindustry.factory_floor_stairs": "Factory Floor Stairs", - "block.createindustry.fireclay": "Fireclay", - "block.createindustry.fireproof_brick_reinforcement": "Fireproof Brick Reinforcement", - "block.createindustry.fireproof_bricks": "Fireproof Bricks", - "block.createindustry.flarestack": "Flarestack", - "block.createindustry.formwork_block": "Formwork Block", - "block.createindustry.fossilstone": "Fossilstone", - "block.createindustry.gasoline": "Gasoline", - "block.createindustry.gasoline_engine": "Gasoline Engine", - "block.createindustry.gasoline_engine_back": "Gasoline Engine Back", - "block.createindustry.glass_aluminum_pipe": "Glass Aluminum Pipe", - "block.createindustry.glass_brass_pipe": "Glass Brass Pipe", - "block.createindustry.glass_cast_iron_pipe": "Glass Cast Iron Pipe", - "block.createindustry.glass_plastic_pipe": "Glass Plastic Pipe", - "block.createindustry.glass_steel_pipe": "Glass Steel Pipe", - "block.createindustry.gray_concrete": "Gray Concrete", - "block.createindustry.gray_concrete_slab": "Gray Concrete Slab", - "block.createindustry.gray_concrete_stairs": "Gray Concrete Stairs", - "block.createindustry.gray_concrete_wall": "Gray Concrete Wall", - "block.createindustry.green_concrete": "Green Concrete", - "block.createindustry.green_concrete_slab": "Green Concrete Slab", - "block.createindustry.green_concrete_stairs": "Green Concrete Stairs", - "block.createindustry.green_concrete_wall": "Green Concrete Wall", - "block.createindustry.hardened_planks": "Hardened Planks", - "block.createindustry.heavy_casing_door": "Heavy Casing Door", - "block.createindustry.heavy_machinery_casing": "Heavy Machinery Casing", - "block.createindustry.heavy_oil": "Heavy Oil", - "block.createindustry.industrial_pipe": "Industrial Pipe", - "block.createindustry.kerosene": "Kerosene", - "block.createindustry.large_pumpjack_hammer_connector": "Large Pumpjack Hammer Connector", - "block.createindustry.large_pumpjack_hammer_head": "Large Pumpjack Hammer Head", - "block.createindustry.large_pumpjack_hammer_part": "Large Pumpjack Hammer Part", - "block.createindustry.large_radial_engine": "Large Radial Engine", - "block.createindustry.layered_bauxite": "Layered Bauxite", - "block.createindustry.light_blue_concrete": "Light Blue Concrete", - "block.createindustry.light_blue_concrete_slab": "Light Blue Concrete Slab", - "block.createindustry.light_blue_concrete_stairs": "Light Blue Concrete Stairs", - "block.createindustry.light_blue_concrete_wall": "Light Blue Concrete Wall", - "block.createindustry.light_gray_concrete": "Light Gray Concrete", - "block.createindustry.light_gray_concrete_slab": "Light Gray Concrete Slab", - "block.createindustry.light_gray_concrete_stairs": "Light Gray Concrete Stairs", - "block.createindustry.light_gray_concrete_wall": "Light Gray Concrete Wall", - "block.createindustry.lignite": "Lignite", - "block.createindustry.lime_concrete": "Lime Concrete", - "block.createindustry.lime_concrete_slab": "Lime Concrete Slab", - "block.createindustry.lime_concrete_stairs": "Lime Concrete Stairs", - "block.createindustry.lime_concrete_wall": "Lime Concrete Wall", - "block.createindustry.liquid_asphalt": "Liquid Asphalt", - "block.createindustry.liquid_concrete": "Liquid Concrete", - "block.createindustry.liquid_plastic": "Liquid Plastic", - "block.createindustry.lpg_engine": "Lpg Engine", - "block.createindustry.lpg_engine_back": "Lpg Engine Back", - "block.createindustry.lubrication_oil": "Lubrication Oil", - "block.createindustry.machine_input": "Machine Input", - "block.createindustry.magenta_concrete": "Magenta Concrete", - "block.createindustry.magenta_concrete_slab": "Magenta Concrete Slab", - "block.createindustry.magenta_concrete_stairs": "Magenta Concrete Stairs", - "block.createindustry.magenta_concrete_wall": "Magenta Concrete Wall", - "block.createindustry.molten_metal": "Molten Metal", - "block.createindustry.molten_slag": "Molten Slag", - "block.createindustry.molten_steel": "Molten Steel", - "block.createindustry.napalm": "Napalm", - "block.createindustry.napalm_bomb": "Napalm Bomb", - "block.createindustry.naphtha": "Naphtha", - "block.createindustry.oil_deposit": "Oil Deposit", - "block.createindustry.orange_concrete": "Orange Concrete", - "block.createindustry.orange_concrete_slab": "Orange Concrete Slab", - "block.createindustry.orange_concrete_stairs": "Orange Concrete Stairs", - "block.createindustry.orange_concrete_wall": "Orange Concrete Wall", - "block.createindustry.pink_concrete": "Pink Concrete", - "block.createindustry.pink_concrete_slab": "Pink Concrete Slab", - "block.createindustry.pink_concrete_stairs": "Pink Concrete Stairs", - "block.createindustry.pink_concrete_wall": "Pink Concrete Wall", - "block.createindustry.plastic_block": "Block of Plastic", - "block.createindustry.plastic_fluid_valve": "Plastic Fluid Valve", - "block.createindustry.plastic_mechanical_pump": "Plastic Mechanical Pump", - "block.createindustry.plastic_pipe": "Plastic Pipe", - "block.createindustry.plastic_smart_fluid_pipe": "Plastic Smart Fluid Pipe", - "block.createindustry.polished_cut_bauxite": "Polished Cut Bauxite", - "block.createindustry.polished_cut_bauxite_slab": "Polished Cut Bauxite Slab", - "block.createindustry.polished_cut_bauxite_stairs": "Polished Cut Bauxite Stairs", - "block.createindustry.polished_cut_bauxite_wall": "Polished Cut Bauxite Wall", - "block.createindustry.pumpjack_base": "Pumpjack Base", - "block.createindustry.pumpjack_crank": "Pumpjack Crank", - "block.createindustry.pumpjack_hammer": "Pumpjack Hammer Holder", - "block.createindustry.pumpjack_hammer_connector": "Pumpjack Hammer Connector", - "block.createindustry.pumpjack_hammer_head": "Pumpjack Hammer Head", - "block.createindustry.pumpjack_hammer_part": "Pumpjack Hammer Part", - "block.createindustry.purple_concrete": "Purple Concrete", - "block.createindustry.purple_concrete_slab": "Purple Concrete Slab", - "block.createindustry.purple_concrete_stairs": "Purple Concrete Stairs", - "block.createindustry.purple_concrete_wall": "Purple Concrete Wall", - "block.createindustry.radial_engine": "Radial Engine", - "block.createindustry.radial_engine_input": "Radial Engine Input", - "block.createindustry.radial_engine_input_ponder": "Radial Engine Input Ponder", - "block.createindustry.rebar_concrete": "Rebar Concrete", - "block.createindustry.rebar_concrete_slab": "Rebar Concrete Slab", - "block.createindustry.rebar_concrete_stairs": "Rebar Concrete Stairs", - "block.createindustry.rebar_concrete_wall": "Rebar Concrete Wall", - "block.createindustry.rebar_formwork_block": "Rebar Formwork Block", - "block.createindustry.red_caution_block": "Red Caution Block", - "block.createindustry.red_concrete": "Red Concrete", - "block.createindustry.red_concrete_slab": "Red Concrete Slab", - "block.createindustry.red_concrete_stairs": "Red Concrete Stairs", - "block.createindustry.red_concrete_wall": "Red Concrete Wall", - "block.createindustry.small_bauxite_brick_slab": "Small Bauxite Brick Slab", - "block.createindustry.small_bauxite_brick_stairs": "Small Bauxite Brick Stairs", - "block.createindustry.small_bauxite_brick_wall": "Small Bauxite Brick Wall", - "block.createindustry.small_bauxite_bricks": "Small Bauxite Bricks", - "block.createindustry.steel_bars": "Steel Bars", - "block.createindustry.steel_block": "Block of Steel", - "block.createindustry.steel_casing": "Steel Casing", - "block.createindustry.steel_distillation_controller": "Steel Distillation Controller", - "block.createindustry.steel_distillation_output": "Steel Distillation Output", - "block.createindustry.steel_door": "Steel Door", - "block.createindustry.steel_fluid_tank": "Steel Fluid Tank", - "block.createindustry.steel_fluid_valve": "Steel Fluid Valve", - "block.createindustry.steel_flywheel": "Steel Flywheel", - "block.createindustry.steel_frame": "Steel Frame", - "block.createindustry.steel_ladder": "Steel Ladder", - "block.createindustry.steel_mechanical_pump": "Steel Mechanical Pump", - "block.createindustry.steel_pipe": "Steel Pipe", - "block.createindustry.steel_scaffolding": "Steel Scaffolding", - "block.createindustry.steel_smart_fluid_pipe": "Steel Smart Fluid Pipe", - "block.createindustry.steel_truss": "Steel Truss", - "block.createindustry.sulfur": "Sulfur", - "block.createindustry.surface_scanner": "Surface Scanner", - "block.createindustry.turbine_engine": "Turbine Engine", - "block.createindustry.turbine_engine_back": "Turbine Engine Back", - "block.createindustry.white_concrete": "White Concrete", - "block.createindustry.white_concrete_slab": "White Concrete Slab", - "block.createindustry.white_concrete_stairs": "White Concrete Stairs", - "block.createindustry.white_concrete_wall": "White Concrete Wall", - "block.createindustry.yellow_concrete": "Yellow Concrete", - "block.createindustry.yellow_concrete_slab": "Yellow Concrete Slab", - "block.createindustry.yellow_concrete_stairs": "Yellow Concrete Stairs", - "block.createindustry.yellow_concrete_wall": "Yellow Concrete Wall", - - "entity.createindustry.blue_spark": "Blue Spark", - "entity.createindustry.copper_grenade": "Copper Grenade", - "entity.createindustry.green_spark": "Green Spark", - "entity.createindustry.napalm_bomb_entity": "Napalm Bomb Entity", - "entity.createindustry.spark": "Spark", - "entity.createindustry.thermite_grenade": "Thermite Grenade", - "entity.createindustry.zin_grenade": "Zin Grenade", - - "fluid.createindustry.air": "Air", - "fluid.createindustry.butane": "Butane", - "fluid.createindustry.carbon_dioxide": "Carbon Dioxide", - "fluid.createindustry.cooling_fluid": "Cooling Fluid", - "fluid.createindustry.creosote": "Creosote", - "fluid.createindustry.crude_oil_fluid": "Crude Oil", - "fluid.createindustry.diesel": "Diesel", - "fluid.createindustry.ethylene": "Ethylene", - "fluid.createindustry.gasoline": "Gasoline", - "fluid.createindustry.heavy_oil": "Heavy Oil", - "fluid.createindustry.kerosene": "Kerosene", - "fluid.createindustry.liquid_asphalt": "Liquid Asphalt", - "fluid.createindustry.liquid_concrete": "Liquid Concrete", - "fluid.createindustry.liquid_plastic": "Liquid Plastic", - "fluid.createindustry.lpg": "LPG", - "fluid.createindustry.lubrication_oil": "Lubrication Oil", - "fluid.createindustry.molten_slag": "Molten Slag", - "fluid.createindustry.molten_steel": "Molten Steel", - "fluid.createindustry.napalm": "Napalm", - "fluid.createindustry.naphtha": "Naphtha", - "fluid.createindustry.propane": "Propane", - "fluid.createindustry.propylene": "Propylene", - - "item.createindustry.aluminum_ingot": "Aluminum Ingot", - "item.createindustry.bitumen": "Bitumen", - "item.createindustry.blasting_mixture": "Blasting Mixture", - "item.createindustry.block_mold": "Block Mold", - "item.createindustry.cast_iron_ingot": "Cast Iron Ingot", - "item.createindustry.coal_coke": "Coal Coke", - "item.createindustry.coal_coke_dust": "Coal Coke Dust", - "item.createindustry.concrete_mixture": "Concrete Mixture", - "item.createindustry.cooling_fluid_bucket": "Cooling Fluid Bucket", - "item.createindustry.copper_grenade": "Copper Grenade", - "item.createindustry.creosote_bucket": "Creosote Bucket", - "item.createindustry.crude_oil_fluid_bucket": "Crude Oil Fluid Bucket", - "item.createindustry.diesel_bucket": "Diesel Bucket", - "item.createindustry.engine_base": "Engine Base", - "item.createindustry.engine_chamber": "Engine Chamber", - "item.createindustry.fireclay_ball": "Fireclay Ball", - "item.createindustry.fireproof_brick": "Fireproof Brick", - "item.createindustry.gasoline_bucket": "Gasoline Bucket", - "item.createindustry.heavy_oil_bucket": "Heavy Oil Bucket", - "item.createindustry.heavy_plate": "Heavy Plate", - "item.createindustry.ingot_mold": "Ingot Mold", - "item.createindustry.kerosene_bucket": "Kerosene Bucket", - "item.createindustry.limesand": "Limesand", - "item.createindustry.liquid_asphalt_bucket": "Liquid Asphalt Bucket", - "item.createindustry.liquid_concrete_bucket": "Liquid Concrete Bucket", - "item.createindustry.liquid_plastic_bucket": "Liquid Plastic Bucket", - "item.createindustry.lubrication_oil_bucket": "Lubrication Oil Bucket", - "item.createindustry.molten_slag_bucket": "Molten Slag Bucket", - "item.createindustry.molten_steel_bucket": "Molten Steel Bucket", - "item.createindustry.napalm_bucket": "Napalm Bucket", - "item.createindustry.naphtha_bucket": "Naphtha Bucket", - "item.createindustry.nitrate_dust": "Nitrate Dust", - "item.createindustry.plastic_sheet": "Plastic Sheet", - "item.createindustry.quad_potato_cannon": "Quad Potato Cannon", - "item.createindustry.rebar": "Rebar", - "item.createindustry.screw": "Screw", - "item.createindustry.screwdriver": "Screwdriver", - "item.createindustry.slag": "Slag", - "item.createindustry.spark_plug": "Spark Plug", - "item.createindustry.steel_ingot": "Steel Ingot", - "item.createindustry.steel_mechanism": "Steel Mechanism", - "item.createindustry.sulfur_dust": "Sulfur Dust", - "item.createindustry.thermite_grenade": "Thermite Grenade", - "item.createindustry.thermite_powder": "Thermite Powder", - "item.createindustry.turbine_blade": "Turbine Blade", - "item.createindustry.unfinished_gasoline_engine": "Unfinished Gasoline Engine", - "item.createindustry.unfinished_lpg_engine": "Unfinished Lpg Engine", - "item.createindustry.unfinished_steel_mechanism": "Unfinished Steel Mechanism", - "item.createindustry.unfinished_turbine_engine": "Unfinished Turbine Engine", - "item.createindustry.unprocessed_heavy_plate": "Unprocessed Heavy Plate", - "item.createindustry.zinc_grenade": "Zinc Grenade", - - - "_": "->------------------------] UI & Messages [------------------------<-", - - "itemGroup.createindustry.base": "Create: The Factory Must Grow", - "itemGroup.createindustry.building": "Create: TFMG Building Blocks", - - "create.goggles.misc.number": "%1$s", - "create.goggles.misc.percent_symbol": "%", - "create.goggles.misc.dot_one": ".", - "create.goggles.misc.dot_two": "..", - "create.goggles.misc.dot_three": "...", - "create.goggles.misc.storage_info": "Storage Info:", - "create.goggles.fluid_in_tank": "Tank Contents:", - "create.goggles.surface_scanner.no_rotation": "Machine Unpowered", - "create.goggles.surface_scanner.no_deposit": "No Deposit Found", - "create.goggles.surface_scanner.deposit_found": "Deposit Located!", - "create.goggles.surface_scanner.distance": "Distance: %1$s Blocks", - "create.goggles.surface_scanner.scanning_surface": "Scanning The Surface...", - "create.goggles.distillation_tower.status": "Distillation Tower Info:", - "create.goggles.distillation_tower.tank_not_found": "Steel Fluid Tank Not Found", - "create.goggles.distillation_tower.not_tall_enough": "The Fluid Tank is Too Short", - "create.goggles.distillation_tower.level": "Distillation Tower Level: %1$s", - "create.goggles.distillation_tower.found_outputs": "Number of Outputs: %1$s", - "create.goggles.distillation_tower.no_outputs": "No Output Blocks Found", - "create.goggles.blast_furnace.stats": "Blast Furnace:", - - "create.distillation_tower.size": "Size", - "create.distillation_tower.heat": "Heat", - - "create.goggles.blast_furnace.fuel_amount": "Fuel Amount: %1$s", - "create.goggles.blast_furnace.item_count": "Item Count: %1$s", - "create.goggles.blast_furnace.height": "Height: %1$s", - "create.goggles.blast_furnace.nothing_lol": "", - "create.goggles.blast_furnace.status.off": "Status: Idle", - "create.goggles.blast_furnace.status.running": "Status: Running", - "create.goggles.blast_furnace.diameter.one": "Diameter: 1", - "create.goggles.blast_furnace.diameter.two": "Diameter: 2", - "create.goggles.blast_furnace.invalid": "Blast Furnace Invalid", - "create.goggles.coke_oven.status": "Coke Oven:", - "create.goggles.coke_oven.fluid_amount_output": "Internal Tank Contents: %1$s mb", - "create.goggles.coke_oven.fluid_amount_exhaust": "Carbon Dioxide: %1$s mb", - "create.goggles.coke_oven.item_count": "Internal Storage Item Count: %1$s", - "create.goggles.coke_oven.invalid": "Coke Oven Invalid", - "create.goggles.coke_oven.tank_full": "An Internal Tank is Full", - "create.goggles.coke_oven.progress": "Progress: %1$s", - "create.goggles.engine_stats": "Engine Stats:", - "create.goggles.engine_exhaust_stats": "Engine Exhaust Stats:", - "create.goggles.fuel_container": "Fluid Storage", - "create.goggles.engine.backpartmissing": "Back Part Missing:", - "create.goggles.engine_redstone_input": "Speed:", - "create.goggles.engine.efficiency": "Efficiency:", - - "create.tooltip.engine_analog_strength": "%1$s/15", - - "create.goggles.get_engine_efficiency": "%1$s", - "create.goggles.engine.stress": "%1$ssu", - "create.goggles.diesel_engine.info": "Diesel Engine:", - "create.goggles.pumpjack_info": "Pumpjack Info:", - "create.goggles.pumpjack.part_missing": "Hammer or Crank Missing", - "create.goggles.pumpjack.wrong_rotation1": "The Pumpjack Base is oriented incorrectly, the red marker must", - "create.goggles.pumpjack.wrong_rotation2": "face away from the Pumpjack Hammer Holder", - "create.goggles.pumpjack_fluid_storage": "Fluid Tank Info:", - - "create.pumpjack_deposit_amount": "%1$s Buckets", - - "create.goggles.pumpjack.deposit_info": "Deposit Info:", - "create.goggles.zero": "No Deposit Found", - "create.goggles.pumpjack.fluid_amount": "Fluid Amount:", - "create.goggles.machine_input.info": "Machine Input Info", - "create.goggles.machine_input.no_rot": "No Rotation Provided!", - "create.goggles.machine_input.power_level": "Power Level: ", - - "create.recipe.distillation": "Distillation", - "create.recipe.advanced_distillation": "Advanced Distillation", - "create.recipe.industrial_blasting": "Industrial Blasting", - "create.recipe.casting": "Casting", - "create.recipe.coking": "Coking", - - "createindustry.subtitle.engine_sounds": "Engine Sounds", - "createindustry.subtitle.diesel_engine_sounds": "Diesel Engine Sounds", - - - "_": "->------------------------] Ponders [------------------------<-", - - "createindustry.ponder.small_engines.text_1": "To create a small engine, place the front and back parts adjacent to eachother", - "createindustry.ponder.small_engines.text_2": "Fuel is inputted into the front part, and exhaust must be removed from the back part using pipes and an exhaust block", - "createindustry.ponder.small_engines.text_3": "Applying a redstone signal to the front part starts the engine", - "createindustry.ponder.small_engines.text_4": "Small engines include LPG, kerosene and gasoline engines", - "createindustry.ponder.diesel_engine.text_1": "Diesel Engines are assembled by placing a shaft infront of a Diesel Engine block", - "createindustry.ponder.diesel_engine.text_2": "The engine produces exhaust gas which has to be removed with pipes and an exhaust block", - "createindustry.ponder.diesel_engine.text_3": "Air is needed for the engine to run, so an Air Intake is required", - "createindustry.ponder.diesel_engine_expansion.text_1": "Diesel Engine Expansions can give a Diesel Engine two new input slots, for lubrication and radiator fluids", - "createindustry.ponder.surface_scanner.text_1": "The Surface Scanner is used to locate crude oil deposits", - "createindustry.ponder.surface_scanner.text_2": "Providing the machine with rotational power makes it scan for the nearest deposit", - "createindustry.ponder.surface_scanner.text_3": "If a deposit is found, the compass will point towards its location", - "createindustry.ponder.pumpjack.text_1": "To start extracting Oil, you must first build a pipeline on top of a deposit using Industrial Pipes", - "createindustry.ponder.pumpjack.text_2": "Then, construct a Pumpjack on top of the pipeline by first placing down a Pumpjack Base...", - "createindustry.ponder.pumpjack.text_3": "Placing the Pumpjack Hammer behind it...", - "createindustry.ponder.pumpjack.text_4": "Next step is building the Connector And the Head of the Pumpjack above the crank and the base", - "createindustry.ponder.pumpjack.text_5": "Now they need to be connected with Pumpjack Pammer Parts, keep in mind that superglue is needed to finish the structure", - "createindustry.ponder.pumpjack.text_6": "And finally, placing the Machine Input with a Pumpjack Crank above it, as shown in the scene", - "createindustry.ponder.distillation_tower.text_1": "A sufficiently large Steel Fluid Tank can be turned into a Distillation Tower", - "createindustry.ponder.distillation_tower.text_2": "The tower is assembled by first placing a Steel Distillation Tower Controller next to the tank...", - "createindustry.ponder.distillation_tower.text_3": "And placing up to 6 Distillation Tower Outputs, all connected with Industrial Pipes", - "createindustry.ponder.distillation_tower.text_4": "Blaze Burners are required to run the Distillation Tower. The dial displays current power levels", - "createindustry.ponder.distillation_tower.text_5": "To input Crude Oil, it must be pumped into the controller block", - "createindustry.ponder.distillation_tower.text_6": "Each output block provides one of the Oil byproducts", - "createindustry.ponder.distillation_tower.text_7": "LPG", - "createindustry.ponder.distillation_tower.text_8": "Gasoline", - "createindustry.ponder.distillation_tower.text_9": "Naphtha", - "createindustry.ponder.distillation_tower.text_10": "Kerosene", - "createindustry.ponder.distillation_tower.text_11": "Diesel", - "createindustry.ponder.distillation_tower.text_12": "Heavy Oil", - "createindustry.ponder.blast_furnace.text_1": "The base of the Blast Furnace is a Blast Furnace Output block", - "createindustry.ponder.blast_furnace.text_2": "To assemble a Blast Furnace, construct a chimney using Fireproof Bricks as shown in the scene", - "createindustry.ponder.blast_furnace.text_3": "The bottom half of the chimney requires to be reinforced", - "createindustry.ponder.blast_furnace.text_4": "Fuel and other items are inserted through the opening at the top", - "createindustry.ponder.coke_oven.text_1": "The Coke Oven is built by placing Coke Oven blocks as shown in the scene, and clicking its side with a wrench", - "createindustry.ponder.coke_oven.text_2": "The process of coking is slow, so it is more efficient to have long arrays of ovens working simultaneously", - "createindustry.ponder.coke_oven.text_3": "Coal can be inputted from any side", - "createindustry.ponder.coke_oven.text_4": "While running, the oven produces Creosote and CO2 which have to be pumped out for it to function", - "createindustry.ponder.coke_oven.text_5": "Once done, Coal Coke will drop out of the opening", - "createindustry.ponder.casting.text_1": "Casting is the process of pouring liquid metal into a Casting Basin using a Casting Spout", - "createindustry.ponder.casting.text_2": "The Casting Basin, obviously, requires a mold to function", - "createindustry.ponder.radial_engines.text_1": "Radial Engines are a special Type of Engine that doesn't require an exhaust block and has a shaft from both sides", - "createindustry.ponder.radial_engines.text_2": "Clicking the Engine from one of its sides will spawn an input slot that can accept fuel and redstone signals", - "createindustry.ponder.radial_engines.text_3": "Regular Radial Engines uses gasoline as fuel", - "createindustry.ponder.radial_engines.text_4": "Engine will start when redstone signal is applied to the input slot or the block itself", - "createindustry.ponder.radial_engines.text_5": "The second variant of a radial is The Large Radial Engine which uses kerosene as fuel", - - "createindustry.ponder.distillation_tower.header": "Distillation Tower Setup", - - "createindustry.ponder.pumpjack.header": "Building Pumpjacks", - - "createindustry.ponder.surface_scanner.header": "Locating Oil", - - "createindustry.ponder.diesel_engine.header": "Building a Diesel Engine", - - "createindustry.ponder.diesel_engine_expansion.header": "Expanding Diesel Engines", - - "createindustry.ponder.small_engines.header": "Building Small Engines", - - "createindustry.ponder.radial_engines.header": "Using Radial Engines", - - "createindustry.ponder.coke_oven.header": "Building a Coke Oven", - - "createindustry.ponder.blast_furnace.header": "Building a Blast Furnace", - - "createindustry.ponder.casting.header": "Casting Metal", - "createindustry.ponder.tag.oil": "Oil Related Machines", - "createindustry.ponder.tag.metallurgy": "Metal Working Machines", - "createindustry.ponder.tag.oil.description": "Machines that extract, process or use Crude Oil and its byproducts", - "createindustry.ponder.tag.metallurgy.description": "Machines that produce, process or use Metal and raw materials as such", - - "_": "Thank you for translating Create: The Factory Must Grow!" - -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/caution_block.json b/src/generated/resources/assets/createindustry/models/block/caution_block.json deleted file mode 100644 index 09cb028a..00000000 --- a/src/generated/resources/assets/createindustry/models/block/caution_block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cube_all", - "textures": { - "all": "createindustry:block/caution_block" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/crude_oil_fluid.json b/src/generated/resources/assets/createindustry/models/block/crude_oil_fluid.json deleted file mode 100644 index 958b6d90..00000000 --- a/src/generated/resources/assets/createindustry/models/block/crude_oil_fluid.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "textures": { - "particle": "createindustry:fluid/crude_oil_still" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/block/red_caution_block.json b/src/generated/resources/assets/createindustry/models/block/red_caution_block.json index fca513d3..7e9e4286 100644 --- a/src/generated/resources/assets/createindustry/models/block/red_caution_block.json +++ b/src/generated/resources/assets/createindustry/models/block/red_caution_block.json @@ -1,6 +1,7 @@ { - "parent": "minecraft:block/cube_all", + "parent": "createindustry:block/caution_block", "textures": { - "all": "createindustry:block/red_caution_block" + "0": "createindustry:block/caution_block/red", + "particle": "createindustry:block/caution_block/red" } } \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cast_iron_distillation_controller.json b/src/generated/resources/assets/createindustry/models/item/cast_iron_distillation_controller.json deleted file mode 100644 index ddbb7ef1..00000000 --- a/src/generated/resources/assets/createindustry/models/item/cast_iron_distillation_controller.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "createindustry:block/cast_iron_distillation_controller/block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/cast_iron_distillation_output.json b/src/generated/resources/assets/createindustry/models/item/cast_iron_distillation_output.json deleted file mode 100644 index 9d4e7ae1..00000000 --- a/src/generated/resources/assets/createindustry/models/item/cast_iron_distillation_output.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "createindustry:block/cast_iron_distillation_output/block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/caution_block.json b/src/generated/resources/assets/createindustry/models/item/caution_block.json deleted file mode 100644 index 7bc613b1..00000000 --- a/src/generated/resources/assets/createindustry/models/item/caution_block.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "createindustry:block/caution_block" -} \ No newline at end of file diff --git a/src/generated/resources/assets/createindustry/models/item/crude_oil_fluid_bucket.json b/src/generated/resources/assets/createindustry/models/item/crude_oil_fluid_bucket.json deleted file mode 100644 index 87a299dd..00000000 --- a/src/generated/resources/assets/createindustry/models/item/crude_oil_fluid_bucket.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "createindustry:item/crude_oil_fluid_bucket" - } -} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/casing.json b/src/generated/resources/data/create/tags/blocks/casing.json index 7b59573a..2c4f9517 100644 --- a/src/generated/resources/data/create/tags/blocks/casing.json +++ b/src/generated/resources/data/create/tags/blocks/casing.json @@ -1,6 +1,7 @@ { "values": [ "createindustry:steel_casing", - "createindustry:heavy_machinery_casing" + "createindustry:heavy_machinery_casing", + "createindustry:electric_casing" ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/fan_transparent.json b/src/generated/resources/data/create/tags/blocks/fan_transparent.json index 044fe203..841f4b88 100644 --- a/src/generated/resources/data/create/tags/blocks/fan_transparent.json +++ b/src/generated/resources/data/create/tags/blocks/fan_transparent.json @@ -1,6 +1,10 @@ { "values": [ + "createindustry:copycat_cable_base", "createindustry:steel_bars", - "createindustry:aluminum_bars" + "createindustry:aluminum_bars", + "createindustry:cast_iron_bars", + "createindustry:lead_bars", + "createindustry:nickel_bars" ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/safe_nbt.json b/src/generated/resources/data/create/tags/blocks/safe_nbt.json index ef74dea2..07b4e126 100644 --- a/src/generated/resources/data/create/tags/blocks/safe_nbt.json +++ b/src/generated/resources/data/create/tags/blocks/safe_nbt.json @@ -11,6 +11,7 @@ "createindustry:large_radial_engine", "createindustry:radial_engine_input", "createindustry:radial_engine_input_ponder", - "createindustry:compact_engine" + "createindustry:compact_engine", + "createindustry:low_grade_fuel_engine" ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/wrench_pickup.json b/src/generated/resources/data/create/tags/blocks/wrench_pickup.json index 044fe203..dc823724 100644 --- a/src/generated/resources/data/create/tags/blocks/wrench_pickup.json +++ b/src/generated/resources/data/create/tags/blocks/wrench_pickup.json @@ -1,6 +1,9 @@ { "values": [ "createindustry:steel_bars", - "createindustry:aluminum_bars" + "createindustry:aluminum_bars", + "createindustry:cast_iron_bars", + "createindustry:lead_bars", + "createindustry:nickel_bars" ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/items/casing.json b/src/generated/resources/data/create/tags/items/casing.json index 7b59573a..2c4f9517 100644 --- a/src/generated/resources/data/create/tags/items/casing.json +++ b/src/generated/resources/data/create/tags/items/casing.json @@ -1,6 +1,7 @@ { "values": [ "createindustry:steel_casing", - "createindustry:heavy_machinery_casing" + "createindustry:heavy_machinery_casing", + "createindustry:electric_casing" ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/items/create_ingots.json b/src/generated/resources/data/create/tags/items/create_ingots.json index c04ee2da..7d9a34af 100644 --- a/src/generated/resources/data/create/tags/items/create_ingots.json +++ b/src/generated/resources/data/create/tags/items/create_ingots.json @@ -3,6 +3,9 @@ "createindustry:steel_ingot", "createindustry:cast_iron_ingot", "createindustry:aluminum_ingot", - "createindustry:plastic_sheet" + "createindustry:plastic_sheet", + "createindustry:lead_ingot", + "createindustry:nickel_ingot", + "createindustry:lithium_ingot" ] } \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_bars_from_ingots_aluminum_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_bars_from_ingots_aluminum_stonecutting.json deleted file mode 100644 index 18ab5296..00000000 --- a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_bars_from_ingots_aluminum_stonecutting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_ingots_aluminum": { - "conditions": { - "items": [ - { - "tag": "forge:ingots/aluminum" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "createindustry:aluminum_bars_from_ingots_aluminum_stonecutting" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_ingots_aluminum", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "createindustry:aluminum_bars_from_ingots_aluminum_stonecutting" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_ladder_from_ingots_aluminum_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_ladder_from_ingots_aluminum_stonecutting.json deleted file mode 100644 index 994b1932..00000000 --- a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_ladder_from_ingots_aluminum_stonecutting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_ingots_aluminum": { - "conditions": { - "items": [ - { - "tag": "forge:ingots/aluminum" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "createindustry:aluminum_ladder_from_ingots_aluminum_stonecutting" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_ingots_aluminum", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "createindustry:aluminum_ladder_from_ingots_aluminum_stonecutting" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json deleted file mode 100644 index f8dd8e34..00000000 --- a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/aluminum_scaffolding_from_ingots_aluminum_stonecutting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_ingots_aluminum": { - "conditions": { - "items": [ - { - "tag": "forge:ingots/aluminum" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "createindustry:aluminum_scaffolding_from_ingots_aluminum_stonecutting" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_ingots_aluminum", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "createindustry:aluminum_scaffolding_from_ingots_aluminum_stonecutting" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_bars_from_ingots_steel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_bars_from_ingots_steel_stonecutting.json deleted file mode 100644 index 3c547ec5..00000000 --- a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_bars_from_ingots_steel_stonecutting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_ingots_steel": { - "conditions": { - "items": [ - { - "tag": "forge:ingots/steel" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "createindustry:steel_bars_from_ingots_steel_stonecutting" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_ingots_steel", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "createindustry:steel_bars_from_ingots_steel_stonecutting" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_ladder_from_ingots_steel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_ladder_from_ingots_steel_stonecutting.json deleted file mode 100644 index 87fb97ab..00000000 --- a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_ladder_from_ingots_steel_stonecutting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_ingots_steel": { - "conditions": { - "items": [ - { - "tag": "forge:ingots/steel" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "createindustry:steel_ladder_from_ingots_steel_stonecutting" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_ingots_steel", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "createindustry:steel_ladder_from_ingots_steel_stonecutting" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_scaffolding_from_ingots_steel_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_scaffolding_from_ingots_steel_stonecutting.json deleted file mode 100644 index 7ebbe56c..00000000 --- a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.base/steel_scaffolding_from_ingots_steel_stonecutting.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "parent": "minecraft:recipes/root", - "criteria": { - "has_ingots_steel": { - "conditions": { - "items": [ - { - "tag": "forge:ingots/steel" - } - ] - }, - "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "createindustry:steel_scaffolding_from_ingots_steel_stonecutting" - }, - "trigger": "minecraft:recipe_unlocked" - } - }, - "requirements": [ - [ - "has_ingots_steel", - "has_the_recipe" - ] - ], - "rewards": { - "recipes": [ - "createindustry:steel_scaffolding_from_ingots_steel_stonecutting" - ] - } -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_distillation_controller.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_distillation_controller.json deleted file mode 100644 index e5656280..00000000 --- a/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_distillation_controller.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "createindustry:cast_iron_distillation_controller" - } - ], - "rolls": 1.0 - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_distillation_output.json b/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_distillation_output.json deleted file mode 100644 index 47622180..00000000 --- a/src/generated/resources/data/createindustry/loot_tables/blocks/cast_iron_distillation_output.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "createindustry:cast_iron_distillation_output" - } - ], - "rolls": 1.0 - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/caution_block.json deleted file mode 100644 index db368182..00000000 --- a/src/generated/resources/data/createindustry/loot_tables/blocks/caution_block.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "createindustry:caution_block" - } - ], - "rolls": 1.0 - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/loot_tables/blocks/red_caution_block.json b/src/generated/resources/data/createindustry/loot_tables/blocks/red_caution_block.json index 22b7ea54..38fe9914 100644 --- a/src/generated/resources/data/createindustry/loot_tables/blocks/red_caution_block.json +++ b/src/generated/resources/data/createindustry/loot_tables/blocks/red_caution_block.json @@ -11,7 +11,7 @@ "entries": [ { "type": "minecraft:item", - "name": "createindustry:red_caution_block" + "name": "minecraft:air" } ], "rolls": 1.0 diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks.json index da0ed758..b976e425 100644 --- a/src/generated/resources/data/forge/tags/blocks/storage_blocks.json +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks.json @@ -4,6 +4,9 @@ "createindustry:cast_iron_block", "createindustry:aluminum_block", "createindustry:plastic_block", + "createindustry:lead_block", + "createindustry:nickel_block", + "createindustry:lithium_block", "createindustry:coal_coke_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/buckets/gasoline.json b/src/generated/resources/data/forge/tags/items/buckets/gasoline.json index 12c33b57..f2ebeb95 100644 --- a/src/generated/resources/data/forge/tags/items/buckets/gasoline.json +++ b/src/generated/resources/data/forge/tags/items/buckets/gasoline.json @@ -1,6 +1,5 @@ { "values": [ - "createindustry:crude_oil_fluid_bucket", "createindustry:gasoline_bucket" ] } \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks.json b/src/generated/resources/data/forge/tags/items/storage_blocks.json index da0ed758..b976e425 100644 --- a/src/generated/resources/data/forge/tags/items/storage_blocks.json +++ b/src/generated/resources/data/forge/tags/items/storage_blocks.json @@ -4,6 +4,9 @@ "createindustry:cast_iron_block", "createindustry:aluminum_block", "createindustry:plastic_block", + "createindustry:lead_block", + "createindustry:nickel_block", + "createindustry:lithium_block", "createindustry:coal_coke_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/azalea_root_replaceable.json b/src/generated/resources/data/minecraft/tags/blocks/azalea_root_replaceable.json index da465a7a..1bd2daac 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/azalea_root_replaceable.json +++ b/src/generated/resources/data/minecraft/tags/blocks/azalea_root_replaceable.json @@ -1,5 +1,6 @@ { "values": [ - "createindustry:bauxite" + "createindustry:bauxite", + "createindustry:galena" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json b/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json index 13498519..5c084d1c 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json +++ b/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json @@ -2,6 +2,9 @@ "values": [ "createindustry:steel_block", "createindustry:cast_iron_block", - "createindustry:aluminum_block" + "createindustry:aluminum_block", + "createindustry:lead_block", + "createindustry:nickel_block", + "createindustry:lithium_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/climbable.json b/src/generated/resources/data/minecraft/tags/blocks/climbable.json index 5ea52493..a0c1dc66 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/climbable.json +++ b/src/generated/resources/data/minecraft/tags/blocks/climbable.json @@ -3,6 +3,9 @@ "createindustry:steel_scaffolding", "createindustry:aluminum_scaffolding", "createindustry:steel_ladder", - "createindustry:aluminum_ladder" + "createindustry:aluminum_ladder", + "createindustry:cast_iron_ladder", + "createindustry:lead_ladder", + "createindustry:nickel_ladder" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/dripstone_replaceable_blocks.json b/src/generated/resources/data/minecraft/tags/blocks/dripstone_replaceable_blocks.json index da465a7a..1bd2daac 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/dripstone_replaceable_blocks.json +++ b/src/generated/resources/data/minecraft/tags/blocks/dripstone_replaceable_blocks.json @@ -1,5 +1,6 @@ { "values": [ - "createindustry:bauxite" + "createindustry:bauxite", + "createindustry:galena" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/lush_ground_replaceable.json b/src/generated/resources/data/minecraft/tags/blocks/lush_ground_replaceable.json index da465a7a..1bd2daac 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/lush_ground_replaceable.json +++ b/src/generated/resources/data/minecraft/tags/blocks/lush_ground_replaceable.json @@ -1,5 +1,6 @@ { "values": [ - "createindustry:bauxite" + "createindustry:bauxite", + "createindustry:galena" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json index d93d57ff..1db634b1 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -1,14 +1,37 @@ { "values": [ + "createindustry:steel_gearbox", "createindustry:steel_casing", "createindustry:heavy_machinery_casing", + "createindustry:electric_casing", + "createindustry:copycat_cable_block", + "createindustry:formwork_block", + "createindustry:rebar_formwork_block", + "createindustry:machine_input", + "createindustry:steel_cogwheel", + "createindustry:large_steel_cogwheel", + "createindustry:aluminum_cogwheel", + "createindustry:large_aluminum_cogwheel", "createindustry:hardened_planks", "createindustry:steel_flywheel", "createindustry:aluminum_flywheel", "createindustry:cast_iron_flywheel", - "createindustry:formwork_block", - "createindustry:rebar_formwork_block", - "createindustry:machine_input", + "createindustry:lead_flywheel", + "createindustry:nickel_flywheel", + "createindustry:steel_encased_shaft", + "createindustry:heavy_casing_encased_shaft", + "createindustry:steel_encased_cogwheel", + "createindustry:heavy_casing_encased_cogwheel", + "createindustry:steel_encased_large_cogwheel", + "createindustry:heavy_casing_encased_large_cogwheel", + "createindustry:steel_encased_steel_cogwheel", + "createindustry:heavy_casing_encased_steel_cogwheel", + "createindustry:steel_encased_large_steel_cogwheel", + "createindustry:heavy_casing_encased_large_steel_cogwheel", + "createindustry:steel_encased_aluminum_cogwheel", + "createindustry:heavy_casing_encased_aluminum_cogwheel", + "createindustry:steel_encased_large_aluminum_cogwheel", + "createindustry:heavy_casing_encased_large_aluminum_cogwheel", "createindustry:copper_encased_steel_pipe", "createindustry:copper_encased_cast_iron_pipe", "createindustry:copper_encased_brass_pipe", diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 2e1ba41e..c63f7a18 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -1,36 +1,64 @@ { "values": [ + "createindustry:steel_block", + "createindustry:cast_iron_block", + "createindustry:aluminum_block", + "createindustry:plastic_block", + "createindustry:lead_block", + "createindustry:nickel_block", + "createindustry:lithium_block", + "createindustry:coal_coke_block", + "createindustry:heavy_casing_door", + "createindustry:steel_door", + "createindustry:steel_gearbox", "createindustry:napalm_bomb", - "createindustry:steel_frame", "createindustry:fossilstone", "createindustry:oil_deposit", "createindustry:steel_casing", "createindustry:heavy_machinery_casing", - "createindustry:steel_truss", - "createindustry:aluminum_truss", - "createindustry:caution_block", - "createindustry:red_caution_block", - "createindustry:asphalt", + "createindustry:electric_casing", + "createindustry:lead_ore", + "createindustry:deepslate_lead_ore", + "createindustry:nickel_ore", + "createindustry:deepslate_nickel_ore", + "createindustry:lithium_ore", + "createindustry:deepslate_lithium_ore", "createindustry:sulfur", "createindustry:lignite", - "createindustry:steel_scaffolding", - "createindustry:aluminum_scaffolding", - "createindustry:steel_bars", - "createindustry:aluminum_bars", - "createindustry:steel_ladder", - "createindustry:aluminum_ladder", - "createindustry:steel_flywheel", - "createindustry:aluminum_flywheel", - "createindustry:cast_iron_flywheel", - "createindustry:factory_floor_stairs", - "createindustry:factory_floor", - "createindustry:factory_floor_slab", + "createindustry:light_bulb", + "createindustry:rgb_light_bulb", + "createindustry:copycat_cable_block", + "createindustry:copycat_cable_base", + "createindustry:brass_cable_hub", + "createindustry:copper_cable_hub", + "createindustry:steel_cable_hub", + "createindustry:aluminum_cable_hub", + "createindustry:steel_casing_cable_hub", + "createindustry:heavy_cable_hub", + "createindustry:cable_tube", + "createindustry:neon_tube", + "createindustry:diagonal_cable_block", + "createindustry:firebox", + "createindustry:accumulator", + "createindustry:capacitor", + "createindustry:converter", + "createindustry:galvanic_cell", + "createindustry:polarizer", + "createindustry:voltmeter", + "createindustry:energy_meter", + "createindustry:resistor", + "createindustry:copper_coil", + "createindustry:electric_motor", + "createindustry:rotor", + "createindustry:stator", + "createindustry:generator", + "createindustry:cable_connector", + "createindustry:creative_generator", + "createindustry:voltage_cube", "createindustry:exhaust", "createindustry:flarestack", "createindustry:surface_scanner", "createindustry:steel_fluid_tank", - "createindustry:cast_iron_distillation_output", - "createindustry:cast_iron_distillation_controller", "createindustry:steel_distillation_output", "createindustry:steel_distillation_controller", "createindustry:industrial_pipe", @@ -51,13 +79,10 @@ "createindustry:casting_spout", "createindustry:coke_oven", "createindustry:air_intake", - "createindustry:steel_block", - "createindustry:cast_iron_block", - "createindustry:aluminum_block", - "createindustry:plastic_block", - "createindustry:coal_coke_block", - "createindustry:heavy_casing_door", - "createindustry:steel_door", + "createindustry:steel_cogwheel", + "createindustry:large_steel_cogwheel", + "createindustry:aluminum_cogwheel", + "createindustry:large_aluminum_cogwheel", "createindustry:gasoline_engine", "createindustry:gasoline_engine_back", "createindustry:lpg_engine", @@ -71,36 +96,48 @@ "createindustry:radial_engine_input", "createindustry:radial_engine_input_ponder", "createindustry:compact_engine", - "createindustry:steel_pipe", - "createindustry:copper_encased_steel_pipe", - "createindustry:glass_steel_pipe", - "createindustry:steel_mechanical_pump", - "createindustry:steel_smart_fluid_pipe", - "createindustry:steel_fluid_valve", - "createindustry:cast_iron_pipe", - "createindustry:copper_encased_cast_iron_pipe", - "createindustry:glass_cast_iron_pipe", - "createindustry:cast_iron_mechanical_pump", - "createindustry:cast_iron_smart_fluid_pipe", - "createindustry:cast_iron_fluid_valve", - "createindustry:brass_pipe", - "createindustry:copper_encased_brass_pipe", - "createindustry:glass_brass_pipe", - "createindustry:brass_mechanical_pump", - "createindustry:brass_smart_fluid_pipe", - "createindustry:brass_fluid_valve", - "createindustry:plastic_pipe", - "createindustry:copper_encased_plastic_pipe", - "createindustry:glass_plastic_pipe", - "createindustry:plastic_mechanical_pump", - "createindustry:plastic_smart_fluid_pipe", - "createindustry:plastic_fluid_valve", - "createindustry:aluminum_pipe", - "createindustry:copper_encased_aluminum_pipe", - "createindustry:glass_aluminum_pipe", - "createindustry:aluminum_mechanical_pump", - "createindustry:aluminum_smart_fluid_pipe", - "createindustry:aluminum_fluid_valve", + "createindustry:low_grade_fuel_engine", + "createindustry:steel_truss", + "createindustry:aluminum_truss", + "createindustry:cast_iron_truss", + "createindustry:lead_truss", + "createindustry:nickel_truss", + "createindustry:copper_truss", + "createindustry:zinc_truss", + "createindustry:brass_truss", + "createindustry:steel_frame", + "createindustry:lead_frame", + "createindustry:copper_frame", + "createindustry:zinc_frame", + "createindustry:brass_frame", + "createindustry:aluminum_frame", + "createindustry:cast_iron_frame", + "createindustry:nickel_frame", + "createindustry:hardened_planks_slab", + "createindustry:lead_glass", + "createindustry:asphalt", + "createindustry:steel_scaffolding", + "createindustry:aluminum_scaffolding", + "createindustry:steel_bars", + "createindustry:aluminum_bars", + "createindustry:cast_iron_bars", + "createindustry:lead_bars", + "createindustry:nickel_bars", + "createindustry:steel_ladder", + "createindustry:aluminum_ladder", + "createindustry:cast_iron_ladder", + "createindustry:lead_ladder", + "createindustry:nickel_ladder", + "createindustry:steel_flywheel", + "createindustry:aluminum_flywheel", + "createindustry:cast_iron_flywheel", + "createindustry:lead_flywheel", + "createindustry:nickel_flywheel", + "createindustry:factory_floor_stairs", + "createindustry:factory_floor", + "createindustry:factory_floor_slab", + "createindustry:cinder_block", + "createindustry:cinderflour_block", "createindustry:black_concrete", "createindustry:black_concrete_wall", "createindustry:black_concrete_stairs", @@ -168,11 +205,70 @@ "createindustry:concrete_wall", "createindustry:concrete_stairs", "createindustry:concrete", + "createindustry:white_caution_block", + "createindustry:blue_caution_block", + "createindustry:light_blue_caution_block", + "createindustry:red_caution_block", + "createindustry:green_caution_block", + "createindustry:lime_caution_block", + "createindustry:pink_caution_block", + "createindustry:magenta_caution_block", + "createindustry:yellow_caution_block", + "createindustry:gray_caution_block", + "createindustry:light_gray_caution_block", + "createindustry:brown_caution_block", + "createindustry:cyan_caution_block", + "createindustry:purple_caution_block", + "createindustry:orange_caution_block", "createindustry:concrete_slab", "createindustry:rebar_concrete_wall", "createindustry:rebar_concrete_stairs", "createindustry:rebar_concrete", "createindustry:rebar_concrete_slab", + "createindustry:steel_encased_shaft", + "createindustry:heavy_casing_encased_shaft", + "createindustry:steel_encased_cogwheel", + "createindustry:heavy_casing_encased_cogwheel", + "createindustry:steel_encased_large_cogwheel", + "createindustry:heavy_casing_encased_large_cogwheel", + "createindustry:steel_encased_steel_cogwheel", + "createindustry:heavy_casing_encased_steel_cogwheel", + "createindustry:steel_encased_large_steel_cogwheel", + "createindustry:heavy_casing_encased_large_steel_cogwheel", + "createindustry:steel_encased_aluminum_cogwheel", + "createindustry:heavy_casing_encased_aluminum_cogwheel", + "createindustry:steel_encased_large_aluminum_cogwheel", + "createindustry:heavy_casing_encased_large_aluminum_cogwheel", + "createindustry:steel_pipe", + "createindustry:copper_encased_steel_pipe", + "createindustry:glass_steel_pipe", + "createindustry:steel_mechanical_pump", + "createindustry:steel_smart_fluid_pipe", + "createindustry:steel_fluid_valve", + "createindustry:cast_iron_pipe", + "createindustry:copper_encased_cast_iron_pipe", + "createindustry:glass_cast_iron_pipe", + "createindustry:cast_iron_mechanical_pump", + "createindustry:cast_iron_smart_fluid_pipe", + "createindustry:cast_iron_fluid_valve", + "createindustry:brass_pipe", + "createindustry:copper_encased_brass_pipe", + "createindustry:glass_brass_pipe", + "createindustry:brass_mechanical_pump", + "createindustry:brass_smart_fluid_pipe", + "createindustry:brass_fluid_valve", + "createindustry:plastic_pipe", + "createindustry:copper_encased_plastic_pipe", + "createindustry:glass_plastic_pipe", + "createindustry:plastic_mechanical_pump", + "createindustry:plastic_smart_fluid_pipe", + "createindustry:plastic_fluid_valve", + "createindustry:aluminum_pipe", + "createindustry:copper_encased_aluminum_pipe", + "createindustry:glass_aluminum_pipe", + "createindustry:aluminum_mechanical_pump", + "createindustry:aluminum_smart_fluid_pipe", + "createindustry:aluminum_fluid_valve", "createindustry:bauxite", "createindustry:cut_bauxite", "createindustry:cut_bauxite_stairs", @@ -191,6 +287,25 @@ "createindustry:small_bauxite_brick_slab", "createindustry:small_bauxite_brick_wall", "createindustry:layered_bauxite", - "createindustry:bauxite_pillar" + "createindustry:bauxite_pillar", + "createindustry:galena", + "createindustry:cut_galena", + "createindustry:cut_galena_stairs", + "createindustry:cut_galena_slab", + "createindustry:cut_galena_wall", + "createindustry:polished_cut_galena", + "createindustry:polished_cut_galena_stairs", + "createindustry:polished_cut_galena_slab", + "createindustry:polished_cut_galena_wall", + "createindustry:cut_galena_bricks", + "createindustry:cut_galena_brick_stairs", + "createindustry:cut_galena_brick_slab", + "createindustry:cut_galena_brick_wall", + "createindustry:small_galena_bricks", + "createindustry:small_galena_brick_stairs", + "createindustry:small_galena_brick_slab", + "createindustry:small_galena_brick_wall", + "createindustry:layered_galena", + "createindustry:galena_pillar" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/moss_replaceable.json b/src/generated/resources/data/minecraft/tags/blocks/moss_replaceable.json index da465a7a..1bd2daac 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/moss_replaceable.json +++ b/src/generated/resources/data/minecraft/tags/blocks/moss_replaceable.json @@ -1,5 +1,6 @@ { "values": [ - "createindustry:bauxite" + "createindustry:bauxite", + "createindustry:galena" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json index 518c2040..46bd05b7 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json +++ b/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -3,6 +3,9 @@ "createindustry:steel_block", "createindustry:cast_iron_block", "createindustry:aluminum_block", + "createindustry:lead_block", + "createindustry:nickel_block", + "createindustry:lithium_block", "createindustry:diesel_engine_expansion" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json index 3255de12..5684aa20 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json +++ b/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -1,10 +1,17 @@ { "values": [ + "createindustry:plastic_block", + "createindustry:coal_coke_block", + "createindustry:lead_ore", + "createindustry:deepslate_lead_ore", + "createindustry:nickel_ore", + "createindustry:deepslate_nickel_ore", + "createindustry:lithium_ore", + "createindustry:deepslate_lithium_ore", + "createindustry:hardened_planks_slab", "createindustry:factory_floor_stairs", "createindustry:factory_floor", "createindustry:factory_floor_slab", - "createindustry:plastic_block", - "createindustry:coal_coke_block", "createindustry:black_concrete", "createindustry:black_concrete_wall", "createindustry:black_concrete_stairs", @@ -72,6 +79,21 @@ "createindustry:concrete_wall", "createindustry:concrete_stairs", "createindustry:concrete", + "createindustry:white_caution_block", + "createindustry:blue_caution_block", + "createindustry:light_blue_caution_block", + "createindustry:red_caution_block", + "createindustry:green_caution_block", + "createindustry:lime_caution_block", + "createindustry:pink_caution_block", + "createindustry:magenta_caution_block", + "createindustry:yellow_caution_block", + "createindustry:gray_caution_block", + "createindustry:light_gray_caution_block", + "createindustry:brown_caution_block", + "createindustry:cyan_caution_block", + "createindustry:purple_caution_block", + "createindustry:orange_caution_block", "createindustry:concrete_slab", "createindustry:rebar_concrete_slab" ] diff --git a/src/generated/resources/data/minecraft/tags/blocks/slabs.json b/src/generated/resources/data/minecraft/tags/blocks/slabs.json index e130b027..3d5b1480 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/slabs.json +++ b/src/generated/resources/data/minecraft/tags/blocks/slabs.json @@ -3,6 +3,10 @@ "createindustry:cut_bauxite_slab", "createindustry:polished_cut_bauxite_slab", "createindustry:cut_bauxite_brick_slab", - "createindustry:small_bauxite_brick_slab" + "createindustry:small_bauxite_brick_slab", + "createindustry:cut_galena_slab", + "createindustry:polished_cut_galena_slab", + "createindustry:cut_galena_brick_slab", + "createindustry:small_galena_brick_slab" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/stairs.json b/src/generated/resources/data/minecraft/tags/blocks/stairs.json index 5fbca465..54889bb0 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/stairs.json +++ b/src/generated/resources/data/minecraft/tags/blocks/stairs.json @@ -22,6 +22,10 @@ "createindustry:cut_bauxite_stairs", "createindustry:polished_cut_bauxite_stairs", "createindustry:cut_bauxite_brick_stairs", - "createindustry:small_bauxite_brick_stairs" + "createindustry:small_bauxite_brick_stairs", + "createindustry:cut_galena_stairs", + "createindustry:polished_cut_galena_stairs", + "createindustry:cut_galena_brick_stairs", + "createindustry:small_galena_brick_stairs" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/walls.json b/src/generated/resources/data/minecraft/tags/blocks/walls.json index 35b464d0..18529983 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/walls.json +++ b/src/generated/resources/data/minecraft/tags/blocks/walls.json @@ -1,7 +1,7 @@ { "values": [ - "createindustry:factory_floor_slab", "createindustry:fireproof_brick_reinforcement", + "createindustry:factory_floor_slab", "createindustry:black_concrete_wall", "createindustry:black_concrete_slab", "createindustry:white_concrete_wall", @@ -41,6 +41,10 @@ "createindustry:cut_bauxite_wall", "createindustry:polished_cut_bauxite_wall", "createindustry:cut_bauxite_brick_wall", - "createindustry:small_bauxite_brick_wall" + "createindustry:small_bauxite_brick_wall", + "createindustry:cut_galena_wall", + "createindustry:polished_cut_galena_wall", + "createindustry:cut_galena_brick_wall", + "createindustry:small_galena_brick_wall" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/items/slabs.json b/src/generated/resources/data/minecraft/tags/items/slabs.json index e130b027..3d5b1480 100644 --- a/src/generated/resources/data/minecraft/tags/items/slabs.json +++ b/src/generated/resources/data/minecraft/tags/items/slabs.json @@ -3,6 +3,10 @@ "createindustry:cut_bauxite_slab", "createindustry:polished_cut_bauxite_slab", "createindustry:cut_bauxite_brick_slab", - "createindustry:small_bauxite_brick_slab" + "createindustry:small_bauxite_brick_slab", + "createindustry:cut_galena_slab", + "createindustry:polished_cut_galena_slab", + "createindustry:cut_galena_brick_slab", + "createindustry:small_galena_brick_slab" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/items/stairs.json b/src/generated/resources/data/minecraft/tags/items/stairs.json index dfad8adb..4bfbdcc2 100644 --- a/src/generated/resources/data/minecraft/tags/items/stairs.json +++ b/src/generated/resources/data/minecraft/tags/items/stairs.json @@ -3,6 +3,10 @@ "createindustry:cut_bauxite_stairs", "createindustry:polished_cut_bauxite_stairs", "createindustry:cut_bauxite_brick_stairs", - "createindustry:small_bauxite_brick_stairs" + "createindustry:small_bauxite_brick_stairs", + "createindustry:cut_galena_stairs", + "createindustry:polished_cut_galena_stairs", + "createindustry:cut_galena_brick_stairs", + "createindustry:small_galena_brick_stairs" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/items/walls.json b/src/generated/resources/data/minecraft/tags/items/walls.json index 1f230a14..29ce90be 100644 --- a/src/generated/resources/data/minecraft/tags/items/walls.json +++ b/src/generated/resources/data/minecraft/tags/items/walls.json @@ -3,6 +3,10 @@ "createindustry:cut_bauxite_wall", "createindustry:polished_cut_bauxite_wall", "createindustry:cut_bauxite_brick_wall", - "createindustry:small_bauxite_brick_wall" + "createindustry:small_bauxite_brick_wall", + "createindustry:cut_galena_wall", + "createindustry:polished_cut_galena_wall", + "createindustry:cut_galena_brick_wall", + "createindustry:small_galena_brick_wall" ] } \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/CreateTFMG.java b/src/main/java/com/drmangotea/createindustry/CreateTFMG.java index 9771c4b5..1592af5a 100644 --- a/src/main/java/com/drmangotea/createindustry/CreateTFMG.java +++ b/src/main/java/com/drmangotea/createindustry/CreateTFMG.java @@ -1,15 +1,22 @@ package com.drmangotea.createindustry; -import com.drmangotea.createindustry.base.TFMGContraptions; +import com.drmangotea.createindustry.registry.TFMGContraptions; import com.drmangotea.createindustry.base.TFMGLangPartials; import com.drmangotea.createindustry.config.TFMGConfigs; -import com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.fire.TFMGColoredFires; +import com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.fire.TFMGColoredFires; import com.drmangotea.createindustry.registry.*; import com.drmangotea.createindustry.worldgen.TFMGConfiguredFeatures; import com.drmangotea.createindustry.worldgen.TFMGFeatures; +import com.drmangotea.createindustry.worldgen.TFMGOreConfigEntries; import com.mojang.logging.LogUtils; +import com.simibubi.create.AllParticleTypes; +import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; import com.simibubi.create.foundation.data.CreateRegistrate; import com.simibubi.create.foundation.data.LangMerger; +import com.simibubi.create.foundation.item.ItemDescription; +import com.simibubi.create.foundation.item.KineticStats; +import com.simibubi.create.foundation.item.TooltipHelper; +import com.simibubi.create.foundation.item.TooltipModifier; import net.minecraft.client.renderer.ItemBlockRenderTypes; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Holder; @@ -31,6 +38,8 @@ import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.slf4j.Logger; +import static com.simibubi.create.content.fluids.tank.BoilerHeaters.registerHeater; + @Mod(CreateTFMG.MOD_ID) public class CreateTFMG @@ -41,8 +50,18 @@ public class CreateTFMG public static final CreateRegistrate REGISTRATE = CreateRegistrate.create(MOD_ID); public static final Logger LOGGER = LogUtils.getLogger(); + static { + REGISTRATE.setTooltipModifierFactory(item -> { + return new ItemDescription.Modifier(item, TooltipHelper.Palette.STANDARD_CREATE) + .andThen(TooltipModifier.mapNull(KineticStats.create(item))); + }); + } + public CreateTFMG() { + + + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); REGISTRATE.registerEventListeners(FMLJavaModLoadingContext.get().getModEventBus()); @@ -56,9 +75,16 @@ public class CreateTFMG TFMGEntityTypes.register(); TFMGCreativeModeTabs.init(); TFMGFluids.register(); + TFMGTags.init(); TFMGPaletteBlocks.register(); TFMGSoundEvents.prepare(); TFMGContraptions.prepare(); + TFMGOreConfigEntries.init(); + TFMGParticleTypes.register(modEventBus); + TFMGMobEffects.register(modEventBus); + TFMGPotions.register(modEventBus); + TFMGPackets.registerPackets(); + TFMGColoredFires.register(modEventBus); TFMGFeatures.register(modEventBus); @@ -67,6 +93,7 @@ public class CreateTFMG TFMGConfigs.register(ModLoadingContext.get()); // + modEventBus.addListener(CreateTFMG::init); MinecraftForge.EVENT_BUS.register(this); modEventBus.addListener(EventPriority.LOWEST, CreateTFMG::gatherData); modEventBus.addListener(TFMGSoundEvents::register); @@ -74,6 +101,28 @@ public class CreateTFMG modEventBus.addListener(this::clientSetup); } + + public static void init(final FMLCommonSetupEvent event) { + TFMGFluids.registerFluidInteractions(); + + event.enqueueWork(() -> { + + registerHeater(TFMGBlocks.FIREBOX.get(), (level, pos, state) -> { + BlazeBurnerBlock.HeatLevel value = state.getValue(BlazeBurnerBlock.HEAT_LEVEL); + if (value == BlazeBurnerBlock.HeatLevel.NONE) { + return -1; + } + if (value == BlazeBurnerBlock.HeatLevel.SEETHING) { + return 3; + } + if (value.isAtLeast(BlazeBurnerBlock.HeatLevel.FADING)) { + return 2; + } + return -1; + }); + + }); + } @SuppressWarnings("removal") public static void gatherData(GatherDataEvent event) { DataGenerator gen = event.getGenerator(); @@ -87,7 +136,7 @@ public class CreateTFMG private void commonSetup(final FMLCommonSetupEvent event) { event.enqueueWork(() -> { final Holder initializeOil = TFMGConfiguredFeatures.OIL_PLACED; - final Holder initializeSimulatedOil = TFMGConfiguredFeatures.SIMULATED_OIL_PLACED; + final Holder initializeSimulatedOil = TFMGConfiguredFeatures.OIL_DEPOSIT_PLACED; }); } diff --git a/src/main/java/com/drmangotea/createindustry/CreateTFMGClient.java b/src/main/java/com/drmangotea/createindustry/CreateTFMGClient.java index 4ff8a5fa..be8f5894 100644 --- a/src/main/java/com/drmangotea/createindustry/CreateTFMGClient.java +++ b/src/main/java/com/drmangotea/createindustry/CreateTFMGClient.java @@ -1,9 +1,14 @@ package com.drmangotea.createindustry; -import com.drmangotea.createindustry.items.gadgets.quad_potato_cannon.QuadPotatoCannonRenderHandler; +import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonRenderHandler; +import com.drmangotea.createindustry.items.weapons.flamethrover.FlamethrowerRenderHandler; +import com.drmangotea.createindustry.items.weapons.quad_potato_cannon.QuadPotatoCannonRenderHandler; import com.drmangotea.createindustry.ponder.TFMGPonderIndex; import com.drmangotea.createindustry.registry.TFMGPartialModels; +import com.drmangotea.createindustry.registry.TFMGParticleTypes; +import com.simibubi.create.AllParticleTypes; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; @@ -11,10 +16,23 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; public class CreateTFMGClient { public static final QuadPotatoCannonRenderHandler QUAD_POTATO_CANNON_RENDER_HANDLER = new QuadPotatoCannonRenderHandler(); + + public static final AdvancedPotatoCannonRenderHandler ADVANCED_POTATO_CANNON_RENDER_HANDLER = new AdvancedPotatoCannonRenderHandler(); + + public static final FlamethrowerRenderHandler FLAMETHROWER_RENDER_HANDLER = new FlamethrowerRenderHandler(); + public CreateTFMGClient() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + IEventBus forgeEventBus = MinecraftForge.EVENT_BUS; TFMGPartialModels.init(); + modEventBus.addListener(TFMGParticleTypes::registerFactories); modEventBus.register(this); + + + + ADVANCED_POTATO_CANNON_RENDER_HANDLER.registerListeners(forgeEventBus); + QUAD_POTATO_CANNON_RENDER_HANDLER.registerListeners(forgeEventBus); + FLAMETHROWER_RENDER_HANDLER.registerListeners(forgeEventBus); } diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGBuilderTransformers.java b/src/main/java/com/drmangotea/createindustry/base/TFMGBuilderTransformers.java index c88627b6..0b64356c 100644 --- a/src/main/java/com/drmangotea/createindustry/base/TFMGBuilderTransformers.java +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGBuilderTransformers.java @@ -4,6 +4,8 @@ import com.drmangotea.createindustry.CreateTFMG; import com.drmangotea.createindustry.blocks.decoration.doors.TFMGSlidingDoorBlock; import com.drmangotea.createindustry.blocks.encased.TFMGEncasedCogwheelBlock; import com.drmangotea.createindustry.blocks.encased.TFMGEncasedShaftBlock; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block.CopycatCableBlock; +import com.drmangotea.createindustry.registry.TFMGBlocks; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllTags; import com.simibubi.create.content.contraptions.behaviour.DoorMovingInteraction; @@ -13,22 +15,19 @@ import com.simibubi.create.content.kinetics.BlockStressDefaults; import com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock; import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogCTBehaviour; import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; -import com.simibubi.create.foundation.data.AssetLookup; -import com.simibubi.create.foundation.data.CreateRegistrate; -import com.simibubi.create.foundation.data.ModelGen; -import com.simibubi.create.foundation.data.SharedProperties; +import com.simibubi.create.foundation.data.*; import com.tterrag.registrate.builders.BlockBuilder; import com.tterrag.registrate.util.nullness.NonNullUnaryOperator; import net.minecraft.client.renderer.RenderType; import net.minecraft.core.Direction; import net.minecraft.data.loot.BlockLoot; -import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.world.level.ItemLike; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.material.MaterialColor; import net.minecraftforge.client.model.generators.ModelFile; import java.util.function.Supplier; @@ -38,7 +37,7 @@ import static com.simibubi.create.AllMovementBehaviours.movementBehaviour; import static com.simibubi.create.foundation.data.BlockStateGen.axisBlock; import static com.simibubi.create.foundation.data.TagGen.pickaxeOnly; - +@SuppressWarnings("removal") public class TFMGBuilderTransformers { public static NonNullUnaryOperator> slidingDoor(String type) { @@ -77,7 +76,7 @@ public class TFMGBuilderTransformers { public static NonNullUnaryOperator> encasedShaft(String casing, Supplier casingShift) { - return builder -> encasedBase(builder, () -> AllBlocks.SHAFT.get()) + return builder -> encasedBase(builder, () -> TFMGBlocks.NEON_TUBE.get()) .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(casingShift.get()))) .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, casingShift.get(), (s, f) -> f.getAxis() != s.getValue(TFMGEncasedShaftBlock.AXIS)))) @@ -144,4 +143,19 @@ public class TFMGBuilderTransformers { } + public static NonNullUnaryOperator> copycatCable() { + return b -> b.initialProperties(SharedProperties::softMetal) + .blockstate((c, p) -> p.simpleBlock(c.get(), p.models() + .getExistingFile(p.mcLoc("air")))) + .initialProperties(SharedProperties::softMetal) + .properties(p -> p.noOcclusion() + .color(MaterialColor.NONE)) + .addLayer(() -> RenderType::solid) + .addLayer(() -> RenderType::cutout) + .addLayer(() -> RenderType::cutoutMipped) + // .addLayer(() -> RenderType::translucent) + .color(() -> CopycatCableBlock::wrappedColor) + .transform(TagGen.axeOrPickaxe()); + } + } diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGLangPartials.java b/src/main/java/com/drmangotea/createindustry/base/TFMGLangPartials.java index c15773e9..5a067b0e 100644 --- a/src/main/java/com/drmangotea/createindustry/base/TFMGLangPartials.java +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGLangPartials.java @@ -13,6 +13,8 @@ import com.simibubi.create.foundation.utility.Lang; public enum TFMGLangPartials implements LangPartial { INTERFACE("UI & Messages"), + + TOOLTIPS("Tooltips"), PONDERS("Ponders"); ; diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGSpriteShifts.java b/src/main/java/com/drmangotea/createindustry/base/TFMGSpriteShifts.java index 407622ae..95fb7f9b 100644 --- a/src/main/java/com/drmangotea/createindustry/base/TFMGSpriteShifts.java +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGSpriteShifts.java @@ -10,18 +10,36 @@ public class TFMGSpriteShifts { public static final CTSpriteShiftEntry CAST_IRON_BLOCK = omni("cast_iron_block"), + + LEAD_BLOCK = omni("lead_block"), STEEL_BLOCK = omni("steel_block"); public static final CTSpriteShiftEntry + LEAD_GLASS = omni("lead_glass"), STEEL_CASING = omni("steel_casing"); - public static final CTSpriteShiftEntry STEEL_SCAFFOLD = horizontal("scaffold/steel_scaffold"), + public static final CTSpriteShiftEntry + STEEL_SCAFFOLD = horizontal("scaffold/steel_scaffold"), ALUMINUM_SCAFFOLD = horizontal("scaffold/aluminum_scaffold"); public static final CTSpriteShiftEntry ALUMINUM_SCAFFOLD_TOP = omni("aluminum_casing"); + public static final CTSpriteShiftEntry - HEAVY_MACHINERY_CASING = omni("heavy_machinery_casing"); + STEEL_SCAFFOLD_INSIDE = horizontal("scaffold/steel_scaffold_inside"), + ALUMINUM_SCAFFOLD_INSIDE = horizontal("scaffold/aluminum_scaffold_inside"), + + CAST_IRON_SCAFFOLD_INSIDE = horizontal("scaffold/cast_iron_scaffold_inside"), + + LEAD_SCAFFOLD_INSIDE = horizontal("scaffold/lead_scaffold_inside"), + + NICKEL_SCAFFOLD_INSIDE = horizontal("scaffold/nickel_scaffold_inside") + + ; + + public static final CTSpriteShiftEntry + HEAVY_MACHINERY_CASING = omni("heavy_machinery_casing"), + ELECTRIC_CASING = omni("electric_casing"); public static final CTSpriteShiftEntry STEEL_FLUID_TANK = getCT(AllCTTypes.RECTANGLE, "steel_fluid_tank"), @@ -31,8 +49,7 @@ public class TFMGSpriteShifts { public static final CTSpriteShiftEntry STEEL_SHEETMETAL = getCT(AllCTTypes.RECTANGLE, "steel_sheetmetal"); - public static final CTSpriteShiftEntry STEEL_SCAFFOLD_INSIDE = horizontal("scaffold/steel_scaffold_inside"), - ALUMINUM_SCAFFOLD_INSIDE = horizontal("scaffold/aluminum_scaffold_inside"); + public static final CTSpriteShiftEntry @@ -41,6 +58,10 @@ public class TFMGSpriteShifts { COKE_OVEN_BACK = getCT(AllCTTypes.RECTANGLE, "coke_oven/side"), COKE_OVEN_SIDE = getCT(AllCTTypes.RECTANGLE, "coke_oven/side"); + public static final CTSpriteShiftEntry + CAPACITOR = getCT(AllCTTypes.RECTANGLE, "capacitor_side"), + ACCUMULATOR = getCT(AllCTTypes.RECTANGLE, "accumulator_side"); + public static final CTSpriteShiftEntry STEEL_ENCASED_COGWHEEL_SIDE = vertical("steel_encased_cogwheel_side"), diff --git a/src/main/java/com/drmangotea/createindustry/base/spark/BlueSpark.java b/src/main/java/com/drmangotea/createindustry/base/util/spark/BlueSpark.java similarity index 97% rename from src/main/java/com/drmangotea/createindustry/base/spark/BlueSpark.java rename to src/main/java/com/drmangotea/createindustry/base/util/spark/BlueSpark.java index 895ef3e2..bd933638 100644 --- a/src/main/java/com/drmangotea/createindustry/base/spark/BlueSpark.java +++ b/src/main/java/com/drmangotea/createindustry/base/util/spark/BlueSpark.java @@ -1,7 +1,7 @@ -package com.drmangotea.createindustry.base.spark; +package com.drmangotea.createindustry.base.util.spark; -import com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.fire.BlueFireBlock; +import com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.fire.BlueFireBlock; import com.drmangotea.createindustry.registry.TFMGEntityTypes; import com.drmangotea.createindustry.registry.TFMGItems; import com.simibubi.create.content.trains.CubeParticleData; diff --git a/src/main/java/com/drmangotea/createindustry/base/spark/BlueSparkRenderer.java b/src/main/java/com/drmangotea/createindustry/base/util/spark/BlueSparkRenderer.java similarity index 98% rename from src/main/java/com/drmangotea/createindustry/base/spark/BlueSparkRenderer.java rename to src/main/java/com/drmangotea/createindustry/base/util/spark/BlueSparkRenderer.java index 58ea454d..80b59b90 100644 --- a/src/main/java/com/drmangotea/createindustry/base/spark/BlueSparkRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/base/util/spark/BlueSparkRenderer.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.base.spark; +package com.drmangotea.createindustry.base.util.spark; import com.drmangotea.createindustry.CreateTFMG; import com.mojang.blaze3d.vertex.PoseStack; diff --git a/src/main/java/com/drmangotea/createindustry/base/spark/GreenSpark.java b/src/main/java/com/drmangotea/createindustry/base/util/spark/GreenSpark.java similarity index 97% rename from src/main/java/com/drmangotea/createindustry/base/spark/GreenSpark.java rename to src/main/java/com/drmangotea/createindustry/base/util/spark/GreenSpark.java index 7fb08d79..8fd0f4a1 100644 --- a/src/main/java/com/drmangotea/createindustry/base/spark/GreenSpark.java +++ b/src/main/java/com/drmangotea/createindustry/base/util/spark/GreenSpark.java @@ -1,7 +1,7 @@ -package com.drmangotea.createindustry.base.spark; +package com.drmangotea.createindustry.base.util.spark; -import com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.fire.GreenFireBlock; +import com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.fire.GreenFireBlock; import com.drmangotea.createindustry.registry.TFMGEntityTypes; import com.drmangotea.createindustry.registry.TFMGItems; import com.simibubi.create.content.trains.CubeParticleData; diff --git a/src/main/java/com/drmangotea/createindustry/base/spark/GreenSparkRenderer.java b/src/main/java/com/drmangotea/createindustry/base/util/spark/GreenSparkRenderer.java similarity index 98% rename from src/main/java/com/drmangotea/createindustry/base/spark/GreenSparkRenderer.java rename to src/main/java/com/drmangotea/createindustry/base/util/spark/GreenSparkRenderer.java index 434e7325..3e1f8664 100644 --- a/src/main/java/com/drmangotea/createindustry/base/spark/GreenSparkRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/base/util/spark/GreenSparkRenderer.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.base.spark; +package com.drmangotea.createindustry.base.util.spark; import com.drmangotea.createindustry.CreateTFMG; import com.mojang.blaze3d.vertex.PoseStack; diff --git a/src/main/java/com/drmangotea/createindustry/base/spark/Spark.java b/src/main/java/com/drmangotea/createindustry/base/util/spark/Spark.java similarity index 98% rename from src/main/java/com/drmangotea/createindustry/base/spark/Spark.java rename to src/main/java/com/drmangotea/createindustry/base/util/spark/Spark.java index 8a6bd94d..b912ffa8 100644 --- a/src/main/java/com/drmangotea/createindustry/base/spark/Spark.java +++ b/src/main/java/com/drmangotea/createindustry/base/util/spark/Spark.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.base.spark; +package com.drmangotea.createindustry.base.util.spark; import com.drmangotea.createindustry.registry.TFMGEntityTypes; diff --git a/src/main/java/com/drmangotea/createindustry/base/spark/SparkRenderer.java b/src/main/java/com/drmangotea/createindustry/base/util/spark/SparkRenderer.java similarity index 98% rename from src/main/java/com/drmangotea/createindustry/base/spark/SparkRenderer.java rename to src/main/java/com/drmangotea/createindustry/base/util/spark/SparkRenderer.java index b256c334..7f8d10a7 100644 --- a/src/main/java/com/drmangotea/createindustry/base/spark/SparkRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/base/util/spark/SparkRenderer.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.base.spark; +package com.drmangotea.createindustry.base.util.spark; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelBlock.java similarity index 96% rename from src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelBlock.java rename to src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelBlock.java index f985bb58..5ab5fca9 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.blocks.decoration.flywheels; +package com.drmangotea.createindustry.blocks.decoration.kinetics.flywheels; import com.drmangotea.createindustry.registry.TFMGBlockEntities; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelBlockEntity.java similarity index 94% rename from src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelBlockEntity.java rename to src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelBlockEntity.java index ff508aef..00780351 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelBlockEntity.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.blocks.decoration.flywheels; +package com.drmangotea.createindustry.blocks.decoration.kinetics.flywheels; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.foundation.utility.animation.LerpedFloat; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelInstance.java b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelInstance.java similarity index 96% rename from src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelInstance.java rename to src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelInstance.java index 0174ac8b..5f12aaa4 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelInstance.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelInstance.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.blocks.decoration.flywheels; +package com.drmangotea.createindustry.blocks.decoration.kinetics.flywheels; import com.jozufozu.flywheel.api.MaterialManager; import com.jozufozu.flywheel.api.instance.DynamicInstance; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelRenderer.java similarity index 96% rename from src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelRenderer.java rename to src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelRenderer.java index a55a21d9..e6ef2d3c 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/decoration/flywheels/TFMGFlywheelRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/decoration/kinetics/flywheels/TFMGFlywheelRenderer.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.blocks.decoration.flywheels; +package com.drmangotea.createindustry.blocks.decoration.kinetics.flywheels; import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/deposits/FluidDepositBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/deposits/FluidDepositBlock.java index 735177a0..dd839bcb 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/deposits/FluidDepositBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/deposits/FluidDepositBlock.java @@ -7,19 +7,11 @@ import com.simibubi.create.foundation.block.IBE; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; -public class FluidDepositBlock extends Block implements IBE { +public class FluidDepositBlock extends Block { public FluidDepositBlock(Properties p_49795_) { super(p_49795_); } - @Override - public Class getBlockEntityClass() { - return FluidDepositBlockEntity.class; - } - @Override - public BlockEntityType getBlockEntityType() { - return TFMGBlockEntities.OIL_DEPOSIT.get(); - } } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/deposits/FluidDepositBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/deposits/FluidDepositBlockEntity.java deleted file mode 100644 index 10c42366..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/deposits/FluidDepositBlockEntity.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.drmangotea.createindustry.blocks.deposits; - - - -import com.drmangotea.createindustry.CreateTFMG; -import com.drmangotea.createindustry.registry.TFMGFluids; -import com.simibubi.create.Create; -import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Fluid; - -import java.util.List; - -public class FluidDepositBlockEntity extends SmartBlockEntity { - - public final int baseFluidAmount= Create.RANDOM.nextInt(3000000); - public final int fluidAmountToBuckets =baseFluidAmount/1000; - public int fluidAmount= fluidAmountToBuckets; - - public FluidDepositBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { - super(type, pos, state); - } - - @Override - public void addBehaviours(List behaviours) { - - } - - @Override - public void write(CompoundTag compound, boolean clientPacket) { - - compound.putInt("FluidAmount", baseFluidAmount); - - super.write(compound, clientPacket); - - } - @Override - protected void read(CompoundTag compound, boolean clientPacket) { - super.read(compound, clientPacket); - - - fluidAmount = compound.getInt("FluidAmount"); - - } - public Fluid getDepositFluid(){ - return TFMGFluids.CRUDE_OIL.getSource(); - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/deposits/surface_scanner/SurfaceScannerBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/deposits/surface_scanner/SurfaceScannerBlockEntity.java index 71b27eb6..8f7aa271 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/deposits/surface_scanner/SurfaceScannerBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/deposits/surface_scanner/SurfaceScannerBlockEntity.java @@ -1,7 +1,7 @@ package com.drmangotea.createindustry.blocks.deposits.surface_scanner; -import com.drmangotea.createindustry.blocks.deposits.FluidDepositBlockEntity; +import com.drmangotea.createindustry.registry.TFMGBlocks; import com.simibubi.create.Create; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.content.equipment.wrench.IWrenchable; @@ -23,7 +23,7 @@ import net.minecraft.world.level.block.state.BlockState; import java.util.List; public class SurfaceScannerBlockEntity extends KineticBlockEntity implements IHaveGoggleInformation, IWrenchable { - public FluidDepositBlockEntity deposit; + public BlockPos deposit; public BlockPos checkedPosition; public boolean foundDeposit=false; public BlockPos depositPos; @@ -98,11 +98,11 @@ public class SurfaceScannerBlockEntity extends KineticBlockEntity implements IHa float xDistance; - zDistance = deposit.getBlockPos().getZ()-getBlockPos().getZ(); + zDistance = deposit.getZ()-getBlockPos().getZ(); - xDistance = deposit.getBlockPos().getX()-getBlockPos().getX(); + xDistance = deposit.getX()-getBlockPos().getX(); @@ -120,7 +120,7 @@ public class SurfaceScannerBlockEntity extends KineticBlockEntity implements IHa angle = (float) Math.toDegrees(Math.atan(xDistance/zDistance)); - if(this.getBlockPos().getZ() casing; - public TFMGEncasedCogwheelBlock(Properties properties, boolean large, Supplier casing) { + private final BlockEntry blockSmall; + + private final BlockEntry blockLarge; + + private final BlockEntityEntry beSmall; + private final BlockEntityEntry beLarge; + + + + + public static TFMGEncasedCogwheelBlock regular(Properties properties, boolean large, Supplier casing){ + return new TFMGEncasedCogwheelBlock(properties,large,casing, AllBlocks.COGWHEEL,AllBlocks.LARGE_COGWHEEL,TFMGBlockEntities.TFMG_ENCASED_COGWHEEL,TFMGBlockEntities.TFMG_ENCASED_LARGE_COGWHEEL); + } + public static TFMGEncasedCogwheelBlock steel(Properties properties, boolean large, Supplier casing){ + return new TFMGEncasedCogwheelBlock(properties,large,casing, TFMGBlocks.STEEL_COGWHEEL,TFMGBlocks.LARGE_STEEL_COGWHEEL,TFMGBlockEntities.ENCASED_STEEL_COGWHEEL,TFMGBlockEntities.ENCASED_LARGE_STEEL_COGWHEEL); + } + public static TFMGEncasedCogwheelBlock aluminum(Properties properties, boolean large, Supplier casing){ + return new TFMGEncasedCogwheelBlock(properties,large,casing, TFMGBlocks.ALUMINUM_COGWHEEL,TFMGBlocks.LARGE_ALUMINUM_COGWHEEL,TFMGBlockEntities.ENCASED_ALUMINUM_COGWHEEL,TFMGBlockEntities.ENCASED_LARGE_ALUMINUM_COGWHEEL); + } + + + + + + public TFMGEncasedCogwheelBlock(Properties properties, boolean large, Supplier casing, BlockEntry blockSmall, BlockEntry blockLarge,BlockEntityEntry beSmall,BlockEntityEntry beLarge) { super(properties); + + this.beSmall = beSmall; + this.beLarge = beLarge; + + this.blockSmall = blockSmall; + this.blockLarge = blockLarge; + isLarge = large; this.casing = casing; registerDefaultState(defaultBlockState().setValue(TOP_SHAFT, false) @@ -73,7 +108,7 @@ public class TFMGEncasedCogwheelBlock extends RotatedPillarKineticBlock if (target instanceof BlockHitResult) return ((BlockHitResult) target).getDirection() .getAxis() != getRotationAxis(state) - ? isLarge ? AllBlocks.LARGE_COGWHEEL.asStack() : AllBlocks.COGWHEEL.asStack() + ? isLarge ? blockLarge.asStack() : blockSmall.asStack() : getCasing().asItem().getDefaultInstance(); return super.getCloneItemStack(state, target, world, pos, player); } @@ -131,7 +166,7 @@ public class TFMGEncasedCogwheelBlock extends RotatedPillarKineticBlock context.getLevel() .levelEvent(2001, context.getClickedPos(), Block.getId(state)); KineticBlockEntity.switchToBlockState(context.getLevel(), context.getClickedPos(), - (isLarge ? AllBlocks.LARGE_COGWHEEL : AllBlocks.COGWHEEL).getDefaultState() + (isLarge ? blockLarge : blockSmall).getDefaultState() .setValue(AXIS, state.getValue(AXIS))); return InteractionResult.SUCCESS; } @@ -252,7 +287,7 @@ public class TFMGEncasedCogwheelBlock extends RotatedPillarKineticBlock @Override public ItemRequirement getRequiredItems(BlockState state, BlockEntity be) { return ItemRequirement - .of(isLarge ? AllBlocks.LARGE_COGWHEEL.getDefaultState() : AllBlocks.COGWHEEL.getDefaultState(), be); + .of(isLarge ? blockLarge.getDefaultState() : blockSmall.getDefaultState(), be); } @Override @@ -262,7 +297,7 @@ public class TFMGEncasedCogwheelBlock extends RotatedPillarKineticBlock @Override public BlockEntityType getBlockEntityType() { - return isLarge ? TFMGBlockEntities.TFMG_ENCASED_LARGE_COGWHEEL.get() : TFMGBlockEntities.TFMG_ENCASED_COGWHEEL.get(); + return isLarge ? beLarge.get() : beSmall.get(); } @Override diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/compact/CompactEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/compact/CompactEngineBlockEntity.java index d29993ce..cd4fbc58 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/compact/CompactEngineBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/compact/CompactEngineBlockEntity.java @@ -3,6 +3,7 @@ package com.drmangotea.createindustry.blocks.engines.compact; import com.drmangotea.createindustry.registry.TFMGFluids; import com.drmangotea.createindustry.registry.TFMGSoundEvents; +import com.drmangotea.createindustry.registry.TFMGTags; import com.simibubi.create.Create; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.content.equipment.wrench.IWrenchable; @@ -17,6 +18,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; +import net.minecraft.tags.TagKey; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; @@ -29,10 +31,10 @@ import net.minecraft.world.level.material.Fluid; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.templates.FluidTank; @@ -72,8 +74,8 @@ public class CompactEngineBlockEntity extends GeneratingKineticBlockEntity imple public float powerModifier=1; public float efficiencyModifier = 1.4f; // -int signal; -boolean signalChanged; + int signal; + boolean signalChanged; // // protected ScrollValueBehaviour generatedSpeed; @@ -123,6 +125,10 @@ boolean signalChanged; fuelConsumption = (int)((speed/(efficiency/10)/13)+1); if(fuelConsumption<1) fuelConsumption=0; + + if(this.isOverStressed()) + fuelConsumption = 0; + if(!tankInventory.isEmpty()) { if(consumptionTimer>=45) { @@ -223,7 +229,7 @@ boolean signalChanged; //////////////////////////////////////// - LazyOptional handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY); + LazyOptional handler = this.getCapability(ForgeCapabilities.FLUID_HANDLER); Optional resolve = handler.resolve(); if (!resolve.isPresent()) return false; @@ -372,7 +378,7 @@ public void write(CompoundTag compound, boolean clientPacket) { soundTimer++; // if(!isExhaustTankFull()) { - if (soundTimer >= ((16-signal)/0.8)+1) { + if (soundTimer >= (((16-signal)/0.8)+1)/2) { if(signal!=0&& tankInventory.getFluidAmount()!=0 && !overStressed @@ -448,7 +454,7 @@ public void write(CompoundTag compound, boolean clientPacket) { soundTimer=0; - TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.6f, 1f, false); + TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.04f, 1f, false); } @@ -483,7 +489,7 @@ public void write(CompoundTag compound, boolean clientPacket) { return new SmartFluidTank(1000, this::onFluidStackChanged){ @Override public boolean isFluidValid(FluidStack stack) { - return stack.getFluid().isSame(validFuel()); + return stack.getFluid().is(validFuel()); } }; } @@ -516,7 +522,7 @@ public void write(CompoundTag compound, boolean clientPacket) { @Override public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + if (cap == ForgeCapabilities.FLUID_HANDLER) return fluidCapability.cast(); return super.getCapability(cap, side); } @@ -533,8 +539,8 @@ public void write(CompoundTag compound, boolean clientPacket) { return tankInventory; } - public Fluid validFuel(){ - return TFMGFluids.GASOLINE.get(); + public TagKey validFuel(){ + return TFMGTags.TFMGFluidTags.GASOLINE.tag; }; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineBlockEntity.java index bf634cc8..be70c9ea 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineBlockEntity.java @@ -5,6 +5,7 @@ import com.drmangotea.createindustry.blocks.engines.diesel.engine_expansion.Dies import com.drmangotea.createindustry.registry.TFMGBlocks; import com.drmangotea.createindustry.registry.TFMGFluids; import com.drmangotea.createindustry.registry.TFMGSoundEvents; +import com.drmangotea.createindustry.registry.TFMGTags; import com.simibubi.create.content.contraptions.bearing.WindmillBearingBlockEntity; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity; @@ -20,6 +21,7 @@ import com.simibubi.create.foundation.blockEntity.behaviour.scrollValue.ScrollOp import com.simibubi.create.foundation.fluid.CombinedTankWrapper; import com.simibubi.create.foundation.fluid.SmartFluidTank; import com.simibubi.create.foundation.utility.*; +import mekanism.common.recipe.lookup.cache.type.FluidInputCache; import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -27,6 +29,7 @@ import net.minecraft.core.Direction.Axis; import net.minecraft.core.Direction.AxisDirection; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; +import net.minecraft.tags.TagKey; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; @@ -36,9 +39,9 @@ import net.minecraft.world.phys.AABB; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.templates.FluidTank; import net.minecraftforge.fml.DistExecutor; @@ -86,7 +89,7 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo - fuelTank = createInventory(TFMGFluids.DIESEL.getSource(),false); + fuelTank = createInventory(TFMGTags.TFMGFluidTags.DIESEL.tag, false); @@ -130,10 +133,6 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo - - - - if(getBlockState().getValue(FACE)==AttachFace.WALL) expansionPos = this.getBlockPos().relative(getBlockState().getValue(FACING).getOpposite()); if(getBlockState().getValue(FACE)==AttachFace.CEILING) @@ -498,7 +497,7 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo @SuppressWarnings("removal") public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + if (cap == ForgeCapabilities.FLUID_HANDLER) return fluidCapability.cast(); return super.getCapability(cap, side); } @@ -536,7 +535,7 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo //--Fluid Info--// - LazyOptional handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY); + LazyOptional handler = this.getCapability(ForgeCapabilities.FLUID_HANDLER); Optional resolve = handler.resolve(); if (!resolve.isPresent()) return false; @@ -606,6 +605,33 @@ public class DieselEngineBlockEntity extends SmartBlockEntity implements IHaveGo + @Override + public FluidStack drain(FluidStack resource, FluidAction action) { + if (!extractionAllowed) + return FluidStack.EMPTY; + return super.drain(resource, action); + } + + @Override + public FluidStack drain(int maxDrain, FluidAction action) { + if (!extractionAllowed) + return FluidStack.EMPTY; + return super.drain(maxDrain, action); + } + + + }; + } + protected SmartFluidTank createInventory(TagKey validFluid, boolean extractionAllowed) { + return new SmartFluidTank(1000, this::onFluidStackChanged) { + @Override + public boolean isFluidValid(FluidStack stack) { + + return stack.getFluid().is(validFluid); + } + + + @Override public FluidStack drain(FluidStack resource, FluidAction action) { if (!extractionAllowed) diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineInstance.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineInstance.java index a303aa63..5e5ddc99 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineInstance.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/diesel/DieselEngineInstance.java @@ -28,11 +28,11 @@ public class DieselEngineInstance extends BlockEntityInstance= ((16-signal)/0.8)+1) { + if (soundTimer >= (((16-signal)/0.8)+1)/8) { if(signal!=0&& tankInventory.getFluidAmount()!=0 && !overStressed @@ -584,7 +585,7 @@ public void write(CompoundTag compound, boolean clientPacket) { return new SmartFluidTank(1000, this::onFluidStackChanged){ @Override public boolean isFluidValid(FluidStack stack) { - return stack.getFluid().isSame(validFuel()); + return stack.getFluid().is(validFuel()); } }; } @@ -633,8 +634,8 @@ public void write(CompoundTag compound, boolean clientPacket) { return tankInventory; } - public Fluid validFuel(){ - return TFMGFluids.GASOLINE.get(); + public TagKey validFuel(){ + return TFMGTags.TFMGFluidTags.GASOLINE.tag; }; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/RadialEngineRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/RadialEngineRenderer.java index 301d17b6..0bcd0328 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/RadialEngineRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/radial/RadialEngineRenderer.java @@ -16,7 +16,7 @@ public class RadialEngineRenderer extends KineticBlockEntityRenderer validFuel(){ + return TFMGTags.TFMGFluidTags.KEROSENE.tag; }; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineTileEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineBlockEntity.java similarity index 96% rename from src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineTileEntity.java rename to src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineBlockEntity.java index cec62000..800f180f 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineTileEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/AbstractEngineBlockEntity.java @@ -5,6 +5,7 @@ import com.drmangotea.createindustry.blocks.engines.small.turbine.TurbineEngineT import com.drmangotea.createindustry.registry.TFMGBlocks; import com.drmangotea.createindustry.registry.TFMGFluids; import com.drmangotea.createindustry.registry.TFMGSoundEvents; +import com.drmangotea.createindustry.registry.TFMGTags; import com.simibubi.create.Create; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.content.equipment.wrench.IWrenchable; @@ -20,6 +21,7 @@ import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.network.chat.Component; +import net.minecraft.tags.TagKey; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.block.DirectionalBlock; @@ -29,10 +31,10 @@ import net.minecraft.world.level.material.Fluid; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.templates.FluidTank; @@ -44,7 +46,7 @@ import java.util.Optional; import static com.simibubi.create.content.kinetics.base.DirectionalKineticBlock.FACING; @SuppressWarnings("removal") -public abstract class AbstractEngineTileEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable { +public abstract class AbstractEngineBlockEntity extends GeneratingKineticBlockEntity implements IHaveGoggleInformation, IWrenchable { protected LazyOptional fluidCapability; protected FluidTank tankInventory; @@ -88,7 +90,7 @@ boolean signalChanged; // protected ScrollValueBehaviour generatedSpeed; - public AbstractEngineTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { + public AbstractEngineBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { super(type, pos, state); tankInventory = createInventory(); @@ -285,7 +287,7 @@ boolean signalChanged; //////////////////////////////////////// - LazyOptional handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY); + LazyOptional handler = this.getCapability(ForgeCapabilities.FLUID_HANDLER); Optional resolve = handler.resolve(); if (!resolve.isPresent()) return false; @@ -443,7 +445,7 @@ public void write(CompoundTag compound, boolean clientPacket) { soundTimer++; // if(!isExhaustTankFull()) { - if (soundTimer >= ((16-signal)/0.8)+1) { + if (soundTimer >= (((16-signal)/0.8)+1)/2) { if(signal!=0&& hasBackPart()&& tankInventory.getFluidAmount()!=0 && @@ -542,11 +544,11 @@ public void write(CompoundTag compound, boolean clientPacket) { private void makeSound(){ soundTimer=0; if(this instanceof TurbineEngineTileEntity){ - TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.2f, 1.5f, false); + TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.06f, 1.5f, false); } else - TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.3f, 1f, false); + TFMGSoundEvents.ENGINE.playAt(level, worldPosition, 0.1f, 1f, false); } @@ -567,7 +569,7 @@ public void write(CompoundTag compound, boolean clientPacket) { return new SmartFluidTank(1000, this::onFluidStackChanged){ @Override public boolean isFluidValid(FluidStack stack) { - return stack.getFluid().isSame(validFuel()); + return stack.getFluid().is(validFuel()); } }; } @@ -614,7 +616,7 @@ public void write(CompoundTag compound, boolean clientPacket) { @Override public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + if (cap == ForgeCapabilities.FLUID_HANDLER) return fluidCapability.cast(); return super.getCapability(cap, side); } @@ -631,8 +633,8 @@ public void write(CompoundTag compound, boolean clientPacket) { return tankInventory; } - public Fluid validFuel(){ - return TFMGFluids.GASOLINE.get(); + public TagKey validFuel(){ + return TFMGTags.TFMGFluidTags.GASOLINE.tag; }; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/UniversalEngineRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/UniversalEngineRenderer.java index 8b5a171e..1a7bde8f 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/UniversalEngineRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/UniversalEngineRenderer.java @@ -7,14 +7,14 @@ import com.simibubi.create.foundation.render.SuperByteBuffer; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.world.level.block.state.BlockState; -public class UniversalEngineRenderer extends KineticBlockEntityRenderer { +public class UniversalEngineRenderer extends KineticBlockEntityRenderer { public UniversalEngineRenderer(BlockEntityRendererProvider.Context context) { super(context); } @Override - protected SuperByteBuffer getRotatedModel(AbstractEngineTileEntity be, BlockState state) { + protected SuperByteBuffer getRotatedModel(AbstractEngineBlockEntity be, BlockState state) { return CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, state); } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/gasoline/GasolineEngineTileEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/gasoline/GasolineEngineTileEntity.java index d0fd51ec..15c2303a 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/gasoline/GasolineEngineTileEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/gasoline/GasolineEngineTileEntity.java @@ -1,14 +1,15 @@ package com.drmangotea.createindustry.blocks.engines.small.gasoline; -import com.drmangotea.createindustry.blocks.engines.small.AbstractEngineTileEntity; +import com.drmangotea.createindustry.blocks.engines.small.AbstractEngineBlockEntity; import com.drmangotea.createindustry.registry.TFMGFluids; import net.minecraft.core.BlockPos; +import net.minecraft.tags.TagKey; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; -public class GasolineEngineTileEntity extends AbstractEngineTileEntity { +public class GasolineEngineTileEntity extends AbstractEngineBlockEntity { public GasolineEngineTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { @@ -16,8 +17,4 @@ public class GasolineEngineTileEntity extends AbstractEngineTileEntity { } - @Override - public Fluid validFuel() { - return TFMGFluids.GASOLINE.getSource(); - } } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/lpg/LPGEngineTileEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/lpg/LPGEngineTileEntity.java index 422b4d14..40063eb2 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/lpg/LPGEngineTileEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/lpg/LPGEngineTileEntity.java @@ -1,17 +1,19 @@ package com.drmangotea.createindustry.blocks.engines.small.lpg; -import com.drmangotea.createindustry.blocks.engines.small.AbstractEngineTileEntity; +import com.drmangotea.createindustry.blocks.engines.small.AbstractEngineBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.drmangotea.createindustry.registry.TFMGFluids; +import com.drmangotea.createindustry.registry.TFMGTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.tags.TagKey; import net.minecraft.world.level.block.DirectionalBlock; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; -public class LPGEngineTileEntity extends AbstractEngineTileEntity { +public class LPGEngineTileEntity extends AbstractEngineBlockEntity { public LPGEngineTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { @@ -48,7 +50,7 @@ public class LPGEngineTileEntity extends AbstractEngineTileEntity { return true; } @Override - public Fluid validFuel() { - return TFMGFluids.LPG.getSource(); + public TagKey validFuel() { + return TFMGTags.TFMGFluidTags.LPG.tag; } } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/turbine/TurbineEngineTileEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/turbine/TurbineEngineTileEntity.java index 3f7e75a1..c986d3fc 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/engines/small/turbine/TurbineEngineTileEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/engines/small/turbine/TurbineEngineTileEntity.java @@ -1,17 +1,19 @@ package com.drmangotea.createindustry.blocks.engines.small.turbine; -import com.drmangotea.createindustry.blocks.engines.small.AbstractEngineTileEntity; +import com.drmangotea.createindustry.blocks.engines.small.AbstractEngineBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.drmangotea.createindustry.registry.TFMGFluids; +import com.drmangotea.createindustry.registry.TFMGTags; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.tags.TagKey; import net.minecraft.world.level.block.DirectionalBlock; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluid; -public class TurbineEngineTileEntity extends AbstractEngineTileEntity { +public class TurbineEngineTileEntity extends AbstractEngineBlockEntity { public TurbineEngineTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { @@ -49,7 +51,7 @@ public class TurbineEngineTileEntity extends AbstractEngineTileEntity { return true; } @Override - public Fluid validFuel() { - return TFMGFluids.KEROSENE.getSource(); + public TagKey validFuel() { + return TFMGTags.TFMGFluidTags.KEROSENE.tag; } } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/fluids/BurnableFluid.java b/src/main/java/com/drmangotea/createindustry/blocks/fluids/BurnableFluid.java deleted file mode 100644 index 668f0461..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/fluids/BurnableFluid.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.drmangotea.createindustry.blocks.fluids; - -import net.minecraft.core.BlockPos; -import net.minecraft.util.RandomSource; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.material.FluidState; -import net.minecraftforge.fluids.ForgeFlowingFluid; - -/** - * makes fluid burn when close to fire, - * not working for now - */ -public class BurnableFluid extends ForgeFlowingFluid { - - - protected BurnableFluid(Properties properties) { - super(properties); - } - - @Override - public boolean isSource(FluidState p_76140_) { - return true; - } - - @Override - public int getAmount(FluidState p_164509_) { - return 8; - } - - @Override - public void randomTick(Level level, BlockPos pos, FluidState p_230574_, RandomSource randomSource) { - //level.setBlock(pos,Blocks.FIRE.defaultBlockState(),3); - // if (!level.isClientSide) { - - // Direction checkedDirection=Direction.NORTH; - // for(int i = 0; i < 4; i++) { - - // checkedDirection=checkedDirection.getClockWise(); - - // BlockPos checkedPos = pos.relative(checkedDirection); - - // if(level.getBlockEntity(checkedPos).getBlockState().is(Blocks.FIRE)) { - // level.explode(null, pos.getX(), pos.getY(), pos.getZ(), 2.0F, Explosion.BlockInteraction.NONE); - // level.setBlock(pos,Blocks.FIRE.defaultBlockState(),3); - - // } - // } - // } - } - - protected boolean isRandomlyTicking() { - return true; - } - - - // - public static class Flowing extends BurnableFluid { - public Flowing(Properties properties) { - super(properties); - } - - protected void createFluidStateDefinition(StateDefinition.Builder p_76260_) { - super.createFluidStateDefinition(p_76260_); - p_76260_.add(LEVEL); - } - - public int getAmount(FluidState p_76264_) { - return p_76264_.getValue(LEVEL); - } - - public boolean isSource(FluidState p_76262_) { - return false; - } - } - - public static class Source extends BurnableFluid { - public Source(Properties properties) { - super(properties); - } - - public int getAmount(FluidState p_76269_) { - return 8; - } - - public boolean isSource(FluidState p_76267_) { - return true; - } - } -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java index 5bd7a590..856d7c03 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java @@ -133,6 +133,7 @@ public class ExhaustBlockEntity extends SmartBlockEntity implements IHaveGoggleI }; } + protected void onFluidStackChanged(FluidStack newFluidStack) { sendData(); } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/flarestack/FlarestackBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/flarestack/FlarestackBlockEntity.java index 0d82d5fa..ea1fa3f0 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/flarestack/FlarestackBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/flarestack/FlarestackBlockEntity.java @@ -2,6 +2,7 @@ package com.drmangotea.createindustry.blocks.machines.flarestack; import com.drmangotea.createindustry.registry.TFMGFluids; +import com.drmangotea.createindustry.registry.TFMGTags; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; @@ -127,19 +128,7 @@ public class FlarestackBlockEntity extends SmartBlockEntity implements IHaveGogg return new SmartFluidTank(1000, this::onFluidStackChanged) { @Override public boolean isFluidValid(FluidStack stack) { - return - stack.getFluid().isSame(TFMGFluids.BUTANE.getSource())|| - stack.getFluid().isSame(TFMGFluids.PROPANE.getSource())|| - stack.getFluid().isSame(TFMGFluids.LPG.getSource())|| - stack.getFluid().isSame(TFMGFluids.KEROSENE.getSource())|| - stack.getFluid().isSame(TFMGFluids.NAPHTHA.getSource())|| - stack.getFluid().isSame(TFMGFluids.ETHYLENE.getSource())|| - stack.getFluid().isSame(TFMGFluids.PROPYLENE.getSource())|| - stack.getFluid().isSame(TFMGFluids.DIESEL.getSource())|| - stack.getFluid().isSame(TFMGFluids.LUBRICATION_OIL.getSource())|| - stack.getFluid().isSame(TFMGFluids.HEAVY_OIL.getSource())|| - stack.getFluid().isSame(TFMGFluids.CREOSOTE.getSource())|| - stack.getFluid().isSame(TFMGFluids.GASOLINE.getSource()); + return stack.getFluid().is(TFMGTags.TFMGFluidTags.FLAMMABLE.tag); } }; } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlock.java index 39e9e5f7..8c32aa37 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlock.java @@ -2,7 +2,9 @@ package com.drmangotea.createindustry.blocks.machines.metal_processing.blast_fur import com.drmangotea.createindustry.registry.TFMGBlockEntities; import com.simibubi.create.foundation.block.IBE; +import net.minecraft.core.BlockPos; import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.HorizontalDirectionalBlock; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -20,7 +22,9 @@ public class BlastFurnaceOutputBlock extends HorizontalDirectionalBlock implemen public Class getBlockEntityClass() { return BlastFurnaceOutputBlockEntity.class; } - + public void onRemove(BlockState state, Level worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + IBE.onRemove(state, worldIn, pos, newState); + } @Override public BlockEntityType getBlockEntityType() { return TFMGBlockEntities.BLAST_FURNACE_OUTPUT.get(); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlockEntity.java index 4935f75f..b80b0a50 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceOutputBlockEntity.java @@ -9,6 +9,7 @@ import com.drmangotea.createindustry.registry.TFMGRecipeTypes; import com.simibubi.create.Create; import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.LangBuilder; @@ -25,11 +26,10 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.wrapper.CombinedInvWrapper; import net.minecraftforge.items.wrapper.RecipeWrapper; @@ -94,6 +94,14 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem tank1.getPrimaryHandler().setCapacity(8000); tank2.getPrimaryHandler().setCapacity(8000); } + + @Override + public void destroy() { + super.destroy(); + ItemHelper.dropContents(level, worldPosition, inputInventory); + ItemHelper.dropContents(level, worldPosition, fuelInventory); + } + @Override public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); @@ -105,16 +113,10 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem manageMoltenMetal(); - - if(type== BlastFurnaceType.SMALL) { blastFurnaceLevel = ((float) validHeight / 2) - 1; blastFurnaceLevel = (float) Math.min(blastFurnaceLevel,2.5); } - if(type== BlastFurnaceType.BIG_LEFT||type== BlastFurnaceType.BIG_RIGHT){ - blastFurnaceLevel = validHeight; - blastFurnaceLevel = Math.min(blastFurnaceLevel,15); - } if(speedModifier!=0) { @@ -213,14 +215,9 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem public void manageMoltenMetal(){ BlockPos posToSpawn; - BlockPos posToSpawn1; - BlockPos posToSpawn2; - BlockPos posToSpawn3; - BlockPos posToSpawn4; - BlockPos posToSpawn5; - if (timer>0&&type == BlastFurnaceType.SMALL) { + if (timer>0) { posToSpawn = this.getBlockPos().relative(outputFacing.getOpposite()).above(); @@ -236,78 +233,8 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem } } - ////// - if (timer>0&&type == BlastFurnaceType.BIG_LEFT) { - posToSpawn = this.getBlockPos().relative(outputFacing.getOpposite()).above(); - posToSpawn1 = this.getBlockPos().relative(outputFacing.getOpposite(),2).above(); - posToSpawn2 = this.getBlockPos().relative(outputFacing.getOpposite()).above().relative(outputFacing.getCounterClockWise()); - posToSpawn3 = this.getBlockPos().relative(outputFacing.getOpposite(),2).above().relative(outputFacing.getCounterClockWise()); - - if(!level.getBlockState(posToSpawn).is(TFMGBlocks.MOLTEN_METAL.get())) { - level.setBlock(posToSpawn, TFMGBlocks.MOLTEN_METAL.getDefaultState(), 3); - level.setBlock(posToSpawn1, TFMGBlocks.MOLTEN_METAL.getDefaultState(), 3); - level.setBlock(posToSpawn2, TFMGBlocks.MOLTEN_METAL.getDefaultState(), 3); - level.setBlock(posToSpawn3, TFMGBlocks.MOLTEN_METAL.getDefaultState(), 3); - - level.setBlock(posToSpawn.above(), TFMGBlocks.MOLTEN_METAL.getDefaultState(), 3); - level.setBlock(posToSpawn1.above(), TFMGBlocks.MOLTEN_METAL.getDefaultState(), 3); - level.setBlock(posToSpawn2.above(), TFMGBlocks.MOLTEN_METAL.getDefaultState(), 3); - level.setBlock(posToSpawn3.above(), TFMGBlocks.MOLTEN_METAL.getDefaultState(), 3); - - }else { - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn)).discardTimer = 40; - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn.above())).discardTimer = 40; - - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn1)).discardTimer = 40; - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn1.above())).discardTimer = 40; - - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn2)).discardTimer = 40; - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn2.above())).discardTimer = 40; - - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn3)).discardTimer = 40; - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn3.above())).discardTimer = 40; - - } - - } - - //////// - if (timer>0&&type == BlastFurnaceType.BIG_RIGHT) { - posToSpawn = this.getBlockPos().relative(outputFacing.getOpposite()).above(); - posToSpawn1 = this.getBlockPos().relative(outputFacing.getOpposite(),2).above(); - posToSpawn2 = this.getBlockPos().relative(outputFacing.getOpposite()).above().relative(outputFacing.getClockWise()); - posToSpawn3 = this.getBlockPos().relative(outputFacing.getOpposite(),2).above().relative(outputFacing.getClockWise()); - - - - if(!level.getBlockState(posToSpawn).is(TFMGBlocks.MOLTEN_METAL.get())) { - level.setBlock(posToSpawn, TFMGBlocks.MOLTEN_METAL.getDefaultState(),3); - level.setBlock(posToSpawn1, TFMGBlocks.MOLTEN_METAL.getDefaultState(),3); - level.setBlock(posToSpawn2, TFMGBlocks.MOLTEN_METAL.getDefaultState(),3); - level.setBlock(posToSpawn3, TFMGBlocks.MOLTEN_METAL.getDefaultState(),3); - - level.setBlock(posToSpawn.above(), TFMGBlocks.MOLTEN_METAL.getDefaultState(),3); - level.setBlock(posToSpawn1.above(), TFMGBlocks.MOLTEN_METAL.getDefaultState(),3); - level.setBlock(posToSpawn2.above(), TFMGBlocks.MOLTEN_METAL.getDefaultState(),3); - level.setBlock(posToSpawn3.above(), TFMGBlocks.MOLTEN_METAL.getDefaultState(),3); - }else { - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn)).discardTimer = 40; - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn.above())).discardTimer = 40; - - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn1)).discardTimer = 40; - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn1.above())).discardTimer = 40; - - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn2)).discardTimer = 40; - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn2.above())).discardTimer = 40; - - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn3)).discardTimer = 40; - ((MoltenMetalBlockEntity) level.getBlockEntity(posToSpawn3.above())).discardTimer = 40; - - } - } - } @Override protected AABB createRenderBoundingBox() { @@ -353,16 +280,23 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem } else { - int freeSpace = inputInventory.getStackInSlot(0).getMaxStackSize()-inputInventory.getStackInSlot(0).getCount(); + + if(itemStack.getCount()==1) { + ItemStack stack2 = itemStack; + stack2.setCount(2); + itemEntity.setItem(stack2); + } + + int freeSpace2 = inputInventory.getStackInSlot(0).getMaxStackSize()-inputInventory.getStackInSlot(0).getCount(); int count = itemStack.getCount(); if(!inputInventory.isEmpty()) if(!inputInventory.getItem(0).is(itemStack.getItem())) continue; - if(count>freeSpace){ - itemStack.setCount(itemStack.getCount()-freeSpace); - inputInventory.setItem(0 ,new ItemStack (itemStack.getItem(),inputInventory.getStackInSlot(0).getCount()+freeSpace)); + if(count>freeSpace2){ + itemStack.setCount(itemStack.getCount()-freeSpace2); + inputInventory.setItem(0 ,new ItemStack (itemStack.getItem(),inputInventory.getStackInSlot(0).getCount()+freeSpace2)); }else { inputInventory.setItem(0 ,new ItemStack (itemStack.getItem(),inputInventory.getStackInSlot(0).getCount()+itemStack.getCount())); itemEntity.discard(); @@ -403,21 +337,12 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem .forGoggles(tooltip, 1); - Lang.translate("goggles.blast_furnace.size_stats") - .style(ChatFormatting.DARK_GRAY) - .forGoggles(tooltip, 1); + Lang.translate("goggles.blast_furnace.height", validHeight) .style(ChatFormatting.GOLD) .forGoggles(tooltip, 1); - if(type == BlastFurnaceType.SMALL) { - Lang.translate("goggles.blast_furnace.diameter.one") - .style(ChatFormatting.GOLD) - .forGoggles(tooltip, 1); - } else - Lang.translate("goggles.blast_furnace.diameter.two") - .style(ChatFormatting.GOLD) - .forGoggles(tooltip, 1); + Lang.translate("goggles.misc.storage_info") @@ -438,57 +363,8 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem - //--Fluid Info--// - LazyOptional handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY); - Optional resolve = handler.resolve(); - if (!resolve.isPresent()) - return false; - - IFluidHandler tank = resolve.get(); - if (tank.getTanks() == 0) - return false; - - LangBuilder mb = Lang.translate("generic.unit.millibuckets"); - - - boolean isEmpty = true; - for (int i = 0; i < tank.getTanks(); i++) { - FluidStack fluidStack = tank.getFluidInTank(i); - if (fluidStack.isEmpty()) - continue; - - Lang.fluidName(fluidStack) - .style(ChatFormatting.GRAY) - .forGoggles(tooltip, 1); - - Lang.builder() - .add(Lang.number(fluidStack.getAmount()) - .add(mb) - .style(ChatFormatting.DARK_GREEN)) - .text(ChatFormatting.GRAY, " / ") - .add(Lang.number(tank.getTankCapacity(i)) - .add(mb) - .style(ChatFormatting.DARK_GRAY)) - .forGoggles(tooltip, 1); - - isEmpty = false; - } - - if (tank.getTanks() > 1) { - if (isEmpty) - tooltip.remove(tooltip.size() - 1); - return true; - } - - if (!isEmpty) - return true; - - Lang.translate("gui.goggles.fluid_container.capacity") - .add(Lang.number(tank.getTankCapacity(0)) - .add(mb) - .style(ChatFormatting.DARK_GREEN)) - .style(ChatFormatting.DARK_GRAY) - .forGoggles(tooltip, 1); + containedFluidTooltip(tooltip, isPlayerSneaking, + getCapability(ForgeCapabilities.FLUID_HANDLER)); return true; @@ -518,11 +394,11 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem } @Nonnull @Override - @SuppressWarnings("'net.minecraftforge.items.CapabilityItemHandler' is deprecated and marked for removal ") + public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + if (cap == ForgeCapabilities.ITEM_HANDLER) return itemCapability.cast(); - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + if (cap == ForgeCapabilities.FLUID_HANDLER) return fluidCapability.cast(); return super.getCapability(cap, side); } @@ -543,17 +419,10 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem if(canBeSmall()) type = BlastFurnaceType.SMALL; - if(canBeBigLeft()) - type = BlastFurnaceType.BIG_LEFT; - if(canBeBigRight()) - type = BlastFurnaceType.BIG_RIGHT; - if( - !canBeBigLeft()&& - !canBeBigRight()&& - !canBeSmall() - )type = BlastFurnaceType.INVALID; + if(!canBeSmall()) + type = BlastFurnaceType.INVALID; @@ -666,200 +535,15 @@ public class BlastFurnaceOutputBlockEntity extends TFMGMachineBlockEntity implem return true; } - public boolean canBeBigRight(){ - mainFloor = this.getBlockPos().relative(outputFacing.getOpposite()); - - BlockPos checkedPos = this.getBlockPos().relative(outputFacing.getCounterClockWise()); - - for(int i = 0; i<4; i++){ - - - for(int y = 0; y<4; y++){ - - - - - if( - !(i ==0 && y ==0)&& - !(i ==3 && y ==3)&& - !(i ==0 && y ==3)&& - !(i ==3 && y ==0) - - ) { - if( i ==1 && y ==0){ - if(isAboveValid(checkedPos)) { - checkedPos = checkedPos.relative(outputFacing.getOpposite()); - continue; - } else return false; - } - - if(!isValidBlock(checkedPos)) { - return false; - } - if(i==0&&y==1){ - if(!isAboveValid(checkedPos,true)) { - return false; - } - } - - - if( - i ==0 || i ==3 || - y == 0 || y == 3 - - ){ - if(!isAboveValid(checkedPos)) { - return false; - } - } - else - if(!isAboveClear(checkedPos)) { - return false; - - } - - } else{ - //reinforcements - if(i ==0 && y ==0) - isReinforcement(checkedPos,true); - - isReinforcement(checkedPos); - - - - } - - - checkedPos = checkedPos.relative(outputFacing.getOpposite()); - - } - checkedPos= checkedPos.relative(outputFacing,4); - checkedPos= checkedPos.relative(outputFacing.getClockWise()); - } - // level.setBlock(checkedPos.above(5), Blocks.DIAMOND_BLOCK.defaultBlockState(), 3); - return true; - } - public boolean canBeBigLeft(){ - mainFloor = this.getBlockPos().relative(outputFacing.getOpposite()); - - BlockPos checkedPos = this.getBlockPos().relative(outputFacing.getClockWise()); - - for(int i = 0; i<4; i++){ - - - for(int y = 0; y<4; y++){ - - - - - if( - !(i ==0 && y ==0)&& - !(i ==3 && y ==3)&& - !(i ==0 && y ==3)&& - !(i ==3 && y ==0) - - ) { - if( i ==1 && y ==0){ - if(isAboveValid(checkedPos)) { - checkedPos = checkedPos.relative(outputFacing.getOpposite()); - continue; - } else return false; - } - - if(!isValidBlock(checkedPos)) { - return false; - } - - if(i==0&&y==1){ - if(!isAboveValid(checkedPos,true)) { - return false; - } - } - - if( - i ==0 || i ==3 || - y == 0 || y == 3 - - ){ - if(!isAboveValid(checkedPos)) { - return false; - } - } - else - if(!isAboveClear(checkedPos)) { - return false; - - } - - }else{ - //reinforcements - if(i ==0 && y ==0) - isReinforcement(checkedPos,true); - - isReinforcement(checkedPos); - - - - } - - - checkedPos = checkedPos.relative(outputFacing.getOpposite()); - - } - checkedPos= checkedPos.relative(outputFacing,4); - checkedPos= checkedPos.relative(outputFacing.getCounterClockWise()); - } - // level.setBlock(checkedPos.above(5), Blocks.EMERALD_BLOCK.defaultBlockState(), 3); - - return true; - } - public List getItemsToPick(BlastFurnaceType type) { - AABB searchArea=null; - AABB searchArea1=null; - AABB searchArea2=null; - AABB searchArea3=null; - if(type == BlastFurnaceType.SMALL) - searchArea = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above()); - - if(type == BlastFurnaceType.BIG_RIGHT) { - searchArea = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above()); - - searchArea1 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite(), 2).above()); - searchArea2 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite(), 2).above().relative(outputFacing.getClockWise())); - searchArea3 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above().relative(outputFacing.getClockWise())); - - } - if(type == BlastFurnaceType.BIG_LEFT) { - searchArea = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above()); - - searchArea1 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite(), 2).above()); - searchArea2 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite(), 2).above().relative(outputFacing.getCounterClockWise())); - searchArea3 = new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above().relative(outputFacing.getCounterClockWise())); - - - } - - - if(searchArea1!=null){ - List itemList= new ArrayList<>(); - itemList.addAll(level.getEntitiesOfClass(ItemEntity.class, searchArea)); - itemList.addAll(level.getEntitiesOfClass(ItemEntity.class, searchArea1)); - itemList.addAll(level.getEntitiesOfClass(ItemEntity.class, searchArea2)); - itemList.addAll(level.getEntitiesOfClass(ItemEntity.class, searchArea3)); - return itemList; - } - - return level.getEntitiesOfClass(ItemEntity.class, searchArea); + return level.getEntitiesOfClass(ItemEntity.class, new AABB(this.getBlockPos().relative(outputFacing.getOpposite()).above())); } public enum BlastFurnaceType{ SMALL, - BIG_LEFT, - BIG_RIGHT, INVALID } } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceRenderer.java index 8475cd6f..6b658700 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/blast_furnace/BlastFurnaceRenderer.java @@ -85,30 +85,8 @@ public class BlastFurnaceRenderer extends SafeBlockEntityRenderer typeIn, BlockPos pos, BlockState state) { - super(typeIn, pos, state); - } - - @Override - public void addBehaviours(List behaviours) { - super.addBehaviours(behaviours); - basinChecker = new DeferralBehaviour(this, this::updateController); - behaviours.add(basinChecker); - } - - - @Override - public void tick() { - if (basinRemoved) { - basinRemoved = false; - onControllerRemoved(); - sendData(); - return; - } - - super.tick(); - } - - protected boolean updateController() { - return false; - } - - protected abstract boolean isRunning(); - - public void startProcessing() {} - - public boolean continueWithPreviousRecipe() { - return true; - } - - protected boolean matchItemlessRecipe(Recipe recipe) { - if (recipe == null) - return false; - Optional controller = getController(); - - if (!controller.isPresent()) - return false; - return AbstractDistillationRecipe.match(controller.get(), recipe); - } - - - - - protected abstract void onControllerRemoved(); - - public Optional getController() { - if (level == null) - return Optional.empty(); - BlockEntity basinTE = level.getBlockEntity(worldPosition.below(1)); - if (!(basinTE instanceof DistilleryControllerBlockEntity)) - return Optional.empty(); - return Optional.of((DistilleryControllerBlockEntity) basinTE); - } - - protected Optional getProcessedRecipeTrigger() { - return Optional.empty(); - } - - protected abstract boolean matchStaticFilters(Recipe recipe); - - protected abstract Object getRecipeCacheKey(); -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlock.java deleted file mode 100644 index b5e29e23..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlock.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower; - - -import com.drmangotea.createindustry.blocks.tanks.SteelTankBlock; -import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.simibubi.create.content.equipment.wrench.IWrenchable; -import com.simibubi.create.foundation.block.IBE; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.pathfinder.PathComputationType; - - -import net.minecraft.core.Direction; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.FaceAttachedHorizontalDirectionalBlock; -import net.minecraft.world.level.block.state.StateDefinition; - -public class DistillationControllerBlock extends FaceAttachedHorizontalDirectionalBlock - implements IWrenchable, IBE { - - - public DistillationControllerBlock(Properties properties) { - super(properties); - - } - - @Override - protected void createBlockStateDefinition(StateDefinition.Builder pBuilder) { - super.createBlockStateDefinition(pBuilder.add(FACE, FACING)); - } - - - @Override - public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) { - return canAttach(pLevel, pPos, getConnectedDirection(pState).getOpposite()); - } - - public static boolean canAttach(LevelReader pReader, BlockPos pPos, Direction pDirection) { - - return true; - } - - @Override - public void onPlace(BlockState pState, Level pLevel, BlockPos pPos, BlockState pOldState, boolean pIsMoving) { - SteelTankBlock.updateTowerState(pState, pLevel, pPos.relative(getFacing(pState).getOpposite())); - - } - - @Override - public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean pIsMoving) { - if (state.hasBlockEntity() && (!state.is(newState.getBlock()) || !newState.hasBlockEntity())) - world.removeBlockEntity(pos); - SteelTankBlock.updateTowerState(state, world, pos.relative(getFacing(state).getOpposite())); - - } - - - - @Override - public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { - return false; - } - - public static Direction getFacing(BlockState sideState) { - return getConnectedDirection(sideState); - } - - - @Override - public Class getBlockEntityClass() { - return DistillationControllerBlockEntity.class; - } - - @Override - public BlockEntityType getBlockEntityType() { - return TFMGBlockEntities.STEEL_DISTILLATION_CONTROLLER.get(); - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java deleted file mode 100644 index 5d6d2bf4..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java +++ /dev/null @@ -1,229 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower; - -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryControllerBlockEntity; -import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity; -import com.drmangotea.createindustry.registry.TFMGBlocks; -import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.LangBuilder; -import net.minecraft.ChatFormatting; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; - -import javax.annotation.Nullable; -import java.lang.ref.WeakReference; -import java.util.List; -import java.util.Optional; - -public class DistillationControllerBlockEntity extends DistilleryControllerBlockEntity implements IHaveGoggleInformation { - - public WeakReference source; - - public int towerLevel =0; - public boolean hasTank = false; - public boolean isTallEnough = true; - public boolean hasMainOutput = false; - public DistillationOutputBlockEntity mainOutput; - - public DistillationControllerBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { - super(type, pos, state); - } - - @Override - public void tick() { - source = new WeakReference<>(null); - super.tick(); - - - - BlockEntity entityAbove = level.getBlockEntity(getBlockPos().above()); - - if(entityAbove instanceof DistillationOutputBlockEntity){ - mainOutput = (DistillationOutputBlockEntity) entityAbove; - - hasMainOutput = true; - }else { - hasMainOutput = false; - } - - - @Nullable - SteelTankBlockEntity tank = getTank(); - - if(tank==null){ - hasTank=false; - towerLevel = 0; - return; - } - hasTank = true; - - towerLevel = tank.tower.towerLevel; - - - - - - } - - - @Override - public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { - LangBuilder mb = Lang.translate("generic.unit.millibuckets"); - - - Lang.translate("goggles.distillation_tower.status") - .style(ChatFormatting.GRAY) - .space() - .forGoggles(tooltip, 1); - - - if(!hasTank) { - Lang.translate("goggles.distillation_tower.tank_not_found") - .style(ChatFormatting.DARK_RED) - .forGoggles(tooltip); - return true; - - }else { - - if(towerLevel<4) { - Lang.translate("goggles.distillation_tower.level", this.towerLevel) - .style(ChatFormatting.DARK_RED) - .forGoggles(tooltip, 1); - return true; - } - - if(!hasMainOutput) { - Lang.translate("goggles.distillation_tower.no_outputs") - .style(ChatFormatting.DARK_RED) - .forGoggles(tooltip, 1); - return true; - } - - // if(getTank().getHeight()<((DistillationOutputBlockEntity)level.getBlockEntity(getBlockPos().above())).foundOutputs*2) { - // Lang.translate("goggles.distillation_tower.not_tall_enough") - // .style(ChatFormatting.DARK_RED) - // .forGoggles(tooltip, 1); - // return true; - // } - - Lang.translate("goggles.distillation_tower.level", this.towerLevel) - .style(ChatFormatting.GREEN) - .forGoggles(tooltip, 1); - - Lang.translate("goggles.distillation_tower.found_outputs", this.getOutputCount()) - .style(ChatFormatting.GREEN) - .space() - .forGoggles(tooltip, 1); - - - } - - - /////////////////////////////////////////// - LazyOptional handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY); - Optional resolve = handler.resolve(); - if (!resolve.isPresent()) - return false; - - IFluidHandler tank = resolve.get(); - if (tank.getTanks() == 0) - return false; - - Lang.translate("goggles.fluid_in_tank") - .style(ChatFormatting.GRAY) - .forGoggles(tooltip); - - - boolean isEmpty = true; - for (int i = 0; i < tank.getTanks(); i++) { - FluidStack fluidStack = tank.getFluidInTank(i); - if (fluidStack.isEmpty()) - continue; - - Lang.fluidName(fluidStack) - .style(ChatFormatting.GRAY) - .forGoggles(tooltip, 1); - - Lang.builder() - .add(Lang.number(fluidStack.getAmount()) - .add(mb) - .style(ChatFormatting.GOLD)) - .text(ChatFormatting.GRAY, " / ") - .add(Lang.number(tank.getTankCapacity(i)) - .add(mb) - .style(ChatFormatting.DARK_GRAY)) - .forGoggles(tooltip, 1); - - isEmpty = false; - } - - if (tank.getTanks() > 1) { - if (isEmpty) - tooltip.remove(tooltip.size() - 1); - return true; - } - - if (!isEmpty) - return true; - - Lang.translate("gui.goggles.fluid_container.capacity") - .add(Lang.number(tank.getTankCapacity(0)) - .add(mb) - .style(ChatFormatting.GOLD)) - .style(ChatFormatting.DARK_GRAY) - .forGoggles(tooltip, 1); - - - return true; - } - - - public int getOutputCount(){ - BlockPos checkedPos = this.getBlockPos().above(3); - int outputCount = 1; - - for(int i = 0; i <5;i++){ - if( - level.getBlockState(checkedPos).is(TFMGBlocks.STEEL_DISTILLATION_OUTPUT.get())&& - level.getBlockState(checkedPos.below()).is(TFMGBlocks.INDUSTRIAL_PIPE.get()) - ){ - outputCount++; - checkedPos = checkedPos.above(2); - continue; - } - return outputCount; - - } - - - return outputCount; - } - - - - - public SteelTankBlockEntity getTank() { - SteelTankBlockEntity tank = source.get(); - if (tank == null || tank.isRemoved()) { - if (tank != null) - source = new WeakReference<>(null); - Direction facing = DistillationControllerBlock.getFacing(getBlockState()); - BlockEntity be = level.getBlockEntity(worldPosition.relative(facing.getOpposite())); - if (be instanceof SteelTankBlockEntity tankTe) - source = new WeakReference<>(tank = tankTe); - } - if (tank == null) - return null; - return (SteelTankBlockEntity) tank.getControllerBE(); - } - - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlock.java deleted file mode 100644 index 1228ccf5..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlock.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower; - - -import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.block.IBE; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.pathfinder.PathComputationType; - -public class DistillationOutputBlock extends Block implements IBE { - - public DistillationOutputBlock(Properties properties) { - super(properties); - } - - @Override - public boolean canSurvive(BlockState state, LevelReader worldIn, BlockPos pos) { - return !AllBlocks.BASIN.has(worldIn.getBlockState(pos.below())); - } - - - @Override - public Class getBlockEntityClass() { - return DistillationOutputBlockEntity.class; - } - - @Override - public BlockEntityType getBlockEntityType() { - return TFMGBlockEntities.STEEL_DISTILLATION_OUTPUT.get(); - } - - @Override - public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { - return false; - } - -} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlockEntity.java deleted file mode 100644 index 8d98fc55..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlockEntity.java +++ /dev/null @@ -1,427 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower; - - - -import com.drmangotea.createindustry.CreateTFMG; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryOutputBlockEntity; -import com.drmangotea.createindustry.recipes.distillation.DistillationRecipe; -import com.drmangotea.createindustry.recipes.distillation.AbstractDistillationRecipe; -import com.drmangotea.createindustry.recipes.distillation.AdvancedDistillationRecipe; -import com.drmangotea.createindustry.registry.TFMGBlocks; -import com.drmangotea.createindustry.registry.TFMGRecipeTypes; -import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; -import com.simibubi.create.content.kinetics.press.MechanicalPressBlockEntity; -import com.simibubi.create.foundation.fluid.CombinedTankWrapper; -import com.simibubi.create.foundation.recipe.RecipeFinder; -import net.minecraft.core.BlockPos; -import net.minecraft.world.Container; -import net.minecraft.world.item.crafting.CraftingRecipe; -import net.minecraft.world.item.crafting.Recipe; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.crafting.IShapedRecipe; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.IFluidHandler; - -import java.util.List; -import java.util.Optional; - -public class DistillationOutputBlockEntity extends DistilleryOutputBlockEntity implements IHaveGoggleInformation { - - private static final Object AdvancedDistillationRecipesKey = new Object(); - - public int speed=3; - public int processTimer=0; - - public int foundOutputs=0; - public int recipeOutputs=6; - - public DistillationOutputBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { - super(type, pos, state); - } - - protected boolean matchItemlessRecipe(Recipe recipe) { - if (recipe == null) - return false; - Optional controller = getDistillationController(); - if (!controller.isPresent()) - return false; - return AbstractDistillationRecipe.match2(controller.get(), recipe); - } - - @Override - protected boolean updateController() { - - - if (level == null || level.isClientSide) - return true; - - DistillationControllerBlockEntity be=null; - - if(level.getBlockEntity(getBlockPos().below())instanceof DistillationControllerBlockEntity) - be = (DistillationControllerBlockEntity) level.getBlockEntity(getBlockPos().below()); - - if(be==null) - return true; - - recipe = getMatchingRecipes(be); - - //List> recipes = getMatchingRecipes(); - //if (recipes.isEmpty()) - // return true; - //currentRecipe = recipes.get(0); - - - - startProcessing(); - sendData(); - return true; - } - - - @Override - public void tick() { - super.tick(); - - - if (level != null) { - if ((!level.isClientSide || isVirtual())) { - process(); - sendData(); - } - } - if (syncCooldown > 0) { - syncCooldown--; - if (syncCooldown == 0 && queuedSync) - sendData(); - } - } - @Override - protected void process() { - updateController(); - - - - - - // if((currentRecipe instanceof ShapelessRecipe)) - // return; - - BlockEntity above1 = level.getBlockEntity(this.getBlockPos().above(2)); - BlockEntity above2 = level.getBlockEntity(this.getBlockPos().above(4)); - BlockEntity above3 = level.getBlockEntity(this.getBlockPos().above(6)); - BlockEntity above4 = level.getBlockEntity(this.getBlockPos().above(8)); - BlockEntity above5 = level.getBlockEntity(this.getBlockPos().above(10)); - - - - - - Optional optionalController = getDistillationController(); - if (!optionalController.isPresent()) - return; - foundOutputs = 1; - - if(above1 instanceof DistillationOutputBlockEntity) - foundOutputs = 2; - - - if(above2 instanceof DistillationOutputBlockEntity) { - if(foundOutputs==2) { - foundOutputs = 3; - }else foundOutputs = 1; - } - - - if(above3 instanceof DistillationOutputBlockEntity) { - if(foundOutputs==3) { - foundOutputs = 4; - }else foundOutputs = 2; - } - - if(above4 instanceof DistillationOutputBlockEntity) { - if(foundOutputs==4) { - foundOutputs = 5; - }else foundOutputs = 3; - } - if(above5 instanceof DistillationOutputBlockEntity) { - if(foundOutputs==5) { - foundOutputs = 6; - }else foundOutputs = 4; - } - - if (recipe == null) - return; - - - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>foundOutputs) - return; - FluidStack fluidInRecipe1=null; - FluidStack fluidInRecipe2=null; - FluidStack fluidInRecipe3=null; - FluidStack fluidInRecipe4=null; - FluidStack fluidInRecipe5=null; - FluidStack fluidInRecipe6=null; - - fluidInRecipe1 = ((AdvancedDistillationRecipe) recipe).getFirstFluidResult(); - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=2) - fluidInRecipe2 = ((AdvancedDistillationRecipe) recipe).getSecondFluidResult(); - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=3) - fluidInRecipe3 = ((AdvancedDistillationRecipe) recipe).getThirdFluidResult(); - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=4) - fluidInRecipe4 = ((AdvancedDistillationRecipe) recipe).getFourthFluidResult(); - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=5) - fluidInRecipe5 = ((AdvancedDistillationRecipe) recipe).getFifthFluidResult(); - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=6) - fluidInRecipe6 = ((AdvancedDistillationRecipe) recipe).getSixthFluidResult(); - - - - if(!hasIndustrialPipes(foundOutputs)) - return; - -// - if (fluidInRecipe1.getFluid() != this.tankInventory.getFluid().getFluid() - && tankInventory.getFluidAmount()!=0 - ) - return; -if(fluidInRecipe2!=null) - if(above1 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=2) - if (fluidInRecipe2.getFluid() != (((DistillationOutputBlockEntity) above1).tankInventory.getFluid().getFluid()) - &&((DistillationOutputBlockEntity) above1).tankInventory.getFluidAmount()!=0 - ) - return; - if(fluidInRecipe3!=null) - if(above2 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=3) - if (fluidInRecipe3.getFluid() != (((DistillationOutputBlockEntity) above2).tankInventory.getFluid().getFluid()) - &&((DistillationOutputBlockEntity) above2).tankInventory.getFluidAmount()!=0 - ) - return; - if(fluidInRecipe4!=null) - if(above3 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=4) - if (fluidInRecipe4.getFluid() != (((DistillationOutputBlockEntity) above3).tankInventory.getFluid().getFluid()) - &&((DistillationOutputBlockEntity) above3).tankInventory.getFluidAmount()!=0 - ) - return; - if(fluidInRecipe5!=null) - if(above4 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=5) - if (fluidInRecipe5.getFluid() != (((DistillationOutputBlockEntity) above4).tankInventory.getFluid().getFluid()) - &&((DistillationOutputBlockEntity) above4).tankInventory.getFluidAmount()!=0 - ) - return; - if(fluidInRecipe6!=null) - if(above5 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=6) - if (fluidInRecipe6.getFluid() != (((DistillationOutputBlockEntity) above5).tankInventory.getFluid().getFluid()) - &&((DistillationOutputBlockEntity) above5).tankInventory.getFluidAmount()!=0 - ) - return; -// - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=1) - if(tankInventory.getFluidAmount()+((AdvancedDistillationRecipe) recipe).getFirstFluidResult().getAmount()>8000) - return; - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=2) - if(((DistillationOutputBlockEntity)above1).tankInventory.getFluidAmount()+((AdvancedDistillationRecipe) recipe).getSecondFluidResult().getAmount()>8000) - return; - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=3) - if(((DistillationOutputBlockEntity)above2).tankInventory.getFluidAmount()+((AdvancedDistillationRecipe) recipe).getThirdFluidResult().getAmount()>8000) - return; - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=4) - if(((DistillationOutputBlockEntity)above3).tankInventory.getFluidAmount()+((AdvancedDistillationRecipe) recipe).getFourthFluidResult().getAmount()>8000) - return; - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=5) - if(((DistillationOutputBlockEntity)above4).tankInventory.getFluidAmount()+((AdvancedDistillationRecipe) recipe).getFifthFluidResult().getAmount()>8000) - return; - if(((AdvancedDistillationRecipe) recipe).getOutputCount((AdvancedDistillationRecipe) recipe)>=6) - if(((DistillationOutputBlockEntity)above5).tankInventory.getFluidAmount()+((AdvancedDistillationRecipe) recipe).getSixthFluidResult().getAmount()>8000) - return; - - if(getDistillationController().get().getTanks().get(true).getPrimaryHandler().getFluid().getFluid() != ((AdvancedDistillationRecipe) recipe).getInputFluid().getMatchingFluidStacks().get(0).getFluid()) - return; - - DistillationControllerBlockEntity controller = optionalController.get(); - - - - if (!controller.getTanks().get(true).isEmpty()) { - - - // if(((AdvancedDistillationRecipe)currentRecipe).getInputFluid().getMatchingFluidStacks().get(0).getFluid() != TFMGFluids.HEAVY_OIL.get()) - // return; - - - if(!controller.hasTank) - return; - - - if(controller.towerLevel<4) - return; - - if(controller.towerLevel>=12) { - speed = 3; - } else speed=6; - - if(processTimer=2) - if (((AdvancedDistillationRecipe) recipe).getResults().toArray().length>1) - ((DistillationOutputBlockEntity) above1).tankInventory.setFluid(new FluidStack(((AdvancedDistillationRecipe) recipe).getSecondFluidResult().getFluid(), ((AdvancedDistillationRecipe) recipe).getSecondFluidResult().getAmount() + ((DistillationOutputBlockEntity) above1).tankInventory.getFluidAmount())); - if(above2 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=3) - if (((AdvancedDistillationRecipe) recipe).getResults().toArray().length>2) - ((DistillationOutputBlockEntity) above2).tankInventory.setFluid(new FluidStack(((AdvancedDistillationRecipe) recipe).getThirdFluidResult().getFluid(), ((AdvancedDistillationRecipe) recipe).getThirdFluidResult().getAmount() + ((DistillationOutputBlockEntity) above2).tankInventory.getFluidAmount())); - if(above3 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=4) - if (((AdvancedDistillationRecipe) recipe).getResults().toArray().length>3) - ((DistillationOutputBlockEntity) above3).tankInventory.setFluid(new FluidStack(((AdvancedDistillationRecipe) recipe).getFourthFluidResult().getFluid(), ((AdvancedDistillationRecipe) recipe).getFourthFluidResult().getAmount() + ((DistillationOutputBlockEntity) above3).tankInventory.getFluidAmount())); - if(above4 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=5) - if (((AdvancedDistillationRecipe) recipe).getResults().toArray().length>4) - ((DistillationOutputBlockEntity) above4).tankInventory.setFluid(new FluidStack(((AdvancedDistillationRecipe) recipe).getFifthFluidResult().getFluid(), ((AdvancedDistillationRecipe) recipe).getFifthFluidResult().getAmount() + ((DistillationOutputBlockEntity) above4).tankInventory.getFluidAmount())); - if(above5 instanceof DistillationOutputBlockEntity) - if(foundOutputs>=6) - if (((AdvancedDistillationRecipe) recipe).getResults().toArray().length>5) - ((DistillationOutputBlockEntity) above5).tankInventory.setFluid(new FluidStack(((AdvancedDistillationRecipe) recipe).getSixthFluidResult().getFluid(), ((AdvancedDistillationRecipe) recipe).getSixthFluidResult().getAmount() + ((DistillationOutputBlockEntity) above5).tankInventory.getFluidAmount())); - -} -/* -if(!(((AdvancedDistillationRecipe) currentRecipe).getThirdItemResult().isEmpty())) - controller.outputInventory.setItem(2,((AdvancedDistillationRecipe) currentRecipe).getFirstItemResult()); - - - */ - - controller.notifyChangeOfContents(); - } - - - -} - - // @Override - // protected List> getMatchingRecipes() { -// -// - // List> list = RecipeFinder.get(getRecipeCacheKey(), level, this::matchStaticFilters); - // return list.stream() - // .filter(this::matchItemlessRecipe) - // .sorted((r1, r2) -> r2.getIngredients() - // .size() - // - r1.getIngredients() - // .size()) - // .collect(Collectors.toList()); - // } - - protected AdvancedDistillationRecipe getMatchingRecipes(DistillationControllerBlockEntity be) { - - - List> list = RecipeFinder.get(getRecipeCacheKey(), level, this::matchStaticFilters); - - - for(int i = 0; i < list.toArray().length;i++){ - AdvancedDistillationRecipe recipe = (AdvancedDistillationRecipe) list.get(i); - - if(recipe.getOutputCount(recipe)!=foundOutputs) - continue; - - for(int y = 0; y < recipe.getFluidIngredients().get(0).getMatchingFluidStacks().toArray().length;y++) - if(be.inputTank.getPrimaryHandler().getFluid().getFluid()==recipe.getFluidIngredients().get(0).getMatchingFluidStacks().get(y).getFluid()) - if(be.inputTank.getPrimaryHandler().getFluidAmount()>=recipe.getFluidIngredients().get(0).getRequiredAmount()) - return recipe; - } - - return null; - } - - protected boolean matchStaticFilters(Recipe r) { - return r instanceof AdvancedDistillationRecipe; - } - - @Override - public void startProcessing() { - if (running ) - return; - super.startProcessing(); - running = true; - - } - - @Override - public boolean continueWithPreviousRecipe() { - return true; - } - - @Override - protected void onControllerRemoved() { - if (!running) - return; - - running = false; - } - - @Override - protected Object getRecipeCacheKey() { - return AdvancedDistillationRecipesKey; - } - - @Override - protected boolean isRunning() { - return running; - } -/* - @Override - protected Optional getProcessedRecipeTrigger() { - return Optional.of(AllAdvancements.MIXER); - } - */ - - - public Optional getDistillationController() { - if (level == null) - return Optional.empty(); - BlockEntity basinTE = level.getBlockEntity(worldPosition.below(1)); - if (!(basinTE instanceof DistillationControllerBlockEntity)) - return Optional.empty(); - return Optional.of((DistillationControllerBlockEntity) basinTE); - } - - public boolean hasIndustrialPipes(int outputAmount){ - BlockPos checkedPos = this.getBlockPos().above(); - Block checkedBlock; - - - for(int i = 0;i<(outputAmount-1);i++){ - checkedBlock = level.getBlockState(checkedPos).getBlock(); - if(checkedBlock == TFMGBlocks.INDUSTRIAL_PIPE.get()){ - checkedPos=checkedPos.above(2); - continue; - } - return false; - } - return true; - } - -} - diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationTowerData.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationTowerData.java deleted file mode 100644 index 06ae85d3..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/DistillationTowerData.java +++ /dev/null @@ -1,403 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower; - - -import com.drmangotea.createindustry.CreateTFMG; -import com.drmangotea.createindustry.blocks.tanks.SteelTankBlock; -import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity; -import com.drmangotea.createindustry.registry.TFMGBlocks; -import com.drmangotea.createindustry.registry.TFMGFluids; -import com.simibubi.create.Create; -import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; -import com.simibubi.create.content.fluids.tank.BoilerHeaters; -import com.simibubi.create.foundation.utility.Components; -import com.simibubi.create.foundation.utility.Iterate; -import com.simibubi.create.foundation.utility.Lang; -import com.simibubi.create.foundation.utility.animation.LerpedFloat; -import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; -import joptsimple.internal.Strings; -import net.minecraft.ChatFormatting; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.MutableComponent; -import net.minecraft.util.Mth; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.IFluidHandler; -import org.jetbrains.annotations.NotNull; - -import java.util.Arrays; -import java.util.List; - -import static com.simibubi.create.foundation.fluid.FluidHelper.convertToStill; - -public class DistillationTowerData { - - static final int SAMPLE_RATE = 1; - - private static final int waterSupplyPerLevel = 10; - private static final float passiveEngineEfficiency = 0; - - private SteelTankBlockEntity tank; - - // pooled water supply - int gatheredSupply; - float[] supplyOverTime = new float[10]; - int ticksUntilNextSample; - int currentIndex; - - // heat score - public boolean needsHeatLevelUpdate; - public boolean passiveHeat; - public int activeHeat; - - public float oilSupply; - public int attachedControllers; - public int attachedWhistles; - - // display - public int maxHeatForSize = 0; - private int maxHeatForOil = 0; - private int minValue = 0; - private int maxValue = 0; - - public int towerLevel = Math.min(activeHeat, maxHeatForSize); - - public LerpedFloat gauge = LerpedFloat.linear(); - - public void tick(SteelTankBlockEntity controller) { - - - towerLevel = activeHeat; - tank=controller; - // tank.tankInventory.drain(2, IFluidHandler.FluidAction.EXECUTE); - - if (controller.getLevel().isClientSide) { - gauge.tickChaser(); - float current = gauge.getValue(1); - if (current > 1 && Create.RANDOM.nextFloat() < 1 / 2f) - gauge.setValueNoUpdate(current + Math.min(-(current - 1) * Create.RANDOM.nextFloat(), 0)); - // return; - } - - if (needsHeatLevelUpdate && updateTemperature(controller)) - controller.notifyUpdate(); - ticksUntilNextSample--; - if (ticksUntilNextSample > 0) - return; - int capacity = controller.tankInventory.getCapacity(); - if (capacity == 0) - return; - - - ticksUntilNextSample = SAMPLE_RATE; - supplyOverTime[currentIndex] = gatheredSupply / (float) SAMPLE_RATE; - oilSupply = Math.max(oilSupply, supplyOverTime[currentIndex]); - currentIndex = (currentIndex + 1) % supplyOverTime.length; - gatheredSupply = 0; - - - if (currentIndex == 0) { - oilSupply = 0; - for (float i : supplyOverTime) - oilSupply = Math.max(i, oilSupply); - } - -/* - if (getActualHeat(controller.getTotalTankSize()) == 18) - controller.award(AllAdvancements.STEAM_ENGINE_MAXED); -*/ - controller.notifyUpdate(); - - } - - public int getTheoreticalHeatLevel() { - return activeHeat; - } - - public int getMaxHeatLevelForBoilerSize(int towerSize) { - return (int) Math.min(12, towerSize / 4); - } - - public int getMaxHeatLevelForOilSupply() { - return (int) Math.min(12, Mth.ceil(oilSupply) / waterSupplyPerLevel); - } - - public boolean isPassive() { - return passiveHeat && maxHeatForSize > 0 && maxHeatForOil > 0; - } - - public boolean isPassive(int towerSize) { - calcMinMaxForSize(towerSize); - return isPassive(); - } - - public float getTowerEfficiency(int towerSize) { - if (isPassive(towerSize)) - return 0; - if (activeHeat == 0) - return 0; - int actualHeat = getActualHeat(towerSize); - return this.towerLevel; - } - - public int getActualHeat(int towerSize) { - int forBoilerSize = getMaxHeatLevelForBoilerSize(towerSize); - int forWaterSupply = getMaxHeatLevelForOilSupply(); - int actualHeat = Math.min(activeHeat, Math.min(forWaterSupply, forBoilerSize)); - return actualHeat; - } - - public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking, int towerSize) { - if (!isActive()) - return false; - - Component indent = Components.literal(IHaveGoggleInformation.spacing); - Component indent2 = Components.literal(IHaveGoggleInformation.spacing + " "); - - calcMinMaxForSize(towerSize); - - tooltip.add(indent.plainCopy() - .append( - Lang.translateDirect("distillation_tower.status", getHeatLevelTextComponent().withStyle(ChatFormatting.AQUA)))); - tooltip.add(indent2.plainCopy() - .append(getSizeComponent(true, false))); - // tooltip.add(indent2.plainCopy() - //.append(getOilComponent(true, false))); - tooltip.add(indent2.plainCopy() - .append(getHeatComponent(true, false))); - - if (attachedControllers == 0) - return true; - - int boilerLevel = Math.min(activeHeat, maxHeatForSize); - - - tooltip.add(Components.immutableEmpty()); - - return true; - } - - public void calcMinMaxForSize(int towerSize) { - maxHeatForSize = getMaxHeatLevelForBoilerSize(towerSize); - maxHeatForOil = getMaxHeatLevelForOilSupply(); - - minValue = Math.min(passiveHeat ? 1 : activeHeat, Math.min(maxHeatForOil, maxHeatForSize)); - maxValue = Math.max(passiveHeat ? 1 : activeHeat, Math.max(maxHeatForOil, maxHeatForSize)); - } - - @NotNull - public MutableComponent getHeatLevelTextComponent() { - int boilerLevel = Math.min(activeHeat, Math.min(maxHeatForOil, maxHeatForSize)); - - return isPassive() ? Lang.translateDirect("boiler.passive") - : (boilerLevel == 0 ? Lang.translateDirect("boiler.idle") - : boilerLevel == 18 ? Lang.translateDirect("boiler.max_lvl") - : Lang.translateDirect("boiler.lvl", String.valueOf(boilerLevel))); - } - - public MutableComponent getSizeComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) { - return componentHelper("size", maxHeatForSize, forGoggles, useBlocksAsBars, styles); - } -/* - public MutableComponent getOilComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) { - return componentHelper("crude_oil", maxHeatForOil, forGoggles, useBlocksAsBars, styles); - } - - */ - - public MutableComponent getHeatComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) { - return componentHelper("heat", passiveHeat ? 1 : activeHeat, forGoggles, useBlocksAsBars, styles); - } - - private MutableComponent componentHelper(String label, int level, boolean forGoggles, boolean useBlocksAsBars, - ChatFormatting... styles) { - MutableComponent base = useBlocksAsBars ? blockComponent(level) : barComponent(level); - - if (!forGoggles) - return base; - - ChatFormatting style1 = styles.length >= 1 ? styles[0] : ChatFormatting.GRAY; - ChatFormatting style2 = styles.length >= 2 ? styles[1] : ChatFormatting.DARK_GRAY; - - return Lang.translateDirect("distillation_tower." + label) - .withStyle(style1) - .append(Lang.translateDirect("boiler." + label + "_dots") - .withStyle(style2)) - .append(base); - } - - private MutableComponent blockComponent(int level) { - return Components.literal( - "" + "\u2588".repeat(minValue) + "\u2592".repeat(level - minValue) + "\u2591".repeat(maxValue - level)); - } - - private MutableComponent barComponent(int level) { - return Components.empty() - .append(bars(Math.max(0, minValue - 1), ChatFormatting.DARK_GREEN)) - .append(bars(minValue > 0 ? 1 : 0, ChatFormatting.GREEN)) - .append(bars(Math.max(0, level - minValue), ChatFormatting.DARK_GREEN)) - .append(bars(Math.max(0, maxValue - level), ChatFormatting.DARK_RED)) - .append(bars(Math.max(0, Math.min(18 - maxValue, ((maxValue / 5 + 1) * 5) - maxValue)), - ChatFormatting.DARK_GRAY)); - - } - - private MutableComponent bars(int level, ChatFormatting format) { - return Components.literal(Strings.repeat('|', level)).withStyle(format); - } - - public boolean evaluate(SteelTankBlockEntity controller) { - BlockPos controllerPos = controller.getBlockPos(); - Level level = controller.getLevel(); - int prevEngines = attachedControllers; - int prevWhistles = attachedWhistles; - attachedControllers = 0; - attachedWhistles = 0; - - for (int yOffset = 0; yOffset < controller.height; yOffset++) { - for (int xOffset = 0; xOffset < controller.width; xOffset++) { - for (int zOffset = 0; zOffset < controller.width; zOffset++) { - - BlockPos pos = controllerPos.offset(xOffset, yOffset, zOffset); - BlockState blockState = level.getBlockState(pos); - if (!SteelTankBlock.isTank(blockState)) - continue; - for (Direction d : Iterate.directions) { - BlockPos attachedPos = pos.relative(d); - BlockState attachedState = level.getBlockState(attachedPos); - if (TFMGBlocks.STEEL_DISTILLATION_CONTROLLER.has(attachedState) && DistillationControllerBlock.getFacing(attachedState) == d) - attachedControllers++; - - } - } - } - } - - needsHeatLevelUpdate = true; - return prevEngines != attachedControllers || prevWhistles != attachedWhistles; - } - - - - public boolean updateTemperature(SteelTankBlockEntity controller) { - BlockPos controllerPos = controller.getBlockPos(); - Level level = controller.getLevel(); - needsHeatLevelUpdate = false; - - boolean prevPassive = passiveHeat; - int prevActive = activeHeat; - passiveHeat = false; - activeHeat = 0; - - for (int xOffset = 0; xOffset < controller.width; xOffset++) { - for (int zOffset = 0; zOffset < controller.width; zOffset++) { - BlockPos pos = controllerPos.offset(xOffset, -1, zOffset); - BlockState blockState = level.getBlockState(pos); - float heat = BoilerHeaters.getActiveHeat(level, pos, blockState); - if (heat == 0) { - passiveHeat = true; - } else if (heat > 0) { - activeHeat += heat; - } - } - } - - passiveHeat &= activeHeat == 0; - - return prevActive != activeHeat || prevPassive != passiveHeat; - } - - public boolean isActive() { - return attachedControllers == 1; - } - - public void clear() { - oilSupply = 0; - activeHeat = 0; - passiveHeat = false; - attachedControllers = 0; - Arrays.fill(supplyOverTime, 0); - } - - public CompoundTag write() { - CompoundTag nbt = new CompoundTag(); - nbt.putFloat("Supply", oilSupply); - nbt.putInt("ActiveHeat", activeHeat); - nbt.putBoolean("PassiveHeat", passiveHeat); - nbt.putInt("Engines", attachedControllers); - nbt.putInt("Whistles", attachedWhistles); - nbt.putBoolean("Update", needsHeatLevelUpdate); - return nbt; - } - - public void read(CompoundTag nbt, int towerSize) { - oilSupply = nbt.getFloat("Supply"); - activeHeat = nbt.getInt("ActiveHeat"); - passiveHeat = nbt.getBoolean("PassiveHeat"); - attachedControllers = nbt.getInt("Engines"); - attachedWhistles = nbt.getInt("Whistles"); - needsHeatLevelUpdate = nbt.getBoolean("Update"); - Arrays.fill(supplyOverTime, (int) oilSupply); - - int forBoilerSize = getMaxHeatLevelForBoilerSize(towerSize); - int forOilSupply = getMaxHeatLevelForOilSupply(); - int actualHeat = Math.min(activeHeat, Math.min(forOilSupply, forBoilerSize)); - float target = isPassive(towerSize) ? 1 / 8f : forBoilerSize == 0 ? 0 : actualHeat / (forBoilerSize * 1f); - gauge.chase(target, 0.125f, Chaser.EXP); - } - - public DistillationFluidHandler createHandler() { - return new DistillationFluidHandler(); - } - - public class DistillationFluidHandler implements IFluidHandler { - - @Override - public int getTanks() { - return 1; - } - - @Override - public FluidStack getFluidInTank(int tank) { - return FluidStack.EMPTY; - } - - @Override - public int getTankCapacity(int tank) { - return 10000; - } - - @Override - public boolean isFluidValid(int tank, FluidStack stack) { - return false; - } - public static boolean isOil(Fluid fluid) { - return convertToStill(fluid) == TFMGFluids.CRUDE_OIL.get(); - } - @Override - public int fill(FluidStack resource, FluidAction action) { - if (!isFluidValid(0, resource)) - return 0; - int amount = resource.getAmount(); - if (action.execute()) - gatheredSupply += amount; - return amount; - } - - @Override - public FluidStack drain(FluidStack resource, FluidAction action) { - return FluidStack.EMPTY; - } - - @Override - public FluidStack drain(int maxDrain, FluidAction action) { - return FluidStack.EMPTY; - } - - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/IndustrialPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/IndustrialPipeBlock.java deleted file mode 100644 index 8c932a35..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillation_tower/IndustrialPipeBlock.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower; - - -import com.drmangotea.createindustry.registry.TFMGShapes; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.VoxelShape; - -public class IndustrialPipeBlock extends Block { - - - public IndustrialPipeBlock(Properties p_49795_) { - super(p_49795_); - } - - @Override - public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) { - - return TFMGShapes.INDUSTRIAL_PIPE; - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryControllerBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryControllerBlock.java deleted file mode 100644 index 96f13125..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryControllerBlock.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery; - - -import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.simibubi.create.content.equipment.wrench.IWrenchable; -import com.simibubi.create.foundation.block.IBE; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.pathfinder.PathComputationType; - -public class DistilleryControllerBlock extends Block implements IBE, IWrenchable { - - - public DistilleryControllerBlock(Properties p_i48440_1_) { - super(p_i48440_1_); - } - - - @Override - public void onRemove(BlockState state, Level worldIn, BlockPos pos, BlockState newState, boolean isMoving) { - IBE.onRemove(state, worldIn, pos, newState); - } - - - @Override - public Class getBlockEntityClass() { - return DistilleryControllerBlockEntity.class; - } - - @Override - public BlockEntityType getBlockEntityType() { - return TFMGBlockEntities.CAST_IRON_DISTILLATION_CONTROLLER.get(); - } - - - @Override - public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { - return false; - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryControllerBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryControllerBlockEntity.java deleted file mode 100644 index c3401695..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryControllerBlockEntity.java +++ /dev/null @@ -1,217 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery; - -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.FluidProcessingBlockEntity; -import com.simibubi.create.AllTags; -import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; -import com.simibubi.create.content.kinetics.belt.behaviour.DirectBeltInputBehaviour; -import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; -import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.blockEntity.behaviour.fluid.SmartFluidTankBehaviour; -import com.simibubi.create.foundation.fluid.CombinedTankWrapper; -import com.simibubi.create.foundation.item.SmartInventory; -import com.simibubi.create.foundation.utility.*; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.chat.Component; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandlerModifiable; -import net.minecraftforge.items.wrapper.CombinedInvWrapper; - -import javax.annotation.Nonnull; -import java.util.*; - -public class DistilleryControllerBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation { - - public SmartFluidTankBehaviour inputTank; - public SmartInventory outputInventory; - public SmartFluidTankBehaviour outputTank; - - public boolean contentsChanged; - - public Couple tanks; - - public LazyOptional itemCapability; - protected LazyOptional fluidCapability; - - public int recipeBackupCheck; - - public DistilleryControllerBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { - super(type, pos, state); - - outputInventory = new SmartInventory(9, this).forbidInsertion() - .withMaxStackSize(64); - - itemCapability = LazyOptional.of(() -> new CombinedInvWrapper( outputInventory)); - contentsChanged = true; - - - tanks = Couple.create(inputTank, outputTank); - - recipeBackupCheck = 20; - } - - @Override - public void addBehaviours(List behaviours) { - behaviours.add(new DirectBeltInputBehaviour(this)); - - inputTank = new SmartFluidTankBehaviour(SmartFluidTankBehaviour.INPUT, this, 2, 1000, true) - .whenFluidUpdates(() -> contentsChanged = true); - outputTank = new SmartFluidTankBehaviour(SmartFluidTankBehaviour.OUTPUT, this, 2, 1000, true) - .whenFluidUpdates(() -> contentsChanged = true) - .forbidInsertion(); - behaviours.add(inputTank); - behaviours.add(outputTank); - - fluidCapability = LazyOptional.of(() -> { - LazyOptional inputCap = inputTank.getCapability(); - LazyOptional outputCap = outputTank.getCapability(); - return new CombinedTankWrapper(outputCap.orElse(null), inputCap.orElse(null)); - }); - } - - @Override - protected void read(CompoundTag compound, boolean clientPacket) { - super.read(compound, clientPacket); - - outputInventory.deserializeNBT(compound.getCompound("OutputItems")); - - } - - @Override - public void write(CompoundTag compound, boolean clientPacket) { - super.write(compound, clientPacket); - - compound.put("OutputItems", outputInventory.serializeNBT()); - - } -/* - @Override - public void destroy() { - super.destroy(); - - ItemHelper.dropContents(level, worldPosition, outputInventory); - spoutputBuffer.forEach(is -> Block.popResource(level, worldPosition, is)); - } - - */ - - @Override - public void remove() { - super.remove(); - onEmptied(); - } - - public void onEmptied() { - getOperator().ifPresent(te -> te.basinRemoved = true); - } - - @Override - public void invalidate() { - super.invalidate(); - itemCapability.invalidate(); - fluidCapability.invalidate(); - } - - @Nonnull - @Override - public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - return itemCapability.cast(); - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - - @Override - public void notifyUpdate() { - super.notifyUpdate(); - } - - @Override - public void lazyTick() { - super.lazyTick(); - notifyUpdate(); - if (!level.isClientSide) { - if (recipeBackupCheck-- > 0) - return; - recipeBackupCheck = 20; - - } - } - - - @Override - public void tick() { - super.tick(); - - - if (!contentsChanged) - return; - - contentsChanged = false; - getOperator().ifPresent(te -> te.basinChecker.scheduleUpdate()); - - for (Direction offset : Iterate.horizontalDirections) { - BlockPos toUpdate = worldPosition.above() - .relative(offset); - BlockState stateToUpdate = level.getBlockState(toUpdate); - if (stateToUpdate.getBlock() instanceof DistilleryControllerBlock) { - BlockEntity be = level.getBlockEntity(toUpdate); - if (be instanceof DistilleryControllerBlockEntity) - ((DistilleryControllerBlockEntity) be).contentsChanged = true; - } - } - } - - - - protected Optional getOperator() { - if (level == null) - return Optional.empty(); - BlockEntity te = level.getBlockEntity(worldPosition.above()); - if (te instanceof FluidProcessingBlockEntity) - return Optional.of((FluidProcessingBlockEntity) te); - return Optional.empty(); - } - - - - public void notifyChangeOfContents() { - contentsChanged = true; - } - - - - public SmartInventory getOutputInventory() { - return outputInventory; - } - - - public static BlazeBurnerBlock.HeatLevel getHeatLevelOf(BlockState state) { - if (state.hasProperty(BlazeBurnerBlock.HEAT_LEVEL)) - return state.getValue(BlazeBurnerBlock.HEAT_LEVEL); - return AllTags.AllBlockTags.PASSIVE_BOILER_HEATERS.matches(state) ? BlazeBurnerBlock.HeatLevel.SMOULDERING : BlazeBurnerBlock.HeatLevel.NONE; - } - - public Couple getTanks() { - return tanks; - } - - - @Override - public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { - return containedFluidTooltip(tooltip, isPlayerSneaking, - getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)); - } - - -} diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryOutputBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryOutputBlock.java deleted file mode 100644 index 37007a94..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryOutputBlock.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery; - - -import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.foundation.block.IBE; -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.pathfinder.PathComputationType; - -public class DistilleryOutputBlock extends Block implements IBE { - - public DistilleryOutputBlock(Properties properties) { - super(properties); - } - - @Override - public boolean canSurvive(BlockState state, LevelReader worldIn, BlockPos pos) { - return !AllBlocks.BASIN.has(worldIn.getBlockState(pos.below())); - } - - - @Override - public Class getBlockEntityClass() { - return DistilleryOutputBlockEntity.class; - } - - @Override - public BlockEntityType getBlockEntityType() { - return TFMGBlockEntities.CAST_IRON_DISTILLATION_OUTPUT.get(); - } - - @Override - public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { - return false; - } - -} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryOutputBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryOutputBlockEntity.java deleted file mode 100644 index dab35d2c..00000000 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/distillation/distillery/DistilleryOutputBlockEntity.java +++ /dev/null @@ -1,406 +0,0 @@ -package com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery; - - -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.FluidProcessingBlockEntity; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationControllerBlockEntity; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlockEntity; -import com.drmangotea.createindustry.recipes.distillation.AbstractDistillationRecipe; -import com.drmangotea.createindustry.recipes.distillation.DistillationRecipe; -import com.drmangotea.createindustry.registry.TFMGRecipeTypes; -import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; -import com.simibubi.create.content.kinetics.press.MechanicalPressBlockEntity; -import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; -import com.simibubi.create.content.processing.burner.BlazeBurnerBlockEntity; -import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; -import com.simibubi.create.foundation.fluid.SmartFluidTank; -import com.simibubi.create.foundation.recipe.RecipeFinder; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtUtils; -import net.minecraft.network.chat.Component; -import net.minecraft.world.Container; -import net.minecraft.world.item.crafting.CraftingRecipe; -import net.minecraft.world.item.crafting.Recipe; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.AABB; -import net.minecraftforge.common.capabilities.Capability; -import net.minecraftforge.common.crafting.IShapedRecipe; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.IFluidTank; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.fluids.capability.templates.FluidTank; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - -public class DistilleryOutputBlockEntity extends FluidProcessingBlockEntity implements IHaveGoggleInformation { - - protected LazyOptional fluidCapability; - public FluidTank tankInventory; - protected BlockPos lastKnownPos; - - private static final int SYNC_RATE = 8; - protected int syncCooldown; - protected boolean queuedSync; - - - private static final Object DistillationRecipesKey = new Object(); - - public boolean running; - - public DistilleryOutputBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { - super(type, pos, state); - tankInventory = createInventory(); - fluidCapability = LazyOptional.of(() -> tankInventory); - refreshCapability(); - } - - protected boolean matchItemlessRecipe(Recipe recipe) { - if (recipe == null) - return false; - Optional controller = getController(); - if (!controller.isPresent()) - return false; - return DistillationRecipe.match(controller.get(), recipe); - } - - @Override - protected boolean updateController() { - - - if (level == null || level.isClientSide) - return true; - - - recipe = getMatchingRecipes(); - startProcessing(); - sendData(); - return true; - } - - @Override - public void addBehaviours(List behaviours) { - super.addBehaviours(behaviours); - - } - - @Override - protected AABB createRenderBoundingBox() { - return new AABB(worldPosition).expandTowards(0, -1.5, 0); - } - - @Override - protected void read(CompoundTag compound, boolean clientPacket) { - running = compound.getBoolean("Running"); - - super.read(compound, clientPacket); - lastKnownPos = null; - - if (compound.contains("LastKnownPos")) - lastKnownPos = NbtUtils.readBlockPos(compound.getCompound("LastKnownPos")); - - - tankInventory.setCapacity(8000); - tankInventory.readFromNBT(compound.getCompound("TankContent")); - if (tankInventory.getSpace() < 0) - tankInventory.drain(-tankInventory.getSpace(), IFluidHandler.FluidAction.EXECUTE); - - } - @Override - public void write(CompoundTag compound, boolean clientPacket) { - compound.putBoolean("Running", running); - if (lastKnownPos != null) - compound.put("LastKnownPos", NbtUtils.writeBlockPos(lastKnownPos)); - - compound.put("TankContent", tankInventory.writeToNBT(new CompoundTag())); - - super.write(compound, clientPacket); - super.write(compound, clientPacket); - } - - @Override - public void tick() { - super.tick(); - if(this instanceof DistillationOutputBlockEntity) - return; - - - if (level != null) { - if ((!level.isClientSide || isVirtual())) { - process(); - sendData(); - } - } - if (syncCooldown > 0) { - syncCooldown--; - if (syncCooldown == 0 && queuedSync) - sendData(); - } - } - - protected void process() { - updateController(); - - if (recipe == null) - return; - - // if((currentRecipe instanceof ShapelessRecipe)) - // return; - - BlockEntity above1 = level.getBlockEntity(this.getBlockPos().above(1)); - BlockEntity above2 = level.getBlockEntity(this.getBlockPos().above(2)); - BlockEntity burner = level.getBlockEntity(this.getBlockPos().below(2)); - if(!(burner instanceof BlazeBurnerBlockEntity)) - return; - if(((BlazeBurnerBlockEntity) burner).getHeatLevelFromBlock()== BlazeBurnerBlock.HeatLevel.NONE) - return; - if(((BlazeBurnerBlockEntity) burner).getHeatLevelFromBlock()== BlazeBurnerBlock.HeatLevel.SMOULDERING) - return; - - -if(above1 !=null&& above2 !=null - // && - /// tankInventory.getFluidAmount()+ - /// ((DistillationRecipe)currentRecipe) - /// .getFirstFluidResult() - /// .getAmount() - /// <8000&& - // ((DistillationOutputBlockEntity) above1).tankInventory.getFluidAmount()+((DistillationRecipe)currentRecipe).getFluidResults().get(1).getAmount()<((DistillationOutputBlockEntity) above2).tankInventory.getCapacity()&& - // ((DistillationOutputBlockEntity) above2).tankInventory.getFluidAmount()+((DistillationRecipe)currentRecipe).getFluidResults().get(2).getAmount()<((DistillationOutputBlockEntity) above2).tankInventory.getCapacity() -){ - Optional optionalController = getController(); - if (!optionalController.isPresent()) - return; - - if(!(above1 instanceof DistilleryOutputBlockEntity)&& - !( above2 instanceof DistilleryOutputBlockEntity)) { - return; - } - - if(!(above1 instanceof DistilleryOutputBlockEntity)) - return; - if(!(above2 instanceof DistilleryOutputBlockEntity)) - return; - - - FluidStack fluidInRecipe1 = ((DistillationRecipe) recipe).getFirstFluidResult(); - FluidStack fluidInRecipe2 = ((DistillationRecipe) recipe).getSecondFluidResult(); - FluidStack fluidInRecipe3 = ((DistillationRecipe) recipe).getThirdFluidResult(); - - - - - if (fluidInRecipe1.getFluid() != this.tankInventory.getFluid().getFluid() - && tankInventory.getFluidAmount()!=0 - ) - return; - - if (fluidInRecipe2.getFluid() != (((DistilleryOutputBlockEntity) above1).tankInventory.getFluid().getFluid()) - &&((DistilleryOutputBlockEntity) above1).tankInventory.getFluidAmount()!=0 - ) - return; - if (fluidInRecipe3.getFluid() != (((DistilleryOutputBlockEntity) above2).tankInventory.getFluid().getFluid()) - &&((DistilleryOutputBlockEntity) above2).tankInventory.getFluidAmount()!=0 - ) - return; - - if( - tankInventory.getFluidAmount()+((DistillationRecipe) recipe).getFirstFluidResult().getAmount()>8000|| - ((DistilleryOutputBlockEntity)above1).tankInventory.getFluidAmount()+((DistillationRecipe) recipe).getFirstFluidResult().getAmount()>8000|| - ((DistilleryOutputBlockEntity)above2).tankInventory.getFluidAmount()+((DistillationRecipe) recipe).getFirstFluidResult().getAmount()>8000 - ) - return; - - - if(getController().get().getTanks().get(true).getPrimaryHandler().getFluid().getFluid() != ((DistillationRecipe) recipe).getInputFluid().getMatchingFluidStacks().get(0).getFluid()) - return; - - DistilleryControllerBlockEntity controller = optionalController.get(); - - - if(controller.outputInventory.getStackInSlot(0).getCount()>=1|| - controller.outputInventory.getStackInSlot(1).getCount()>=1|| - controller.outputInventory.getStackInSlot(2).getCount()>=1) - return; - - if (!controller.getTanks().get(true).isEmpty()) { - if(!level.isClientSide) { - // if(((DistillationRecipe)currentRecipe).getInputFluid().getMatchingFluidStacks().get(0).getFluid() != TFMGFluids.HEAVY_OIL.get()) - // return; - - controller.getTanks().get(true).getPrimaryHandler().drain(((DistillationRecipe) recipe).getFluidIngredients().get(0).getRequiredAmount(), IFluidHandler.FluidAction.EXECUTE); - - if (!(((DistillationRecipe) recipe).getFluidResults().get(0).isEmpty())) - tankInventory.setFluid(new FluidStack(((DistillationRecipe) recipe).getFluidResults().get(0).getFluid(), ((DistillationRecipe) recipe).getFluidResults().get(0).getAmount() + this.tankInventory.getFluidAmount())); - if (!(((DistillationRecipe) recipe).getFluidResults().get(1).isEmpty())) - ((DistilleryOutputBlockEntity) above1).tankInventory.setFluid(new FluidStack(((DistillationRecipe) recipe).getFluidResults().get(1).getFluid(), ((DistillationRecipe) recipe).getFluidResults().get(1).getAmount() + ((DistilleryOutputBlockEntity) above1).tankInventory.getFluidAmount())); - if (!(((DistillationRecipe) recipe).getFluidResults().get(2).isEmpty())) - ((DistilleryOutputBlockEntity) above2).tankInventory.setFluid(new FluidStack(((DistillationRecipe) recipe).getFluidResults().get(2).getFluid(), ((DistillationRecipe) recipe).getFluidResults().get(2).getAmount() + ((DistilleryOutputBlockEntity) above2).tankInventory.getFluidAmount())); - - - if (!(((DistillationRecipe) recipe).getFirstItemResult().isEmpty())) - controller.outputInventory.setItem(0, ((DistillationRecipe) recipe).getFirstItemResult()); - - if (!(((DistillationRecipe) recipe).getSecondItemResult().isEmpty())) - controller.outputInventory.setItem(1, ((DistillationRecipe) recipe).getSecondItemResult()); -} -/* -if(!(((DistillationRecipe) currentRecipe).getThirdItemResult().isEmpty())) - controller.outputInventory.setItem(2,((DistillationRecipe) currentRecipe).getFirstItemResult()); - - - */ - - controller.notifyChangeOfContents(); - } - -} - -} - - - protected DistillationRecipe getMatchingRecipes() { - - DistilleryControllerBlockEntity be=null; - - if(level.getBlockEntity(getBlockPos().below())instanceof DistilleryControllerBlockEntity) - be = (DistilleryControllerBlockEntity) level.getBlockEntity(getBlockPos().below()); - - if(be==null) - return null; - - List> list = RecipeFinder.get(getRecipeCacheKey(), level, this::matchStaticFilters); - - - for(int i = 0; i < list.toArray().length;i++){ - DistillationRecipe recipe = (DistillationRecipe) list.get(i); - for(int y = 0; y < recipe.getFluidIngredients().get(0).getMatchingFluidStacks().toArray().length;y++) - if(be.inputTank.getPrimaryHandler().getFluid().getFluid()==recipe.getFluidIngredients().get(0).getMatchingFluidStacks().get(y).getFluid()) - if(be.inputTank.getPrimaryHandler().getFluidAmount()>=recipe.getFluidIngredients().get(0).getRequiredAmount()) - return recipe; - } - - return null; - } - - protected boolean matchStaticFilters(Recipe r) { - return r instanceof DistillationRecipe; - } - - @Override - public void startProcessing() { - if (running ) - return; - super.startProcessing(); - running = true; - - } - - @Override - public boolean continueWithPreviousRecipe() { - return true; - } - - @Override - protected void onControllerRemoved() { - if (!running) - return; - - running = false; - } - - @Override - protected Object getRecipeCacheKey() { - return DistillationRecipesKey; - } - - @Override - protected boolean isRunning() { - return running; - } - - - - protected SmartFluidTank createInventory() { - return new SmartFluidTank(8000, this::onFluidStackChanged); - } - - - protected void onFluidStackChanged(FluidStack newFluidStack) { - if (!hasLevel()) - return; - - - } - - - @Override - public void sendData() { - if (syncCooldown > 0) { - queuedSync = true; - return; - } - super.sendData(); - queuedSync = false; - syncCooldown = SYNC_RATE; - } - - - - - - - private void refreshCapability() { - LazyOptional oldCap = fluidCapability; - fluidCapability = LazyOptional.of(() -> handlerForCapability()); - oldCap.invalidate(); - } - - private IFluidHandler handlerForCapability() { - - return tankInventory; - } - - - - - @SuppressWarnings("removal") - public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { - - return containedFluidTooltip(tooltip, isPlayerSneaking, - this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)); - } - - @Nonnull - @SuppressWarnings("removal") - @Override - public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { - if (!fluidCapability.isPresent()) - refreshCapability(); - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return fluidCapability.cast(); - return super.getCapability(cap, side); - } - - - public IFluidTank getTankInventory() { - return tankInventory; - } - - - public FluidStack getFluid(int tank) { - return tankInventory.getFluid() - .copy(); -} - -} - diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java index bf6b80e5..374aa98f 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java @@ -1,7 +1,5 @@ package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base; -import com.drmangotea.createindustry.CreateTFMG; -import com.drmangotea.createindustry.blocks.deposits.FluidDepositBlockEntity; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlocks; @@ -20,9 +18,9 @@ import net.minecraft.network.chat.Component; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.fluids.capability.templates.FluidTank; @@ -42,7 +40,7 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo protected LazyOptional fluidCapability; public FluidTank tankInventory; - public FluidDepositBlockEntity deposit; + public BlockPos deposit; public PumpjackBaseBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { super(type, pos, state); @@ -119,7 +117,7 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo BlockPos checkedPos = new BlockPos(this.getBlockPos().getX(), (this.getBlockPos().getY() - 1) - i, this.getBlockPos().getZ()); if (level.getBlockState(new BlockPos(checkedPos)).is(TFMGBlocks.OIL_DEPOSIT.get())) { - deposit = (FluidDepositBlockEntity) level.getBlockEntity(checkedPos); + deposit = checkedPos; return; } @@ -134,15 +132,14 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo } public void process() { - if (deposit == null || deposit.fluidAmount == 0) + if (deposit == null) return; if (tankInventory.getFluidAmount() + miningRate > 8000) return; - deposit.fluidAmount -= miningRate; - tankInventory.setFluid(new FluidStack(deposit.getDepositFluid(), tankInventory.getFluidAmount() + miningRate)); + tankInventory.setFluid(new FluidStack(TFMGFluids.CRUDE_OIL.getSource(), tankInventory.getFluidAmount() + miningRate)); } @@ -173,26 +170,14 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo LangBuilder mb = Lang.translate("generic.unit.millibuckets"); - Lang.translate("goggles.pumpjack.deposit_info") - .style(ChatFormatting.GRAY) - .forGoggles(tooltip); - if (!(deposit == null || deposit.fluidAmount == 0)) { - Lang.translate("goggles.pumpjack.fluid_amount") - .style(ChatFormatting.DARK_GRAY) - .add( - Lang.translate("pumpjack_deposit_amount", this.deposit.baseFluidAmount) - .style(ChatFormatting.BLUE) - // .add(mb)) - ).forGoggles(tooltip, 1); + //Lang.translate("pumpjack_deposit_amount", this.miningRate) + // .style(ChatFormatting.LIGHT_PURPLE) + // .forGoggles(tooltip, 1); - Lang.translate("pumpjack_deposit_amount", this.miningRate) - .style(ChatFormatting.LIGHT_PURPLE) - .forGoggles(tooltip, 1); - - } else { + if (deposit == null) { Lang.translate("goggles.zero") .style(ChatFormatting.DARK_RED) @@ -200,7 +185,7 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo } //--Fluid Info--// - LazyOptional handler = this.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY); + LazyOptional handler = this.getCapability(ForgeCapabilities.FLUID_HANDLER); Optional resolve = handler.resolve(); if (!resolve.isPresent()) return false; @@ -273,10 +258,10 @@ public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGo } @Nonnull @Override - @SuppressWarnings("removal") + public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + if (cap == ForgeCapabilities.FLUID_HANDLER) return fluidCapability.cast(); return super.getCapability(cap, side); } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/hammer/PumpjackContraption.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/hammer/PumpjackContraption.java index 766ad4d0..2b8fbf71 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/hammer/PumpjackContraption.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/oil_processing/pumpjack/hammer/PumpjackContraption.java @@ -1,7 +1,7 @@ package com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer; -import com.drmangotea.createindustry.base.TFMGContraptions; +import com.drmangotea.createindustry.registry.TFMGContraptions; import com.simibubi.create.content.contraptions.AssemblyException; import com.simibubi.create.content.contraptions.ContraptionType; import com.simibubi.create.content.contraptions.bearing.AnchoredLighter; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/AluminumPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/AluminumPipeBlock.java index 3bb292e1..b0072627 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/AluminumPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/AluminumPipeBlock.java @@ -1,9 +1,10 @@ package com.drmangotea.createindustry.blocks.pipes.normal.aluminum; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.AllBlocks; import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; import com.simibubi.create.content.fluids.FluidPropagator; @@ -151,7 +152,7 @@ public class AluminumPipeBlock extends FluidPipeBlock { .ifPresent($ -> AllAdvancements.GLASS_PIPE.awardTo(context.getPlayer()))); FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.GLASS_ALUMINUM_PIPE.getDefaultState() + world.setBlockAndUpdate(pos, TFMGPipes.GLASS_ALUMINUM_PIPE.getDefaultState() .setValue(GlassFluidPipeBlock.AXIS, axis) .setValue(BlockStateProperties.WATERLOGGED, state.getValue(BlockStateProperties.WATERLOGGED))); FluidTransportBehaviour.loadFlows(world, pos); @@ -165,7 +166,7 @@ public class AluminumPipeBlock extends FluidPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.ALUMINUM_PIPE.asStack(); + return TFMGPipes.ALUMINUM_PIPE.asStack(); } @Override public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, @@ -177,7 +178,7 @@ public class AluminumPipeBlock extends FluidPipeBlock { FluidTransportBehaviour.cacheFlows(world, pos); world.setBlockAndUpdate(pos, - EncasedPipeBlock.transferSixWayProperties(state, TFMGBlocks.COPPER_ENCASED_ALUMINUM_PIPE.getDefaultState())); + EncasedPipeBlock.transferSixWayProperties(state, TFMGPipes.COPPER_ENCASED_ALUMINUM_PIPE.getDefaultState())); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/EncasedAluminumPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/EncasedAluminumPipeBlock.java index 7b9a8db9..15c37839 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/EncasedAluminumPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/EncasedAluminumPipeBlock.java @@ -1,8 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.aluminum; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; @@ -30,7 +31,7 @@ public class EncasedAluminumPipeBlock extends EncasedPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.ALUMINUM_PIPE.asStack(); + return TFMGPipes.ALUMINUM_PIPE.asStack(); } @Override @@ -43,7 +44,7 @@ public class EncasedAluminumPipeBlock extends EncasedPipeBlock { context.getLevel() .levelEvent(2001, context.getClickedPos(), Block.getId(state)); - BlockState equivalentPipe = transferSixWayProperties(state, TFMGBlocks.ALUMINUM_PIPE.getDefaultState()); + BlockState equivalentPipe = transferSixWayProperties(state, TFMGPipes.ALUMINUM_PIPE.getDefaultState()); Direction firstFound = Direction.UP; for (Direction d : Iterate.directions) @@ -53,7 +54,7 @@ public class EncasedAluminumPipeBlock extends EncasedPipeBlock { } FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.ALUMINUM_PIPE.get() + world.setBlockAndUpdate(pos, TFMGPipes.ALUMINUM_PIPE.get() .updateBlockState(equivalentPipe, firstFound, null, world, pos)); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/GlassAluminumPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/GlassAluminumPipeBlock.java index 6da255d5..668e98f8 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/GlassAluminumPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/aluminum/GlassAluminumPipeBlock.java @@ -1,8 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.aluminum; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.AllBlocks; import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; @@ -36,19 +37,19 @@ public class GlassAluminumPipeBlock extends GlassFluidPipeBlock { @Override public ItemRequirement getRequiredItems(BlockState state, BlockEntity te) { - return ItemRequirement.of(TFMGBlocks.ALUMINUM_PIPE.getDefaultState(), te); + return ItemRequirement.of(TFMGPipes.ALUMINUM_PIPE.getDefaultState(), te); } @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.ALUMINUM_PIPE.asStack(); + return TFMGPipes.ALUMINUM_PIPE.asStack(); } @Override public BlockState toRegularPipe(LevelAccessor world, BlockPos pos, BlockState state) { Direction side = Direction.get(Direction.AxisDirection.POSITIVE, state.getValue(AXIS)); Map facingToPropertyMap = FluidPipeBlock.PROPERTY_BY_DIRECTION; - return TFMGBlocks.ALUMINUM_PIPE.get() - .updateBlockState(TFMGBlocks.ALUMINUM_PIPE.getDefaultState() + return TFMGPipes.ALUMINUM_PIPE.get() + .updateBlockState(TFMGPipes.ALUMINUM_PIPE.getDefaultState() .setValue(facingToPropertyMap.get(side), true) .setValue(facingToPropertyMap.get(side.getOpposite()), true), side, null, world, pos); } @@ -59,7 +60,7 @@ public class GlassAluminumPipeBlock extends GlassFluidPipeBlock { return InteractionResult.PASS; if (world.isClientSide) return InteractionResult.SUCCESS; - BlockState newState = TFMGBlocks.COPPER_ENCASED_ALUMINUM_PIPE.getDefaultState(); + BlockState newState = TFMGPipes.COPPER_ENCASED_ALUMINUM_PIPE.getDefaultState(); for (Direction d : Iterate.directionsInAxis(getAxis(state))) newState = newState.setValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(d), true); FluidTransportBehaviour.cacheFlows(world, pos); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/BrassPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/BrassPipeBlock.java index ec42b966..b4e8d67c 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/BrassPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/BrassPipeBlock.java @@ -1,9 +1,10 @@ package com.drmangotea.createindustry.blocks.pipes.normal.brass; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.AllBlocks; import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; import com.simibubi.create.content.fluids.FluidPropagator; @@ -151,7 +152,7 @@ public class BrassPipeBlock extends FluidPipeBlock { .ifPresent($ -> AllAdvancements.GLASS_PIPE.awardTo(context.getPlayer()))); FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.GLASS_BRASS_PIPE.getDefaultState() + world.setBlockAndUpdate(pos, TFMGPipes.GLASS_BRASS_PIPE.getDefaultState() .setValue(GlassFluidPipeBlock.AXIS, axis) .setValue(BlockStateProperties.WATERLOGGED, state.getValue(BlockStateProperties.WATERLOGGED))); FluidTransportBehaviour.loadFlows(world, pos); @@ -165,7 +166,7 @@ public class BrassPipeBlock extends FluidPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.BRASS_PIPE.asStack(); + return TFMGPipes.BRASS_PIPE.asStack(); } @Override public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, @@ -177,7 +178,7 @@ public class BrassPipeBlock extends FluidPipeBlock { FluidTransportBehaviour.cacheFlows(world, pos); world.setBlockAndUpdate(pos, - EncasedPipeBlock.transferSixWayProperties(state, TFMGBlocks.COPPER_ENCASED_BRASS_PIPE.getDefaultState())); + EncasedPipeBlock.transferSixWayProperties(state, TFMGPipes.COPPER_ENCASED_BRASS_PIPE.getDefaultState())); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/EncasedBrassPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/EncasedBrassPipeBlock.java index bad3bca9..2ff359cf 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/EncasedBrassPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/EncasedBrassPipeBlock.java @@ -1,8 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.brass; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; @@ -30,7 +31,7 @@ public class EncasedBrassPipeBlock extends EncasedPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.BRASS_PIPE.asStack(); + return TFMGPipes.BRASS_PIPE.asStack(); } @Override @@ -43,7 +44,7 @@ public class EncasedBrassPipeBlock extends EncasedPipeBlock { context.getLevel() .levelEvent(2001, context.getClickedPos(), Block.getId(state)); - BlockState equivalentPipe = transferSixWayProperties(state, TFMGBlocks.BRASS_PIPE.getDefaultState()); + BlockState equivalentPipe = transferSixWayProperties(state, TFMGPipes.BRASS_PIPE.getDefaultState()); Direction firstFound = Direction.UP; for (Direction d : Iterate.directions) @@ -53,7 +54,7 @@ public class EncasedBrassPipeBlock extends EncasedPipeBlock { } FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.BRASS_PIPE.get() + world.setBlockAndUpdate(pos, TFMGPipes.BRASS_PIPE.get() .updateBlockState(equivalentPipe, firstFound, null, world, pos)); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/GlassBrassPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/GlassBrassPipeBlock.java index 2504d4b8..afe53a87 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/GlassBrassPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/brass/GlassBrassPipeBlock.java @@ -1,8 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.brass; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.AllBlocks; import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; @@ -36,19 +37,19 @@ public class GlassBrassPipeBlock extends GlassFluidPipeBlock { @Override public ItemRequirement getRequiredItems(BlockState state, BlockEntity te) { - return ItemRequirement.of(TFMGBlocks.BRASS_PIPE.getDefaultState(), te); + return ItemRequirement.of(TFMGPipes.BRASS_PIPE.getDefaultState(), te); } @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.BRASS_PIPE.asStack(); + return TFMGPipes.BRASS_PIPE.asStack(); } @Override public BlockState toRegularPipe(LevelAccessor world, BlockPos pos, BlockState state) { Direction side = Direction.get(Direction.AxisDirection.POSITIVE, state.getValue(AXIS)); Map facingToPropertyMap = FluidPipeBlock.PROPERTY_BY_DIRECTION; - return TFMGBlocks.BRASS_PIPE.get() - .updateBlockState(TFMGBlocks.BRASS_PIPE.getDefaultState() + return TFMGPipes.BRASS_PIPE.get() + .updateBlockState(TFMGPipes.BRASS_PIPE.getDefaultState() .setValue(facingToPropertyMap.get(side), true) .setValue(facingToPropertyMap.get(side.getOpposite()), true), side, null, world, pos); } @@ -59,7 +60,7 @@ public class GlassBrassPipeBlock extends GlassFluidPipeBlock { return InteractionResult.PASS; if (world.isClientSide) return InteractionResult.SUCCESS; - BlockState newState = TFMGBlocks.COPPER_ENCASED_BRASS_PIPE.getDefaultState(); + BlockState newState = TFMGPipes.COPPER_ENCASED_BRASS_PIPE.getDefaultState(); for (Direction d : Iterate.directionsInAxis(getAxis(state))) newState = newState.setValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(d), true); FluidTransportBehaviour.cacheFlows(world, pos); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/CastIronPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/CastIronPipeBlock.java index f881c112..7fb85b41 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/CastIronPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/CastIronPipeBlock.java @@ -1,9 +1,10 @@ package com.drmangotea.createindustry.blocks.pipes.normal.cast_iron; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.AllBlocks; import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; import com.simibubi.create.content.fluids.FluidPropagator; @@ -151,7 +152,7 @@ public class CastIronPipeBlock extends FluidPipeBlock { .ifPresent($ -> AllAdvancements.GLASS_PIPE.awardTo(context.getPlayer()))); FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.GLASS_CAST_IRON_PIPE.getDefaultState() + world.setBlockAndUpdate(pos, TFMGPipes.GLASS_CAST_IRON_PIPE.getDefaultState() .setValue(GlassFluidPipeBlock.AXIS, axis) .setValue(BlockStateProperties.WATERLOGGED, state.getValue(BlockStateProperties.WATERLOGGED))); FluidTransportBehaviour.loadFlows(world, pos); @@ -165,7 +166,7 @@ public class CastIronPipeBlock extends FluidPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.CAST_IRON_PIPE.asStack(); + return TFMGPipes.CAST_IRON_PIPE.asStack(); } @Override public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, @@ -177,7 +178,7 @@ public class CastIronPipeBlock extends FluidPipeBlock { FluidTransportBehaviour.cacheFlows(world, pos); world.setBlockAndUpdate(pos, - EncasedPipeBlock.transferSixWayProperties(state, TFMGBlocks.COPPER_ENCASED_CAST_IRON_PIPE.getDefaultState())); + EncasedPipeBlock.transferSixWayProperties(state, TFMGPipes.COPPER_ENCASED_CAST_IRON_PIPE.getDefaultState())); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/EncasedCastIronPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/EncasedCastIronPipeBlock.java index f1fe87ac..61ce9995 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/EncasedCastIronPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/EncasedCastIronPipeBlock.java @@ -1,8 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.cast_iron; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; @@ -30,7 +31,7 @@ public class EncasedCastIronPipeBlock extends EncasedPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.CAST_IRON_PIPE.asStack(); + return TFMGPipes.CAST_IRON_PIPE.asStack(); } @Override @@ -43,7 +44,7 @@ public class EncasedCastIronPipeBlock extends EncasedPipeBlock { context.getLevel() .levelEvent(2001, context.getClickedPos(), Block.getId(state)); - BlockState equivalentPipe = transferSixWayProperties(state, TFMGBlocks.CAST_IRON_PIPE.getDefaultState()); + BlockState equivalentPipe = transferSixWayProperties(state, TFMGPipes.CAST_IRON_PIPE.getDefaultState()); Direction firstFound = Direction.UP; for (Direction d : Iterate.directions) @@ -53,7 +54,7 @@ public class EncasedCastIronPipeBlock extends EncasedPipeBlock { } FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.CAST_IRON_PIPE.get() + world.setBlockAndUpdate(pos, TFMGPipes.CAST_IRON_PIPE.get() .updateBlockState(equivalentPipe, firstFound, null, world, pos)); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/GlassCastIronPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/GlassCastIronPipeBlock.java index 802c0c89..6b1a4bd3 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/GlassCastIronPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/cast_iron/GlassCastIronPipeBlock.java @@ -1,8 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.cast_iron; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.AllBlocks; import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; @@ -36,19 +37,19 @@ public class GlassCastIronPipeBlock extends GlassFluidPipeBlock { @Override public ItemRequirement getRequiredItems(BlockState state, BlockEntity te) { - return ItemRequirement.of(TFMGBlocks.CAST_IRON_PIPE.getDefaultState(), te); + return ItemRequirement.of(TFMGPipes.CAST_IRON_PIPE.getDefaultState(), te); } @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.CAST_IRON_PIPE.asStack(); + return TFMGPipes.CAST_IRON_PIPE.asStack(); } @Override public BlockState toRegularPipe(LevelAccessor world, BlockPos pos, BlockState state) { Direction side = Direction.get(Direction.AxisDirection.POSITIVE, state.getValue(AXIS)); Map facingToPropertyMap = FluidPipeBlock.PROPERTY_BY_DIRECTION; - return TFMGBlocks.CAST_IRON_PIPE.get() - .updateBlockState(TFMGBlocks.CAST_IRON_PIPE.getDefaultState() + return TFMGPipes.CAST_IRON_PIPE.get() + .updateBlockState(TFMGPipes.CAST_IRON_PIPE.getDefaultState() .setValue(facingToPropertyMap.get(side), true) .setValue(facingToPropertyMap.get(side.getOpposite()), true), side, null, world, pos); } @@ -59,7 +60,7 @@ public class GlassCastIronPipeBlock extends GlassFluidPipeBlock { return InteractionResult.PASS; if (world.isClientSide) return InteractionResult.SUCCESS; - BlockState newState = TFMGBlocks.COPPER_ENCASED_CAST_IRON_PIPE.getDefaultState(); + BlockState newState = TFMGPipes.COPPER_ENCASED_CAST_IRON_PIPE.getDefaultState(); for (Direction d : Iterate.directionsInAxis(getAxis(state))) newState = newState.setValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(d), true); FluidTransportBehaviour.cacheFlows(world, pos); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/EncasedPlasticPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/EncasedPlasticPipeBlock.java index d0afab5f..db749302 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/EncasedPlasticPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/EncasedPlasticPipeBlock.java @@ -1,8 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.plastic; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; @@ -30,7 +31,7 @@ public class EncasedPlasticPipeBlock extends EncasedPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.PLASTIC_PIPE.asStack(); + return TFMGPipes.PLASTIC_PIPE.asStack(); } @Override @@ -43,7 +44,7 @@ public class EncasedPlasticPipeBlock extends EncasedPipeBlock { context.getLevel() .levelEvent(2001, context.getClickedPos(), Block.getId(state)); - BlockState equivalentPipe = transferSixWayProperties(state, TFMGBlocks.PLASTIC_PIPE.getDefaultState()); + BlockState equivalentPipe = transferSixWayProperties(state, TFMGPipes.PLASTIC_PIPE.getDefaultState()); Direction firstFound = Direction.UP; for (Direction d : Iterate.directions) @@ -53,7 +54,7 @@ public class EncasedPlasticPipeBlock extends EncasedPipeBlock { } FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.PLASTIC_PIPE.get() + world.setBlockAndUpdate(pos, TFMGPipes.PLASTIC_PIPE.get() .updateBlockState(equivalentPipe, firstFound, null, world, pos)); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/GlassPlasticPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/GlassPlasticPipeBlock.java index 092a1f0f..3f0451dc 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/GlassPlasticPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/GlassPlasticPipeBlock.java @@ -1,8 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.plastic; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; + import com.simibubi.create.AllBlocks; import com.simibubi.create.content.fluids.FluidTransportBehaviour; import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; @@ -36,19 +37,19 @@ public class GlassPlasticPipeBlock extends GlassFluidPipeBlock { @Override public ItemRequirement getRequiredItems(BlockState state, BlockEntity te) { - return ItemRequirement.of(TFMGBlocks.PLASTIC_PIPE.getDefaultState(), te); + return ItemRequirement.of(TFMGPipes.PLASTIC_PIPE.getDefaultState(), te); } @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.PLASTIC_PIPE.asStack(); + return TFMGPipes.PLASTIC_PIPE.asStack(); } @Override public BlockState toRegularPipe(LevelAccessor world, BlockPos pos, BlockState state) { Direction side = Direction.get(Direction.AxisDirection.POSITIVE, state.getValue(AXIS)); Map facingToPropertyMap = FluidPipeBlock.PROPERTY_BY_DIRECTION; - return TFMGBlocks.PLASTIC_PIPE.get() - .updateBlockState(TFMGBlocks.PLASTIC_PIPE.getDefaultState() + return TFMGPipes.PLASTIC_PIPE.get() + .updateBlockState(TFMGPipes.PLASTIC_PIPE.getDefaultState() .setValue(facingToPropertyMap.get(side), true) .setValue(facingToPropertyMap.get(side.getOpposite()), true), side, null, world, pos); } @@ -59,7 +60,7 @@ public class GlassPlasticPipeBlock extends GlassFluidPipeBlock { return InteractionResult.PASS; if (world.isClientSide) return InteractionResult.SUCCESS; - BlockState newState = TFMGBlocks.COPPER_ENCASED_PLASTIC_PIPE.getDefaultState(); + BlockState newState = TFMGPipes.COPPER_ENCASED_PLASTIC_PIPE.getDefaultState(); for (Direction d : Iterate.directionsInAxis(getAxis(state))) newState = newState.setValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(d), true); FluidTransportBehaviour.cacheFlows(world, pos); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/PlasticPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/PlasticPipeBlock.java index 1b2ffd16..03bfaa1d 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/PlasticPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/plastic/PlasticPipeBlock.java @@ -1,9 +1,9 @@ package com.drmangotea.createindustry.blocks.pipes.normal.plastic; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlockEntities; -import com.drmangotea.createindustry.registry.TFMGBlocks; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; import com.simibubi.create.content.fluids.FluidPropagator; @@ -151,7 +151,7 @@ public class PlasticPipeBlock extends FluidPipeBlock { .ifPresent($ -> AllAdvancements.GLASS_PIPE.awardTo(context.getPlayer()))); FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.GLASS_PLASTIC_PIPE.getDefaultState() + world.setBlockAndUpdate(pos, TFMGPipes.GLASS_PLASTIC_PIPE.getDefaultState() .setValue(GlassFluidPipeBlock.AXIS, axis) .setValue(BlockStateProperties.WATERLOGGED, state.getValue(BlockStateProperties.WATERLOGGED))); FluidTransportBehaviour.loadFlows(world, pos); @@ -165,7 +165,7 @@ public class PlasticPipeBlock extends FluidPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.PLASTIC_PIPE.asStack(); + return TFMGPipes.PLASTIC_PIPE.asStack(); } @Override public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, @@ -177,7 +177,7 @@ public class PlasticPipeBlock extends FluidPipeBlock { FluidTransportBehaviour.cacheFlows(world, pos); world.setBlockAndUpdate(pos, - EncasedPipeBlock.transferSixWayProperties(state, TFMGBlocks.COPPER_ENCASED_PLASTIC_PIPE.getDefaultState())); + EncasedPipeBlock.transferSixWayProperties(state, TFMGPipes.COPPER_ENCASED_PLASTIC_PIPE.getDefaultState())); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/EncasedSteelPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/EncasedSteelPipeBlock.java index 3a84696e..8930d154 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/EncasedSteelPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/EncasedSteelPipeBlock.java @@ -1,6 +1,7 @@ package com.drmangotea.createindustry.blocks.pipes.normal.steel; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.simibubi.create.content.fluids.FluidTransportBehaviour; @@ -30,7 +31,7 @@ public class EncasedSteelPipeBlock extends EncasedPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.STEEL_PIPE.asStack(); + return TFMGPipes.STEEL_PIPE.asStack(); } @Override @@ -43,7 +44,7 @@ public class EncasedSteelPipeBlock extends EncasedPipeBlock { context.getLevel() .levelEvent(2001, context.getClickedPos(), Block.getId(state)); - BlockState equivalentPipe = transferSixWayProperties(state, TFMGBlocks.STEEL_PIPE.getDefaultState()); + BlockState equivalentPipe = transferSixWayProperties(state, TFMGPipes.STEEL_PIPE.getDefaultState()); Direction firstFound = Direction.UP; for (Direction d : Iterate.directions) @@ -53,7 +54,7 @@ public class EncasedSteelPipeBlock extends EncasedPipeBlock { } FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.STEEL_PIPE.get() + world.setBlockAndUpdate(pos, TFMGPipes.STEEL_PIPE.get() .updateBlockState(equivalentPipe, firstFound, null, world, pos)); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/GlassSteelPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/GlassSteelPipeBlock.java index 94177c11..e9226a77 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/GlassSteelPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/GlassSteelPipeBlock.java @@ -1,6 +1,7 @@ package com.drmangotea.createindustry.blocks.pipes.normal.steel; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlockEntities; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.simibubi.create.AllBlocks; @@ -36,19 +37,19 @@ public class GlassSteelPipeBlock extends GlassFluidPipeBlock { @Override public ItemRequirement getRequiredItems(BlockState state, BlockEntity te) { - return ItemRequirement.of(TFMGBlocks.STEEL_PIPE.getDefaultState(), te); + return ItemRequirement.of(TFMGPipes.STEEL_PIPE.getDefaultState(), te); } @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.STEEL_PIPE.asStack(); + return TFMGPipes.STEEL_PIPE.asStack(); } @Override public BlockState toRegularPipe(LevelAccessor world, BlockPos pos, BlockState state) { Direction side = Direction.get(Direction.AxisDirection.POSITIVE, state.getValue(AXIS)); Map facingToPropertyMap = FluidPipeBlock.PROPERTY_BY_DIRECTION; - return TFMGBlocks.STEEL_PIPE.get() - .updateBlockState(TFMGBlocks.STEEL_PIPE.getDefaultState() + return TFMGPipes.STEEL_PIPE.get() + .updateBlockState(TFMGPipes.STEEL_PIPE.getDefaultState() .setValue(facingToPropertyMap.get(side), true) .setValue(facingToPropertyMap.get(side.getOpposite()), true), side, null, world, pos); } @@ -59,7 +60,7 @@ public class GlassSteelPipeBlock extends GlassFluidPipeBlock { return InteractionResult.PASS; if (world.isClientSide) return InteractionResult.SUCCESS; - BlockState newState = TFMGBlocks.COPPER_ENCASED_STEEL_PIPE.getDefaultState(); + BlockState newState = TFMGPipes.COPPER_ENCASED_STEEL_PIPE.getDefaultState(); for (Direction d : Iterate.directionsInAxis(getAxis(state))) newState = newState.setValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(d), true); FluidTransportBehaviour.cacheFlows(world, pos); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/SteelPipeBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/SteelPipeBlock.java index 3bf62ef6..659eb1b9 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/SteelPipeBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/pipes/normal/steel/SteelPipeBlock.java @@ -1,6 +1,7 @@ package com.drmangotea.createindustry.blocks.pipes.normal.steel; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlockEntities; import com.drmangotea.createindustry.registry.TFMGBlocks; @@ -151,7 +152,7 @@ public class SteelPipeBlock extends FluidPipeBlock { .ifPresent($ -> AllAdvancements.GLASS_PIPE.awardTo(context.getPlayer()))); FluidTransportBehaviour.cacheFlows(world, pos); - world.setBlockAndUpdate(pos, TFMGBlocks.GLASS_STEEL_PIPE.getDefaultState() + world.setBlockAndUpdate(pos, TFMGPipes.GLASS_STEEL_PIPE.getDefaultState() .setValue(GlassFluidPipeBlock.AXIS, axis) .setValue(BlockStateProperties.WATERLOGGED, state.getValue(BlockStateProperties.WATERLOGGED))); FluidTransportBehaviour.loadFlows(world, pos); @@ -165,7 +166,7 @@ public class SteelPipeBlock extends FluidPipeBlock { @Override public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { - return TFMGBlocks.STEEL_PIPE.asStack(); + return TFMGPipes.STEEL_PIPE.asStack(); } @Override public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, @@ -177,7 +178,7 @@ public class SteelPipeBlock extends FluidPipeBlock { FluidTransportBehaviour.cacheFlows(world, pos); world.setBlockAndUpdate(pos, - EncasedPipeBlock.transferSixWayProperties(state, TFMGBlocks.COPPER_ENCASED_STEEL_PIPE.getDefaultState())); + EncasedPipeBlock.transferSixWayProperties(state, TFMGPipes.COPPER_ENCASED_STEEL_PIPE.getDefaultState())); FluidTransportBehaviour.loadFlows(world, pos); return InteractionResult.SUCCESS; diff --git a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankRenderer.java b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankRenderer.java index 5447f634..ad523cad 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/tanks/SteelFluidTankRenderer.java @@ -30,8 +30,8 @@ public class SteelFluidTankRenderer extends SafeBlockEntityRenderer 0) { @@ -115,8 +135,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG updateConnectivity(); if (fluidLevel != null) fluidLevel.tickChaser(); - if (isController()) - tower.tick(this); + } @Override @@ -222,7 +241,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG controller = null; width = 1; height = 1; - tower.clear(); + onFluidStackChanged(tankInventory.getFluid()); BlockState state = getBlockState(); @@ -242,19 +261,12 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG SteelTankBlockEntity te = getControllerBE(); if (te == null) return; - if (te.tower.isActive()) + if (isDistillationTower) return; te.setWindows(!te.window); } - public void updateBoilerTemperature() { - SteelTankBlockEntity te = getControllerBE(); - if (te == null) - return; - if (!te.tower.isActive()) - return; - te.tower.needsHeatLevelUpdate = true; - } + public void sendDataImmediately() { syncCooldown = 0; @@ -311,11 +323,11 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG if (!isController()) return; - boolean wasBoiler = tower.isActive(); - boolean changed = tower.evaluate(this); + boolean wasTower = isDistillationTower; + boolean changed = evaluate(); - if (wasBoiler != tower.isActive()) { - if (tower.isActive()) + if (wasTower != isDistillationTower) { + if (isDistillationTower) setWindows(false); for (int yOffset = 0; yOffset < height; yOffset++) @@ -328,10 +340,74 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG if (changed) { notifyUpdate(); + refreshCapability(); } } + public boolean evaluate() { + boolean hadController = isDistillationTower; + boolean foundController = false; + + BlockPos pos1 = controller == null ? getBlockPos() : controller; + + for (int yOffset = 0; yOffset < getControllerBE().height; yOffset++) { + for (int xOffset = 0; xOffset < getControllerBE().width; xOffset++) { + for (int zOffset = 0; zOffset < getControllerBE().width; zOffset++) { + + BlockPos pos = pos1.offset(xOffset, yOffset, zOffset); + BlockState blockState = level.getBlockState(pos); + if (!SteelTankBlock.isTank(blockState)) + continue; + for (Direction d : Iterate.directions) { + BlockPos attachedPos = pos.relative(d); + BlockState attachedState = level.getBlockState(attachedPos); + + if (attachedState.is(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER.get())) { + + if(!foundController) { + foundController = true; + }else + level.destroyBlock(attachedPos,true); + + } + + } + } + } + } + isDistillationTower = foundController; + + return hadController != foundController; + } + + public void updateTemperature() { + + int prevHeat = activeHeat; + + activeHeat = 0; + + BlockPos pos1 = controller == null ? getBlockPos() : controller; + + SteelTankBlockEntity be = getControllerBE() == null ? this : getControllerBE(); + + for (int xOffset = 0; xOffset < be.width; xOffset++) { + for (int zOffset = 0; zOffset < be.width; zOffset++) { + BlockPos pos = pos1.offset(xOffset, -1, zOffset); + BlockState blockState = level.getBlockState(pos); + float heat = BoilerHeaters.getActiveHeat(level, pos, blockState); + if (heat > 0) { + activeHeat += heat; + } + } + } + + if(activeHeat!=prevHeat) + notifyUpdate(); + + + + } @Override public void setController(BlockPos controller) { if (level.isClientSide && !isVirtual()) @@ -344,22 +420,23 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG sendData(); } - private void refreshCapability() { + public void refreshCapability() { LazyOptional oldCap = fluidCapability; fluidCapability = LazyOptional.of(() -> handlerForCapability()); oldCap.invalidate(); } - private IFluidHandler handlerForCapability() { - return isController() - ? tower.isActive() - ? tower.createHandler() - : tankInventory - : getControllerBE() != null ? getControllerBE().handlerForCapability() - : new FluidTank(0); - } + + + private IFluidHandler handlerForCapability() { + return isController() ? + tankInventory + : getControllerBE() != null ? getControllerBE().handlerForCapability() : tankInventory; + } + + @Override public BlockPos getController() { @@ -385,12 +462,16 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG @Override public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { SteelTankBlockEntity controllerTE = getControllerBE(); - if (controllerTE == null) + + if(isDistillationTower) return false; - if (controllerTE.tower.addToGoggleTooltip(tooltip, isPlayerSneaking, controllerTE.getTotalTankSize())) - return true; + + if(getControllerBE()!=null) + if(getControllerBE().isDistillationTower) + return false; + return containedFluidTooltip(tooltip, isPlayerSneaking, - controllerTE.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)); + controllerTE.getCapability(ForgeCapabilities.FLUID_HANDLER)); } @Override @@ -406,6 +487,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG luminosity = compound.getInt("Luminosity"); controller = null; lastKnownPos = null; + isDistillationTower = compound.getBoolean("isDistillationTower"); if (compound.contains("LastKnownPos")) lastKnownPos = NbtUtils.readBlockPos(compound.getCompound("LastKnownPos")); @@ -422,7 +504,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG tankInventory.drain(-tankInventory.getSpace(), FluidAction.EXECUTE); } - tower.read(compound.getCompound("Boiler"), width * width * height); + if (compound.contains("ForceFluidLevel") || fluidLevel == null) fluidLevel = LerpedFloat.linear() @@ -456,16 +538,8 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG fluidLevel.chase(fluidLevel.getChaseTarget(), 0.125f, Chaser.EXP); } public void getGaugeRotation(){ - int level=tower.towerLevel; - if(level>=12){ - gaugeRotation=90; - } else - if(level>=4){ - gaugeRotation=45; - } else{ - gaugeRotation=0; - } + gaugeRotation = Math.min(90,activeHeat*15); } @@ -478,7 +552,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG if (updateConnectivity) compound.putBoolean("Uninitialized", true); - compound.put("Boiler", tower.write()); + compound.putBoolean("isDistillationTower",isDistillationTower); if (lastKnownPos != null) compound.put("LastKnownPos", NbtUtils.writeBlockPos(lastKnownPos)); if (!isController()) @@ -507,7 +581,7 @@ public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveG public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { if (!fluidCapability.isPresent()) refreshCapability(); - if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + if (cap == ForgeCapabilities.FLUID_HANDLER) return fluidCapability.cast(); return super.getCapability(cap, side); } diff --git a/src/main/java/com/drmangotea/createindustry/items/CreosoteBucketItem.java b/src/main/java/com/drmangotea/createindustry/items/BadFuelBucketItem.java similarity index 66% rename from src/main/java/com/drmangotea/createindustry/items/CreosoteBucketItem.java rename to src/main/java/com/drmangotea/createindustry/items/BadFuelBucketItem.java index bfbbb195..d2036337 100644 --- a/src/main/java/com/drmangotea/createindustry/items/CreosoteBucketItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/BadFuelBucketItem.java @@ -7,16 +7,16 @@ import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.material.Fluid; import org.jetbrains.annotations.Nullable; -public class CreosoteBucketItem extends BucketItem { - public CreosoteBucketItem(Fluid p_40689_, Properties p_40690_) { +public class BadFuelBucketItem extends BucketItem { + public BadFuelBucketItem(Fluid p_40689_, Properties p_40690_) { super(p_40689_, p_40690_); } - public CreosoteBucketItem(java.util.function.Supplier supplier, Item.Properties builder) { + public BadFuelBucketItem(java.util.function.Supplier supplier, Item.Properties builder) { super(supplier,builder); } @Override public int getBurnTime(ItemStack itemStack, @Nullable RecipeType recipeType) { - return 800; + return 200; } } diff --git a/src/main/java/com/drmangotea/createindustry/items/ScrewdriverItem.java b/src/main/java/com/drmangotea/createindustry/items/ScrewdriverItem.java index ea48fb8c..1d2fc9cf 100644 --- a/src/main/java/com/drmangotea/createindustry/items/ScrewdriverItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/ScrewdriverItem.java @@ -1,5 +1,6 @@ package com.drmangotea.createindustry.items; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; @@ -39,9 +40,9 @@ public class ScrewdriverItem extends Item { if( - level.getBlockState(positionClicked).is(TFMGBlocks.STEEL_PIPE.get())|| - level.getBlockState(positionClicked).is(TFMGBlocks.ALUMINUM_PIPE.get())|| - level.getBlockState(positionClicked).is(TFMGBlocks.PLASTIC_PIPE.get()) + level.getBlockState(positionClicked).is(TFMGPipes.STEEL_PIPE.get())|| + level.getBlockState(positionClicked).is(TFMGPipes.ALUMINUM_PIPE.get())|| + level.getBlockState(positionClicked).is(TFMGPipes.PLASTIC_PIPE.get()) ) { //level.playSound(player, positionClicked, SoundEvents.COPPER_STEP, SoundSource.BLOCKS, 0.3f,0.5f); ((LockablePipeBlockEntity)level.getBlockEntity(positionClicked)).toggleLock(player); diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombBlock.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombBlock.java similarity index 98% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombBlock.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombBlock.java index a3dc9b4f..14f40f3e 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombBlock.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.napalm; +package com.drmangotea.createindustry.items.weapons.explosives.napalm; import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundEvents; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombEntity.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombEntity.java similarity index 81% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombEntity.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombEntity.java index 4081b635..9604d413 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombEntity.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombEntity.java @@ -1,9 +1,11 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.napalm; +package com.drmangotea.createindustry.items.weapons.explosives.napalm; -import com.drmangotea.createindustry.base.spark.Spark; +import com.drmangotea.createindustry.base.util.TFMGUtils; +import com.drmangotea.createindustry.base.util.spark.Spark; import com.drmangotea.createindustry.registry.TFMGEntityTypes; import com.simibubi.create.Create; +import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; @@ -84,17 +86,19 @@ public class NapalmBombEntity extends Entity { protected void explode() { - float f = 4.0F; - for (int i=0; i<40;i++){ - float x= Create.RANDOM.nextFloat(360); - float y= Create.RANDOM.nextFloat(360); - float z= Create.RANDOM.nextFloat(360); - Spark spark = TFMGEntityTypes.SPARK.create(level); - spark.moveTo(this.getX(), this.getY()+1, this.getZ()); - spark.shootFromRotation( this,x,y,z,0.3f,1); - this.level.addFreshEntity(spark); - } - this.level.explode(this, this.getX(), this.getY(0.0625D), this.getZ(), 2.5F, Explosion.BlockInteraction.BREAK); + TFMGUtils.createFireExplosion(level,this,new BlockPos(getX(),getY(),getZ()),40,2.5f); + + // float f = 4.0F; + // for (int i=0; i<40;i++){ + // float x= Create.RANDOM.nextFloat(360); + // float y= Create.RANDOM.nextFloat(360); + // float z= Create.RANDOM.nextFloat(360); + // Spark spark = TFMGEntityTypes.SPARK.create(level); + // spark.moveTo(this.getX(), this.getY()+1, this.getZ()); + // spark.shootFromRotation( this,x,y,z,0.3f,1); + // this.level.addFreshEntity(spark); + // } + // this.level.explode(this, this.getX(), this.getY(0.0625D), this.getZ(), 2.5F, Explosion.BlockInteraction.BREAK); } diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombRenderer.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombRenderer.java similarity index 97% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombRenderer.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombRenderer.java index 45e79887..4ea3ddd5 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/napalm/NapalmBombRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/napalm/NapalmBombRenderer.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.napalm; +package com.drmangotea.createindustry.items.weapons.explosives.napalm; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.mojang.blaze3d.vertex.PoseStack; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ChemicalColor.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ChemicalColor.java similarity index 55% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ChemicalColor.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ChemicalColor.java index f1ff97cf..e1335b02 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ChemicalColor.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ChemicalColor.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades; +package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades; public enum ChemicalColor { BASE, diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenade.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenade.java similarity index 94% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenade.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenade.java index a78cd977..e5bd2dec 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenade.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenade.java @@ -1,9 +1,9 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades; +package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades; -import com.drmangotea.createindustry.base.spark.BlueSpark; -import com.drmangotea.createindustry.base.spark.GreenSpark; -import com.drmangotea.createindustry.base.spark.Spark; +import com.drmangotea.createindustry.base.util.spark.BlueSpark; +import com.drmangotea.createindustry.base.util.spark.GreenSpark; +import com.drmangotea.createindustry.base.util.spark.Spark; import com.drmangotea.createindustry.registry.TFMGEntityTypes; import com.drmangotea.createindustry.registry.TFMGItems; import com.simibubi.create.Create; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenadeItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenadeItem.java similarity index 97% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenadeItem.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenadeItem.java index dd13f49a..23253d8a 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenadeItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenadeItem.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades; +package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades; import com.drmangotea.createindustry.registry.TFMGEntityTypes; import net.minecraft.sounds.SoundEvents; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenadeRenderer.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenadeRenderer.java similarity index 97% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenadeRenderer.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenadeRenderer.java index c858c652..c527c348 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/ThermiteGrenadeRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/ThermiteGrenadeRenderer.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades; +package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades; import com.drmangotea.createindustry.registry.TFMGItems; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/BlueFireBlock.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/BlueFireBlock.java similarity index 99% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/BlueFireBlock.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/BlueFireBlock.java index 008bf85e..a854f2ba 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/BlueFireBlock.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/BlueFireBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.fire; +package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.fire; import com.google.common.collect.ImmutableMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/GreenFireBlock.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/GreenFireBlock.java similarity index 99% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/GreenFireBlock.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/GreenFireBlock.java index 1e1ef714..0b9da36d 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/GreenFireBlock.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/GreenFireBlock.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.fire; +package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.fire; import com.google.common.collect.ImmutableMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/TFMGColoredFires.java b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/TFMGColoredFires.java similarity index 95% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/TFMGColoredFires.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/TFMGColoredFires.java index 3509282d..a2c86e5b 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/explosives/thermite_grenades/fire/TFMGColoredFires.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/explosives/thermite_grenades/fire/TFMGColoredFires.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.fire; +package com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.fire; import com.drmangotea.createindustry.CreateTFMG; import net.minecraft.world.level.block.Block; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonItem.java b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItem.java similarity index 97% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonItem.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItem.java index ef56770a..190d0da5 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonItem.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItem.java @@ -1,7 +1,8 @@ -package com.drmangotea.createindustry.items.gadgets.quad_potato_cannon; +package com.drmangotea.createindustry.items.weapons.quad_potato_cannon; import com.drmangotea.createindustry.CreateTFMGClient; +import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonPacket; import com.simibubi.create.AllEnchantments; import com.simibubi.create.AllEntityTypes; import com.simibubi.create.Create; @@ -176,7 +177,7 @@ public class QuadPotatoCannonItem extends ProjectileWeaponItem implements Custom ShootableGadgetItemMethods.applyCooldown(player, stack, hand, this::isCannon, cooldown); ShootableGadgetItemMethods.sendPackets(player, - b -> new PotatoCannonPacket(barrelPos, lookVec.normalize(), itemStack, hand, soundPitch, b)); + b -> new AdvancedPotatoCannonPacket(barrelPos, lookVec.normalize(), itemStack, hand, soundPitch, b)); return InteractionResultHolder.success(stack); diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonItemRenderer.java b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItemRenderer.java similarity index 97% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonItemRenderer.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItemRenderer.java index 5af8946d..32bb8ed3 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonItemRenderer.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonItemRenderer.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.quad_potato_cannon; +package com.drmangotea.createindustry.items.weapons.quad_potato_cannon; import com.drmangotea.createindustry.CreateTFMGClient; diff --git a/src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonRenderHandler.java b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonRenderHandler.java similarity index 84% rename from src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonRenderHandler.java rename to src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonRenderHandler.java index 811758f8..66348187 100644 --- a/src/main/java/com/drmangotea/createindustry/items/gadgets/quad_potato_cannon/QuadPotatoCannonRenderHandler.java +++ b/src/main/java/com/drmangotea/createindustry/items/weapons/quad_potato_cannon/QuadPotatoCannonRenderHandler.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.items.gadgets.quad_potato_cannon; +package com.drmangotea.createindustry.items.weapons.quad_potato_cannon; import com.drmangotea.createindustry.registry.TFMGItems; @@ -6,7 +6,12 @@ import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.content.equipment.potatoCannon.PotatoProjectileEntity; import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler; +import com.simibubi.create.foundation.particle.AirParticleData; +import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.client.Minecraft; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.core.particles.ItemParticleOption; +import net.minecraft.core.particles.ParticleTypes; import net.minecraft.world.InteractionHand; import net.minecraft.world.item.ItemStack; import net.minecraft.world.phys.Vec3; @@ -25,23 +30,23 @@ public class QuadPotatoCannonRenderHandler extends ShootableGadgetRenderHandler return ((QuadPotatoCannonItem) TFMGItems.QUAD_POTATO_CANNON.get()) .isCannon(stack); } -/* + public void beforeShoot(float nextPitch, Vec3 location, Vec3 motion, ItemStack stack) { this.nextPitch = nextPitch; if (stack.isEmpty()) return; ClientLevel world = Minecraft.getInstance().level; for (int i = 0; i < 2; i++) { - Vec3 m = VecHelper.offsetRandomly(motion.scale(0.1f), Create.RANDOM, .025f); + Vec3 m = VecHelper.offsetRandomly(motion.scale(0.1f), world.random, .025f); world.addParticle(new ItemParticleOption(ParticleTypes.ITEM, stack), location.x, location.y, location.z, m.x, m.y, m.z); - Vec3 m2 = VecHelper.offsetRandomly(motion.scale(2f), Create.RANDOM, .5f); + Vec3 m2 = VecHelper.offsetRandomly(motion.scale(2f), world.random, .5f); world.addParticle(new AirParticleData(1, 1 / 4f), location.x, location.y, location.z, m2.x, m2.y, m2.z); } } - */ + @Override protected void transformTool(PoseStack ms, float flip, float equipProgress, float recoil, float pt) { diff --git a/src/main/java/com/drmangotea/createindustry/mixins/AllOreFeatureConfigEntriesMixin.java b/src/main/java/com/drmangotea/createindustry/mixins/AllOreFeatureConfigEntriesMixin.java index f357419d..a0d05fb5 100644 --- a/src/main/java/com/drmangotea/createindustry/mixins/AllOreFeatureConfigEntriesMixin.java +++ b/src/main/java/com/drmangotea/createindustry/mixins/AllOreFeatureConfigEntriesMixin.java @@ -2,8 +2,10 @@ package com.drmangotea.createindustry.mixins; import com.drmangotea.createindustry.worldgen.TFMGLayeredPatterns; +import com.simibubi.create.AllBlocks; import com.simibubi.create.Create; import com.simibubi.create.foundation.data.DynamicDataProvider; +import com.simibubi.create.foundation.utility.Couple; import com.simibubi.create.infrastructure.worldgen.AllLayerPatterns; import com.simibubi.create.infrastructure.worldgen.AllOreFeatureConfigEntries; import com.simibubi.create.infrastructure.worldgen.OreFeatureConfigEntry; @@ -30,6 +32,9 @@ import java.util.Map; @Mixin(AllOreFeatureConfigEntries.class) public class AllOreFeatureConfigEntriesMixin { + + + @Shadow public static final OreFeatureConfigEntry STRIATED_ORES_OVERWORLD = create("striated_ores_overworld", 32, 1 / 18f, -30, 70) @@ -37,7 +42,7 @@ public class AllOreFeatureConfigEntriesMixin { .withLayerPattern(TFMGLayeredPatterns.BAUXITE) .withLayerPattern(TFMGLayeredPatterns.LIGNITE) .withLayerPattern(TFMGLayeredPatterns.FIRECLAY) - //.withLayerPattern(TFMGLayeredPatterns.GALENA) + .withLayerPattern(TFMGLayeredPatterns.GALENA) .withLayerPattern(AllLayerPatterns.SCORIA) .withLayerPattern(AllLayerPatterns.CINNABAR) .withLayerPattern(AllLayerPatterns.MAGNETITE) diff --git a/src/main/java/com/drmangotea/createindustry/mixins/FluidPropagatorMixin.java b/src/main/java/com/drmangotea/createindustry/mixins/FluidPropagatorMixin.java index 5d68b16d..2dc0b3eb 100644 --- a/src/main/java/com/drmangotea/createindustry/mixins/FluidPropagatorMixin.java +++ b/src/main/java/com/drmangotea/createindustry/mixins/FluidPropagatorMixin.java @@ -1,6 +1,7 @@ package com.drmangotea.createindustry.mixins; +import com.drmangotea.createindustry.base.TFMGPipes; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.simibubi.create.AllBlocks; import com.simibubi.create.AllTags; @@ -48,6 +49,10 @@ public class FluidPropagatorMixin { } + /** + * @author DrMangoTea + * @reason felt like it + */ @Overwrite( remap = false) public static void propagateChangedPipe(LevelAccessor world, BlockPos pipePos, BlockState pipeState) { List> frontier = new ArrayList<>(); @@ -80,12 +85,12 @@ public class FluidPropagatorMixin { BlockState targetState = world.getBlockState(target); if (tileEntity instanceof PumpBlockEntity) { if ( - !TFMGBlocks.STEEL_MECHANICAL_PUMP.has(targetState)&& + !TFMGPipes.STEEL_MECHANICAL_PUMP.has(targetState)&& !AllBlocks.MECHANICAL_PUMP.has(targetState)&& - !TFMGBlocks.BRASS_MECHANICAL_PUMP.has(targetState)&& - !TFMGBlocks.CAST_IRON_MECHANICAL_PUMP.has(targetState)&& - !TFMGBlocks.ALUMINUM_MECHANICAL_PUMP.has(targetState)&& - !TFMGBlocks.PLASTIC_MECHANICAL_PUMP.has(targetState) + !TFMGPipes.BRASS_MECHANICAL_PUMP.has(targetState)&& + !TFMGPipes.CAST_IRON_MECHANICAL_PUMP.has(targetState)&& + !TFMGPipes.ALUMINUM_MECHANICAL_PUMP.has(targetState)&& + !TFMGPipes.PLASTIC_MECHANICAL_PUMP.has(targetState) || targetState.getValue(PumpBlock.FACING) .getAxis() != direction.getAxis()) continue; diff --git a/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderIndex.java b/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderIndex.java index 79962099..0e231cde 100644 --- a/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderIndex.java +++ b/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderIndex.java @@ -2,6 +2,7 @@ package com.drmangotea.createindustry.ponder; import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.ponder.scenes.ElectricityScenes; import com.drmangotea.createindustry.ponder.scenes.MetallurgyScenes; import com.drmangotea.createindustry.ponder.scenes.OilScenes; import com.drmangotea.createindustry.registry.TFMGBlocks; @@ -24,7 +25,11 @@ public class TFMGPonderIndex { .addStoryBoard("radial_engines", OilScenes::radial_engines, TFMGPonderTag.OIL); - HELPER.forComponents(TFMGBlocks.DIESEL_ENGINE) + HELPER.forComponents( + TFMGBlocks.DIESEL_ENGINE, + TFMGBlocks.AIR_INTAKE, + TFMGBlocks.DIESEL_ENGINE_EXPANSION + ) .addStoryBoard("diesel_engine", OilScenes::diesel_engine, TFMGPonderTag.OIL) .addStoryBoard("diesel_engine_expansion", OilScenes::diesel_engine_expansion, TFMGPonderTag.OIL); @@ -63,6 +68,11 @@ public class TFMGPonderIndex { HELPER.forComponents(TFMGBlocks.CASTING_BASIN,TFMGBlocks.CASTING_SPOUT) .addStoryBoard("casting", MetallurgyScenes::casting, TFMGPonderTag.METALLURGY); + ///////////////////////////////////////// + + HELPER.forComponents(TFMGBlocks.ROTOR,TFMGBlocks.STATOR) + + .addStoryBoard("large_generator", ElectricityScenes::large_generator, TFMGPonderTag.ELECTRICITY); } @@ -94,6 +104,13 @@ public class TFMGPonderIndex { .add(TFMGBlocks.FIREPROOF_BRICK_REINFORCEMENT) .add(TFMGBlocks.BLAST_FURNACE_OUTPUT); + PonderRegistry.TAGS.forTag(TFMGPonderTag.ELECTRICITY) + .add(TFMGBlocks.STATOR) + .add(TFMGBlocks.ROTOR) + .add(TFMGBlocks.CABLE_CONNECTOR) + .add(TFMGBlocks.CAPACITOR) + .add(TFMGBlocks.ACCUMULATOR); + } diff --git a/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderTag.java b/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderTag.java index a612d3cf..ce0c98d9 100644 --- a/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderTag.java +++ b/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderTag.java @@ -18,6 +18,10 @@ public class TFMGPonderTag extends PonderTag { .defaultLang("Metal processing", "Machines related to metal") .item(TFMGItems.STEEL_INGOT.get(), true, false).addToIndex(); + public static final PonderTag ELECTRICITY = create("electricity") + .defaultLang("Electric Machinery", "") + .item(TFMGItems.STEEL_INGOT.get(), true, false).addToIndex(); + public TFMGPonderTag(ResourceLocation id) { super(id); } diff --git a/src/main/java/com/drmangotea/createindustry/recipes/casting/CastingRecipe.java b/src/main/java/com/drmangotea/createindustry/recipes/casting/CastingRecipe.java index af52459e..54e51dec 100644 --- a/src/main/java/com/drmangotea/createindustry/recipes/casting/CastingRecipe.java +++ b/src/main/java/com/drmangotea/createindustry/recipes/casting/CastingRecipe.java @@ -25,12 +25,12 @@ public class CastingRecipe extends ProcessingRecipe { protected int getMaxOutputCount() { return 3; } + @Override - protected int getMaxFluidOutputCount() { + protected int getMaxFluidInputCount() { return 1; } - public boolean matches(CombinedTankWrapper inv, Level worldIn) { if (inv.getFluidInTank(0).getAmount()==0) return false; diff --git a/src/main/java/com/drmangotea/createindustry/recipes/distillation/AbstractDistillationRecipe.java b/src/main/java/com/drmangotea/createindustry/recipes/distillation/AbstractDistillationRecipe.java deleted file mode 100644 index 4e9cbc18..00000000 --- a/src/main/java/com/drmangotea/createindustry/recipes/distillation/AbstractDistillationRecipe.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.drmangotea.createindustry.recipes.distillation; - -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationControllerBlockEntity; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryControllerBlockEntity; -import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; -import com.simibubi.create.content.processing.recipe.ProcessingRecipe; -import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder; -import com.simibubi.create.foundation.blockEntity.behaviour.fluid.SmartFluidTankBehaviour; -import com.simibubi.create.foundation.fluid.FluidIngredient; -import com.simibubi.create.foundation.item.SmartInventory; -import com.simibubi.create.foundation.recipe.IRecipeTypeInfo; -import com.simibubi.create.foundation.utility.Iterate; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Recipe; -import net.minecraft.world.level.Level; -import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.fluids.capability.CapabilityFluidHandler; -import net.minecraftforge.fluids.capability.IFluidHandler; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandler; - -import javax.annotation.Nonnull; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -@SuppressWarnings("removal") -public class AbstractDistillationRecipe extends ProcessingRecipe { - - public static boolean match(DistilleryControllerBlockEntity controller, Recipe recipe) { - - - - - if(recipe instanceof AbstractDistillationRecipe) { - return apply(controller, recipe, true); - } - - - return false; - - } - - public static boolean apply(DistilleryControllerBlockEntity controller, Recipe recipe) { - return apply(controller, recipe, false); - } - - private static boolean apply(DistilleryControllerBlockEntity controller, Recipe recipe, boolean test) { - boolean isItemlessRecipe = recipe instanceof AbstractDistillationRecipe; - IItemHandler availableItems = controller.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - .orElse(null); - IFluidHandler availableFluids = controller.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - .orElse(null); - - if (availableItems == null || availableFluids == null) - return false; - - BlazeBurnerBlock.HeatLevel heat = DistilleryControllerBlockEntity.getHeatLevelOf(controller.getLevel() - .getBlockState(controller.getBlockPos() - .below(1))); - if (isItemlessRecipe && !((AbstractDistillationRecipe) recipe).getRequiredHeat() - .testBlazeBurner(heat)) - return false; - - List recipeOutputItems = new ArrayList<>(); - List recipeOutputFluids = new ArrayList<>(); - - - List fluidIngredients = - isItemlessRecipe ? ((AbstractDistillationRecipe) recipe).getFluidIngredients() : Collections.emptyList(); - if(!fluidIngredients.isEmpty()) - - - - - for (boolean simulate : Iterate.trueAndFalse) { - - if (!simulate && test) - return true; - - int[] extractedFluidsFromTank = new int[availableFluids.getTanks()]; - - - boolean fluidsAffected = false; - FluidIngredients: for (int i = 0; i < fluidIngredients.size(); i++) { - FluidIngredient fluidIngredient = fluidIngredients.get(i); - int amountRequired = fluidIngredient.getRequiredAmount(); - - - for (int tank = 0; tank < availableFluids.getTanks(); tank++) { - FluidStack fluidStack = availableFluids.getFluidInTank(tank); - if (simulate && fluidStack.getAmount() <= extractedFluidsFromTank[tank]) - continue; - if (!fluidIngredient.test(fluidStack)) - continue; - int drainedAmount = Math.min(amountRequired, fluidStack.getAmount()); - if (!simulate) { - fluidStack.shrink(drainedAmount); - fluidsAffected = true; - } - amountRequired -= drainedAmount; - if (amountRequired != 0) - continue; - extractedFluidsFromTank[tank] += drainedAmount; - continue FluidIngredients; - } - - // something wasn't found - return false; - } - - if (fluidsAffected) { - controller.getBehaviour(SmartFluidTankBehaviour.INPUT) - .forEach(SmartFluidTankBehaviour.TankSegment::onFluidStackChanged); - controller.getBehaviour(SmartFluidTankBehaviour.OUTPUT) - .forEach(SmartFluidTankBehaviour.TankSegment::onFluidStackChanged); - } - - if (simulate) { - if (recipe instanceof AbstractDistillationRecipe ItemlessRecipe) { - recipeOutputItems.addAll(ItemlessRecipe.rollResults()); - recipeOutputFluids.addAll(ItemlessRecipe.getFluidResults()); - - } else { - recipeOutputItems.add(recipe.getResultItem()); - } - } - - } - - return true; - } - public static boolean match2(DistillationControllerBlockEntity controller, Recipe recipe) { - - - if(recipe instanceof AbstractDistillationRecipe) { - return apply(controller, recipe, true); - } - - - return false; - - } - private static boolean apply2(DistillationControllerBlockEntity controller, Recipe recipe, boolean test) { - boolean isItemlessRecipe = recipe instanceof AbstractDistillationRecipe; - IItemHandler availableItems = controller.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - .orElse(null); - IFluidHandler availableFluids = controller.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - .orElse(null); - - if (availableItems == null || availableFluids == null) - return false; - - BlazeBurnerBlock.HeatLevel heat = DistilleryControllerBlockEntity.getHeatLevelOf(controller.getLevel() - .getBlockState(controller.getBlockPos() - .below(1))); - if (isItemlessRecipe && !((AbstractDistillationRecipe) recipe).getRequiredHeat() - .testBlazeBurner(heat)) - return false; - - List recipeOutputItems = new ArrayList<>(); - List recipeOutputFluids = new ArrayList<>(); - - - List fluidIngredients = - isItemlessRecipe ? ((AbstractDistillationRecipe) recipe).getFluidIngredients() : Collections.emptyList(); - if(!fluidIngredients.isEmpty()) - - - - - for (boolean simulate : Iterate.trueAndFalse) { - - if (!simulate && test) - return true; - - int[] extractedFluidsFromTank = new int[availableFluids.getTanks()]; - - - boolean fluidsAffected = false; - FluidIngredients: for (int i = 0; i < fluidIngredients.size(); i++) { - FluidIngredient fluidIngredient = fluidIngredients.get(i); - int amountRequired = fluidIngredient.getRequiredAmount(); - - - for (int tank = 0; tank < availableFluids.getTanks(); tank++) { - FluidStack fluidStack = availableFluids.getFluidInTank(tank); - if (simulate && fluidStack.getAmount() <= extractedFluidsFromTank[tank]) - continue; - if (!fluidIngredient.test(fluidStack)) - continue; - int drainedAmount = Math.min(amountRequired, fluidStack.getAmount()); - if (!simulate) { - fluidStack.shrink(drainedAmount); - fluidsAffected = true; - } - amountRequired -= drainedAmount; - if (amountRequired != 0) - continue; - extractedFluidsFromTank[tank] += drainedAmount; - continue FluidIngredients; - } - - // something wasn't found - return false; - } - - if (fluidsAffected) { - controller.getBehaviour(SmartFluidTankBehaviour.INPUT) - .forEach(SmartFluidTankBehaviour.TankSegment::onFluidStackChanged); - controller.getBehaviour(SmartFluidTankBehaviour.OUTPUT) - .forEach(SmartFluidTankBehaviour.TankSegment::onFluidStackChanged); - } - - if (simulate) { - if (recipe instanceof AbstractDistillationRecipe ItemlessRecipe) { - recipeOutputItems.addAll(ItemlessRecipe.rollResults()); - recipeOutputFluids.addAll(ItemlessRecipe.getFluidResults()); - - } else { - recipeOutputItems.add(recipe.getResultItem()); - } - } - - } - - return true; - } - - protected AbstractDistillationRecipe(IRecipeTypeInfo type, ProcessingRecipeBuilder.ProcessingRecipeParams params) { - super(type, params); - } - - - @Override - protected int getMaxInputCount() { - return 0; - } - - @Override - protected int getMaxOutputCount() { - return 2; - } - - @Override - protected int getMaxFluidInputCount() { - return 1; - } - - @Override - protected int getMaxFluidOutputCount() { - return 3; - } - - @Override - protected boolean canRequireHeat() { - return true; - } - - @Override - public boolean matches(SmartInventory inv, @Nonnull Level worldIn) { - return false; - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/recipes/distillation/AdvancedDistillationRecipe.java b/src/main/java/com/drmangotea/createindustry/recipes/distillation/AdvancedDistillationRecipe.java deleted file mode 100644 index dfe806b0..00000000 --- a/src/main/java/com/drmangotea/createindustry/recipes/distillation/AdvancedDistillationRecipe.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.drmangotea.createindustry.recipes.distillation; - - - -import com.drmangotea.createindustry.registry.TFMGRecipeTypes; -import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder; -import com.simibubi.create.foundation.fluid.CombinedTankWrapper; -import com.simibubi.create.foundation.fluid.FluidIngredient; -import net.minecraft.core.NonNullList; -import net.minecraftforge.fluids.FluidStack; - -public class AdvancedDistillationRecipe extends AbstractDistillationRecipe { - - public AdvancedDistillationRecipe(ProcessingRecipeBuilder.ProcessingRecipeParams params) { - super(TFMGRecipeTypes.ADVANCED_DISTILLATION, params); - } - - public FluidIngredient getInputFluid(){ - return getFluidIngredients().get(0); - } - - public FluidStack getFirstFluidResult(){ - return fluidResults.get(0); - } - public FluidStack getSecondFluidResult(){ - return fluidResults.get(1); - } - public FluidStack getThirdFluidResult(){ - return fluidResults.get(2); - } - public FluidStack getFourthFluidResult(){ - return fluidResults.get(3); - } - public FluidStack getFifthFluidResult(){ - return fluidResults.get(4); - } - public FluidStack getSixthFluidResult(){ - return fluidResults.get(5); - } - - - public int getOutputCount(AdvancedDistillationRecipe recipe){ - return recipe.fluidResults.toArray().length; - } - public NonNullList getResults(){ - return fluidResults; - } - - - @Override - protected int getMaxFluidOutputCount() { - return 6; - } - - @Override - protected int getMaxOutputCount() { - return 0; - } - - public boolean matches(CombinedTankWrapper inv) { - if (inv.getFluidInTank(0).getAmount()==0) - return false; - return fluidIngredients.get(0) - .test(inv.getFluidInTank(0)); - } -} diff --git a/src/main/java/com/drmangotea/createindustry/recipes/distillation/DistillationRecipe.java b/src/main/java/com/drmangotea/createindustry/recipes/distillation/DistillationRecipe.java index f1dc4d9f..5cf8cc9b 100644 --- a/src/main/java/com/drmangotea/createindustry/recipes/distillation/DistillationRecipe.java +++ b/src/main/java/com/drmangotea/createindustry/recipes/distillation/DistillationRecipe.java @@ -3,12 +3,21 @@ package com.drmangotea.createindustry.recipes.distillation; import com.drmangotea.createindustry.registry.TFMGRecipeTypes; +import com.simibubi.create.content.processing.recipe.ProcessingRecipe; import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder; +import com.simibubi.create.foundation.fluid.CombinedTankWrapper; import com.simibubi.create.foundation.fluid.FluidIngredient; -import net.minecraft.world.item.ItemStack; +import com.simibubi.create.foundation.item.SmartInventory; +import net.minecraft.core.NonNullList; +import net.minecraft.world.level.Level; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.templates.FluidTank; + +public class DistillationRecipe extends ProcessingRecipe { + + + -public class DistillationRecipe extends AbstractDistillationRecipe { public DistillationRecipe(ProcessingRecipeBuilder.ProcessingRecipeParams params) { super(TFMGRecipeTypes.DISTILLATION, params); @@ -27,14 +36,69 @@ public class DistillationRecipe extends AbstractDistillationRecipe { public FluidStack getThirdFluidResult(){ return fluidResults.get(2); } + public FluidStack getFourthFluidResult(){ + return fluidResults.get(3); + } + public FluidStack getFifthFluidResult(){ + return fluidResults.get(4); + } + public FluidStack getSixthFluidResult(){ + return fluidResults.get(5); + } - public ItemStack getFirstItemResult(){ - return results.get(0).getStack(); + + + + + + + + + public int getOutputCount(DistillationRecipe recipe){ + return recipe.fluidResults.toArray().length; } - public ItemStack getSecondItemResult(){ - return results.get(1).getStack(); + public NonNullList getResults(){ + return fluidResults; } - public ItemStack getThirdItemResult(){ - return results.get(2).getStack(); + + + @Override + protected int getMaxFluidOutputCount() { + return 6; + } + + @Override + protected int getMaxInputCount() { + return 0; + } + + @Override + protected int getMaxFluidInputCount() { + return 1; + } + + @Override + protected int getMaxOutputCount() { + return 0; + } + + + + public boolean matches(FluidTank inv,int outputs) { + + int neededOutputs = fluidIngredients.toArray().length; + + if(outputs !=neededOutputs) + return false; + + if (inv.getFluidInTank(0).getAmount()==0) + return false; + return fluidIngredients.get(0) + .test(inv.getFluidInTank(0)); + } + + @Override + public boolean matches(SmartInventory pContainer, Level pLevel) { + return false; } } diff --git a/src/main/java/com/drmangotea/createindustry/recipes/jei/AdvancedDistillationCategory.java b/src/main/java/com/drmangotea/createindustry/recipes/jei/AdvancedDistillationCategory.java index 55af23ff..8fe69d8b 100644 --- a/src/main/java/com/drmangotea/createindustry/recipes/jei/AdvancedDistillationCategory.java +++ b/src/main/java/com/drmangotea/createindustry/recipes/jei/AdvancedDistillationCategory.java @@ -3,8 +3,7 @@ package com.drmangotea.createindustry.recipes.jei; -import com.drmangotea.createindustry.recipes.distillation.AdvancedDistillationRecipe; -import com.drmangotea.createindustry.recipes.jei.machines.Distillery; +import com.drmangotea.createindustry.recipes.distillation.DistillationRecipe; import com.drmangotea.createindustry.registry.TFMGGuiTextures; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.compat.jei.category.CreateRecipeCategory; @@ -19,11 +18,11 @@ import mezz.jei.api.recipe.RecipeIngredientRole; import javax.annotation.ParametersAreNonnullByDefault; @ParametersAreNonnullByDefault -public class AdvancedDistillationCategory extends CreateRecipeCategory { +public class AdvancedDistillationCategory extends CreateRecipeCategory { - public AdvancedDistillationCategory(Info info) { + public AdvancedDistillationCategory(Info info) { super(info); } @@ -31,7 +30,7 @@ public class AdvancedDistillationCategory extends CreateRecipeCategory { - - private final Distillery distiller = new Distillery(); - - public DistillationCategory(Info info) { - super(info); - } - - - - - @Override - public void setRecipe(IRecipeLayoutBuilder builder, DistillationRecipe recipe, IFocusGroup focuses) { - ItemStack result1 = recipe.getFirstItemResult(); - ItemStack result2 = recipe.getSecondItemResult(); - FluidIngredient fluidIngredient=recipe.getInputFluid(); - - - builder - .addSlot(RecipeIngredientRole.INPUT, 2, 75) - .setBackground(getRenderedSlot(), -1, -1) - .addIngredients(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getInputFluid().getMatchingFluidStacks())) - .addTooltipCallback(addFluidTooltip(recipe.getInputFluid().getRequiredAmount())); - - - - builder - .addSlot(RecipeIngredientRole.OUTPUT,150, 55) - .setBackground(getRenderedSlot(), -1, -1) - .addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getFirstFluidResult())) - .addTooltipCallback(addFluidTooltip(recipe.getFirstFluidResult().getAmount())); - builder - .addSlot(RecipeIngredientRole.OUTPUT,150, 33) - .setBackground(getRenderedSlot(), -1, -1) - .addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getSecondFluidResult())) - .addTooltipCallback(addFluidTooltip(recipe.getSecondFluidResult().getAmount())); - - builder - .addSlot(RecipeIngredientRole.OUTPUT,150, 12) - .setBackground(getRenderedSlot(), -1, -1) - .addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getThirdFluidResult())) - .addTooltipCallback(addFluidTooltip(recipe.getThirdFluidResult().getAmount())); - - - - builder - .addSlot(RecipeIngredientRole.OUTPUT, 105, 100) - .setBackground(getRenderedSlot(), -1, -1) - .addItemStack(recipe.getFirstItemResult()); - builder - .addSlot(RecipeIngredientRole.OUTPUT, 127, 100) - .setBackground(getRenderedSlot(), -1, -1) - .addItemStack(recipe.getSecondItemResult()); - } - - @Override - public void draw(DistillationRecipe recipe, IRecipeSlotsView iRecipeSlotsView, PoseStack matrixStack, double mouseX, double mouseY) { - distiller - .draw(matrixStack, 65, 27); - AllGuiTextures.JEI_ARROW.render(matrixStack, 20, 80); - AllGuiTextures.JEI_ARROW.render(matrixStack, 100, 14); - AllGuiTextures.JEI_ARROW.render(matrixStack, 100, 35); - AllGuiTextures.JEI_ARROW.render(matrixStack, 100, 57); - AllGuiTextures.JEI_DOWN_ARROW.render(matrixStack, 100, 79); - } - -} diff --git a/src/main/java/com/drmangotea/createindustry/recipes/jei/TFMGJei.java b/src/main/java/com/drmangotea/createindustry/recipes/jei/TFMGJei.java index 04717b3b..cca5d881 100644 --- a/src/main/java/com/drmangotea/createindustry/recipes/jei/TFMGJei.java +++ b/src/main/java/com/drmangotea/createindustry/recipes/jei/TFMGJei.java @@ -4,7 +4,6 @@ package com.drmangotea.createindustry.recipes.jei; import com.drmangotea.createindustry.recipes.casting.CastingRecipe; import com.drmangotea.createindustry.recipes.coking.CokingRecipe; import com.drmangotea.createindustry.recipes.distillation.DistillationRecipe; -import com.drmangotea.createindustry.recipes.distillation.AdvancedDistillationRecipe; import com.drmangotea.createindustry.recipes.industrial_blasting.IndustrialBlastingRecipe; import com.drmangotea.createindustry.registry.TFMGBlocks; import com.drmangotea.createindustry.registry.TFMGFluids; @@ -59,16 +58,10 @@ public class TFMGJei implements IModPlugin { CreateRecipeCategory - distillation = builder(DistillationRecipe.class) - .addTypedRecipes(TFMGRecipeTypes.DISTILLATION) - .catalyst(TFMGBlocks.CAST_IRON_DISTILLATION_CONTROLLER::get) - .itemIcon(TFMGFluids.CRUDE_OIL.getBucket().get()) - .emptyBackground(177, 123) - .build("distillation", DistillationCategory::new) - , - advancedDistillation = builder(AdvancedDistillationRecipe.class) - .addTypedRecipes(TFMGRecipeTypes.ADVANCED_DISTILLATION) + + advancedDistillation = builder(DistillationRecipe.class) + .addTypedRecipes(TFMGRecipeTypes.DISTILLATION) .catalyst(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER::get) .catalyst(TFMGBlocks.STEEL_DISTILLATION_OUTPUT::get) .itemIcon(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER.get()) diff --git a/src/main/java/com/drmangotea/createindustry/recipes/jei/machines/Distillery.java b/src/main/java/com/drmangotea/createindustry/recipes/jei/machines/Distillery.java deleted file mode 100644 index 315ce247..00000000 --- a/src/main/java/com/drmangotea/createindustry/recipes/jei/machines/Distillery.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.drmangotea.createindustry.recipes.jei.machines; - - -import com.drmangotea.createindustry.registry.TFMGBlocks; -import com.jozufozu.flywheel.core.PartialModel; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.math.Vector3f; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllPartialModels; -import com.simibubi.create.AllSpriteShifts; -import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; -import com.simibubi.create.content.processing.burner.BlazeBurnerBlock; -import com.simibubi.create.foundation.block.render.SpriteShiftEntry; -import com.simibubi.create.foundation.render.CachedBufferer; -import com.simibubi.create.foundation.utility.AnimationTickHolder; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.LightTexture; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.util.Mth; -import net.minecraft.world.level.block.Blocks; - -public class Distillery extends AnimatedKinetics { - - - - public Distillery() {} - - @Override - public void draw(PoseStack matrixStack, int xOffset, int yOffset) { - matrixStack.pushPose(); - matrixStack.translate(xOffset, yOffset, 200); - matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f)); - matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f)); - int scale = 23; - BlazeBurnerBlock.HeatLevel heatLevel = BlazeBurnerBlock.HeatLevel.SMOULDERING; - - - blockElement(TFMGBlocks.CAST_IRON_DISTILLATION_OUTPUT.getDefaultState()) - .scale(scale) - .render(matrixStack); - blockElement(TFMGBlocks.CAST_IRON_DISTILLATION_OUTPUT.getDefaultState()) - .atLocal(0,1,0) - .scale(scale) - .render(matrixStack); - blockElement(TFMGBlocks.CAST_IRON_DISTILLATION_OUTPUT.getDefaultState()) - .atLocal(0,2,0) - .scale(scale) - .render(matrixStack); - blockElement(TFMGBlocks.CAST_IRON_DISTILLATION_CONTROLLER.getDefaultState()) - .atLocal(0,3,0) - .scale(scale) - .render(matrixStack); - - float offset = (Mth.sin(AnimationTickHolder.getRenderTime() / 16f) + 0.5f) / 16f; - - blockElement(AllBlocks.BLAZE_BURNER.getDefaultState()) - .atLocal(0, 4.1, 0) - .scale(scale) - .render(matrixStack); - - PartialModel blaze = - AllPartialModels.BLAZE_ACTIVE; - PartialModel rods2 = AllPartialModels.BLAZE_BURNER_RODS_2; - - - - blockElement(blaze).atLocal(1, 4.1, 1) - .rotate(0, 180, 0) - .scale(scale) - .render(matrixStack); - blockElement(rods2).atLocal(1, 4.1 + offset, 1) - .rotate(0, 180, 0) - .scale(scale) - .render(matrixStack); - - - - - matrixStack.scale(scale, -scale, scale); - matrixStack.translate(0, -1.8, 0); - - SpriteShiftEntry spriteShift = - AllSpriteShifts.BURNER_FLAME; - - float spriteWidth = spriteShift.getTarget() - .getU1() - - spriteShift.getTarget() - .getU0(); - - float spriteHeight = spriteShift.getTarget() - .getV1() - - spriteShift.getTarget() - .getV0(); - - float time = AnimationTickHolder.getRenderTime(Minecraft.getInstance().level); - float speed = 1 / 32f + 1 / 64f * BlazeBurnerBlock.HeatLevel.KINDLED.ordinal(); - - double vScroll = speed * time; - vScroll = vScroll - Math.floor(vScroll); - vScroll = vScroll * spriteHeight / 2; - - double uScroll = speed * time / 2; - uScroll = uScroll - Math.floor(uScroll); - uScroll = uScroll * spriteWidth / 2; - - Minecraft mc = Minecraft.getInstance(); - MultiBufferSource.BufferSource buffer = mc.renderBuffers() - .bufferSource(); - VertexConsumer vb = buffer.getBuffer(RenderType.cutoutMipped()); - CachedBufferer.partial(AllPartialModels.BLAZE_BURNER_FLAME, Blocks.AIR.defaultBlockState()) - .shiftUVScrolling(spriteShift, (float) uScroll, (float) vScroll) - .light(LightTexture.FULL_BRIGHT) - .renderInto(matrixStack, vb); - matrixStack.popPose(); - } - - - -} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGBlockEntities.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGBlockEntities.java index 9245c09b..3e58da79 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGBlockEntities.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGBlockEntities.java @@ -1,16 +1,30 @@ package com.drmangotea.createindustry.registry; +import com.drmangotea.createindustry.base.TFMGEncasedBlocks; +import com.drmangotea.createindustry.base.TFMGPipes; +import com.drmangotea.createindustry.blocks.HalfShaftRenderer; +import com.drmangotea.createindustry.blocks.cogwheeels.*; import com.drmangotea.createindustry.blocks.concrete.formwork.FormWorkBlockEntity; import com.drmangotea.createindustry.blocks.concrete.formwork.FormWorkRenderer; import com.drmangotea.createindustry.blocks.concrete.formwork.rebar.RebarFormWorkBlockEntity; import com.drmangotea.createindustry.blocks.decoration.doors.TFMGSlidingDoorBlockEntity; import com.drmangotea.createindustry.blocks.decoration.doors.TFMGSlidingDoorRenderer; -import com.drmangotea.createindustry.blocks.decoration.flywheels.TFMGFlywheelBlockEntity; -import com.drmangotea.createindustry.blocks.decoration.flywheels.TFMGFlywheelInstance; -import com.drmangotea.createindustry.blocks.decoration.flywheels.TFMGFlywheelRenderer; -import com.drmangotea.createindustry.blocks.deposits.FluidDepositBlockEntity; +import com.drmangotea.createindustry.blocks.decoration.kinetics.flywheels.TFMGFlywheelBlockEntity; +import com.drmangotea.createindustry.blocks.decoration.kinetics.flywheels.TFMGFlywheelInstance; +import com.drmangotea.createindustry.blocks.decoration.kinetics.flywheels.TFMGFlywheelRenderer; import com.drmangotea.createindustry.blocks.deposits.surface_scanner.SurfaceScannerBlockEntity; import com.drmangotea.createindustry.blocks.deposits.surface_scanner.SurfaceScannerRenderer; +import com.drmangotea.createindustry.blocks.electricity.base.ConverterBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.CableTubeBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.DiagonalCableBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.capacitor.AccumulatorBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.generation.creative_generator.VoltageCubeBlock; +import com.drmangotea.createindustry.blocks.electricity.generation.creative_generator.VoltageCubeBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.generation.large_generator.*; +import com.drmangotea.createindustry.blocks.electricity.lights.neon.NeonTubeBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.lights.neon.NeonTubeRenderer; +import com.drmangotea.createindustry.blocks.electricity.voltmeter.energy_meter.EnergyMeterBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.voltmeter.energy_meter.EnergyMeterRenderer; import com.drmangotea.createindustry.blocks.engines.compact.CompactEngineBlockEntity; import com.drmangotea.createindustry.blocks.engines.compact.CompactEngineRenderer; import com.drmangotea.createindustry.blocks.engines.diesel.DieselEngineBlockEntity; @@ -20,6 +34,8 @@ import com.drmangotea.createindustry.blocks.engines.diesel.engine_expansion.Dies import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeBlockEntity; import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeInstance; import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeRenderer; +import com.drmangotea.createindustry.blocks.engines.low_grade_fuel.LowGradeFuelEngineBlockEntity; +import com.drmangotea.createindustry.blocks.engines.low_grade_fuel.LowGradeFuelEngineRenderer; import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineBlockEntity; import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineRenderer; import com.drmangotea.createindustry.blocks.engines.radial.input.RadialEngineInputBlockEntity; @@ -30,7 +46,27 @@ import com.drmangotea.createindustry.blocks.engines.small.lpg.LPGEngineBackTileE import com.drmangotea.createindustry.blocks.engines.small.lpg.LPGEngineTileEntity; import com.drmangotea.createindustry.blocks.engines.small.turbine.TurbineEngineBackTileEntity; import com.drmangotea.createindustry.blocks.engines.small.turbine.TurbineEngineTileEntity; +import com.drmangotea.createindustry.blocks.electricity.base.cables.CableConnectorBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.base.cables.CableConnectorRenderer; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.CableHubBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block.CopycatCableBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.lights.LightBulbBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.lights.LightBulbRenderer; +import com.drmangotea.createindustry.blocks.electricity.lights.rgb.RGBLightBulbBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.lights.rgb.RGBLightBulbRenderer; +import com.drmangotea.createindustry.blocks.electricity.resistors.ResistorBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.transformer.CoilBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.capacitor.CapacitorBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.generation.creative_generator.CreativeGeneratorBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.electric_motor.ElectricMotorBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.batteries.GalvanicCellBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.generation.generator.GeneratorBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.polarizer.PolarizeRenderer; +import com.drmangotea.createindustry.blocks.electricity.polarizer.PolarizerBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.voltmeter.VoltMeterBlockEntity; +import com.drmangotea.createindustry.blocks.electricity.voltmeter.VoltMeterRenderer; import com.drmangotea.createindustry.blocks.machines.exhaust.ExhaustBlockEntity; +import com.drmangotea.createindustry.blocks.machines.firebox.FireboxBlockEntity; import com.drmangotea.createindustry.blocks.machines.flarestack.FlarestackBlockEntity; import com.drmangotea.createindustry.blocks.machines.metal_processing.blast_furnace.BlastFurnaceOutputBlockEntity; import com.drmangotea.createindustry.blocks.machines.metal_processing.blast_furnace.BlastFurnaceRenderer; @@ -41,10 +77,8 @@ import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_sp import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_spout.CastingSpoutRenderer; import com.drmangotea.createindustry.blocks.machines.metal_processing.coke_oven.CokeOvenBlockEntity; import com.drmangotea.createindustry.blocks.machines.metal_processing.coke_oven.CokeOvenRenderer; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationControllerBlockEntity; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlockEntity; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryControllerBlockEntity; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryOutputBlockEntity; +import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.controller.DistillationControllerBlockEntity; +import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output.DistillationOutputBlockEntity; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base.PumpjackBaseBlockEntity; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankRenderer; @@ -52,6 +86,9 @@ import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.ham import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackRenderer; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputRenderer; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity; +import com.drmangotea.createindustry.blocks.machines.simple.welding_machine.WeldingMachineBlockEntity; +import com.drmangotea.createindustry.blocks.machines.simple.welding_machine.WeldingMachineInstance; +import com.drmangotea.createindustry.blocks.machines.simple.welding_machine.WeldingMachineRenderer; import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity; import com.drmangotea.createindustry.blocks.tanks.SteelFluidTankRenderer; import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity; @@ -67,6 +104,9 @@ import com.simibubi.create.content.fluids.pump.PumpBlockEntity; import com.simibubi.create.content.fluids.pump.PumpCogInstance; import com.simibubi.create.content.fluids.pump.PumpRenderer; import com.simibubi.create.content.kinetics.base.*; +import com.simibubi.create.content.kinetics.gearbox.GearboxBlockEntity; +import com.simibubi.create.content.kinetics.gearbox.GearboxInstance; +import com.simibubi.create.content.kinetics.gearbox.GearboxRenderer; import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity; import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogInstance; import com.simibubi.create.content.kinetics.simpleRelays.encased.EncasedCogRenderer; @@ -78,7 +118,143 @@ import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE; public class TFMGBlockEntities { + public static final BlockEntityEntry WELDING_MACHINE = REGISTRATE + .blockEntity("welding_machine", WeldingMachineBlockEntity::new) + .instance(() -> WeldingMachineInstance::new) + // .validBlocks(TFMGBlocks.WELDING_MACHINE) + .renderer(() -> WeldingMachineRenderer::new) + .register(); + public static final BlockEntityEntry LIGHT_BULB = REGISTRATE + .blockEntity("light_bulb", LightBulbBlockEntity::new) + .validBlocks(TFMGBlocks.LIGHT_BULB + //,TFMGBlocks.INDUSTRIAL_LIGHT + ) + .renderer(() -> LightBulbRenderer::new) + .register(); + + + + public static final BlockEntityEntry RGB_LIGHT_BULB = REGISTRATE + .blockEntity("rgb_light_bulb", RGBLightBulbBlockEntity::new) + .validBlocks(TFMGBlocks.RGB_LIGHT_BULB) + .renderer(() -> RGBLightBulbRenderer::new) + .register(); + + public static final BlockEntityEntry VOLTAGE_CUBE = REGISTRATE + .blockEntity("voltage_cube", VoltageCubeBlockEntity::new) + .validBlocks(TFMGBlocks.VOLTAGE_CUBE) + .register(); + public static final BlockEntityEntry CABLE_HUB = REGISTRATE + .blockEntity("cable_hub", CableHubBlockEntity::new) + .validBlocks(TFMGBlocks.BRASS_CABLE_HUB, + TFMGBlocks.COPPER_CABLE_HUB, + TFMGBlocks.STEEL_CABLE_HUB, + TFMGBlocks.ALUMINUM_CABLE_HUB, + TFMGBlocks.HEAVY_CABLE_HUB, + TFMGBlocks.STEEL_CASING_CABLE_HUB) + .register(); + + public static final BlockEntityEntry CABLE_TUBE = REGISTRATE + .blockEntity("cable_tube", CableTubeBlockEntity::new) + .validBlocks(TFMGBlocks.CABLE_TUBE) + .register(); + + public static final BlockEntityEntry NEON_TUBE = REGISTRATE + .blockEntity("neon_tube", NeonTubeBlockEntity::new) + .validBlocks(TFMGBlocks.NEON_TUBE) + .renderer(() -> NeonTubeRenderer::new) + .register(); + + public static final BlockEntityEntry DIAGONAL_CABLE_BLOCK = REGISTRATE + .blockEntity("diagonal_cable_block", DiagonalCableBlockEntity::new) + .validBlocks(TFMGBlocks.DIAGONL_CABLE_BLOCK) + .register(); + public static final BlockEntityEntry FIREBOX = REGISTRATE + .blockEntity("blaze_heater", FireboxBlockEntity::new) + .validBlocks(TFMGBlocks.FIREBOX) + .register(); + public static final BlockEntityEntry CAPACITOR = REGISTRATE + .blockEntity("capacitor", CapacitorBlockEntity::new) + .validBlocks(TFMGBlocks.CAPACITOR) + .register(); + + public static final BlockEntityEntry CONVERTER = REGISTRATE + .blockEntity("converter", ConverterBlockEntity::new) + .validBlocks(TFMGBlocks.CONVERTER) + .register(); + + + public static final BlockEntityEntry ACCUMULATOR = REGISTRATE + .blockEntity("accumulator", AccumulatorBlockEntity::new) + .validBlocks(TFMGBlocks.ACCUMULATOR) + .register(); + + public static final BlockEntityEntry GALVANIC_CELL = REGISTRATE + .blockEntity("galvanic_cell", GalvanicCellBlockEntity::new) + .validBlocks(TFMGBlocks.GALVANIC_CELL) + .register(); + public static final BlockEntityEntry POLARIZER = REGISTRATE + .blockEntity("polarizer", PolarizerBlockEntity::new) + .renderer(() -> PolarizeRenderer::new) + .validBlocks(TFMGBlocks.POLARIZER) + .register(); + public static final BlockEntityEntry VOLTMETER = REGISTRATE + .blockEntity("voltmeter", VoltMeterBlockEntity::new) + .validBlocks(TFMGBlocks.VOLTMETER) + .renderer(() -> VoltMeterRenderer::new) + .register(); + + public static final BlockEntityEntry ENERGY_METER = REGISTRATE + .blockEntity("energy_meter", EnergyMeterBlockEntity::new) + .validBlocks(TFMGBlocks.ENERGY_METER) + .renderer(() -> EnergyMeterRenderer::new) + .register(); + public static final BlockEntityEntry RESISTOR = REGISTRATE + .blockEntity("resistor", ResistorBlockEntity::new) + .validBlocks(TFMGBlocks.RESISTOR) + .register(); + + public static final BlockEntityEntry COIL = REGISTRATE + .blockEntity("coil", CoilBlockEntity::new) + .validBlocks(TFMGBlocks.COPPER_COIL) + .register(); + + public static final BlockEntityEntry ELECTRIC_MOTOR = REGISTRATE + .blockEntity("electric_motor", ElectricMotorBlockEntity::new) + .instance(() -> HalfShaftInstance::new) + .validBlocks(TFMGBlocks.ELECTRIC_MOTOR) + .renderer(() -> HalfShaftRenderer::new) + .register(); + + public static final BlockEntityEntry STATOR = REGISTRATE + .blockEntity("stator", StatorBlockEntity::new) + .validBlocks(TFMGBlocks.STATOR) + .renderer(() -> StatorRenderer::new) + .register(); + + public static final BlockEntityEntry ROTOR = REGISTRATE + .blockEntity("rotor", RotorBlockEntity::new) + .instance(() -> RotorInstance::new, false) + .validBlocks(TFMGBlocks.ROTOR) + .renderer(() -> RotorRenderer::new) + .register(); + public static final BlockEntityEntry GENERATOR = REGISTRATE + .blockEntity("generator", GeneratorBlockEntity::new) + .instance(() -> HalfShaftInstance::new) + .validBlocks(TFMGBlocks.GENERATOR) + .renderer(() -> HalfShaftRenderer::new) + .register(); + + public static final BlockEntityEntry CABLE_CONNECTOR = REGISTRATE + .blockEntity("cable_connector", CableConnectorBlockEntity::new) + .renderer(() -> CableConnectorRenderer::new) + .validBlocks(TFMGBlocks.CABLE_CONNECTOR) + .register(); + public static final BlockEntityEntry CREATIVE_GENERATOR = REGISTRATE + .blockEntity("creative_generator", CreativeGeneratorBlockEntity::new) + .validBlocks(TFMGBlocks.CREATIVE_GENERATOR) + .register(); public static final BlockEntityEntry FORMWORK = REGISTRATE .blockEntity("formwork", FormWorkBlockEntity::new) @@ -91,10 +267,7 @@ public class TFMGBlockEntities { .renderer(() -> FormWorkRenderer::new) .validBlocks(TFMGBlocks.REBAR_FORMWORK_BLOCK) .register(); - public static final BlockEntityEntry OIL_DEPOSIT = REGISTRATE - .blockEntity("oil_deposit", FluidDepositBlockEntity::new) - // .validBlocks(TFMGBlocks.OIL_DEPOSIT) - .register(); + public static final BlockEntityEntry STEEL_FLUID_TANK = REGISTRATE @@ -121,15 +294,7 @@ public class TFMGBlockEntities { .register(); - public static final BlockEntityEntry CAST_IRON_DISTILLATION_OUTPUT = REGISTRATE - .blockEntity("distillery", DistilleryOutputBlockEntity::new) - .validBlocks(TFMGBlocks.CAST_IRON_DISTILLATION_OUTPUT) - .register(); - public static final BlockEntityEntry CAST_IRON_DISTILLATION_CONTROLLER = REGISTRATE - .blockEntity("distillery_controller", DistilleryControllerBlockEntity::new) - .validBlocks(TFMGBlocks.CAST_IRON_DISTILLATION_CONTROLLER) - .register(); public static final BlockEntityEntry STEEL_DISTILLATION_OUTPUT = REGISTRATE .blockEntity("distillation_tower_output", DistillationOutputBlockEntity::new) @@ -141,19 +306,7 @@ public class TFMGBlockEntities { .validBlocks(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER) .register(); - //public static final BlockEntityEntry PUMPJACK_HAMMER_HOLDER = REGISTRATE - // .blockEntity("pumpjack_hammer_holder", PumpjackHammerHolderBlockEntity::new) - // .instance(() -> PumpjackHammerHolderInstance::new, false) - // .validBlocks(TFMGBlocks.PUMPJACK_HAMMER_HOLDER) - // .renderer(() -> PumpjackHammerHolderRenderer::new) - // .register(); -// - //public static final BlockEntityEntry PUMPJACK_CRANK = REGISTRATE - // .blockEntity("pumpjack_crank", PumpjackCrankBlockEntity::new) - // //.instance(() -> PumpjackCrankInstance::new, true) - // .validBlocks(TFMGBlocks.PUMPJACK_CRANK) - // .renderer(() -> PumpjackCrankRenderer::new) - // .register(); + public static final BlockEntityEntry MACHINE_INPUT = REGISTRATE .blockEntity("machine_input", MachineInputBlockEntity::new) @@ -162,11 +315,6 @@ public class TFMGBlockEntities { .renderer(() -> MachineInputRenderer::new) .register(); - //public static final BlockEntityEntry PUMPJACK_BASE = REGISTRATE - // .blockEntity("pumpjack_base", PumpjackBaseBlockEntity::new) - // .validBlocks(TFMGBlocks.PUMPJACK_BASE) - // .renderer(() -> PumpjackBaseRenderer::new) - // .register(); public static final BlockEntityEntry BLAST_FURNACE_OUTPUT = REGISTRATE .blockEntity("blast_furnace_output", BlastFurnaceOutputBlockEntity::new) @@ -263,36 +411,42 @@ public class TFMGBlockEntities { public static final BlockEntityEntry LOCKABLE_PIPE = REGISTRATE .blockEntity("lockable_pipe", LockablePipeBlockEntity::new) - .validBlocks(TFMGBlocks.STEEL_PIPE,TFMGBlocks.ALUMINUM_PIPE,TFMGBlocks.PLASTIC_PIPE) + .validBlocks(TFMGPipes.STEEL_PIPE, TFMGPipes.ALUMINUM_PIPE,TFMGPipes.PLASTIC_PIPE) .register(); public static final BlockEntityEntry TFMG_PIPE = REGISTRATE .blockEntity("createindustry_pipe", FluidPipeBlockEntity::new) - .validBlocks(TFMGBlocks.CAST_IRON_PIPE,TFMGBlocks.BRASS_PIPE) + .validBlocks(TFMGPipes.CAST_IRON_PIPE,TFMGPipes.BRASS_PIPE) .register(); public static final BlockEntityEntry ENCASED_LOCKABLE_PIPE = REGISTRATE .blockEntity("encased_lockable_pipe", LockablePipeBlockEntity::new) - .validBlocks(TFMGBlocks.COPPER_ENCASED_STEEL_PIPE, - TFMGBlocks.COPPER_ENCASED_ALUMINUM_PIPE, - TFMGBlocks.COPPER_ENCASED_PLASTIC_PIPE + .validBlocks(TFMGPipes.COPPER_ENCASED_STEEL_PIPE, + TFMGPipes.COPPER_ENCASED_ALUMINUM_PIPE, + TFMGPipes.COPPER_ENCASED_PLASTIC_PIPE ) .register(); public static final BlockEntityEntry ENCASED_TFMG_PIPE = REGISTRATE .blockEntity("encased_createindustry_pipe", FluidPipeBlockEntity::new) - .validBlocks(TFMGBlocks.COPPER_ENCASED_CAST_IRON_PIPE,TFMGBlocks.COPPER_ENCASED_BRASS_PIPE) + .validBlocks(TFMGPipes.COPPER_ENCASED_CAST_IRON_PIPE,TFMGPipes.COPPER_ENCASED_BRASS_PIPE) .register(); + + public static final BlockEntityEntry COPYCAT_CABLE = + REGISTRATE.blockEntity("copycat_cable", CopycatCableBlockEntity::new) + .validBlocks(TFMGBlocks.COPYCAT_CABLE_BLOCK) + .register(); + public static final BlockEntityEntry TFMG_MECHANICAL_PUMP = REGISTRATE .blockEntity("mechanical_pump", PumpBlockEntity::new) .instance(() -> PumpCogInstance::new) .validBlocks( - TFMGBlocks.STEEL_MECHANICAL_PUMP, - TFMGBlocks.CAST_IRON_MECHANICAL_PUMP, - TFMGBlocks.BRASS_MECHANICAL_PUMP, - TFMGBlocks.PLASTIC_MECHANICAL_PUMP, - TFMGBlocks.ALUMINUM_MECHANICAL_PUMP + TFMGPipes.STEEL_MECHANICAL_PUMP, + TFMGPipes.CAST_IRON_MECHANICAL_PUMP, + TFMGPipes.BRASS_MECHANICAL_PUMP, + TFMGPipes.PLASTIC_MECHANICAL_PUMP, + TFMGPipes.ALUMINUM_MECHANICAL_PUMP ) .renderer(() -> PumpRenderer::new) .register(); @@ -300,11 +454,11 @@ public class TFMGBlockEntities { public static final BlockEntityEntry TFMG_SMART_FLUID_PIPE = REGISTRATE .blockEntity("smart_fluid_pipe", SmartFluidPipeBlockEntity::new) .validBlocks( - TFMGBlocks.STEEL_SMART_FLUID_PIPE, - TFMGBlocks.CAST_IRON_SMART_FLUID_PIPE, - TFMGBlocks.BRASS_SMART_FLUID_PIPE, - TFMGBlocks.PLASTIC_SMART_FLUID_PIPE, - TFMGBlocks.ALUMINUM_SMART_FLUID_PIPE + TFMGPipes.STEEL_SMART_FLUID_PIPE, + TFMGPipes.CAST_IRON_SMART_FLUID_PIPE, + TFMGPipes.BRASS_SMART_FLUID_PIPE, + TFMGPipes.PLASTIC_SMART_FLUID_PIPE, + TFMGPipes.ALUMINUM_SMART_FLUID_PIPE ) .renderer(() -> SmartBlockEntityRenderer::new) .register(); @@ -313,11 +467,11 @@ public class TFMGBlockEntities { .blockEntity("fluid_valve", FluidValveBlockEntity::new) .instance(() -> FluidValveInstance::new) .validBlocks( - TFMGBlocks.STEEL_FLUID_VALVE, - TFMGBlocks.CAST_IRON_FLUID_VALVE, - TFMGBlocks.BRASS_FLUID_VALVE, - TFMGBlocks.PLASTIC_FLUID_VALVE, - TFMGBlocks.ALUMINUM_FLUID_VALVE + TFMGPipes.STEEL_FLUID_VALVE, + TFMGPipes.CAST_IRON_FLUID_VALVE, + TFMGPipes.BRASS_FLUID_VALVE, + TFMGPipes.PLASTIC_FLUID_VALVE, + TFMGPipes.ALUMINUM_FLUID_VALVE ) .renderer(() -> FluidValveRenderer::new) .register(); @@ -326,11 +480,11 @@ public class TFMGBlockEntities { public static final BlockEntityEntry GLASS_TFMG_PIPE = REGISTRATE .blockEntity("glass_createindustry_pipe", StraightPipeBlockEntity::new) .validBlocks( - TFMGBlocks.GLASS_STEEL_PIPE, - TFMGBlocks.GLASS_CAST_IRON_PIPE, - TFMGBlocks.GLASS_ALUMINUM_PIPE, - TFMGBlocks.GLASS_PLASTIC_PIPE, - TFMGBlocks.GLASS_BRASS_PIPE + TFMGPipes.GLASS_STEEL_PIPE, + TFMGPipes.GLASS_CAST_IRON_PIPE, + TFMGPipes.GLASS_ALUMINUM_PIPE, + TFMGPipes.GLASS_PLASTIC_PIPE, + TFMGPipes.GLASS_BRASS_PIPE ) .renderer(() -> TransparentStraightPipeRenderer::new) @@ -339,29 +493,101 @@ public class TFMGBlockEntities { public static final BlockEntityEntry STEEL_FLYWHEEL = REGISTRATE .blockEntity("steel_flywheel", TFMGFlywheelBlockEntity::new) .instance(() -> TFMGFlywheelInstance::new, false) - .validBlocks(TFMGBlocks.STEEL_FLYWHEEL,TFMGBlocks.ALUMINUM_FLYWHEEL,TFMGBlocks.CAST_IRON_FLYWHEEL) + .validBlocks( + TFMGBlocks.STEEL_FLYWHEEL, + TFMGBlocks.ALUMINUM_FLYWHEEL, + TFMGBlocks.CAST_IRON_FLYWHEEL, + TFMGBlocks.LEAD_FLYWHEEL, + TFMGBlocks.NICKEL_FLYWHEEL + + ) .renderer(() -> TFMGFlywheelRenderer::new) .register(); + public static final BlockEntityEntry TFMG_COGWHEEL = REGISTRATE + .blockEntity("tfmg_simple_kinetic", SimpleKineticBlockEntity::new) + .instance(() -> TFMGCogwheelInstance::new, false) + .validBlocks(TFMGBlocks.STEEL_COGWHEEL,TFMGBlocks.LARGE_STEEL_COGWHEEL,TFMGBlocks.ALUMINUM_COGWHEEL,TFMGBlocks.LARGE_ALUMINUM_COGWHEEL) + .renderer(() -> TFMGCogwheelRenderer::new) + .register(); + + public static final BlockEntityEntry STEEL_GEARBOX = REGISTRATE + .blockEntity("steel_gearbox", GearboxBlockEntity::new) + .instance(() -> GearboxInstance::new, false) + .validBlocks(TFMGBlocks.STEEL_GEARBOX) + .renderer(() -> GearboxRenderer::new) + .register(); + public static final BlockEntityEntry TFMG_ENCASED_COGWHEEL = REGISTRATE .blockEntity("tfmg_encased_cogwheel", SimpleKineticBlockEntity::new) .instance(() -> EncasedCogInstance::small, false) - // .validBlocks(TFMGBlocks.STEEL_ENCASED_COGWHEEL, TFMGBlocks.HEAVY_CASING_ENCASED_COGWHEEL) + .validBlocks( + TFMGEncasedBlocks.STEEL_ENCASED_COGWHEEL, + TFMGEncasedBlocks.HEAVY_CASING_ENCASED_COGWHEEL + + ) .renderer(() -> EncasedCogRenderer::small) .register(); public static final BlockEntityEntry TFMG_ENCASED_LARGE_COGWHEEL = REGISTRATE .blockEntity("tfmg_encased_large_cogwheel", SimpleKineticBlockEntity::new) .instance(() -> EncasedCogInstance::large, false) - // .validBlocks(TFMGBlocks.STEEL_ENCASED_LARGE_COGWHEEL, TFMGBlocks.HEAVY_CASING_ENCASED_LARGE_COGWHEEL) + .validBlocks( + TFMGEncasedBlocks.STEEL_ENCASED_LARGE_COGWHEEL, + TFMGEncasedBlocks.HEAVY_CASING_ENCASED_LARGE_COGWHEEL + ) + .renderer(() -> EncasedCogRenderer::large) .register(); + public static final BlockEntityEntry ENCASED_STEEL_COGWHEEL = REGISTRATE + .blockEntity("tfmg_encased_steel_cogwheel", SimpleKineticBlockEntity::new) + .instance(() -> EncasedSteelCogInstance::small, false) + .validBlocks( + TFMGEncasedBlocks.STEEL_ENCASED_STEEL_COGWHEEL, + TFMGEncasedBlocks.HEAVY_CASING_ENCASED_STEEL_COGWHEEL + + ) + .renderer(() -> EncasedSteelCogRenderer::small) + .register(); + + public static final BlockEntityEntry ENCASED_LARGE_STEEL_COGWHEEL = REGISTRATE + .blockEntity("encased_large_steel_cogwheel", SimpleKineticBlockEntity::new) + .instance(() -> EncasedSteelCogInstance::large, false) + .validBlocks( + TFMGEncasedBlocks.STEEL_ENCASED_LARGE_STEEL_COGWHEEL, + TFMGEncasedBlocks.HEAVY_CASING_ENCASED_LARGE_STEEL_COGWHEEL + ) + + .renderer(() -> EncasedSteelCogRenderer::large) + .register(); + public static final BlockEntityEntry ENCASED_ALUMINUM_COGWHEEL = REGISTRATE + .blockEntity("tfmg_encased_aluminum_cogwheel", SimpleKineticBlockEntity::new) + .instance(() -> EncasedAluminumCogInstance::small, false) + .validBlocks( + TFMGEncasedBlocks.STEEL_ENCASED_ALUMINUM_COGWHEEL, + TFMGEncasedBlocks.HEAVY_CASING_ENCASED_ALUMINUM_COGWHEEL + + ) + .renderer(() -> EncasedAluminumCogRenderer::small) + .register(); + + public static final BlockEntityEntry ENCASED_LARGE_ALUMINUM_COGWHEEL = REGISTRATE + .blockEntity("encased_large_aluminum_cogwheel", SimpleKineticBlockEntity::new) + .instance(() -> EncasedAluminumCogInstance::large, false) + .validBlocks( + TFMGEncasedBlocks.STEEL_ENCASED_LARGE_ALUMINUM_COGWHEEL, + TFMGEncasedBlocks.HEAVY_CASING_ENCASED_LARGE_ALUMINUM_COGWHEEL + ) + + .renderer(() -> EncasedAluminumCogRenderer::large) + .register(); + public static final BlockEntityEntry TFMG_ENCASED_SHAFT = REGISTRATE .blockEntity("tfmg_encased_shaft", KineticBlockEntity::new) .instance(() -> ShaftInstance::new, false) - // .validBlocks(TFMGBlocks.STEEL_ENCASED_SHAFT, TFMGBlocks.HEAVY_CASING_ENCASED_SHAFT) + .validBlocks(TFMGEncasedBlocks.STEEL_ENCASED_SHAFT, TFMGEncasedBlocks.HEAVY_CASING_ENCASED_SHAFT) .renderer(() -> ShaftRenderer::new) .register(); @@ -370,14 +596,14 @@ public class TFMGBlockEntities { .blockEntity("radial_engine", RadialEngineBlockEntity::new) .instance(() -> ShaftInstance::new, false) .validBlocks(TFMGBlocks.RADIAL_ENGINE) - .renderer(() -> RadialEngineRenderer::new) + .renderer(() -> ShaftRenderer::new) .register(); public static final BlockEntityEntry LARGE_RADIAL_ENGINE = REGISTRATE .blockEntity("large_radial_engine", LargeRadialEngineBlockEntity::new) .instance(() -> ShaftInstance::new, false) .validBlocks(TFMGBlocks.LARGE_RADIAL_ENGINE) - .renderer(() -> RadialEngineRenderer::new) + .renderer(() -> ShaftRenderer::new) .register(); @@ -392,6 +618,13 @@ public class TFMGBlockEntities { .renderer(() -> CompactEngineRenderer::new) .register(); + public static final BlockEntityEntry LOW_GRADE_FUEL_ENGINE = REGISTRATE + .blockEntity("low_grade_fuel_engine", LowGradeFuelEngineBlockEntity::new) + .instance(() -> HalfShaftInstance::new, false) + .validBlocks(TFMGBlocks.LOW_GRADE_FUEL_ENGINE) + .renderer(() -> LowGradeFuelEngineRenderer::new) + .register(); + public static final BlockEntityEntry PUMPJACK_HAMMER = REGISTRATE .blockEntity("pumpjack_hammer", PumpjackBlockEntity::new) .validBlocks(TFMGBlocks.PUMPJACK_HAMMER) diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGBlocks.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGBlocks.java index 6c28d5d7..14b8d241 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGBlocks.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGBlocks.java @@ -1,19 +1,38 @@ package com.drmangotea.createindustry.registry; import com.drmangotea.createindustry.base.*; +import com.drmangotea.createindustry.blocks.TFMGHorizontalDirectionalBlock; +import com.drmangotea.createindustry.blocks.cogwheeels.TFMGCogWheelBlock; +import com.drmangotea.createindustry.blocks.cogwheeels.TFMGCogwheelBlockItem; import com.drmangotea.createindustry.blocks.concrete.formwork.FormWorkBlock; import com.drmangotea.createindustry.blocks.concrete.formwork.FormWorkGenerator; import com.drmangotea.createindustry.blocks.concrete.formwork.rebar.RebarFormWorkBlock; +import com.drmangotea.createindustry.blocks.decoration.LithiumTorchBlock; +import com.drmangotea.createindustry.blocks.decoration.LithiumTorchGenerator; import com.drmangotea.createindustry.blocks.decoration.TFMGGravityBlock; import com.drmangotea.createindustry.blocks.decoration.TrussBlock; import com.drmangotea.createindustry.blocks.decoration.doors.TFMGSlidingDoorBlock; -import com.drmangotea.createindustry.blocks.decoration.flywheels.TFMGFlywheelBlock; +import com.drmangotea.createindustry.blocks.decoration.kinetics.SteelGearboxBlock; +import com.drmangotea.createindustry.blocks.decoration.kinetics.flywheels.TFMGFlywheelBlock; import com.drmangotea.createindustry.blocks.deposits.FluidDepositBlock; +import com.drmangotea.createindustry.blocks.electricity.base.ConverterBlock; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.CableTubeBlock; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.DiagonalCableBlock; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.DiagonalCableGenerator; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block.CopycatCableBlockModel; +import com.drmangotea.createindustry.blocks.electricity.capacitor.AccumulatorBlock; +import com.drmangotea.createindustry.blocks.electricity.capacitor.AccumulatorCTBehavior; +import com.drmangotea.createindustry.blocks.electricity.electrical_switch.ElectricalSwitchBlock; +import com.drmangotea.createindustry.blocks.electricity.electrical_switch.LeverGenerator; +import com.drmangotea.createindustry.blocks.electricity.generation.creative_generator.VoltageCubeBlock; +import com.drmangotea.createindustry.blocks.electricity.lights.neon.NeonTubeBlock; +import com.drmangotea.createindustry.blocks.electricity.voltmeter.energy_meter.EnergyMeterBlock; import com.drmangotea.createindustry.blocks.engines.compact.CompactEngineBlock; import com.drmangotea.createindustry.blocks.engines.diesel.DieselEngineBlock; import com.drmangotea.createindustry.blocks.engines.diesel.engine_expansion.DieselEngineExpansionBlock; import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeBlock; import com.drmangotea.createindustry.blocks.engines.intake.AirIntakeGenerator; +import com.drmangotea.createindustry.blocks.engines.low_grade_fuel.LowGradeFuelEngineBlock; import com.drmangotea.createindustry.blocks.engines.radial.RadialEngineBlock; import com.drmangotea.createindustry.blocks.engines.radial.input.RadialEngineInputBlock; import com.drmangotea.createindustry.blocks.engines.radial.large.LargeRadialEngineBlock; @@ -24,11 +43,35 @@ import com.drmangotea.createindustry.blocks.engines.small.lpg.LPGEngineBackBlock import com.drmangotea.createindustry.blocks.engines.small.lpg.LPGEngineBlock; import com.drmangotea.createindustry.blocks.engines.small.turbine.TurbineEngineBackBlock; import com.drmangotea.createindustry.blocks.engines.small.turbine.TurbineEngineBlock; +import com.drmangotea.createindustry.blocks.electricity.base.cables.CableConnectorGenerator; +import com.drmangotea.createindustry.blocks.electricity.base.cables.CableConnectorBlock; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.CableHubBlock; +import com.drmangotea.createindustry.blocks.electricity.capacitor.CapacitorCTBehavior; +import com.drmangotea.createindustry.blocks.electricity.cable_blocks.copycat_cable_block.CopycatCableBlock; +import com.drmangotea.createindustry.blocks.electricity.lights.LightBulbBlock; +import com.drmangotea.createindustry.blocks.electricity.lights.rgb.RGBLightBulbBlock; +import com.drmangotea.createindustry.blocks.electricity.resistors.ResistorBlock; +import com.drmangotea.createindustry.blocks.electricity.transformer.CoilBlock; +import com.drmangotea.createindustry.blocks.electricity.capacitor.CapacitorBlock; +import com.drmangotea.createindustry.blocks.electricity.generation.creative_generator.CreativeGeneratorBlock; +import com.drmangotea.createindustry.blocks.electricity.electric_motor.ElectricMotorBlock; +import com.drmangotea.createindustry.blocks.electricity.batteries.GalvanicCellBlock; +import com.drmangotea.createindustry.blocks.electricity.generation.generator.GeneratorBlock; +import com.drmangotea.createindustry.blocks.electricity.generation.large_generator.RotorBlock; +import com.drmangotea.createindustry.blocks.electricity.generation.large_generator.StatorBlock; +import com.drmangotea.createindustry.blocks.electricity.generation.large_generator.StatorGenerator; +import com.drmangotea.createindustry.blocks.electricity.polarizer.PolarizerBlock; +import com.drmangotea.createindustry.blocks.electricity.transformer.CoilGenerator; +import com.drmangotea.createindustry.blocks.electricity.voltmeter.VoltMeterBlock; import com.drmangotea.createindustry.blocks.machines.exhaust.ExhaustBlock; +import com.drmangotea.createindustry.blocks.machines.firebox.FireboxBlock; +import com.drmangotea.createindustry.blocks.machines.firebox.FireboxGenerator; import com.drmangotea.createindustry.blocks.machines.flarestack.FlarestackBlock; import com.drmangotea.createindustry.blocks.machines.flarestack.FlarestackGenerator; import com.drmangotea.createindustry.blocks.machines.metal_processing.coke_oven.CokeOvenCTBehavior; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.IndustrialPipeBlock; +import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.IndustrialPipeBlock; +import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.controller.DistillationControllerBlock; +import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.output.DistillationOutputBlock; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.base.PumpjackBaseBlock; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.crank.PumpjackCrankBlock; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackBlock; @@ -39,23 +82,7 @@ import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.ham import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerConnectorBlock; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerHeadBlock; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.parts.large.LargePumpjackHammerPartBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeAttachmentModel; -import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.EncasedAluminumPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.GlassAluminumPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.brass.BrassPipeAttachmentModel; -import com.drmangotea.createindustry.blocks.pipes.normal.brass.BrassPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.brass.EncasedBrassPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.brass.GlassBrassPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.CastIronPipeAttachmentModel; -import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.CastIronPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.EncasedCastIronPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.cast_iron.GlassCastIronPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.plastic.EncasedPlasticPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.plastic.GlassPlasticPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.plastic.PlasticPipeAttachmentModel; -import com.drmangotea.createindustry.blocks.pipes.normal.plastic.PlasticPipeBlock; -import com.drmangotea.createindustry.items.gadgets.explosives.napalm.NapalmBombBlock; +import com.drmangotea.createindustry.items.weapons.explosives.napalm.NapalmBombBlock; import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_basin.CastingBasinBlock; import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_spout.CastingSpoutBlock; import com.drmangotea.createindustry.items.CoalCokeBlockItem; @@ -65,18 +92,7 @@ import com.drmangotea.createindustry.blocks.machines.metal_processing.blast_furn import com.drmangotea.createindustry.blocks.machines.metal_processing.blast_furnace.MoltenMetalBlock; import com.drmangotea.createindustry.blocks.machines.metal_processing.coke_oven.CokeOvenBlock; import com.drmangotea.createindustry.blocks.machines.metal_processing.coke_oven.CokeOvenGenerator; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationControllerBlock; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlock; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryControllerBlock; -import com.drmangotea.createindustry.blocks.machines.oil_processing.distillation.distillery.DistilleryOutputBlock; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.machine_input.MachineInputBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.steel.EncasedSteelPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.steel.GlassSteelPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.normal.steel.SteelPipeAttachmentModel; -import com.drmangotea.createindustry.blocks.pipes.normal.steel.SteelPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.pumps.TFMGPumpBlock; -import com.drmangotea.createindustry.blocks.pipes.smart_pipes.TFMGSmartFluidPipeBlock; -import com.drmangotea.createindustry.blocks.pipes.valves.TFMGFluidValveBlock; import com.drmangotea.createindustry.blocks.tanks.SteelFluidTankModel; import com.drmangotea.createindustry.blocks.tanks.SteelTankBlock; import com.drmangotea.createindustry.blocks.tanks.SteelTankGenerator; @@ -87,34 +103,36 @@ import com.simibubi.create.content.decoration.MetalLadderBlock; import com.simibubi.create.content.decoration.MetalScaffoldingBlock; import com.simibubi.create.content.decoration.encasing.CasingBlock; import com.simibubi.create.content.decoration.encasing.EncasedCTBehaviour; -import com.simibubi.create.content.decoration.encasing.EncasingRegistry; -import com.simibubi.create.content.fluids.pipes.SmartFluidPipeGenerator; -import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlock; import com.simibubi.create.content.kinetics.BlockStressDefaults; -import com.simibubi.create.content.processing.AssemblyOperatorBlockItem; +import com.simibubi.create.content.kinetics.gearbox.GearboxBlock; +import com.simibubi.create.content.kinetics.motor.CreativeMotorGenerator; +import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockModel; +import com.simibubi.create.foundation.block.ItemUseOverrides; import com.simibubi.create.foundation.data.*; import com.simibubi.create.foundation.utility.Couple; import com.tterrag.registrate.providers.loot.RegistrateBlockLootTables; import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.entry.BlockEntry; import net.minecraft.client.renderer.RenderType; -import net.minecraft.core.Direction; import net.minecraft.tags.BlockTags; import net.minecraft.tags.TagKey; import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.storage.loot.LootPool; import net.minecraft.world.level.storage.loot.entries.LootItem; -import net.minecraftforge.client.model.generators.ConfiguredModel; +import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount; import net.minecraftforge.common.Tags; import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE; +import static com.drmangotea.createindustry.blocks.electricity.lights.LightBulbBlock.LIGHT; +import static com.drmangotea.createindustry.blocks.electricity.lights.neon.NeonTubeBlock.ACTIVE; import static com.simibubi.create.AllMovementBehaviours.movementBehaviour; +import static com.simibubi.create.foundation.data.BlockStateGen.axisBlock; import static com.simibubi.create.foundation.data.BlockStateGen.simpleCubeAll; import static com.simibubi.create.foundation.data.CreateRegistrate.casingConnectivity; import static com.simibubi.create.foundation.data.CreateRegistrate.connectedTextures; @@ -128,663 +146,12 @@ public class TFMGBlocks { static { REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_BASE); } + + //-----------------------MISC---------------------------// - public static final BlockEntry NAPALM_BOMB = REGISTRATE.block("napalm_bomb", NapalmBombBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_GREEN)) - .properties(p -> p.requiresCorrectToolForDrops()) - .transform(pickaxeOnly()) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .item() - .build() - .lang("Napalm Bomb") - .register(); - public static final BlockEntry STEEL_FRAME = REGISTRATE.block("steel_frame", Block::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) - .properties(p -> p.strength(3)) - .transform(pickaxeOnly()) - .addLayer(() -> RenderType::cutoutMipped) - .properties(BlockBehaviour.Properties::noOcclusion) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .item() - .build() - .lang("Steel Frame") - .register(); - public static final BlockEntry FOSSILSTONE = REGISTRATE.block("fossilstone", Block::new) - .initialProperties(() -> Blocks.OBSIDIAN) - .properties(p -> p.strength(100f,1200f)) - .properties(p -> p.color(MaterialColor.COLOR_BLACK)) - .properties(p -> p.requiresCorrectToolForDrops()) - .transform(pickaxeOnly()) - .blockstate(simpleCubeAll("fossilstone")) - .item(FossilstoneItem::new) - .build() - .lang("Fossilstone") - .register(); - - public static final BlockEntry OIL_DEPOSIT = REGISTRATE.block("oil_deposit", FluidDepositBlock::new) - .initialProperties(() -> Blocks.BEDROCK) - .properties(p -> p.color(MaterialColor.COLOR_GRAY)) - .properties(p -> p.strength(69696969)) - .properties(p -> p.requiresCorrectToolForDrops()) - .transform(pickaxeOnly()) - .blockstate(simpleCubeAll("oil_deposit")) - .item() - .build() - .lang("Oil Deposit") - .register(); - - public static final BlockEntry STEEL_CASING = REGISTRATE.block("steel_casing", CasingBlock::new) - .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) - .transform(BuilderTransformers.casing(() -> TFMGSpriteShifts.STEEL_CASING)) - .register(); - public static final BlockEntry HEAVY_MACHINERY_CASING = REGISTRATE.block("heavy_machinery_casing", CasingBlock::new) - .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) - .transform(BuilderTransformers.casing(() -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) - .properties(p -> p.sound(SoundType.COPPER)) - .register(); - - public static final BlockEntry STEEL_TRUSS = REGISTRATE.block("steel_truss", TrussBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.COLOR_GRAY)) - .properties(p -> p.noOcclusion()) - .transform(pickaxeOnly()) - .addLayer(() -> RenderType::cutoutMipped) - .blockstate(BlockStateGen.axisBlockProvider(false)) - .item() - .build() - .lang("Steel Truss") - .register(); - public static final BlockEntry ALUMINUM_TRUSS = REGISTRATE.block("aluminum_truss", TrussBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.COLOR_GRAY)) - .properties(p -> p.noOcclusion()) - .addLayer(() -> RenderType::cutoutMipped) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.axisBlockProvider(false)) - .item() - .build() - .lang("Aluminum Truss") - .register(); - - public static final BlockEntry HARDENED_PLANKS = REGISTRATE.block("hardened_planks", Block::new) - .initialProperties(() -> Blocks.OAK_PLANKS) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - .transform(axeOnly()) - .item() - .build() - .lang("Hardened Planks") - .register(); - - public static final BlockEntry CAUTION_BLOCK = REGISTRATE.block("caution_block", Block::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) - .properties(p -> p.strength(3)) - .transform(pickaxeOnly()) - .item() - .build() - .lang("Caution Block") - .register(); - - - public static final BlockEntry RED_CAUTION_BLOCK = REGISTRATE.block("red_caution_block", Block::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.COLOR_RED)) - .properties(p -> p.strength(3)) - .transform(pickaxeOnly()) - .item() - .build() - .lang("Red Caution Block") - .register(); - - - public static final BlockEntry ASPHALT = REGISTRATE.block("asphalt", Block::new) - .initialProperties(() -> Blocks.STONE) - .properties(p -> p.color(MaterialColor.COLOR_BLACK)) - .transform(pickaxeOnly()) - .item() - .build() - .lang("Asphalt") - .register(); - public static final BlockEntry SULFUR = REGISTRATE.block("sulfur", Block::new) - .initialProperties(() -> Blocks.CALCITE) - .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) - .transform(pickaxeOnly()) - .item() - .build() - .lang("Sulfur") - .register(); - public static final BlockEntry LIGNITE = REGISTRATE.block("lignite", Block::new) - .initialProperties(() -> Blocks.CALCITE) - .properties(p -> p.color(MaterialColor.COLOR_BROWN)) - .transform(pickaxeOnly()) - .item() - .build() - .lang("Lignite") - .register(); - - - public static final BlockEntry STEEL_SCAFFOLD = - REGISTRATE.block("steel_scaffolding", MetalScaffoldingBlock::new) - .properties(p -> p - .strength(4.0F) - .requiresCorrectToolForDrops()) - .transform(BuilderTransformers.scaffold("steel", - () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/steel")), MaterialColor.TERRACOTTA_CYAN, - TFMGSpriteShifts.STEEL_SCAFFOLD, TFMGSpriteShifts.STEEL_SCAFFOLD_INSIDE, TFMGSpriteShifts.STEEL_CASING)) - .register(); - - public static final BlockEntry ALUMINUM_SCAFFOLD = - REGISTRATE.block("aluminum_scaffolding", MetalScaffoldingBlock::new) - .properties(p -> p - .strength(3.0F) - .requiresCorrectToolForDrops()) - .transform(BuilderTransformers.scaffold("aluminum", - () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/aluminum")), MaterialColor.TERRACOTTA_CYAN, - TFMGSpriteShifts.ALUMINUM_SCAFFOLD, TFMGSpriteShifts.ALUMINUM_SCAFFOLD_INSIDE, TFMGSpriteShifts.ALUMINUM_SCAFFOLD_TOP)) - .register(); - - - public static final BlockEntry BRASS_BARS = TFMGMetalBarsGen.createBars("steel", true, - () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/steel")), MaterialColor.TERRACOTTA_CYAN); - public static final BlockEntry COPPER_BARS = TFMGMetalBarsGen.createBars("aluminum", true, - () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/aluminum")), MaterialColor.TERRACOTTA_WHITE); - - - public static final BlockEntry STEEL_LADDER = - REGISTRATE.block("steel_ladder", MetalLadderBlock::new) - .transform(BuilderTransformers.ladder("steel", - () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/steel")), MaterialColor.TERRACOTTA_CYAN)) - .register(); - public static final BlockEntry ALUMINUM_LADDER = - REGISTRATE.block("aluminum_ladder", MetalLadderBlock::new) - .transform(BuilderTransformers.ladder("aluminum", - () -> DataIngredient.tag(AllTags.forgeItemTag("ingots/aluminum")), MaterialColor.TERRACOTTA_WHITE)) - .register(); - - - public static final BlockEntry STEEL_FLYWHEEL = REGISTRATE.block("steel_flywheel", TFMGFlywheelBlock::new) - .initialProperties(SharedProperties::softMetal) - .properties(p -> p.color(MaterialColor.TERRACOTTA_CYAN)) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(axeOrPickaxe()) - .transform(BlockStressDefaults.setNoImpact()) - .blockstate(BlockStateGen.axisBlockProvider(true)) - .item() - .transform(customItemModel()) - .register(); - public static final BlockEntry ALUMINUM_FLYWHEEL = REGISTRATE.block("aluminum_flywheel", TFMGFlywheelBlock::new) - .initialProperties(SharedProperties::softMetal) - .properties(p -> p.color(MaterialColor.TERRACOTTA_WHITE)) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(axeOrPickaxe()) - .transform(BlockStressDefaults.setNoImpact()) - .blockstate(BlockStateGen.axisBlockProvider(true)) - .item() - .transform(customItemModel()) - .register(); - public static final BlockEntry CAST_IRON_FLYWHEEL = REGISTRATE.block("cast_iron_flywheel", TFMGFlywheelBlock::new) - .initialProperties(SharedProperties::softMetal) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BLACK)) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(axeOrPickaxe()) - .transform(BlockStressDefaults.setNoImpact()) - .blockstate(BlockStateGen.axisBlockProvider(true)) - .item() - .transform(customItemModel()) - .register(); - - - public static final BlockEntry FACTORY_FLOOR = withVariants("factory_floor",Blocks.STONE, - MaterialColor.COLOR_GRAY,"Factory Floor",BlockTags.NEEDS_STONE_TOOL,SoundType.NETHERITE_BLOCK,3,false); - - public static final BlockEntry FACTORY_FLOOR_SLAB = REGISTRATE.block("factory_floor_slab", SlabBlock::new) - .initialProperties(() -> Blocks.STONE) - .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) - .properties(p -> p.requiresCorrectToolForDrops()) - .properties(p -> p.strength(3)) - .transform(pickaxeOnly()) - .blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, "factory_floor")) - .tag(BlockTags.NEEDS_STONE_TOOL) - .tag(BlockTags.WALLS) - .item() - .transform(customItemModel("factory_floor_bottom")) - .lang("Factory Floor Slab") - .register(); - - - - public static final BlockEntry CEMENT = REGISTRATE.block("cement", TFMGGravityBlock::new) - .initialProperties(() -> Blocks.SAND) - .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) - //.transform(pickaxeOnly()) - .blockstate(simpleCubeAll("cement")) - // .tag(Tags.Blocks) - .item() - .build() - .lang("Cement") - .register(); - - public static final BlockEntry FIRECLAY = REGISTRATE.block("fireclay", Block::new) - .initialProperties(() -> Blocks.CLAY) - .properties(p -> p.color(MaterialColor.TERRACOTTA_RED)) - //.transform(pickaxeOnly()) - .blockstate(simpleCubeAll("fireclay")) - .loot((p, b) -> p.add(b, RegistrateBlockLootTables.createSingleItemTable(TFMGItems.FIRECLAY_BALL.get()) - .withPool(RegistrateBlockLootTables.applyExplosionCondition(TFMGItems.FIRECLAY_BALL.get(), LootPool.lootPool() - .add(LootItem.lootTableItem(TFMGItems.FIRECLAY_BALL.get())))) - .withPool(RegistrateBlockLootTables.applyExplosionCondition(TFMGItems.FIRECLAY_BALL.get(), LootPool.lootPool() - .add(LootItem.lootTableItem(TFMGItems.FIRECLAY_BALL.get())))) - .withPool(RegistrateBlockLootTables.applyExplosionCondition(TFMGItems.FIRECLAY_BALL.get(), LootPool.lootPool() - .add(LootItem.lootTableItem(TFMGItems.FIRECLAY_BALL.get())))))) - - - // .tag(Tags.Blocks) - .item() - .build() - .lang("Fireclay") - .register(); - - //-----------------------MACHINES---------------------------// - public static final BlockEntry FORMWORK_BLOCK = - REGISTRATE.block("formwork_block", FormWorkBlock::new) - .initialProperties(() -> Blocks.OAK_PLANKS) - .properties(p -> p.color(MaterialColor.WOOD)) - .properties(p -> p.requiresCorrectToolForDrops()) - .properties(BlockBehaviour.Properties::noOcclusion) - .blockstate(new FormWorkGenerator()::generate) - .transform(axeOnly()) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry REBAR_FORMWORK_BLOCK = - REGISTRATE.block("rebar_formwork_block", RebarFormWorkBlock::new) - .initialProperties(() -> Blocks.OAK_PLANKS) - .properties(p -> p.color(MaterialColor.WOOD)) - .properties(p -> p.requiresCorrectToolForDrops()) - .properties(BlockBehaviour.Properties::noOcclusion) - .blockstate(new FormWorkGenerator()::generate) - .addLayer(() -> RenderType::cutoutMipped) - .transform(axeOnly()) - .item() - .transform(customItemModel()) - .register(); - - - public static final BlockEntry EXHAUST = - REGISTRATE.block("exhaust", ExhaustBlock::new) - .initialProperties(SharedProperties::copperMetal) - .addLayer(() -> RenderType::cutoutMipped) - .blockstate(BlockStateGen.directionalBlockProvider(false)) - .transform(pickaxeOnly()) - .item() - .transform(customItemModel()) - .register(); - - - public static final BlockEntry FLARESTACK = - REGISTRATE.block("flarestack", FlarestackBlock::new) - .initialProperties(SharedProperties::copperMetal) - .addLayer(() -> RenderType::cutoutMipped) - .properties(p -> p.color(MaterialColor.TERRACOTTA_CYAN) - .lightLevel(s -> s.getValue(FlarestackBlock.LIT) ? 15 : 0) - .noOcclusion()) - .blockstate(new FlarestackGenerator()::generate) - .transform(pickaxeOnly()) - .item() - .transform(customItemModel()) - .register(); - - - - public static final BlockEntry SURFACE_SCANNER = - REGISTRATE.block("surface_scanner", SurfaceScannerBlock::new) - // .properties(p -> p.color(MaterialColor.COLOR_GRAY)) - // .properties(p -> p - // .strength(4.5F)) - // .properties(BlockBehaviour.Properties::noOcclusion) - .transform(TFMGBuilderTransformers.surfaceScanner()) - .transform(pickaxeOnly()) - // .transform(axeOrPickaxe()) - // .transform(BlockStressDefaults.setImpact(10.0)) - .register(); - - - - - - //fluid stuff - - - @SuppressWarnings("'addLayer(java.util.function.Supplier>)' is deprecated and marked for removal ") - public static final BlockEntry STEEL_FLUID_TANK = REGISTRATE.block("steel_fluid_tank", SteelTankBlock::regular) - .initialProperties(SharedProperties::copperMetal) - .properties(BlockBehaviour.Properties::noOcclusion) - .properties(p -> p.isRedstoneConductor((p1, p2, p3) -> true)) - .transform(pickaxeOnly()) - .blockstate(new SteelTankGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> SteelFluidTankModel::standard)) - .addLayer(() -> RenderType::cutoutMipped) - .item(SteelTankItem::new) - .model(AssetLookup.customBlockItemModel("_", "block_single_window")) - .build() - .register(); - ///// - - //Distillation - - - public static final BlockEntry CAST_IRON_DISTILLATION_OUTPUT = - REGISTRATE.block("cast_iron_distillation_output", DistilleryOutputBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .properties(BlockBehaviour.Properties::noOcclusion) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .transform(pickaxeOnly()) - .item(AssemblyOperatorBlockItem::new) - .build() - .register(); - public static final BlockEntry CAST_IRON_DISTILLATION_CONTROLLER = - REGISTRATE.block("cast_iron_distillation_controller", DistilleryControllerBlock::new) - .initialProperties(SharedProperties::copperMetal) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .transform(pickaxeOnly()) - .item() - .build() - .register(); -// -public static final BlockEntry STEEL_DISTILLATION_OUTPUT = - REGISTRATE.block("steel_distillation_output", DistillationOutputBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(pickaxeOnly()) - .item() - .build() - .register(); - public static final BlockEntry STEEL_DISTILLATION_CONTROLLER = - REGISTRATE.block("steel_distillation_controller", DistillationControllerBlock::new) - .initialProperties(SharedProperties::copperMetal) - .blockstate((c, p) -> p.horizontalFaceBlock(c.get(), AssetLookup.partialBaseModel(c, p))) - .transform(pickaxeOnly()) - .item() - .build() - .register(); - public static final BlockEntry INDUSTRIAL_PIPE = REGISTRATE.block("industrial_pipe", IndustrialPipeBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) - .properties(p -> p.requiresCorrectToolForDrops()) - .transform(pickaxeOnly()) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .item() - .build() - .lang("Industrial Pipe") - .register(); -//////////////// - - - //Pumpjack - public static final BlockEntry MACHINE_INPUT = - REGISTRATE.block("machine_input", MachineInputBlock::new) - .properties(p -> p.color(MaterialColor.COLOR_GRAY)) - .properties(BlockBehaviour.Properties::noOcclusion) - .properties(p -> p - .strength(4.5F)) - .transform(axeOrPickaxe()) - .transform(BlockStressDefaults.setImpact(4.0)) - .blockstate(BlockStateGen.directionalBlockProvider(true)) - .item() - .build() - .register(); - - // public static final BlockEntry PUMPJACK_CRANK = - // REGISTRATE.block("pumpjack_crank", PumpjackCrankBlock::new) - // .properties(p -> p.color(MaterialColor.COLOR_GRAY)) - // .properties(p -> p - // .strength(4.5F)) - // .properties(BlockBehaviour.Properties::noOcclusion) - // .blockstate(BlockStateGen.horizontalBlockProvider(true)) - // .transform(axeOrPickaxe()) - // .item() - // .build() - // .register(); - // public static final BlockEntry PUMPJACK_BASE = - // REGISTRATE.block("pumpjack_base", PumpjackBaseBlock::new) - // .initialProperties(SharedProperties::copperMetal) - // .properties(BlockBehaviour.Properties::noOcclusion) - // .transform(pickaxeOnly()) - // .blockstate(BlockStateGen.horizontalBlockProvider(true)) - // .item() - // .build() - // .register(); -// - // public static final BlockEntry PUMPJACK_HAMMER_HOLDER = - // REGISTRATE.block("pumpjack_hammer_holder", PumpjackHammerHolderBlock::new) - // .initialProperties(SharedProperties::copperMetal) - // .properties(BlockBehaviour.Properties::noOcclusion) - // .blockstate(BlockStateGen.horizontalBlockProvider(true)) - // .transform(pickaxeOnly()) - // .item() - // .build() - // .register(); - // ////// - - - public static final BlockEntry PUMPJACK_HAMMER = - REGISTRATE.block("pumpjack_hammer", PumpjackBlock::new) - .properties(p -> p.color(MaterialColor.PODZOL)) - .transform(pickaxeOnly()) - .properties(BlockBehaviour.Properties::noOcclusion) - .tag(AllTags.AllBlockTags.SAFE_NBT.tag) - .addLayer(() -> RenderType::cutoutMipped) - .blockstate(new PumpjackGenerator()::generate) - .onRegister(movementBehaviour(new StabilizedBearingMovementBehaviour())) - .item() - .transform(customItemModel()) - .lang("Pumpjack Hammer Holder") - .register(); - - - - public static final BlockEntry PUMPJACK_CRANK = - REGISTRATE.block("pumpjack_crank", PumpjackCrankBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.PODZOL)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.horizontalBlockProvider(true)) - .properties(BlockBehaviour.Properties::noOcclusion) - .item() - .build() - .lang("Pumpjack Crank") - .register(); - - public static final BlockEntry PUMPJACK_HAMMER_PART = REGISTRATE.block("pumpjack_hammer_part", PumpjackHammerPartBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - .transform(pickaxeOnly()) - .properties(BlockBehaviour.Properties::noOcclusion) - .blockstate(BlockStateGen.horizontalBlockProvider(false)) - .item() - .build() - .lang("Pumpjack Hammer Part") - .register(); - - public static final BlockEntry PUMPJACK_HAMMER_HEAD = REGISTRATE.block("pumpjack_hammer_head", PumpjackHammerHeadBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - .transform(pickaxeOnly()) - .properties(BlockBehaviour.Properties::noOcclusion) - .blockstate(BlockStateGen.horizontalBlockProvider(false)) - .item() - .build() - .lang("Pumpjack Hammer Head") - .register(); - - - - public static final BlockEntry PUMPJACK_HAMMER_CONNECTOR = REGISTRATE.block("pumpjack_hammer_connector", PumpjackHammerConnectorBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - .transform(pickaxeOnly()) - .properties(BlockBehaviour.Properties::noOcclusion) - .blockstate(BlockStateGen.horizontalBlockProvider(false)) - .item() - .build() - .lang("Pumpjack Hammer Connector") - .register(); - //////// - public static final BlockEntry LARGE_PUMPJACK_HAMMER_PART = REGISTRATE.block("large_pumpjack_hammer_part", LargePumpjackHammerPartBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.horizontalBlockProvider(false)) - .item() - .build() - .lang("Large Pumpjack Hammer Part") - .register(); - - public static final BlockEntry LARGE_PUMPJACK_HAMMER_HEAD = REGISTRATE.block("large_pumpjack_hammer_head", LargePumpjackHammerHeadBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.horizontalBlockProvider(false)) - .item() - .build() - .lang("Large Pumpjack Hammer Head") - .register(); - - - - public static final BlockEntry LARGE_PUMPJACK_HAMMER_CONNECTOR = REGISTRATE.block("large_pumpjack_hammer_connector", LargePumpjackHammerConnectorBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.horizontalBlockProvider(false)) - .item() - .build() - .lang("Large Pumpjack Hammer Connector") - .register(); - //////// - public static final BlockEntry PUMPJACK_BASE = REGISTRATE.block("pumpjack_base", PumpjackBaseBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - .transform(pickaxeOnly()) - .properties(BlockBehaviour.Properties::noOcclusion) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .item() - .build() - .lang("Pumpjack Base") - .register(); - - /////////// - - //Blast Furnace - - public static final BlockEntry FIREPROOF_BRICKS = REGISTRATE.block("fireproof_bricks", Block::new) - .initialProperties(() -> Blocks.BRICKS) - .properties(p -> p.color(MaterialColor.COLOR_RED)) - .properties(p -> p.requiresCorrectToolForDrops()) - .transform(pickaxeOnly()) - .item() - .build() - .lang("Fireproof Bricks") - .register(); - public static final BlockEntry FIREPROOF_BRICK_REINFORCEMENT = REGISTRATE.block("fireproof_brick_reinforcement", WallBlock::new) - .initialProperties(() -> Blocks.BRICKS) - .properties(p -> p.color(MaterialColor.COLOR_RED)) - .properties(p -> p.requiresCorrectToolForDrops()) - .transform(pickaxeOnly()) - .tag(BlockTags.WALLS) - .blockstate((c, p) -> TFMGVanillaBlockStates.generateWallBlockState(c, p, "fireproof_brick_reinforcement")) - .item() - .transform(b -> TFMGVanillaBlockStates.transformWallItem(b, "fireproof_brick_reinforcement")) - .build() - .lang("Fireproof Brick Reinforcement") - .register(); - public static final BlockEntry BLAST_FURNACE_OUTPUT = REGISTRATE.block("blast_furnace_output", BlastFurnaceOutputBlock::new) - .initialProperties(() -> Blocks.BRICKS) - .properties(p -> p.color(MaterialColor.COLOR_RED)) - .properties(p -> p.requiresCorrectToolForDrops()) - .blockstate((c, p) -> p.horizontalBlock(c.get(), p.models() - .getExistingFile(p.modLoc("block/blast_furnace_output/block")))) - .transform(pickaxeOnly()) - .item() - .transform(customItemModel()) - .lang("Blast Furnace Output") - .register(); - public static final BlockEntry MOLTEN_METAL = - REGISTRATE.block("molten_metal", MoltenMetalBlock::new) - .initialProperties(SharedProperties.CRUSHING_WHEEL_CONTROLLER_MATERIAL) - .properties(p -> p.color(MaterialColor.COLOR_ORANGE)) - .properties(p -> p.noOcclusion() - .noLootTable() - .air()) - - .register(); - - //--Casting Basin - public static final BlockEntry CASTING_BASIN = REGISTRATE.block("casting_basin", CastingBasinBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BLACK)) - .properties(BlockBehaviour.Properties::noOcclusion) - .properties(p -> p.requiresCorrectToolForDrops()) - .transform(pickaxeOnly()) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .addLayer(() -> RenderType::cutoutMipped) - .item() - .build() - .lang("Casting Basin") - .register(); - - public static final BlockEntry CASTING_SPOUT = REGISTRATE.block("casting_spout", CastingSpoutBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .properties(p -> p.color(MaterialColor.TERRACOTTA_BLACK)) - .properties(BlockBehaviour.Properties::noOcclusion) - .properties(p -> p.requiresCorrectToolForDrops()) - .transform(pickaxeOnly()) - .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) - .addLayer(() -> RenderType::cutoutMipped) - .item() - .transform(customItemModel()) - .lang("Casting Spout") - .register(); - - - ////////// - public static final BlockEntry COKE_OVEN = REGISTRATE.block("coke_oven", CokeOvenBlock::new) - .initialProperties(() -> Blocks.BRICKS) - .properties(p -> p.color(MaterialColor.COLOR_RED)) - .properties(p -> p.requiresCorrectToolForDrops()) - .blockstate(new CokeOvenGenerator()::generate) - .transform(pickaxeOnly()) - .onRegister(connectedTextures(CokeOvenCTBehavior::new)) - .item() - .transform(customItemModel()) - .lang("Coke Oven") - .register(); - /////// - - - public static final BlockEntry AIR_INTAKE = REGISTRATE.block("air_intake", AirIntakeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(pickaxeOnly()) - .addLayer(() -> RenderType::cutoutMipped) - .blockstate(new AirIntakeGenerator()::generate) - .item() - .transform(customItemModel()) - .lang("Air Intake") - .register(); - - - - //-----------------------BUILDING BLOCKS---------------------------// public static final BlockEntry STEEL_BLOCK = REGISTRATE.block("steel_block", Block::new) .initialProperties(() -> Blocks.IRON_BLOCK) .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) @@ -848,25 +215,56 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .lang("Block of Plastic") .register(); - //public static final BlockEntry LEAD_BLOCK = REGISTRATE.block("lead_block", Block::new) - // .initialProperties(() -> Blocks.IRON_BLOCK) - // .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) - // .properties(p -> p.requiresCorrectToolForDrops()) - // .onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.CAST_IRON_BLOCK))) - // .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.CAST_IRON_BLOCK))) - // .transform(pickaxeOnly()) - // .blockstate(simpleCubeAll("lead_block")) - // .tag(BlockTags.NEEDS_IRON_TOOL) - // .tag(Tags.Blocks.STORAGE_BLOCKS) - // .tag(BlockTags.BEACON_BASE_BLOCKS) - // .transform(tagBlockAndItem("storage_blocks/lead")) - // .tag(Tags.Items.STORAGE_BLOCKS) - // .build() - // .lang("Block of Lead") - // .register(); + public static final BlockEntry LEAD_BLOCK = REGISTRATE.block("lead_block", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.LEAD_BLOCK))) + .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.LEAD_BLOCK))) + .transform(pickaxeOnly()) + .blockstate(simpleCubeAll("lead_block")) + .tag(BlockTags.NEEDS_IRON_TOOL) + .tag(Tags.Blocks.STORAGE_BLOCKS) + .tag(BlockTags.BEACON_BASE_BLOCKS) + .transform(tagBlockAndItem("storage_blocks/lead")) + .tag(Tags.Items.STORAGE_BLOCKS) + .build() + .lang("Block of Lead") + .register(); + public static final BlockEntry NICKEL_BLOCK = REGISTRATE.block("nickel_block", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.LEAD_BLOCK))) + .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.LEAD_BLOCK))) + .transform(pickaxeOnly()) + .tag(BlockTags.NEEDS_IRON_TOOL) + .tag(Tags.Blocks.STORAGE_BLOCKS) + .tag(BlockTags.BEACON_BASE_BLOCKS) + .transform(tagBlockAndItem("storage_blocks/nickel")) + .tag(Tags.Items.STORAGE_BLOCKS) + .build() + .lang("Block of Nickel") + .register(); + public static final BlockEntry LITHIUM_BLOCK = REGISTRATE.block("lithium_block", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.LEAD_BLOCK))) + .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.LEAD_BLOCK))) + .transform(pickaxeOnly()) + .blockstate(simpleCubeAll("lithium_block")) + .tag(BlockTags.NEEDS_IRON_TOOL) + .tag(Tags.Blocks.STORAGE_BLOCKS) + .tag(BlockTags.BEACON_BASE_BLOCKS) + .transform(tagBlockAndItem("storage_blocks/lithium")) + .tag(Tags.Items.STORAGE_BLOCKS) + .build() + .lang("Block of Lithium") + .register(); public static final BlockEntry COAL_COKE_BLOCK = REGISTRATE.block("coal_coke_block", Block::new) @@ -883,22 +281,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .lang("Block of Coal Coke") .register(); - // //sheetmetals - // public static final BlockEntry STEEL_SHEETMETAL = REGISTRATE.block("steel_sheetmetal", Block::new) - // .initialProperties(() -> Blocks.IRON_BLOCK) - // .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) - // .properties(p -> p.requiresCorrectToolForDrops()) - // .onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.STEEL_SHEETMETAL))) - // .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.STEEL_SHEETMETAL))) - // .transform(pickaxeOnly()) - // .blockstate(simpleCubeAll("steel_sheetmetal")) - // .tag(BlockTags.NEEDS_IRON_TOOL) - // .item() - // .build() - // .lang("Steel Sheetmetal") - // .register(); - // public static final BlockEntry HEAVY_CASING_DOOR = REGISTRATE.block("heavy_casing_door", p -> new TFMGSlidingDoorBlock(p, false)) .transform(TFMGBuilderTransformers.slidingDoor("heavy_casing")) @@ -914,6 +297,970 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .noOcclusion()) .register(); + public static final BlockEntry STEEL_GEARBOX = REGISTRATE.block("steel_gearbox", SteelGearboxBlock::new) + .initialProperties(SharedProperties::stone) + .properties(p -> p.noOcclusion().color(MaterialColor.PODZOL)) + .transform(BlockStressDefaults.setNoImpact()) + .transform(axeOrPickaxe()) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.HEAVY_MACHINERY_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, TFMGSpriteShifts.HEAVY_MACHINERY_CASING, + (s, f) -> f.getAxis() == s.getValue(GearboxBlock.AXIS)))) + .blockstate((c, p) -> axisBlock(c, p, $ -> AssetLookup.partialBaseModel(c, p), true)) + .item() + .transform(customItemModel()) + .register(); + public static final BlockEntry NAPALM_BOMB = REGISTRATE.block("napalm_bomb", NapalmBombBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_GREEN)) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .lang("Napalm Bomb") + .register(); + + + public static final BlockEntry FOSSILSTONE = REGISTRATE.block("fossilstone", Block::new) + .initialProperties(() -> Blocks.OBSIDIAN) + .properties(p -> p.strength(100f, 1200f)) + .properties(p -> p.color(MaterialColor.COLOR_BLACK)) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .blockstate(simpleCubeAll("fossilstone")) + .item(FossilstoneItem::new) + .build() + .lang("Fossilstone") + .register(); + + public static final BlockEntry LITHIUM_TORCH = + REGISTRATE.block("lithium_torch", LithiumTorchBlock::new) + .initialProperties(() -> Blocks.TORCH) + .properties(p -> p.lightLevel(s -> 14).instabreak().noOcclusion()) + .addLayer(() -> RenderType::cutoutMipped) + .blockstate(new LithiumTorchGenerator()::generate) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry OIL_DEPOSIT = REGISTRATE.block("oil_deposit", FluidDepositBlock::new) + .initialProperties(() -> Blocks.BEDROCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.strength(69696969)) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .blockstate(simpleCubeAll("oil_deposit")) + .item() + .build() + .lang("Oil Deposit") + .register(); + + public static final BlockEntry STEEL_CASING = REGISTRATE.block("steel_casing", CasingBlock::new) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .transform(BuilderTransformers.casing(() -> TFMGSpriteShifts.STEEL_CASING)) + .register(); + public static final BlockEntry HEAVY_MACHINERY_CASING = REGISTRATE.block("heavy_machinery_casing", CasingBlock::new) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .transform(BuilderTransformers.casing(() -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) + .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) + .register(); + + public static final BlockEntry ELECTRIC_CASING = REGISTRATE.block("electric_casing", CasingBlock::new) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .transform(BuilderTransformers.casing(() -> TFMGSpriteShifts.ELECTRIC_CASING)) + .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) + .register(); + + + + + public static final BlockEntry LEAD_ORE = REGISTRATE.block("lead_ore", Block::new) + .initialProperties(() -> Blocks.GOLD_ORE) + .properties(p -> p.color(MaterialColor.METAL) + .requiresCorrectToolForDrops() + .sound(SoundType.STONE)) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_LEAD.get()) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)))))) + .tag(BlockTags.NEEDS_STONE_TOOL) + .tag(Tags.Blocks.ORES) + .transform(tagBlockAndItem("ores/lead", "ores_in_ground/stone")) + .tag(Tags.Items.ORES) + .build() + .register(); + + public static final BlockEntry DEEPSLATE_LEAD_ORE = REGISTRATE.block("deepslate_lead_ore", Block::new) + .initialProperties(() -> Blocks.DEEPSLATE_GOLD_ORE) + .properties(p -> p.color(MaterialColor.STONE) + .requiresCorrectToolForDrops() + .sound(SoundType.DEEPSLATE)) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_LEAD.get()) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)))))) + .tag(BlockTags.NEEDS_STONE_TOOL) + .tag(Tags.Blocks.ORES) + .transform(tagBlockAndItem("ores/lead", "ores_in_ground/deepslate")) + .tag(Tags.Items.ORES) + .build() + .register(); + + public static final BlockEntry NICKEL_ORE = REGISTRATE.block("nickel_ore", Block::new) + .initialProperties(() -> Blocks.GOLD_ORE) + .properties(p -> p.color(MaterialColor.METAL) + .requiresCorrectToolForDrops() + .sound(SoundType.STONE)) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_NICKEL.get()) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)))))) + .tag(BlockTags.NEEDS_STONE_TOOL) + .tag(Tags.Blocks.ORES) + .transform(tagBlockAndItem("ores/nickel", "ores_in_ground/stone")) + .tag(Tags.Items.ORES) + .build() + .register(); + + public static final BlockEntry DEEPSLATE_NICKEL_ORE = REGISTRATE.block("deepslate_nickel_ore", Block::new) + .initialProperties(() -> Blocks.DEEPSLATE_GOLD_ORE) + .properties(p -> p.color(MaterialColor.STONE) + .requiresCorrectToolForDrops() + .sound(SoundType.DEEPSLATE)) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_NICKEL.get()) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)))))) + .tag(BlockTags.NEEDS_STONE_TOOL) + .tag(Tags.Blocks.ORES) + .transform(tagBlockAndItem("ores/nickel", "ores_in_ground/deepslate")) + .tag(Tags.Items.ORES) + .build() + .register(); + + public static final BlockEntry LITHIUM_ORE = REGISTRATE.block("lithium_ore", Block::new) + .initialProperties(() -> Blocks.GOLD_ORE) + .properties(p -> p.color(MaterialColor.METAL) + .requiresCorrectToolForDrops() + .sound(SoundType.STONE)) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_LITHIUM.get()) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)))))) + .tag(BlockTags.NEEDS_STONE_TOOL) + .tag(Tags.Blocks.ORES) + .transform(tagBlockAndItem("ores/lithium", "ores_in_ground/stone")) + .tag(Tags.Items.ORES) + .build() + .register(); + + public static final BlockEntry DEEPSLATE_LITHIUM_ORE = REGISTRATE.block("deepslate_lithium_ore", Block::new) + .initialProperties(() -> Blocks.DEEPSLATE_GOLD_ORE) + .properties(p -> p.color(MaterialColor.STONE) + .requiresCorrectToolForDrops() + .sound(SoundType.DEEPSLATE)) + .transform(pickaxeOnly()) + .loot((lt, b) -> lt.add(b, + RegistrateBlockLootTables.createSilkTouchDispatchTable(b, + RegistrateBlockLootTables.applyExplosionDecay(b, LootItem.lootTableItem(TFMGItems.RAW_LITHIUM.get()) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)))))) + .tag(BlockTags.NEEDS_STONE_TOOL) + .tag(Tags.Blocks.ORES) + .transform(tagBlockAndItem("ores/lithium", "ores_in_ground/deepslate")) + .tag(Tags.Items.ORES) + .build() + .register(); + + + + public static final BlockEntry SULFUR = REGISTRATE.block("sulfur", Block::new) + .initialProperties(() -> Blocks.CALCITE) + .properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW)) + .transform(pickaxeOnly()) + .item() + .build() + .lang("Sulfur") + .register(); + public static final BlockEntry LIGNITE = REGISTRATE.block("lignite", Block::new) + .initialProperties(() -> Blocks.CALCITE) + .properties(p -> p.color(MaterialColor.COLOR_BROWN)) + .transform(pickaxeOnly()) + .item() + .build() + .lang("Lignite") + .register(); + + public static final BlockEntry CEMENT = REGISTRATE.block("cement", TFMGGravityBlock::new) + .initialProperties(() -> Blocks.SAND) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + //.transform(pickaxeOnly()) + .blockstate(simpleCubeAll("cement")) + // .tag(Tags.Blocks) + .item() + .build() + .lang("Cement") + .register(); + + public static final BlockEntry FIRECLAY = REGISTRATE.block("fireclay", Block::new) + .initialProperties(() -> Blocks.CLAY) + .properties(p -> p.color(MaterialColor.TERRACOTTA_RED)) + //.transform(pickaxeOnly()) + .blockstate(simpleCubeAll("fireclay")) + .loot((p, b) -> p.add(b, RegistrateBlockLootTables.createSingleItemTable(TFMGItems.FIRECLAY_BALL.get()) + .withPool(RegistrateBlockLootTables.applyExplosionCondition(TFMGItems.FIRECLAY_BALL.get(), LootPool.lootPool() + .add(LootItem.lootTableItem(TFMGItems.FIRECLAY_BALL.get())))) + .withPool(RegistrateBlockLootTables.applyExplosionCondition(TFMGItems.FIRECLAY_BALL.get(), LootPool.lootPool() + .add(LootItem.lootTableItem(TFMGItems.FIRECLAY_BALL.get())))) + .withPool(RegistrateBlockLootTables.applyExplosionCondition(TFMGItems.FIRECLAY_BALL.get(), LootPool.lootPool() + .add(LootItem.lootTableItem(TFMGItems.FIRECLAY_BALL.get())))))) + + + // .tag(Tags.Blocks) + .item() + .build() + .lang("Fireclay") + .register(); + + //-----------------------MACHINES---------------------------// + + public static final BlockEntry LIGHT_BULB = + REGISTRATE.block("light_bulb", LightBulbBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.lightLevel(s -> s.getValue(LIGHT))) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.directionalBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + //public static final BlockEntry INDUSTRIAL_LIGHT = + // REGISTRATE.block("industrial_light", LightBulbBlock::new) + // .initialProperties(() -> Blocks.IRON_BLOCK) + // .properties(p -> p.lightLevel(s -> s.getValue(LIGHT))) + // .transform(pickaxeOnly()) + // .addLayer(() -> RenderType::cutoutMipped) + // .properties(BlockBehaviour.Properties::noOcclusion) + // .blockstate(BlockStateGen.directionalBlockProvider(true)) + // .item() + // .transform(customItemModel()) + // .register(); + + public static final BlockEntry RGB_LIGHT_BULB = + REGISTRATE.block("rgb_light_bulb", RGBLightBulbBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.lightLevel(s -> s.getValue(LIGHT))) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.directionalBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + + public static final BlockEntry COPYCAT_CABLE_BLOCK = + REGISTRATE.block("copycat_cable_block", CopycatCableBlock::new) + .transform(TFMGBuilderTransformers.copycatCable()) + .onRegister(CreateRegistrate.blockModel(() -> CopycatCableBlockModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry COPYCAT_CABLE_BASE = REGISTRATE.block("copycat_cable_base", Block::new) + .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.GLOW_LICHEN)) + .addLayer(() -> RenderType::cutoutMipped) + .tag(AllTags.AllBlockTags.FAN_TRANSPARENT.tag) + .transform(pickaxeOnly()) + .blockstate((c, p) -> p.simpleBlock(c.get(), AssetLookup.partialBaseModel(c, p))) + .register(); + public static final BlockEntry BRASS_CABLE_HUB = + REGISTRATE.block("brass_cable_hub", CableHubBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + public static final BlockEntry COPPER_CABLE_HUB = + REGISTRATE.block("copper_cable_hub", CableHubBlock::new) + .initialProperties(() -> Blocks.COPPER_BLOCK) + .properties(p -> p.sound(SoundType.COPPER)) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + public static final BlockEntry STEEL_CABLE_HUB = + REGISTRATE.block("steel_cable_hub", CableHubBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + public static final BlockEntry ALUMINUM_CABLE_HUB = + REGISTRATE.block("aluminum_cable_hub", CableHubBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + public static final BlockEntry STEEL_CASING_CABLE_HUB = + REGISTRATE.block("steel_casing_cable_hub", CableHubBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + public static final BlockEntry HEAVY_CABLE_HUB = + REGISTRATE.block("heavy_cable_hub", CableHubBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + + + public static final BlockEntry CABLE_TUBE = + REGISTRATE.block("cable_tube", CableTubeBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(p -> p.noOcclusion()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .item() + .build() + .register(); + + public static final BlockEntry NEON_TUBE = + REGISTRATE.block("neon_tube", NeonTubeBlock::new) + .initialProperties(() -> Blocks.GLASS) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(p -> p.noOcclusion() + .lightLevel(s -> s.getValue(ACTIVE) ? 3 : 0)) + .blockstate(BlockStateGen.axisBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry DIAGONL_CABLE_BLOCK = + REGISTRATE.block("diagonal_cable_block", DiagonalCableBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .blockstate(new DiagonalCableGenerator()::generate) + .properties(p -> p.noOcclusion()) + .item() + .transform(customItemModel()) + .register(); + + + + public static final BlockEntry FIREBOX = + REGISTRATE.block("firebox", FireboxBlock::new) + .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_GRAY).lightLevel(FireboxBlock::getLight)) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .blockstate(new FireboxGenerator()::generate) + .item() + .transform(customItemModel()) + .register(); + + + //public static final BlockEntry ELECTRICAL_SWITCH = + // REGISTRATE.block("electrical_switch", ElectricalSwitchBlock::new) + // .initialProperties(() -> Blocks.LEVER) + // .transform(axeOrPickaxe()) + // .addLayer(() -> RenderType::cutoutMipped) + // .blockstate(new LeverGenerator()::generate) + // .onRegister(ItemUseOverrides::addBlock) + // .item() + // .transform(customItemModel()) + // .register(); + + + public static final BlockEntry ACCUMULATOR = + REGISTRATE.block("accumulator", AccumulatorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .onRegister(connectedTextures(AccumulatorCTBehavior::new)) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .register(); + + //public static final BlockEntry WELDING_MACHINE = + // REGISTRATE.block("welding_machine", WeldingMachineBlock::new) + // .initialProperties(SharedProperties::softMetal) + // .properties(p -> p.noOcclusion().color(MaterialColor.PODZOL)) + // .transform(axeOrPickaxe()) + // .blockstate(BlockStateGen.horizontalBlockProvider(true)) + // .item(AssemblyOperatorBlockItem::new) + // .transform(customItemModel()) + // .register(); + + public static final BlockEntry CAPACITOR = + REGISTRATE.block("capacitor", CapacitorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .onRegister(connectedTextures(CapacitorCTBehavior::new)) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .register(); + + public static final BlockEntry CONVERTER = + REGISTRATE.block("converter", ConverterBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .onRegister(connectedTextures(CapacitorCTBehavior::new)) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .register(); + + + + public static final BlockEntry GALVANIC_CELL = + REGISTRATE.block("galvanic_cell", GalvanicCellBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + public static final BlockEntry POLARIZER = + REGISTRATE.block("polarizer", PolarizerBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry VOLTMETER = + REGISTRATE.block("voltmeter", VoltMeterBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + + public static final BlockEntry ENERGY_METER = + REGISTRATE.block("energy_meter", EnergyMeterBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry RESISTOR = + REGISTRATE.block("resistor", ResistorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry COPPER_COIL = + REGISTRATE.block("copper_coil", CoilBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .blockstate(new CoilGenerator()::generate) + .item() + .transform(customItemModel()) + .register(); + public static final BlockEntry ELECTRIC_MOTOR = + REGISTRATE.block("electric_motor", ElectricMotorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(new CreativeMotorGenerator()::generate) + .transform(BlockStressDefaults.setCapacity(45.0)) + .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) + .item() + .transform(customItemModel()) + .register(); + public static final BlockEntry ROTOR = + REGISTRATE.block("rotor", RotorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.axisBlockProvider(true)) + .transform(BlockStressDefaults.setImpact(350)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry STATOR = + REGISTRATE.block("stator", StatorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(new StatorGenerator()::generate) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry GENERATOR = + REGISTRATE.block("generator", GeneratorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(BlockStressDefaults.setImpact(30.0)) + .blockstate(BlockStateGen.directionalBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + + public static final BlockEntry CABLE_CONNECTOR = REGISTRATE.block("cable_connector", CableConnectorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .properties(p -> p.requiresCorrectToolForDrops()) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(pickaxeOnly()) + .blockstate(new CableConnectorGenerator()::generate) + .item() + .transform(customItemModel()) + .lang("Cable Connector") + .register(); + + //public static final BlockEntry GLASS_CABLE_CONNECTOR = REGISTRATE.block("glass_cable_connector", CableConnectorBlock::new) + // .initialProperties(() -> Blocks.IRON_BLOCK) + // .properties(p -> p.color(MaterialColor.TERRACOTTA_GREEN)) + // .properties(p -> p.requiresCorrectToolForDrops()) + // .properties(BlockBehaviour.Properties::noOcclusion) + // .transform(pickaxeOnly()) + // .blockstate(new CableConnectorGenerator()::generate) + // .item() + // .transform(customItemModel()) + // .lang("Glass Cable Connector") + // .register(); + + + public static final BlockEntry CREATIVE_GENERATOR = REGISTRATE.block("creative_generator", CreativeGeneratorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .item() + .build() + .lang("Creative Generator") + .register(); + + public static final BlockEntry VOLTAGE_CUBE = + REGISTRATE.block("voltage_cube", VoltageCubeBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + + //// + public static final BlockEntry FORMWORK_BLOCK = + REGISTRATE.block("formwork_block", FormWorkBlock::new) + .initialProperties(() -> Blocks.OAK_PLANKS) + .properties(p -> p.color(MaterialColor.WOOD)) + .properties(p -> p.requiresCorrectToolForDrops()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(new FormWorkGenerator()::generate) + .transform(axeOnly()) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry REBAR_FORMWORK_BLOCK = + REGISTRATE.block("rebar_formwork_block", RebarFormWorkBlock::new) + .initialProperties(() -> Blocks.OAK_PLANKS) + .properties(p -> p.color(MaterialColor.WOOD)) + .properties(p -> p.requiresCorrectToolForDrops()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(new FormWorkGenerator()::generate) + .addLayer(() -> RenderType::cutoutMipped) + .transform(axeOnly()) + .item() + .transform(customItemModel()) + .register(); + + + public static final BlockEntry EXHAUST = + REGISTRATE.block("exhaust", ExhaustBlock::new) + .initialProperties(SharedProperties::copperMetal) + .addLayer(() -> RenderType::cutoutMipped) + .blockstate(BlockStateGen.directionalBlockProvider(false)) + .transform(pickaxeOnly()) + .item() + .transform(customItemModel()) + .register(); + + + public static final BlockEntry FLARESTACK = + REGISTRATE.block("flarestack", FlarestackBlock::new) + .initialProperties(SharedProperties::copperMetal) + .addLayer(() -> RenderType::cutoutMipped) + .properties(p -> p.color(MaterialColor.TERRACOTTA_CYAN) + .lightLevel(s -> s.getValue(FlarestackBlock.LIT) ? 15 : 0) + .noOcclusion()) + .blockstate(new FlarestackGenerator()::generate) + .transform(pickaxeOnly()) + .item() + .transform(customItemModel()) + .register(); + + + public static final BlockEntry SURFACE_SCANNER = + REGISTRATE.block("surface_scanner", SurfaceScannerBlock::new) + // .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + // .properties(p -> p + // .strength(4.5F)) + // .properties(BlockBehaviour.Properties::noOcclusion) + .transform(TFMGBuilderTransformers.surfaceScanner()) + .transform(pickaxeOnly()) + // .transform(axeOrPickaxe()) + // .transform(BlockStressDefaults.setImpact(10.0)) + .register(); + + + //fluid stuff + + + @SuppressWarnings("'addLayer(java.util.function.Supplier>)' is deprecated and marked for removal ") + public static final BlockEntry STEEL_FLUID_TANK = + REGISTRATE.block("steel_fluid_tank", SteelTankBlock::regular) + .initialProperties(SharedProperties::copperMetal) + .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.isRedstoneConductor((p1, p2, p3) -> true)) + .transform(pickaxeOnly()) + .blockstate(new SteelTankGenerator()::generate) + .onRegister(CreateRegistrate.blockModel(() -> SteelFluidTankModel::standard)) + .addLayer(() -> RenderType::cutoutMipped) + .item(SteelTankItem::new) + .model(AssetLookup.customBlockItemModel("_", "block_single_window")) + .build() + .register(); + ///// + + //Distillation + + + public static final BlockEntry STEEL_DISTILLATION_OUTPUT = + REGISTRATE.block("steel_distillation_output", DistillationOutputBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.STONE)) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + public static final BlockEntry STEEL_DISTILLATION_CONTROLLER = + REGISTRATE.block("steel_distillation_controller", DistillationControllerBlock::new) + .initialProperties(SharedProperties::copperMetal) + .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .transform(pickaxeOnly()) + .item() + .build() + .register(); + public static final BlockEntry INDUSTRIAL_PIPE = REGISTRATE.block("industrial_pipe", IndustrialPipeBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops().noOcclusion()) + .transform(pickaxeOnly()) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .lang("Industrial Pipe") + .register(); +//////////////// + + + //Pumpjack + public static final BlockEntry MACHINE_INPUT = + REGISTRATE.block("machine_input", MachineInputBlock::new) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p + .strength(4.5F)) + .transform(axeOrPickaxe()) + .transform(BlockStressDefaults.setImpact(4.0)) + .blockstate(BlockStateGen.directionalBlockProvider(true)) + .item() + .build() + .register(); + + + + public static final BlockEntry PUMPJACK_HAMMER = + REGISTRATE.block("pumpjack_hammer", PumpjackBlock::new) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .tag(AllTags.AllBlockTags.SAFE_NBT.tag) + .addLayer(() -> RenderType::cutoutMipped) + .blockstate(new PumpjackGenerator()::generate) + .onRegister(movementBehaviour(new StabilizedBearingMovementBehaviour())) + .item() + .transform(customItemModel()) + .lang("Pumpjack Hammer Holder") + .register(); + + + public static final BlockEntry PUMPJACK_CRANK = + REGISTRATE.block("pumpjack_crank", PumpjackCrankBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.PODZOL)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .properties(BlockBehaviour.Properties::noOcclusion) + .item() + .build() + .lang("Pumpjack Crank") + .register(); + + public static final BlockEntry PUMPJACK_HAMMER_PART = REGISTRATE.block("pumpjack_hammer_part", PumpjackHammerPartBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.horizontalBlockProvider(false)) + .item() + .build() + .lang("Pumpjack Hammer Part") + .register(); + + public static final BlockEntry PUMPJACK_HAMMER_HEAD = REGISTRATE.block("pumpjack_hammer_head", PumpjackHammerHeadBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.horizontalBlockProvider(false)) + .item() + .build() + .lang("Pumpjack Hammer Head") + .register(); + + + public static final BlockEntry PUMPJACK_HAMMER_CONNECTOR = REGISTRATE.block("pumpjack_hammer_connector", PumpjackHammerConnectorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate(BlockStateGen.horizontalBlockProvider(false)) + .item() + .build() + .lang("Pumpjack Hammer Connector") + .register(); + //////// + public static final BlockEntry LARGE_PUMPJACK_HAMMER_PART = REGISTRATE.block("large_pumpjack_hammer_part", LargePumpjackHammerPartBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.horizontalBlockProvider(false)) + .item() + .build() + .lang("Large Pumpjack Hammer Part") + .register(); + + public static final BlockEntry LARGE_PUMPJACK_HAMMER_HEAD = REGISTRATE.block("large_pumpjack_hammer_head", LargePumpjackHammerHeadBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.horizontalBlockProvider(false)) + .item() + .build() + .lang("Large Pumpjack Hammer Head") + .register(); + + + public static final BlockEntry LARGE_PUMPJACK_HAMMER_CONNECTOR = REGISTRATE.block("large_pumpjack_hammer_connector", LargePumpjackHammerConnectorBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.horizontalBlockProvider(false)) + .item() + .build() + .lang("Large Pumpjack Hammer Connector") + .register(); + //////// + public static final BlockEntry PUMPJACK_BASE = REGISTRATE.block("pumpjack_base", PumpjackBaseBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(pickaxeOnly()) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .lang("Pumpjack Base") + .register(); + + /////////// + + //Blast Furnace + + public static final BlockEntry FIREPROOF_BRICKS = REGISTRATE.block("fireproof_bricks", Block::new) + .initialProperties(() -> Blocks.BRICKS) + .properties(p -> p.color(MaterialColor.COLOR_RED)) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .item() + .build() + .lang("Fireproof Bricks") + .register(); + public static final BlockEntry FIREPROOF_BRICK_REINFORCEMENT = REGISTRATE.block("fireproof_brick_reinforcement", WallBlock::new) + .initialProperties(() -> Blocks.BRICKS) + .properties(p -> p.color(MaterialColor.COLOR_RED)) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .tag(BlockTags.WALLS) + .blockstate((c, p) -> TFMGVanillaBlockStates.generateWallBlockState(c, p, "fireproof_brick_reinforcement")) + .item() + .transform(b -> TFMGVanillaBlockStates.transformWallItem(b, "fireproof_brick_reinforcement")) + .build() + .lang("Fireproof Brick Reinforcement") + .register(); + public static final BlockEntry BLAST_FURNACE_OUTPUT = REGISTRATE.block("blast_furnace_output", BlastFurnaceOutputBlock::new) + .initialProperties(() -> Blocks.BRICKS) + .properties(p -> p.color(MaterialColor.COLOR_RED)) + .properties(p -> p.requiresCorrectToolForDrops()) + .blockstate((c, p) -> p.horizontalBlock(c.get(), p.models() + .getExistingFile(p.modLoc("block/blast_furnace_output/block")))) + .transform(pickaxeOnly()) + .item() + .transform(customItemModel()) + .lang("Blast Furnace Output") + .register(); + public static final BlockEntry MOLTEN_METAL = + REGISTRATE.block("molten_metal", MoltenMetalBlock::new) + .initialProperties(SharedProperties.CRUSHING_WHEEL_CONTROLLER_MATERIAL) + .properties(p -> p.color(MaterialColor.COLOR_ORANGE)) + .properties(p -> p.lightLevel(s -> 15)) + .properties(p -> p.noOcclusion() + .noLootTable() + .air()) + + .register(); + + //--Casting Basin + public static final BlockEntry CASTING_BASIN = REGISTRATE.block("casting_basin", CastingBasinBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BLACK)) + .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .addLayer(() -> RenderType::cutoutMipped) + .item() + .build() + .lang("Casting Basin") + .register(); + + public static final BlockEntry CASTING_SPOUT = REGISTRATE.block("casting_spout", CastingSpoutBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BLACK)) + .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .addLayer(() -> RenderType::cutoutMipped) + .item() + .transform(customItemModel()) + .lang("Casting Spout") + .register(); + + + ////////// + public static final BlockEntry COKE_OVEN = REGISTRATE.block("coke_oven", CokeOvenBlock::new) + .initialProperties(() -> Blocks.BRICKS) + .properties(p -> p.color(MaterialColor.COLOR_RED)) + .properties(p -> p.requiresCorrectToolForDrops()) + .blockstate(new CokeOvenGenerator()::generate) + .transform(pickaxeOnly()) + .onRegister(connectedTextures(CokeOvenCTBehavior::new)) + .item() + .transform(customItemModel()) + .lang("Coke Oven") + .register(); + /////// + + + public static final BlockEntry AIR_INTAKE = REGISTRATE.block("air_intake", AirIntakeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .blockstate(new AirIntakeGenerator()::generate) + .item() + .transform(customItemModel()) + .lang("Air Intake") + .register(); + //-----------------------COGWHEELS-------------------------// + + public static final BlockEntry STEEL_COGWHEEL = + REGISTRATE.block("steel_cogwheel", TFMGCogWheelBlock::small) + .initialProperties(SharedProperties::stone) + .properties(p -> p.sound(SoundType.NETHERITE_BLOCK).color(MaterialColor.DIRT)) + .transform(BlockStressDefaults.setNoImpact()) + .transform(axeOrPickaxe()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new)) + .item(TFMGCogwheelBlockItem::new) + .build() + .register(); + + public static final BlockEntry LARGE_STEEL_COGWHEEL = + REGISTRATE.block("large_steel_cogwheel", TFMGCogWheelBlock::large) + .initialProperties(SharedProperties::stone) + .properties(p -> p.sound(SoundType.NETHERITE_BLOCK).color(MaterialColor.DIRT)) + .transform(axeOrPickaxe()) + .transform(BlockStressDefaults.setNoImpact()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new)) + .item(TFMGCogwheelBlockItem::new) + .build() + .register(); + // + public static final BlockEntry ALUMINUM_COGWHEEL = + REGISTRATE.block("aluminum_cogwheel", TFMGCogWheelBlock::small) + .initialProperties(SharedProperties::stone) + .properties(p -> p.sound(SoundType.COPPER).color(MaterialColor.DIRT)) + .addLayer(() -> RenderType::cutoutMipped) + .transform(BlockStressDefaults.setNoImpact()) + .transform(axeOrPickaxe()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new)) + .item(TFMGCogwheelBlockItem::new) + .build() + .register(); + + public static final BlockEntry LARGE_ALUMINUM_COGWHEEL = + REGISTRATE.block("large_aluminum_cogwheel", TFMGCogWheelBlock::large) + .initialProperties(SharedProperties::stone) + .properties(p -> p.sound(SoundType.COPPER).color(MaterialColor.DIRT)) + .addLayer(() -> RenderType::cutoutMipped) + .transform(axeOrPickaxe()) + .transform(BlockStressDefaults.setNoImpact()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .onRegister(CreateRegistrate.blockModel(() -> BracketedKineticBlockModel::new)) + .item(TFMGCogwheelBlockItem::new) + .build() + .register(); + //-----------------------ENGINES---------------------------// public static final BlockEntry GASOLINE_ENGINE = REGISTRATE.block("gasoline_engine", GasolineEngineBlock::new) @@ -923,7 +1270,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .properties(BlockBehaviour.Properties::noOcclusion) .transform(pickaxeOnly()) .blockstate(new EngineGenerator()::generate) - .transform(BlockStressDefaults.setCapacity(66.0)) + .transform(BlockStressDefaults.setCapacity(66.0+20.0)) .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) .item() .properties(p -> p.rarity(Rarity.UNCOMMON)) @@ -952,7 +1299,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .properties(BlockBehaviour.Properties::noOcclusion) .transform(pickaxeOnly()) .blockstate(new EngineGenerator()::generate) - .transform(BlockStressDefaults.setCapacity(66.0)) + .transform(BlockStressDefaults.setCapacity(66.0+20.0)) .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) .item() .properties(p -> p.rarity(Rarity.UNCOMMON)) @@ -981,7 +1328,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .addLayer(() -> RenderType::cutoutMipped) .transform(pickaxeOnly()) .blockstate(new EngineGenerator()::generate) - .transform(BlockStressDefaults.setCapacity(66.0)) + .transform(BlockStressDefaults.setCapacity(66.0+20.0)) .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) .item() .properties(p -> p.rarity(Rarity.UNCOMMON)) @@ -1002,20 +1349,19 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .register(); - public static final BlockEntry DIESEL_ENGINE = REGISTRATE.block("diesel_engine", DieselEngineBlock::new) .initialProperties(SharedProperties::copperMetal) .transform(pickaxeOnly()) .blockstate((c, p) -> p.horizontalFaceBlock(c.get(), AssetLookup.partialBaseModel(c, p))) - .transform(BlockStressDefaults.setCapacity(16.0)) + .transform(BlockStressDefaults.setCapacity(30.0)) .transform(BlockStressDefaults.setGeneratorSpeed(DieselEngineBlock::getSpeedRange)) .item() .transform(customItemModel()) .register(); public static final BlockEntry DIESEL_ENGINE_EXPANSION = REGISTRATE.block("diesel_engine_expansion", DieselEngineExpansionBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) + .initialProperties(SharedProperties::softMetal) .properties(p -> p.color(MaterialColor.TERRACOTTA_CYAN)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) @@ -1028,41 +1374,41 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU public static final BlockEntry RADIAL_ENGINE = REGISTRATE.block("radial_engine", RadialEngineBlock::new) - .initialProperties(SharedProperties::stone) + .initialProperties(SharedProperties::softMetal) .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .tag(AllTags.AllBlockTags.SAFE_NBT.tag) .addLayer(() -> RenderType::cutoutMipped) .properties(BlockBehaviour.Properties::noOcclusion) .transform(pickaxeOnly()) .blockstate(new EngineGenerator()::generate) - .transform(BlockStressDefaults.setCapacity(70.0)) + .transform(BlockStressDefaults.setCapacity(70.0+25.0)) .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) .item() .properties(p -> p.rarity(Rarity.UNCOMMON)) - // .lang("Radial Engine") + // .lang("Radial Engine") .transform(customItemModel()) .register(); public static final BlockEntry LARGE_RADIAL_ENGINE = REGISTRATE.block("large_radial_engine", LargeRadialEngineBlock::new) - .initialProperties(SharedProperties::stone) + .initialProperties(SharedProperties::softMetal) .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .tag(AllTags.AllBlockTags.SAFE_NBT.tag) .addLayer(() -> RenderType::cutoutMipped) .properties(BlockBehaviour.Properties::noOcclusion) .transform(pickaxeOnly()) .blockstate(new EngineGenerator()::generate) - .transform(BlockStressDefaults.setCapacity(93.0)) + .transform(BlockStressDefaults.setCapacity(93.0+25.0)) .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) .item() .properties(p -> p.rarity(Rarity.UNCOMMON)) - // .lang("Large Radial Engine") + // .lang("Large Radial Engine") .transform(customItemModel()) .register(); public static final BlockEntry RADIAL_ENGINE_INPUT = REGISTRATE.block("radial_engine_input", RadialEngineInputBlock::new) - .initialProperties(SharedProperties::stone) + .initialProperties(SharedProperties::softMetal) .blockstate(BlockStateGen.directionalBlockProvider(false)) .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .tag(AllTags.AllBlockTags.SAFE_NBT.tag) @@ -1071,7 +1417,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .register(); public static final BlockEntry RADIAL_ENGINE_INPUT_PONDER = REGISTRATE.block("radial_engine_input_ponder", DebugBlock::new) - .initialProperties(SharedProperties::stone) + .initialProperties(SharedProperties::softMetal) .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .tag(AllTags.AllBlockTags.SAFE_NBT.tag) @@ -1084,7 +1430,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU public static final BlockEntry COMPACT_ENGINE = REGISTRATE.block("compact_engine", CompactEngineBlock::new) - .initialProperties(SharedProperties::stone) + .initialProperties(SharedProperties::softMetal) .properties(p -> p.color(MaterialColor.COLOR_GRAY)) .tag(AllTags.AllBlockTags.SAFE_NBT.tag) .properties(BlockBehaviour.Properties::noOcclusion) @@ -1094,494 +1440,454 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) .item() .properties(p -> p.rarity(Rarity.UNCOMMON)) - // .lang("Small Engine") + //.lang("Small Engine") .transform(customItemModel()) .register(); - - - //----------------------PIPES-------------------------------// - - //STEEL - public static final BlockEntry STEEL_PIPE = REGISTRATE.block("steel_pipe", SteelPipeBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry COPPER_ENCASED_STEEL_PIPE = - REGISTRATE.block("copper_encased_steel_pipe", p -> new EncasedSteelPipeBlock(p, AllBlocks.COPPER_CASING::get)) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + public static final BlockEntry LOW_GRADE_FUEL_ENGINE = + REGISTRATE.block("low_grade_fuel_engine", LowGradeFuelEngineBlock::new) + .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .tag(AllTags.AllBlockTags.SAFE_NBT.tag) .properties(BlockBehaviour.Properties::noOcclusion) - .transform(axeOrPickaxe()) - .blockstate(BlockStateGen.encasedPipe()) - .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) - .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, - (s, f) -> !s.getValue(EncasedSteelPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) - .transform(EncasingRegistry.addVariantTo(TFMGBlocks.STEEL_PIPE)) - .register(); - - - @SuppressWarnings("removal") - public static final BlockEntry GLASS_STEEL_PIPE = - REGISTRATE.block("glass_steel_pipe", GlassSteelPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .addLayer(() -> RenderType::cutoutMipped) .transform(pickaxeOnly()) - .blockstate((c, p) -> { - p.getVariantBuilder(c.getEntry()) - .forAllStatesExcept(state -> { - Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); - return ConfiguredModel.builder() - .modelFile(p.models() - .getExistingFile(p.modLoc("block/steel_pipe/window"))) - .uvLock(false) - .rotationX(axis == Direction.Axis.Y ? 0 : 90) - .rotationY(axis == Direction.Axis.X ? 90 : 0) - .build(); - }, BlockStateProperties.WATERLOGGED); - }) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) - .register(); - - - public static final BlockEntry STEEL_MECHANICAL_PUMP = REGISTRATE.block("steel_mechanical_pump", TFMGPumpBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) - .transform(BlockStressDefaults.setImpact(4.0)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry STEEL_SMART_FLUID_PIPE = - REGISTRATE.block("steel_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .blockstate(new EngineGenerator()::generate) + .transform(BlockStressDefaults.setCapacity(10.0)) + .transform(BlockStressDefaults.setGeneratorSpeed(() -> Couple.create(0, 256))) .item() + // .lang("Low Grade Fuel Engine") .transform(customItemModel()) .register(); - public static final BlockEntry STEEL_FLUID_VALVE = REGISTRATE.block("steel_fluid_valve", TFMGFluidValveBlock::new) - .initialProperties(SharedProperties::copperMetal) - .transform(pickaxeOnly()) - .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, - (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", - state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - //CAST_IRON - public static final BlockEntry CAST_IRON_PIPE = REGISTRATE.block("cast_iron_pipe", CastIronPipeBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry COPPER_ENCASED_CAST_IRON_PIPE = - REGISTRATE.block("copper_encased_cast_iron_pipe", p -> new EncasedCastIronPipeBlock(p, AllBlocks.COPPER_CASING::get)) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(axeOrPickaxe()) - .blockstate(BlockStateGen.encasedPipe()) - .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) - .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, - (s, f) -> !s.getValue(EncasedCastIronPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, CAST_IRON_PIPE.get())) - .transform(EncasingRegistry.addVariantTo(TFMGBlocks.CAST_IRON_PIPE)) - .register(); - @SuppressWarnings("removal") - public static final BlockEntry GLASS_CAST_IRON_PIPE = - REGISTRATE.block("glass_cast_iron_pipe", GlassCastIronPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .addLayer(() -> RenderType::cutoutMipped) - .transform(pickaxeOnly()) - .blockstate((c, p) -> { - p.getVariantBuilder(c.getEntry()) - .forAllStatesExcept(state -> { - Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); - return ConfiguredModel.builder() - .modelFile(p.models() - .getExistingFile(p.modLoc("block/cast_iron_pipe/window"))) - .uvLock(false) - .rotationX(axis == Direction.Axis.Y ? 0 : 90) - .rotationY(axis == Direction.Axis.X ? 90 : 0) - .build(); - }, BlockStateProperties.WATERLOGGED); - }) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, CAST_IRON_PIPE.get())) - .register(); + //-----------------------BUILDING BLOCKS---------------------------// - public static final BlockEntry CAST_IRON_MECHANICAL_PUMP = REGISTRATE.block("cast_iron_mechanical_pump", TFMGPumpBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) - .transform(BlockStressDefaults.setImpact(4.0)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry CAST_IRON_SMART_FLUID_PIPE = - REGISTRATE.block("cast_iron_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry CAST_IRON_FLUID_VALVE = REGISTRATE.block("cast_iron_fluid_valve", TFMGFluidValveBlock::new) - .initialProperties(SharedProperties::copperMetal) - .transform(pickaxeOnly()) - .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, - (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", - state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> CastIronPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - //BRASS - public static final BlockEntry BRASS_PIPE = REGISTRATE.block("brass_pipe", BrassPipeBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry COPPER_ENCASED_BRASS_PIPE = - REGISTRATE.block("copper_encased_brass_pipe", p -> new EncasedBrassPipeBlock(p, AllBlocks.COPPER_CASING::get)) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(axeOrPickaxe()) - .blockstate(BlockStateGen.encasedPipe()) - .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) - .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, - (s, f) -> !s.getValue(EncasedBrassPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, BRASS_PIPE.get())) - .transform(EncasingRegistry.addVariantTo(TFMGBlocks.BRASS_PIPE)) - .register(); - - - @SuppressWarnings("removal") - public static final BlockEntry GLASS_BRASS_PIPE = - REGISTRATE.block("glass_brass_pipe", GlassBrassPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .addLayer(() -> RenderType::cutoutMipped) - .transform(pickaxeOnly()) - .blockstate((c, p) -> { - p.getVariantBuilder(c.getEntry()) - .forAllStatesExcept(state -> { - Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); - return ConfiguredModel.builder() - .modelFile(p.models() - .getExistingFile(p.modLoc("block/brass_pipe/window"))) - .uvLock(false) - .rotationX(axis == Direction.Axis.Y ? 0 : 90) - .rotationY(axis == Direction.Axis.X ? 90 : 0) - .build(); - }, BlockStateProperties.WATERLOGGED); - }) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) - .register(); - - - public static final BlockEntry BRASS_MECHANICAL_PUMP = REGISTRATE.block("brass_mechanical_pump", TFMGPumpBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) - .transform(BlockStressDefaults.setImpact(4.0)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry BRASS_SMART_FLUID_PIPE = - REGISTRATE.block("brass_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry BRASS_FLUID_VALVE = REGISTRATE.block("brass_fluid_valve", TFMGFluidValveBlock::new) - .initialProperties(SharedProperties::copperMetal) - .transform(pickaxeOnly()) - .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, - (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", - state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> BrassPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - //PLASTIC - public static final BlockEntry PLASTIC_PIPE = REGISTRATE.block("plastic_pipe", PlasticPipeBlock::new) - .initialProperties(() -> Blocks.QUARTZ_BLOCK) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry COPPER_ENCASED_PLASTIC_PIPE = - REGISTRATE.block("copper_encased_plastic_pipe", p -> new EncasedPlasticPipeBlock(p, AllBlocks.COPPER_CASING::get)) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(axeOrPickaxe()) - .blockstate(BlockStateGen.encasedPipe()) - .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) - .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, - (s, f) -> !s.getValue(EncasedPlasticPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, PLASTIC_PIPE.get())) - .transform(EncasingRegistry.addVariantTo(TFMGBlocks.PLASTIC_PIPE)) - .register(); - - - @SuppressWarnings("removal") - public static final BlockEntry GLASS_PLASTIC_PIPE = - REGISTRATE.block("glass_plastic_pipe", GlassPlasticPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .addLayer(() -> RenderType::cutoutMipped) - .transform(pickaxeOnly()) - .blockstate((c, p) -> { - p.getVariantBuilder(c.getEntry()) - .forAllStatesExcept(state -> { - Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); - return ConfiguredModel.builder() - .modelFile(p.models() - .getExistingFile(p.modLoc("block/plastic_pipe/window"))) - .uvLock(false) - .rotationX(axis == Direction.Axis.Y ? 0 : 90) - .rotationY(axis == Direction.Axis.X ? 90 : 0) - .build(); - }, BlockStateProperties.WATERLOGGED); - }) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, PLASTIC_PIPE.get())) - .register(); - - - public static final BlockEntry PLASTIC_MECHANICAL_PUMP = REGISTRATE.block("plastic_mechanical_pump", TFMGPumpBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) - .transform(BlockStressDefaults.setImpact(4.0)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry PLASTIC_SMART_FLUID_PIPE = - REGISTRATE.block("plastic_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry PLASTIC_FLUID_VALVE = REGISTRATE.block("plastic_fluid_valve", TFMGFluidValveBlock::new) - .initialProperties(SharedProperties::copperMetal) - .transform(pickaxeOnly()) - .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, - (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", - state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> PlasticPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - //ALUMINUM - public static final BlockEntry ALUMINUM_PIPE = REGISTRATE.block("aluminum_pipe", AluminumPipeBlock::new) - .initialProperties(() -> Blocks.IRON_BLOCK) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.pipe()) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry COPPER_ENCASED_ALUMINUM_PIPE = - REGISTRATE.block("copper_encased_aluminum_pipe", p -> new EncasedAluminumPipeBlock(p, AllBlocks.COPPER_CASING::get)) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) - .properties(BlockBehaviour.Properties::noOcclusion) - .transform(axeOrPickaxe()) - .blockstate(BlockStateGen.encasedPipe()) - .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) - .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, - (s, f) -> !s.getValue(EncasedAluminumPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, ALUMINUM_PIPE.get())) - .transform(EncasingRegistry.addVariantTo(TFMGBlocks.ALUMINUM_PIPE)) - .register(); - - - @SuppressWarnings("removal") - public static final BlockEntry GLASS_ALUMINUM_PIPE = - REGISTRATE.block("glass_aluminum_pipe", GlassAluminumPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .addLayer(() -> RenderType::cutoutMipped) - .transform(pickaxeOnly()) - .blockstate((c, p) -> { - p.getVariantBuilder(c.getEntry()) - .forAllStatesExcept(state -> { - Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); - return ConfiguredModel.builder() - .modelFile(p.models() - .getExistingFile(p.modLoc("block/aluminum_pipe/window"))) - .uvLock(false) - .rotationX(axis == Direction.Axis.Y ? 0 : 90) - .rotationY(axis == Direction.Axis.X ? 90 : 0) - .build(); - }, BlockStateProperties.WATERLOGGED); - }) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) - .loot((p, b) -> p.dropOther(b, ALUMINUM_PIPE.get())) - .register(); - - - public static final BlockEntry ALUMINUM_MECHANICAL_PUMP = REGISTRATE.block("aluminum_mechanical_pump", TFMGPumpBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true)) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) - .transform(BlockStressDefaults.setImpact(4.0)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry ALUMINUM_SMART_FLUID_PIPE = - REGISTRATE.block("aluminum_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new) - .initialProperties(SharedProperties::copperMetal) - .properties(p -> p.color(MaterialColor.STONE)) - .transform(pickaxeOnly()) - .blockstate(new SmartFluidPipeGenerator()::generate) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry ALUMINUM_FLUID_VALVE = REGISTRATE.block("aluminum_fluid_valve", TFMGFluidValveBlock::new) - .initialProperties(SharedProperties::copperMetal) - .transform(pickaxeOnly()) - .blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p, - (state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal", - state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed"))) - .onRegister(CreateRegistrate.blockModel(() -> AluminumPipeAttachmentModel::new)) - .item() - .transform(customItemModel()) - .register(); - - - //////////////////////////////////// - - //------------------------ENCASED BLOCKS-----------------// - - //public static final BlockEntry STEEL_ENCASED_SHAFT = - // REGISTRATE.block("steel_encased_shaft", p -> new TFMGEncasedShaftBlock(p, TFMGBlocks.STEEL_CASING::get)) - // .properties(p -> p.color(MaterialColor.PODZOL)) - // .transform(TFMGBuilderTransformers.encasedShaft("steel", () -> TFMGSpriteShifts.STEEL_CASING)) - // .transform(EncasingRegistry.addVariantTo(AllBlocks.SHAFT)) - // .transform(axeOrPickaxe()) - // .register(); -// - //public static final BlockEntry HEAVY_CASING_ENCASED_SHAFT = - // REGISTRATE.block("heavy_casing_encased_shaft", p -> new TFMGEncasedShaftBlock(p, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) - // .properties(p -> p.color(MaterialColor.COLOR_GRAY)) - // .transform(TFMGBuilderTransformers.encasedShaft("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) - // .transform(EncasingRegistry.addVariantTo(AllBlocks.SHAFT)) - // .transform(axeOrPickaxe()) - // .register(); -// - /////////// -// - //public static final BlockEntry STEEL_ENCASED_COGWHEEL = - // REGISTRATE.block("steel_encased_cogwheel", p -> new TFMGEncasedCogwheelBlock(p, false, TFMGBlocks.STEEL_CASING::get)) - // .properties(p -> p.color(MaterialColor.PODZOL)) - // .transform(TFMGBuilderTransformers.encasedCogwheel("steel", () -> TFMGSpriteShifts.STEEL_CASING)) - // .transform(EncasingRegistry.addVariantTo(AllBlocks.COGWHEEL)) - // .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(TFMGSpriteShifts.STEEL_CASING, - // Couple.create(TFMGSpriteShifts.STEEL_ENCASED_COGWHEEL_SIDE, - // TFMGSpriteShifts.STEEL_ENCASED_COGWHEEL_OTHERSIDE)))) - // .transform(axeOrPickaxe()) - // .register(); -// - //public static final BlockEntry HEAVY_CASING_ENCASED_COGWHEEL = - // REGISTRATE.block("heavy_casing_encased_cogwheel", p -> new TFMGEncasedCogwheelBlock(p, false, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) - // .properties(p -> p.color(MaterialColor.COLOR_GRAY)) - // .transform(TFMGBuilderTransformers.encasedCogwheel("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) - // .transform(EncasingRegistry.addVariantTo(AllBlocks.COGWHEEL)) - // .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(TFMGSpriteShifts.HEAVY_MACHINERY_CASING, - // Couple.create(TFMGSpriteShifts.HEAVY_CASING_ENCASED_COGWHEEL_SIDE, - // TFMGSpriteShifts.HEAVY_CASING_ENCASED_COGWHEEL_OTHERSIDE)))) - // .transform(axeOrPickaxe()) - // .register(); -// - //////// - //public static final BlockEntry STEEL_ENCASED_LARGE_COGWHEEL = REGISTRATE - // .block("steel_encased_large_cogwheel", - // p -> new TFMGEncasedCogwheelBlock(p, true, TFMGBlocks.STEEL_CASING::get)) - // .properties(p -> p.color(MaterialColor.PODZOL)) - // .transform(TFMGBuilderTransformers.encasedLargeCogwheel("steel", () -> TFMGSpriteShifts.STEEL_CASING)) - // .transform(EncasingRegistry.addVariantTo(AllBlocks.LARGE_COGWHEEL)) - // .transform(axeOrPickaxe()) - // .register(); -// - //public static final BlockEntry HEAVY_CASING_ENCASED_LARGE_COGWHEEL = REGISTRATE - // .block("heavy_casing_encased_large_cogwheel", p -> new TFMGEncasedCogwheelBlock(p, true, TFMGBlocks.HEAVY_MACHINERY_CASING::get)) - // .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) - // .transform(TFMGBuilderTransformers.encasedLargeCogwheel("heavy_casing", () -> TFMGSpriteShifts.HEAVY_MACHINERY_CASING)) - // .transform(EncasingRegistry.addVariantTo(AllBlocks.LARGE_COGWHEEL)) - // .transform(axeOrPickaxe()) - // .register(); -// -// -// - //-----------------------CONCRETE---------------------------// static { REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_BUILDING_BLOCKS); } + public static final BlockEntry STEEL_TRUSS = REGISTRATE.block("steel_truss", TrussBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.noOcclusion()) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .item() + .build() + .lang("Steel Truss") + .register(); + public static final BlockEntry ALUMINUM_TRUSS = REGISTRATE.block("aluminum_truss", TrussBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.noOcclusion()) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .item() + .build() + .lang("Aluminum Truss") + .register(); + + public static final BlockEntry CAST_IRON_TRUSS = REGISTRATE.block("cast_iron_truss", TrussBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.noOcclusion()) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .item() + .build() + .lang("Cast Iron Truss") + .register(); + + public static final BlockEntry LEAD_TRUSS = REGISTRATE.block("lead_truss", TrussBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.noOcclusion()) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/lead")), c::get, 4)) + .item() + .build() + .lang("Lead Truss") + .register(); + + public static final BlockEntry NICKEL_TRUSS = REGISTRATE.block("nickel_truss", TrussBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.noOcclusion()) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/nickel")), c::get, 4)) + .item() + .build() + .lang("Nickel Truss") + .register(); + + public static final BlockEntry COPPER_TRUSS = REGISTRATE.block("copper_truss", TrussBlock::new) + .initialProperties(() -> Blocks.COPPER_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.noOcclusion()) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/copper")), c::get, 4)) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .item() + .build() + .register(); + public static final BlockEntry ZINC_TRUSS = REGISTRATE.block("zinc_truss", TrussBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.noOcclusion()) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/zinc")), c::get, 4)) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .item() + .build() + .register(); + + public static final BlockEntry BRASS_TRUSS = REGISTRATE.block("brass_truss", TrussBlock::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_GRAY)) + .properties(p -> p.noOcclusion()) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/brass")), c::get, 4)) + .blockstate(BlockStateGen.axisBlockProvider(false)) + .item() + .build() + .register(); + + + public static final BlockEntry STEEL_FRAME = REGISTRATE.block("steel_frame", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) + .properties(p -> p.strength(3)) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .lang("Steel Frame") + .register(); + + + public static final BlockEntry LEAD_FRAME = REGISTRATE.block("lead_frame", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) + .properties(p -> p.strength(2)) + .transform(pickaxeOnly()) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/lead")), c::get, 4)) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .lang("Lead Frame") + .register(); + + public static final BlockEntry COPPER_FRAME = REGISTRATE.block("copper_frame", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) + .properties(p -> p.strength(2)) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/copper")), c::get, 4)) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .register(); + + public static final BlockEntry ZINC_FRAME = REGISTRATE.block("zinc_frame", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) + .properties(p -> p.strength(2)) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/zinc")), c::get, 4)) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .register(); + + public static final BlockEntry BRASS_FRAME = REGISTRATE.block("brass_frame", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) + .properties(p -> p.strength(2)) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/brass")), c::get, 4)) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .register(); + + public static final BlockEntry ALUMINUM_FRAME = REGISTRATE.block("aluminum_frame", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) + .properties(p -> p.strength(3)) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .lang("Aluminum Frame") + .register(); + + public static final BlockEntry CAST_IRON_FRAME = REGISTRATE.block("cast_iron_frame", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) + .properties(p -> p.strength(3)) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .lang("Cast Iron Frame") + .register(); + + public static final BlockEntry NICKEL_FRAME = REGISTRATE.block("nickel_frame", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_YELLOW)) + .properties(p -> p.strength(3)) + .transform(pickaxeOnly()) + .recipe((c, p) -> p.stonecutting(DataIngredient.tag(AllTags.forgeItemTag("ingots/nickel")), c::get, 4)) + .addLayer(() -> RenderType::cutoutMipped) + .properties(BlockBehaviour.Properties::noOcclusion) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) + .item() + .build() + .lang("Nickel Frame") + .register(); + + public static final BlockEntry HARDENED_PLANKS = REGISTRATE.block("hardened_planks", Block::new) + .initialProperties(() -> Blocks.OAK_PLANKS) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BROWN)) + .transform(axeOnly()) + .item() + .build() + .lang("Hardened Planks") + .register(); + + public static final BlockEntry HARDENED_PLANKS_SLAB = REGISTRATE.block("hardened_planks_slab", SlabBlock::new) + .initialProperties(() -> Blocks.DARK_OAK_WOOD) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .properties(p -> p.strength(3)) + .transform(pickaxeOnly()) + .blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, "hardened_planks")) + .tag(BlockTags.NEEDS_STONE_TOOL) + .item() + .transform(customItemModel("hardened_planks_bottom")) + .lang("Hardened Planks Slab") + .register(); + + public static final BlockEntry LEAD_GLASS = REGISTRATE.block("lead_glass", GlassBlock::new) + .initialProperties(() -> Blocks.GLASS) + .properties(p -> p.color(MaterialColor.COLOR_BLUE)) + .properties(BlockBehaviour.Properties::noOcclusion) + .addLayer(() -> RenderType::cutoutMipped) + //.blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) + .onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.LEAD_GLASS))) + .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.LEAD_GLASS))) + .transform(pickaxeOnly()) + .item() + .build() + // .transform(customItemModel()) + .lang("Lead Glass") + .register(); + + + public static final BlockEntry ASPHALT = REGISTRATE.block("asphalt", Block::new) + .initialProperties(() -> Blocks.STONE) + .properties(p -> p.color(MaterialColor.COLOR_BLACK)) + .transform(pickaxeOnly()) + .item() + .build() + .lang("Asphalt") + .register(); + public static final BlockEntry STEEL_SCAFFOLD = + REGISTRATE.block("steel_scaffolding", MetalScaffoldingBlock::new) + .properties(p -> p + .strength(4.0F) + .requiresCorrectToolForDrops()) + .transform(BuilderTransformers.scaffold("steel", + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/steel")), MaterialColor.TERRACOTTA_CYAN, + TFMGSpriteShifts.STEEL_SCAFFOLD, TFMGSpriteShifts.STEEL_SCAFFOLD_INSIDE, TFMGSpriteShifts.STEEL_CASING)) + .register(); + + public static final BlockEntry ALUMINUM_SCAFFOLD = + REGISTRATE.block("aluminum_scaffolding", MetalScaffoldingBlock::new) + .properties(p -> p + .strength(3.0F) + .requiresCorrectToolForDrops()) + .transform(BuilderTransformers.scaffold("aluminum", + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/aluminum")), MaterialColor.TERRACOTTA_CYAN, + TFMGSpriteShifts.ALUMINUM_SCAFFOLD, TFMGSpriteShifts.ALUMINUM_SCAFFOLD_INSIDE, TFMGSpriteShifts.ALUMINUM_SCAFFOLD_TOP)) + .register(); + + + + public static final BlockEntry STEEL_BARS = TFMGMetalBarsGen.createBars("steel", true, + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/steel")), MaterialColor.TERRACOTTA_CYAN); + public static final BlockEntry ALUMINUM_BARS = TFMGMetalBarsGen.createBars("aluminum", true, + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/aluminum")), MaterialColor.TERRACOTTA_WHITE); + + public static final BlockEntry CAST_IRON_BARS = TFMGMetalBarsGen.createBars("cast_iron", true, + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/cast_iron")), MaterialColor.COLOR_BLACK); + + public static final BlockEntry LEAD_BARS = TFMGMetalBarsGen.createBars("lead", true, + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/lead")), MaterialColor.TERRACOTTA_BLUE); + + public static final BlockEntry NICKEL_BARS = TFMGMetalBarsGen.createBars("nickel", true, + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/nickel")), MaterialColor.TERRACOTTA_YELLOW); + + + public static final BlockEntry STEEL_LADDER = + REGISTRATE.block("steel_ladder", MetalLadderBlock::new) + .transform(BuilderTransformers.ladder("steel", + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/steel")), MaterialColor.TERRACOTTA_CYAN)) + .register(); + public static final BlockEntry ALUMINUM_LADDER = + REGISTRATE.block("aluminum_ladder", MetalLadderBlock::new) + .transform(BuilderTransformers.ladder("aluminum", + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/aluminum")), MaterialColor.TERRACOTTA_WHITE)) + .register(); + + public static final BlockEntry CAST_IRON_LADDER = + REGISTRATE.block("cast_iron_ladder", MetalLadderBlock::new) + .transform(BuilderTransformers.ladder("cast_iron", + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/cast_iron")), MaterialColor.TERRACOTTA_WHITE)) + .register(); + + public static final BlockEntry LEAD_LADDER = + REGISTRATE.block("lead_ladder", MetalLadderBlock::new) + .transform(BuilderTransformers.ladder("lead", + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/lead")), MaterialColor.TERRACOTTA_WHITE)) + .lang("Leadder") + .register(); + + public static final BlockEntry NICKEL_LADDER = + REGISTRATE.block("nickel_ladder", MetalLadderBlock::new) + .transform(BuilderTransformers.ladder("nickel", + () -> DataIngredient.tag(TFMGTags.forgeItemTag("ingots/nickel")), MaterialColor.TERRACOTTA_WHITE)) + .register(); + + + public static final BlockEntry STEEL_FLYWHEEL = REGISTRATE.block("steel_flywheel", TFMGFlywheelBlock::new) + .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_CYAN)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .transform(BlockStressDefaults.setNoImpact()) + .blockstate(BlockStateGen.axisBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + public static final BlockEntry ALUMINUM_FLYWHEEL = REGISTRATE.block("aluminum_flywheel", TFMGFlywheelBlock::new) + .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_WHITE)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .transform(BlockStressDefaults.setNoImpact()) + .blockstate(BlockStateGen.axisBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + public static final BlockEntry CAST_IRON_FLYWHEEL = REGISTRATE.block("cast_iron_flywheel", TFMGFlywheelBlock::new) + .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BLACK)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .transform(BlockStressDefaults.setNoImpact()) + .blockstate(BlockStateGen.axisBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry LEAD_FLYWHEEL = REGISTRATE.block("lead_flywheel", TFMGFlywheelBlock::new) + .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BLACK)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .transform(BlockStressDefaults.setNoImpact()) + .blockstate(BlockStateGen.axisBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry NICKEL_FLYWHEEL = REGISTRATE.block("nickel_flywheel", TFMGFlywheelBlock::new) + .initialProperties(SharedProperties::softMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_BLACK)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .transform(BlockStressDefaults.setNoImpact()) + .blockstate(BlockStateGen.axisBlockProvider(true)) + .item() + .transform(customItemModel()) + .register(); + + + public static final BlockEntry FACTORY_FLOOR = withVariants("factory_floor", Blocks.STONE, + MaterialColor.COLOR_GRAY, BlockTags.NEEDS_STONE_TOOL, SoundType.NETHERITE_BLOCK, 3, false); + + public static final BlockEntry FACTORY_FLOOR_SLAB = REGISTRATE.block("factory_floor_slab", SlabBlock::new) + .initialProperties(() -> Blocks.STONE) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .properties(p -> p.strength(3)) + .transform(pickaxeOnly()) + .blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, "factory_floor")) + .tag(BlockTags.NEEDS_STONE_TOOL) + .tag(BlockTags.WALLS) + .item() + .transform(customItemModel("factory_floor_bottom")) + .lang("Factory Floor Slab") + .register(); + + + public static final BlockEntry CINDER_BLOCK = REGISTRATE.block("cinder_block", Block::new) + .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p->p.sound(SoundType.CALCITE)) + .transform(pickaxeOnly()) + .blockstate((c, p) -> p.simpleBlock(c.get(), AssetLookup.partialBaseModel(c, p))) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry CINDERFLOUR_BLOCK = REGISTRATE.block("cinderflour_block", Block::new) + .initialProperties(SharedProperties::stone) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p->p.sound(SoundType.NETHER_BRICKS)) + .transform(pickaxeOnly()) + .blockstate((c, p) -> p.simpleBlock(c.get(), AssetLookup.partialBaseModel(c, p))) + .item() + .transform(customItemModel()) + .register(); + + + // + + + + + + + + //-----------------------CONCRETE---------------------------// + //public static final BlockEntry CONCRETE = REGISTRATE.block("concrete", Block::new) // .initialProperties(() -> Blocks.STONE) // .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) @@ -1597,33 +1903,38 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU public static final BlockEntry CONCRETE = generateConcrete(); + static { + generateCautionBlocks(); + } - public static final BlockEntry CONCRETE_SLAB = REGISTRATE.block("concrete_slab", SlabBlock::new) + + public static final BlockEntry CONCRETE_SLAB = REGISTRATE.block("concrete_slab", SlabBlock::new) .initialProperties(() -> Blocks.STONE) .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) .blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, "concrete")) .tag(BlockTags.NEEDS_STONE_TOOL) - .tag(BlockTags.WALLS) - .item() - .transform(customItemModel("concrete_bottom")) + .tag(BlockTags.WALLS) + .recipe((c, p) -> p.stonecutting(DataIngredient.items(TFMGBlocks.CONCRETE.get()), c::get, 2)) + .item() + .transform(customItemModel("concrete_bottom")) .lang("Concrete Slab") - .register(); + .register(); + public static final BlockEntry REBAR_CONCRETE = withVariants("rebar_concrete", Blocks.STONE, + MaterialColor.COLOR_GRAY, BlockTags.NEEDS_DIAMOND_TOOL, SoundType.STONE, 40, true); - public static final BlockEntry REBAR_CONCRETE = withVariants("rebar_concrete",Blocks.STONE, - MaterialColor.COLOR_GRAY,"Rebar Concrete",BlockTags.NEEDS_DIAMOND_TOOL,SoundType.STONE,40,true); - - public static final BlockEntry REBAR_CONCRETE_SLAB = REGISTRATE.block("rebar_concrete_slab", SlabBlock::new) + public static final BlockEntry REBAR_CONCRETE_SLAB = REGISTRATE.block("rebar_concrete_slab", SlabBlock::new) .initialProperties(() -> Blocks.STONE) .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) .properties(p -> p.requiresCorrectToolForDrops()) - .properties(p -> p.strength(40,40)) + .properties(p -> p.strength(40, 40)) .transform(pickaxeOnly()) .blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, "rebar_concrete")) .tag(BlockTags.NEEDS_STONE_TOOL) + .recipe((c, p) -> p.stonecutting(DataIngredient.items(TFMGBlocks.REBAR_CONCRETE.get()), c::get, 2)) .tag(BlockTags.WALLS) .item() .transform(customItemModel("rebar_concrete_bottom")) @@ -1631,14 +1942,12 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .register(); - - public static BlockEntry generateConcrete(){ + public static BlockEntry generateConcrete() { generateColoredConcrete(); - REGISTRATE.block("concrete_wall", WallBlock::new) .initialProperties(() -> Blocks.STONE) .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) @@ -1647,13 +1956,14 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .blockstate((c, p) -> TFMGVanillaBlockStates.generateWallBlockState(c, p, "concrete")) .tag(BlockTags.NEEDS_STONE_TOOL) .tag(BlockTags.WALLS) + .recipe((c, p) -> p.stonecutting(DataIngredient.items(TFMGBlocks.CONCRETE.get()), c::get, 1)) .item() .transform(b -> TFMGVanillaBlockStates.transformWallItem(b, "concrete")) .build() .lang("Concrete Wall") .register(); - REGISTRATE.block("concrete_stairs", p -> new StairBlock(()-> TFMGBlocks.CONCRETE.get().defaultBlockState(),p)) + REGISTRATE.block("concrete_stairs", p -> new StairBlock(() -> TFMGBlocks.CONCRETE.get().defaultBlockState(), p)) .initialProperties(() -> Blocks.STONE) .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) .properties(p -> p.requiresCorrectToolForDrops()) @@ -1661,6 +1971,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .blockstate((c, p) -> TFMGVanillaBlockStates.generateStairBlockState(c, p, "concrete")) .tag(BlockTags.NEEDS_STONE_TOOL) .tag(BlockTags.STAIRS) + .recipe((c, p) -> p.stonecutting(DataIngredient.items(TFMGBlocks.CONCRETE.get()), c::get, 1)) .item() .transform(b -> TFMGVanillaBlockStates.transformStairItem(b, "concrete")) .build() @@ -1668,9 +1979,6 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .register(); - - - return REGISTRATE.block("concrete", Block::new) .initialProperties(() -> Blocks.STONE) .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) @@ -1685,7 +1993,6 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU } - //this saved so much time public static void generateColoredConcrete() { String[] colours = {"black", "white", "blue", "light_blue", "red", "green", "lime", "pink", "magenta", "yellow", "gray", "light_gray", "brown", "cyan", "purple", "orange"}; @@ -1697,13 +2004,13 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU String upperCaseColor = firstLetter + colorWithoutC; String light = "Light"; - if(upperCaseColor.contains(light)){ + if (upperCaseColor.contains(light)) { String nameWithoutLight = upperCaseColor.substring(6); String firstLetter2 = nameWithoutLight.substring(0, 1).toUpperCase(); String colorWithoutC2 = nameWithoutLight.substring(1); - upperCaseColor = light+" "+firstLetter2+colorWithoutC2; + upperCaseColor = light + " " + firstLetter2 + colorWithoutC2; } @@ -1734,7 +2041,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .lang(upperCaseColor + " Concrete Wall") .register(); - REGISTRATE.block(color + "_concrete_stairs", p -> new StairBlock(()-> TFMGBlocks.CONCRETE.get().defaultBlockState(),p)) + REGISTRATE.block(color + "_concrete_stairs", p -> new StairBlock(() -> TFMGBlocks.CONCRETE.get().defaultBlockState(), p)) .initialProperties(() -> Blocks.STONE) .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) .properties(p -> p.requiresCorrectToolForDrops()) @@ -1749,7 +2056,6 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .register(); - REGISTRATE.block(color + "_concrete_slab", SlabBlock::new) .initialProperties(() -> Blocks.STONE) .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) @@ -1759,26 +2065,99 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .tag(BlockTags.NEEDS_STONE_TOOL) .tag(BlockTags.WALLS) .item() - .transform(customItemModel(color+"_concrete_bottom")) + .transform(customItemModel(color + "_concrete_bottom")) .lang(upperCaseColor + " Concrete Slab") .register(); } } - public static BlockEntry withVariants(String name, Block properties, MaterialColor color, - String displayName, TagKey toolRequired,SoundType sound,int strenght, boolean wall){ + public static void generateCautionBlocks() { + String[] colours = {"white", "blue", "light_blue", "red", "green", "lime", "pink", "magenta", "yellow", "gray", "light_gray", "brown", "cyan", "purple", "orange"}; + for (String color : colours) { + String firstLetter = color.substring(0, 1).toUpperCase(); + String colorWithoutC = color.substring(1); - if(wall) - REGISTRATE.block(name+"_wall", WallBlock::new) + String upperCaseColor = firstLetter + colorWithoutC; + String light = "Light"; + if (upperCaseColor.contains(light)) { + String nameWithoutLight = upperCaseColor.substring(6); + + String firstLetter2 = nameWithoutLight.substring(0, 1).toUpperCase(); + String colorWithoutC2 = nameWithoutLight.substring(1); + + upperCaseColor = light + " " + firstLetter2 + colorWithoutC2; + + + } + + REGISTRATE.block(color + "_caution_block", TFMGHorizontalDirectionalBlock::new) + .initialProperties(() -> Blocks.COPPER_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) + .transform(pickaxeOnly()) + .blockstate((c, p) -> p.horizontalBlock(c.get(), p.models() + .withExistingParent(c.getName(), p.modLoc("block/caution_block")) + .texture("0", p.modLoc("block/caution_block/" + color)) + .texture("particle", p.modLoc("block/caution_block/" + color)) + )) + .tag(BlockTags.NEEDS_STONE_TOOL) + .item() + .build() + .lang(upperCaseColor + " Caution Block") + .register(); + + + //REGISTRATE.block(color + "_caution_block_stairs", p -> new StairBlock(()-> TFMGBlocks.CONCRETE.get().defaultBlockState(),p)) + // .initialProperties(() -> Blocks.COPPER_BLOCK) + // .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + // .properties(p -> p.requiresCorrectToolForDrops()) + // .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) + // .transform(pickaxeOnly()) + // .blockstate((c, p) -> TFMGVanillaBlockStates.generateStairBlockState(c, p, color + "_caution_block")) + // .tag(BlockTags.NEEDS_STONE_TOOL) + // .tag(BlockTags.STAIRS) + // .item() + // .transform(b -> TFMGVanillaBlockStates.transformStairItem(b, color + "_caution_block")) + // .build() + // .lang(upperCaseColor + " Caution Block Stairs") + // .register(); +// +// +// + //REGISTRATE.block(color + "_caution_block_slab", SlabBlock::new) + // .initialProperties(() -> Blocks.COPPER_BLOCK) + // .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + // .properties(p -> p.sound(SoundType.NETHERITE_BLOCK)) + // .properties(p -> p.requiresCorrectToolForDrops()) + // .transform(pickaxeOnly()) + // .blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, color + "_caution_block")) + // .tag(BlockTags.NEEDS_STONE_TOOL) + // .tag(BlockTags.WALLS) + // .item() + // .transform(customItemModel(color+"_caution_block_bottom")) + // .lang(upperCaseColor + " Caution Block Slab") + // .register(); + + + } + } + + + public static BlockEntry withVariants(String name, Block properties, MaterialColor color, TagKey toolRequired, SoundType sound, int strenght, boolean wall) { + + + if (wall) + REGISTRATE.block(name + "_wall", WallBlock::new) .initialProperties(() -> properties) .properties(p -> p.color(color)) .properties(p -> p.sound(sound)) - .properties(p -> p.strength(strenght,strenght)) + .properties(p -> p.strength(strenght, strenght)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) .blockstate((c, p) -> TFMGVanillaBlockStates.generateWallBlockState(c, p, name)) @@ -1787,14 +2166,14 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .item() .transform(b -> TFMGVanillaBlockStates.transformWallItem(b, name)) .build() - .lang(displayName+" Wall") + //.lang(displayName + " Wall") .register(); // - REGISTRATE.block(name+"_stairs", p -> new StairBlock(()-> TFMGBlocks.CONCRETE.get().defaultBlockState(),p)) + REGISTRATE.block(name + "_stairs", p -> new StairBlock(() -> TFMGBlocks.CONCRETE.get().defaultBlockState(), p)) .initialProperties(() -> properties) .properties(p -> p.color(color)) .properties(p -> p.sound(sound)) - .properties(p -> p.strength(strenght,strenght)) + .properties(p -> p.strength(strenght, strenght)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) .blockstate((c, p) -> TFMGVanillaBlockStates.generateStairBlockState(c, p, name)) @@ -1803,46 +2182,34 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .item() .transform(b -> TFMGVanillaBlockStates.transformStairItem(b, name)) .build() - .lang(displayName+" Stairs") + // .lang(displayName + " Stairs") .register(); - - // - return REGISTRATE.block(name, Block::new) + return REGISTRATE.block(name, Block::new) .initialProperties(() -> properties) .properties(p -> p.color(color)) .properties(p -> p.sound(sound)) - .properties(p -> p.strength(strenght,strenght)) + .properties(p -> p.strength(strenght, strenght)) .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) .blockstate(simpleCubeAll(name)) .tag(toolRequired) .transform(tagBlockAndItem(name)) .build() - .lang(displayName) + //.lang(displayName) .register(); - //return REGISTRATE.block(name+"_slab", SlabBlock::new) - // .initialProperties(() -> properties) - // .properties(p -> p.color(color)) - // .properties(p -> p.sound(sound)) - // .properties(p -> p.strength(strenght,strenght)) - // .properties(p -> p.requiresCorrectToolForDrops()) - // .transform(pickaxeOnly()) - // .blockstate((c, p) -> TFMGVanillaBlockStates.generateSlabBlockState(c, p, name)) - // .tag(toolRequired) - // .tag(BlockTags.WALLS) - // .item() - // .transform(customItemModel(name+"_bottom")) - // .lang(displayName+" Slab") - // .register(); + } - public static void register() {} + public static void register() { + TFMGEncasedBlocks.register(); + TFMGPipes.register(); + } } diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGContraptions.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGContraptions.java similarity index 90% rename from src/main/java/com/drmangotea/createindustry/base/TFMGContraptions.java rename to src/main/java/com/drmangotea/createindustry/registry/TFMGContraptions.java index af1bf347..6338f1f4 100644 --- a/src/main/java/com/drmangotea/createindustry/base/TFMGContraptions.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGContraptions.java @@ -1,4 +1,4 @@ -package com.drmangotea.createindustry.base; +package com.drmangotea.createindustry.registry; import com.drmangotea.createindustry.CreateTFMG; import com.drmangotea.createindustry.blocks.machines.oil_processing.pumpjack.hammer.PumpjackContraption; diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGEntityTypes.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGEntityTypes.java index 562588c6..6126a902 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGEntityTypes.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGEntityTypes.java @@ -1,11 +1,17 @@ package com.drmangotea.createindustry.registry; import com.drmangotea.createindustry.CreateTFMG; -import com.drmangotea.createindustry.base.spark.*; -import com.drmangotea.createindustry.items.gadgets.explosives.napalm.NapalmBombEntity; -import com.drmangotea.createindustry.items.gadgets.explosives.napalm.NapalmBombRenderer; -import com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.ThermiteGrenade; -import com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.ThermiteGrenadeRenderer; +import com.drmangotea.createindustry.base.util.spark.*; +import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.projectile.NapalmPotato; +import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.projectile.NapalmPotatoRenderer; +import com.drmangotea.createindustry.items.weapons.explosives.napalm.NapalmBombEntity; +import com.drmangotea.createindustry.items.weapons.explosives.napalm.NapalmBombRenderer; +import com.drmangotea.createindustry.items.weapons.explosives.pipe_bomb.PipeBomb; +import com.drmangotea.createindustry.items.weapons.explosives.pipe_bomb.PipeBombRenderer; +import com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.ThermiteGrenade; +import com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.ThermiteGrenadeRenderer; +import com.drmangotea.createindustry.items.weapons.lithium_blade.LithiumSpark; +import com.drmangotea.createindustry.items.weapons.lithium_blade.LithiumSparkRenderer; import com.simibubi.create.foundation.data.CreateEntityBuilder; import com.simibubi.create.foundation.utility.Lang; import com.tterrag.registrate.util.entry.EntityEntry; @@ -20,11 +26,19 @@ import net.minecraft.world.entity.MobCategory; public class TFMGEntityTypes { + public static final EntityEntry PIPE_BOMB = + register("pipe_bomb", PipeBomb::new, () -> PipeBombRenderer::new, + MobCategory.MISC, 4, 20, true, true, PipeBomb::build).register(); + + public static final EntityEntry NAPALM_POTATO = + register("napalm_potato", NapalmPotato::new, () -> NapalmPotatoRenderer::new, + MobCategory.MISC, 4, 20, true, true, NapalmPotato::build).register(); + public static final EntityEntry THERMITE_GRENADE = register("thermite_grenade", ThermiteGrenade::new, () -> ThermiteGrenadeRenderer::regular, MobCategory.MISC, 4, 20, true, true, ThermiteGrenade::build).register(); public static final EntityEntry ZINC_GRENADE = - register("zin_grenade", ThermiteGrenade::new, () -> ThermiteGrenadeRenderer::green, + register("zinc_grenade", ThermiteGrenade::new, () -> ThermiteGrenadeRenderer::green, MobCategory.MISC, 4, 20, true, true, ThermiteGrenade::build).register(); public static final EntityEntry COPPER_GRENADE = register("copper_grenade", ThermiteGrenade::new, () -> ThermiteGrenadeRenderer::blue, @@ -43,6 +57,10 @@ public class TFMGEntityTypes { public static final EntityEntry BLUE_SPARK = register("blue_spark", BlueSpark::new, () -> BlueSparkRenderer::new, MobCategory.MISC, 4, 20, true, true, BlueSpark::build).register(); + + public static final EntityEntry LITHIUM_SPARK = + register("lithium_spark", LithiumSpark::new, () -> LithiumSparkRenderer::new, + MobCategory.MISC, 4, 20, true, true, LithiumSpark::build).register(); // diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGFluids.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGFluids.java index 097b356e..0e5b9806 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGFluids.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGFluids.java @@ -4,18 +4,23 @@ package com.drmangotea.createindustry.registry; import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.base.util.TFMGUtils; import com.drmangotea.createindustry.blocks.concrete.ConcreteFluid; import com.drmangotea.createindustry.blocks.concrete.ConcreteFluidType; import com.drmangotea.createindustry.blocks.concrete.asphalt.AsphaltFluid; -import com.drmangotea.createindustry.blocks.fluids.BurnableFluid; -import com.drmangotea.createindustry.items.CreosoteBucketItem; +import com.drmangotea.createindustry.blocks.fluids.*; import com.simibubi.create.AllTags; +import com.simibubi.create.content.decoration.palettes.AllPaletteStoneTypes; import com.simibubi.create.content.fluids.VirtualFluid; import com.tterrag.registrate.util.entry.FluidEntry; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.BucketItem; +import net.minecraft.tags.FluidTags; +import net.minecraft.tags.TagKey; +import net.minecraft.world.level.material.Fluid; +import net.minecraftforge.common.ForgeMod; +import net.minecraftforge.fluids.FluidInteractionRegistry; import net.minecraftforge.fluids.ForgeFlowingFluid; import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE; @@ -24,50 +29,19 @@ public class TFMGFluids { public static final ResourceLocation CONCRETE_RL = CreateTFMG.asResource("fluid/liquid_concrete"); - public static final ResourceLocation LPG_RL = CreateTFMG.asResource("fluid/lpg"); - - public static final ResourceLocation BUTANE_RL = CreateTFMG.asResource("fluid/butane"); - - public static final ResourceLocation PROPANE_RL = CreateTFMG.asResource("fluid/propane"); - - public static final ResourceLocation AIR_RL = CreateTFMG.asResource("fluid/air"); - - public static final ResourceLocation CARBON_DIOXIDE_RL = CreateTFMG.asResource("fluid/carbon_dioxide"); - - public static final ResourceLocation NAPHTHA_STILL_RL = CreateTFMG.asResource("fluid/naphtha_still"); - public static final ResourceLocation NAPHTHA_FLOW_RL = CreateTFMG.asResource("fluid/naphtha_flow"); - - public static final ResourceLocation DIESEL_STILL_RL = CreateTFMG.asResource("fluid/diesel_still"); - public static final ResourceLocation DIESEL_FLOW_RL = CreateTFMG.asResource("fluid/diesel_flow"); - - public static final ResourceLocation GASOLINE_STILL_RL = CreateTFMG.asResource("fluid/gasoline_still"); - public static final ResourceLocation GASOLINE_FLOW_RL = CreateTFMG.asResource("fluid/gasoline_flow"); - - public static final ResourceLocation KEROSENE_STILL_RL = CreateTFMG.asResource("fluid/kerosene_still"); - public static final ResourceLocation KEROSENE_FLOW_RL = CreateTFMG.asResource("fluid/kerosene_flow"); - - public static final ResourceLocation HEAVY_OIL_STILL_RL = CreateTFMG.asResource("fluid/heavy_oil_still"); - public static final ResourceLocation HEAVY_OIL_FLOW_RL = CreateTFMG.asResource("fluid/heavy_oil_flow"); - - public static final ResourceLocation LUBRICATION_OIL_STILL_RL = CreateTFMG.asResource("fluid/lubrication_oil_still"); - public static final ResourceLocation LUBRICATION_OIL_FLOW_RL = CreateTFMG.asResource("fluid/lubrication_oil_flow"); - - public static final ResourceLocation NAPALM_STILL_RL = CreateTFMG.asResource("fluid/napalm_still"); - public static final ResourceLocation NAPALM_FLOW_RL = CreateTFMG.asResource("fluid/napalm_flow"); public static final ResourceLocation PLASTIC_STILL_RL = CreateTFMG.asResource("fluid/liquid_plastic_still"); public static final ResourceLocation PLASTIC_FLOW_RL = CreateTFMG.asResource("fluid/liquid_plastic_flow"); - public static final ResourceLocation CRUDE_OIL_STILL_RL = CreateTFMG.asResource("fluid/crude_oil_still"); - public static final ResourceLocation CRUDE_OIL_FLOW_RL = CreateTFMG.asResource("fluid/crude_oil_flow"); public static final ResourceLocation ASPHALT_RL = CreateTFMG.asResource("fluid/liquid_asphalt"); public static final ResourceLocation COOLING_FLUID_STILL_RL = CreateTFMG.asResource("fluid/cooling_fluid_still"); public static final ResourceLocation COOLING_FLUID_FLOW_RL = CreateTFMG.asResource("fluid/cooling_fluid_flow"); - public static final ResourceLocation CREOSOTE_STILL_RL = CreateTFMG.asResource("fluid/creosote_still"); - public static final ResourceLocation CREOSOTE_FLOW_RL = CreateTFMG.asResource("fluid/creosote_flow"); + public static final ResourceLocation SULFURIC_AXID_STILL_RL = CreateTFMG.asResource("fluid/sulfuric_acid_still"); + public static final ResourceLocation SULFURIC_AXID_FLOW_RL = CreateTFMG.asResource("fluid/sulfuric_acid_flow"); + public static final ResourceLocation MOLTEN_STEEL_STILL_RL = CreateTFMG.asResource("fluid/molten_steel_still"); public static final ResourceLocation MOLTEN_STEEL_FLOW_RL = CreateTFMG.asResource("fluid/molten_steel_flow"); @@ -76,224 +50,38 @@ public class TFMGFluids { public static final ResourceLocation MOLTEN_SLAG_FLOW_RL = CreateTFMG.asResource("fluid/molten_slag_flow"); - public static final FluidEntry CARBON_DIOXIDE - = REGISTRATE.virtualFluid("carbon_dioxide",CARBON_DIOXIDE_RL,CARBON_DIOXIDE_RL) - .lang("Carbon Dioxide") - .register(); + public static final FluidEntry - public static final FluidEntry LPG = - REGISTRATE.virtualFluid("lpg",LPG_RL,LPG_RL) - .lang("LPG") - .register(); + AIR = gas("air"), - public static final FluidEntry AIR = - REGISTRATE.virtualFluid("air",AIR_RL,AIR_RL) - .lang("Air") - .register(); + CARBON_DIOXIDE = gas("carbon_dioxide"), + ETHYLENE = gas("ethylene"), + PROPYLENE = gas("propylene"), + PROPANE = gas("propane",TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + BUTANE = gas("butane",TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + LPG = gas("lpg",TFMGTags.TFMGFluidTags.LPG.tag,TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + NEON = gas("neon") + ; + public static final FluidEntry + CRUDE_OIL = flammableFluid("crude_oil",TFMGTags.TFMGFluidTags.CRUDE_OIL.tag), + HEAVY_OIL = flammableFluid("heavy_oil",TFMGTags.TFMGFluidTags.HEAVY_OIL.tag), + LUBRICATION_OIL = flammableFluid("lubrication_oil",TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + NAPALM = flammableFluid("napalm",TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + NAPHTHA = fuel("naphtha",TFMGTags.TFMGFluidTags.NAPHTHA.tag,TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + KEROSENE = fuel("kerosene",TFMGTags.TFMGFluidTags.KEROSENE.tag,TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + GASOLINE = fuel("gasoline",TFMGTags.TFMGFluidTags.GASOLINE.tag,TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + DIESEL = fuel("diesel",TFMGTags.TFMGFluidTags.DIESEL.tag,TFMGTags.TFMGFluidTags.FLAMMABLE.tag), + CREOSOTE = fuel("creosote",TFMGTags.TFMGFluidTags.FLAMMABLE.tag) - public static final FluidEntry PROPANE = - REGISTRATE.virtualFluid("propane",PROPANE_RL,PROPANE_RL) - .lang("Propane") - .register(); - - public static final FluidEntry BUTANE = - REGISTRATE.virtualFluid("butane",BUTANE_RL,BUTANE_RL) - .lang("Butane") - .register(); - - public static final FluidEntry ETHYLENE = - REGISTRATE.virtualFluid("ethylene",BUTANE_RL,BUTANE_RL) - .lang("Ethylene") - .register(); - - public static final FluidEntry PROPYLENE = - REGISTRATE.virtualFluid("propylene",PROPANE_RL,PROPANE_RL) - .lang("Propylene") - .register(); + ; - public static final FluidEntry CRUDE_OIL = - REGISTRATE.fluid("crude_oil_fluid",CRUDE_OIL_STILL_RL,CRUDE_OIL_FLOW_RL) - .lang("Crude Oil") - .properties(b -> b.viscosity(1000) - .density(1000)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(10) - .slopeFindDistance(5) - .explosionResistance(100f)) - - .source(BurnableFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/gasoline")) - .build() - .register(); - - public static final FluidEntry LIQUID_PLASTIC = - REGISTRATE.fluid("liquid_plastic",PLASTIC_STILL_RL,PLASTIC_FLOW_RL) - .lang("Liquid Plastic") - .properties(b -> b.viscosity(1500) - .density(1000)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(10) - .slopeFindDistance(2) - .explosionResistance(100f)) - - .source(ForgeFlowingFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/plastic")) - .build() - .register(); - - public static final FluidEntry MOLTEN_STEEL = - REGISTRATE.fluid("molten_steel",MOLTEN_STEEL_STILL_RL,MOLTEN_STEEL_FLOW_RL) - .lang("Molten Steel") - .properties(b -> b.viscosity(1500) - .density(1000)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(10) - .slopeFindDistance(2) - .explosionResistance(100f)) - - .source(ForgeFlowingFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/steel")) - .build() - .register(); - - public static final FluidEntry MOLTEN_SLAG = - REGISTRATE.fluid("molten_slag",MOLTEN_SLAG_STILL_RL,MOLTEN_SLAG_FLOW_RL) - .lang("Molten Slag") - .properties(b -> b.viscosity(1500) - .density(1000)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(10) - .slopeFindDistance(2) - .explosionResistance(100f)) - - .source(ForgeFlowingFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/slag")) - .build() - .register(); - - - - - - public static final FluidEntry GASOLINE = - REGISTRATE.fluid("gasoline",GASOLINE_STILL_RL,GASOLINE_FLOW_RL) - .lang("Gasoline") - .properties(b -> b.viscosity(500) - .density(500)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(7) - .slopeFindDistance(5) - .explosionResistance(100f)) - - .source(BurnableFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/gasoline")) - .build() - .register(); - - - - public static final FluidEntry DIESEL = - REGISTRATE.fluid("diesel",DIESEL_STILL_RL,DIESEL_FLOW_RL) - .lang("Diesel") - .properties(b -> b.viscosity(500) - .density(500)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(7) - .slopeFindDistance(5) - .explosionResistance(100f)) - - .source(BurnableFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/diesel")) - .build() - .register(); - - public static final FluidEntry KEROSENE = - REGISTRATE.fluid("kerosene",KEROSENE_STILL_RL,KEROSENE_FLOW_RL) - .lang("Kerosene") - .properties(b -> b.viscosity(500) - .density(500)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(7) - .slopeFindDistance(5) - .explosionResistance(100f)) - - .source(BurnableFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/kerosene")) - .build() - .register(); - - public static final FluidEntry NAPHTHA = - REGISTRATE.fluid("naphtha",NAPHTHA_STILL_RL,NAPHTHA_FLOW_RL) - .lang("Naphtha") - .properties(b -> b.viscosity(500) - .density(500)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(7) - .slopeFindDistance(5) - .explosionResistance(100f)) - - .source(BurnableFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/naphtha")) - .build() - .register(); - - public static final FluidEntry HEAVY_OIL = - REGISTRATE.fluid("heavy_oil",HEAVY_OIL_STILL_RL,HEAVY_OIL_FLOW_RL) - .lang("Heavy Oil") - .properties(b -> b.viscosity(1000) - .density(1000)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(10) - .slopeFindDistance(5) - .explosionResistance(100f)) - - .source(BurnableFluid.Source::new) - .bucket() - .build() - .register(); - - public static final FluidEntry LUBRICATION_OIL = - REGISTRATE.fluid("lubrication_oil",LUBRICATION_OIL_STILL_RL,LUBRICATION_OIL_FLOW_RL) - .lang("Lubrication Oil") - .properties(b -> b.viscosity(500) - .density(500)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(7) - .slopeFindDistance(5) - .explosionResistance(100f)) - - .source(BurnableFluid.Source::new) - .bucket() - .build() - .register(); - public static final FluidEntry NAPALM = - REGISTRATE.fluid("napalm",NAPALM_STILL_RL,NAPALM_FLOW_RL) - .lang("Napalm") - .properties(b -> b.viscosity(1000) - .density(1000)) - .fluidProperties(p -> p.levelDecreasePerBlock(1) - .tickRate(10) - .slopeFindDistance(5) - .explosionResistance(100f)) - - .source(BurnableFluid.Source::new) - .bucket() - .tag(AllTags.forgeItemTag("buckets/napalm")) - .build() - .register(); public static final FluidEntry COOLING_FLUID = - REGISTRATE.fluid("cooling_fluid",COOLING_FLUID_STILL_RL,COOLING_FLUID_FLOW_RL) + REGISTRATE.fluid("cooling_fluid",COOLING_FLUID_STILL_RL,COOLING_FLUID_FLOW_RL, + ConcreteFluidType.create(0x333333, + () -> 1f / 24f )) .lang("Cooling Fluid") .properties(b -> b.viscosity(1000) .density(1000)) @@ -307,9 +95,15 @@ public class TFMGFluids { // .tag(AllTags.forgeItemTag("buckets/napalm")) .build() .register(); - public static final FluidEntry CREOSOTE = - REGISTRATE.fluid("creosote",CREOSOTE_STILL_RL,CREOSOTE_FLOW_RL) - .lang("Creosote") + + + + + public static final FluidEntry SULFURIC_ACID = + REGISTRATE.fluid("sulfuric_acid",SULFURIC_AXID_STILL_RL,SULFURIC_AXID_FLOW_RL, + AcidFluidType.create(0x333333, + () -> 1f / 24f )) + .lang("Sulfuric Acid") .properties(b -> b.viscosity(1000) .density(1000)) .fluidProperties(p -> p.levelDecreasePerBlock(1) @@ -317,14 +111,18 @@ public class TFMGFluids { .slopeFindDistance(5) .explosionResistance(100f)) - .source(BurnableFluid.Source::new) - .bucket(CreosoteBucketItem::new) - //.tag(AllTags.forgeItemTag("buckets/napalm")) + .source(ForgeFlowingFluid.Source::new) + .bucket() + // .tag(AllTags.forgeItemTag("buckets/napalm")) .build() .register(); + + + + public static final FluidEntry LIQUID_CONCRETE = REGISTRATE.fluid("liquid_concrete",CONCRETE_RL,CONCRETE_RL, ConcreteFluidType.create(0x333333, @@ -362,8 +160,124 @@ public class TFMGFluids { .register(); + + public static final FluidEntry LIQUID_PLASTIC = + REGISTRATE.fluid("liquid_plastic",PLASTIC_STILL_RL,PLASTIC_FLOW_RL + , PlasticFluidType.create(0xc4c4c4, + () -> 1f / 24f )) + .lang("Liquid Plastic") + .properties(b -> b.viscosity(1500) + .density(1000)) + .fluidProperties(p -> p.levelDecreasePerBlock(1) + .tickRate(10) + .slopeFindDistance(2) + .explosionResistance(100f)) + + .source(ForgeFlowingFluid.Source::new) + .bucket() + .tag(AllTags.forgeItemTag("buckets/plastic")) + .build() + .register(); + + public static final FluidEntry MOLTEN_STEEL = + REGISTRATE.fluid("molten_steel",MOLTEN_STEEL_STILL_RL,MOLTEN_STEEL_FLOW_RL, + HotFluidType.create(0xfbfbbb, () -> 1f / 24f )) + .lang("Molten Steel") + .properties(b -> b.viscosity(1500) + .density(1000)) + .fluidProperties(p -> p.levelDecreasePerBlock(1) + .tickRate(10) + .slopeFindDistance(2) + .explosionResistance(100f)) + .tag(TFMGTags.TFMGFluidTags.MOLTEN_STEEL.tag) + .source(ForgeFlowingFluid.Source::new) + .bucket() + .tag(AllTags.forgeItemTag("buckets/steel")) + .build() + .register(); + + public static final FluidEntry MOLTEN_SLAG = + REGISTRATE.fluid("molten_slag",MOLTEN_SLAG_STILL_RL,MOLTEN_SLAG_FLOW_RL , + HotFluidType.create(0xfbfbbb, () -> 1f / 24f )) + .lang("Molten Slag") + .properties(b -> b.viscosity(1500) + .density(1000)) + .fluidProperties(p -> p.levelDecreasePerBlock(1) + .tickRate(10) + .slopeFindDistance(2) + .explosionResistance(100f)) + + .source(ForgeFlowingFluid.Source::new) + .bucket() + .tag(AllTags.forgeItemTag("buckets/slag")) + .build() + .register(); + + //// + @SafeVarargs + public static FluidEntry fuel(String name, TagKey... tags) { + + + TagKey[] fuelTag = new TagKey[]{TFMGTags.TFMGFluidTags.FUEL.tag}; + + TagKey[] tagsWithFuelTag = new TagKey[tags.length+1]; + + System.arraycopy(tags, 0, tagsWithFuelTag, 0, tags.length); + System.arraycopy(fuelTag, 0, tagsWithFuelTag, tags.length, 0); + + return flammableFluid(name,tags); + + } + + @SafeVarargs + public static FluidEntry flammableFluid(String name, TagKey... tags){ + + + return REGISTRATE.fluid(name,CreateTFMG.asResource("fluid/"+name+"_still"),CreateTFMG.asResource("fluid/"+name+"_flow"), + FlammableFluidType.create(0x606060, + () -> 1f / 24f )) + .lang(TFMGUtils.fromId(name)) + .properties(b -> b.viscosity(1000) + .density(1000)) + .fluidProperties(p -> p.levelDecreasePerBlock(1) + .tickRate(10) + .slopeFindDistance(5) + .explosionResistance(100f)) + .tag(tags) + .source(FlammableFluid.Source::new) + .bucket() + .tag(AllTags.forgeItemTag("buckets/"+name)) + .build() + .register(); + } + + @SafeVarargs + public static FluidEntry gas(String name, TagKey... tags){ + TagKey tag = FluidTags.create(CreateTFMG.asResource(name)); + + TagKey[] fluidTags = tags; + + if(tags.length==0){ + + fluidTags = new TagKey[]{tag}; + + } + + return REGISTRATE.virtualFluid(name,CreateTFMG.asResource("fluid/"+name),CreateTFMG.asResource("fluid/"+name)) + .lang(TFMGUtils.fromId(name)) + .tag(tags) + .tag(TFMGTags.TFMGFluidTags.GAS.tag) + // .source(GasFluid.Source::new) + + .bucket() + .lang(TFMGUtils.fromId(name)+" Tank") + .tag(AllTags.forgeItemTag("buckets/"+name)) + .build() + .register(); + } + @@ -372,59 +286,47 @@ public class TFMGFluids { public static void register() { } -/* - private static class NoColorFluidAttributes extends FluidType { - protected NoColorFluidAttributes(Builder builder, Fluid fluid) { - super(builder, fluid); - } + public static void registerFluidInteractions() { + // FluidInteractionRegistry.addInteraction(TFMGFluids.CRUDE_OIL.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( + // ForgeMod.LAVA_TYPE.get(), + // fluidState -> TFMGBlocks.FOSSILSTONE.getDefaultState())); +// + // FluidInteractionRegistry.addInteraction(TFMGFluids.DIESEL.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( + // ForgeMod.LAVA_TYPE.get(), + // fluidState -> TFMGBlocks.FOSSILSTONE.getDefaultState())); + // FluidInteractionRegistry.addInteraction(TFMGFluids.GASOLINE.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( + // ForgeMod.LAVA_TYPE.get(), + // fluidState -> TFMGBlocks.FOSSILSTONE.getDefaultState())); + // FluidInteractionRegistry.addInteraction(TFMGFluids.LUBRICATION_OIL.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( + // ForgeMod.LAVA_TYPE.get(), + // fluidState -> TFMGBlocks.FOSSILSTONE.getDefaultState())); + // FluidInteractionRegistry.addInteraction(TFMGFluids.HEAVY_OIL.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( + // ForgeMod.LAVA_TYPE.get(), + // fluidState -> TFMGBlocks.FOSSILSTONE.getDefaultState())); + // FluidInteractionRegistry.addInteraction(TFMGFluids.KEROSENE.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( + // ForgeMod.LAVA_TYPE.get(), + // fluidState -> TFMGBlocks.FOSSILSTONE.getDefaultState())); + // FluidInteractionRegistry.addInteraction(ForgeMod.WATER_TYPE.get(), new FluidInteractionRegistry.InteractionInformation( + // CRUDE_OIL.get().getFluidType(), + // fluidState -> TFMGFluids.POLLUTED_WATER.getBlock().get().defaultBlockState())); + + FluidInteractionRegistry.addInteraction( TFMGFluids.COOLING_FLUID.get().getFluidType(), new FluidInteractionRegistry.InteractionInformation( + ForgeMod.LAVA_TYPE.get(), + fluidState -> AllPaletteStoneTypes.LIMESTONE.baseBlock + .get() + .defaultBlockState())); + - @Override - public int getColor(BlockAndTintGetter world, BlockPos pos) { - return 0x00ffffff; - } - } - */ -/* - @Nullable - public static BlockState getLavaInteraction(FluidState fluidState) { - Fluid fluid = fluidState.getType(); - if (fluid.isSame(TFMGFluids.CRUDE_OIL_FLUID.get())) - return TFMGBlocks.FOSSILSTONE - .get() - .defaultBlockState(); - if (fluid.isSame(TFMGFluids.GASOLINE.get())) - return TFMGBlocks.FOSSILSTONE - .get() - .defaultBlockState(); - if (fluid.isSame(DIESEL.get())) - return TFMGBlocks.FOSSILSTONE - .get() - .defaultBlockState(); - if (fluid.isSame(LUBRICATION_OIL.get())) - return TFMGBlocks.FOSSILSTONE - .get() - .defaultBlockState(); - if (fluid.isSame(HEAVY_OIL.get())) - return TFMGBlocks.FOSSILSTONE - .get() - .defaultBlockState(); - if (fluid.isSame(KEROSENE.get())) - return TFMGBlocks.FOSSILSTONE - .get() - .defaultBlockState(); - if (fluid.isSame(NAPHTHA.get())) - return TFMGBlocks.FOSSILSTONE - .get() - .defaultBlockState(); - return null; } - */ + + + } diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGItems.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGItems.java index b8c7e707..5715d41a 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGItems.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGItems.java @@ -1,22 +1,38 @@ package com.drmangotea.createindustry.registry; import com.drmangotea.createindustry.CreateTFMG; -import com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.ChemicalColor; -import com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.ThermiteGrenadeItem; -import com.drmangotea.createindustry.items.gadgets.quad_potato_cannon.QuadPotatoCannonItem; +import com.drmangotea.createindustry.blocks.decoration.kinetics.SteelVerticalGearboxItem; +import com.drmangotea.createindustry.blocks.electricity.base.cables.WireItem; +import com.drmangotea.createindustry.blocks.electricity.base.cables.WireManager; +import com.drmangotea.createindustry.items.*; +import com.drmangotea.createindustry.items.weapons.LeadAxeItem; +import com.drmangotea.createindustry.items.weapons.LeadSwordItem; +import com.drmangotea.createindustry.items.weapons.advanced_potato_cannon.AdvancedPotatoCannonItem; +import com.drmangotea.createindustry.items.weapons.explosives.pipe_bomb.PipeBombItem; +import com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.ChemicalColor; +import com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.ThermiteGrenadeItem; +import com.drmangotea.createindustry.items.weapons.flamethrover.FlamethrowerItem; +import com.drmangotea.createindustry.items.weapons.lithium_blade.LitLithiumBladeItem; +import com.drmangotea.createindustry.items.weapons.lithium_blade.LithiumBladeItem; +import com.drmangotea.createindustry.items.weapons.quad_potato_cannon.QuadPotatoCannonItem; import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_basin.CastingBasinBlockEntity; import com.drmangotea.createindustry.blocks.machines.metal_processing.casting_basin.CastingMoldItem; -import com.drmangotea.createindustry.items.CoalCokeItem; -import com.drmangotea.createindustry.items.ScrewdriverItem; +import com.simibubi.create.AllTags; import com.simibubi.create.Create; +import com.simibubi.create.content.kinetics.gearbox.VerticalGearboxItem; import com.simibubi.create.content.processing.sequenced.SequencedAssemblyItem; import com.simibubi.create.foundation.data.AssetLookup; +import com.simibubi.create.foundation.item.ItemDescription; +import com.tterrag.registrate.util.DataIngredient; import com.tterrag.registrate.util.entry.ItemEntry; +import net.minecraft.core.Registry; import net.minecraft.tags.TagKey; -import net.minecraft.world.item.Item; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.*; +import net.minecraftforge.common.Tags; import static com.drmangotea.createindustry.CreateTFMG.REGISTRATE; -import static com.drmangotea.createindustry.items.gadgets.explosives.thermite_grenades.ChemicalColor.*; +import static com.drmangotea.createindustry.items.weapons.explosives.thermite_grenades.ChemicalColor.*; import static com.simibubi.create.AllTags.AllItemTags.CREATE_INGOTS; import static com.simibubi.create.AllTags.forgeItemTag; @@ -32,14 +48,77 @@ public class TFMGItems { STEEL_INGOT = taggedIngredient("steel_ingot", forgeItemTag("ingots/steel"), CREATE_INGOTS.tag), CAST_IRON_INGOT = taggedIngredient("cast_iron_ingot", forgeItemTag("ingots/cast_iron"), CREATE_INGOTS.tag), ALUMINUM_INGOT = taggedIngredient("aluminum_ingot", forgeItemTag("ingots/aluminum"), CREATE_INGOTS.tag), - PLASTIC_SHEET = taggedIngredient("plastic_sheet", forgeItemTag("ingots/plastic"), CREATE_INGOTS.tag) - // LEAD_INGOT = taggedIngredient("lead_ingot", forgeItemTag("ingots/lead"), CREATE_INGOTS.tag) + PLASTIC_SHEET = taggedIngredient("plastic_sheet", forgeItemTag("ingots/plastic"), CREATE_INGOTS.tag), + + HEAVY_PLATE = taggedIngredient("heavy_plate",forgeItemTag("plates/steel")), + LEAD_INGOT = taggedIngredient("lead_ingot", forgeItemTag("ingots/lead"), CREATE_INGOTS.tag), + + NICKEL_INGOT = taggedIngredient("nickel_ingot", forgeItemTag("ingots/nickel"), CREATE_INGOTS.tag), + + LITHIUM_INGOT = taggedIngredient("lithium_ingot", forgeItemTag("ingots/lithium"), CREATE_INGOTS.tag), + + RAW_LEAD = taggedIngredient("raw_lead", forgeItemTag("raw_materials/lead"), forgeItemTag("raw_materials")), + RAW_NICKEL = taggedIngredient("raw_nickel", forgeItemTag("raw_materials/nickel"), forgeItemTag("raw_materials")), + RAW_LITHIUM = taggedIngredient("raw_lithium", forgeItemTag("raw_materials/lithium"), forgeItemTag("raw_materials")), + + COPPER_WIRE = taggedIngredient("copper_wire",forgeItemTag("wires/copper")), + ALUMINUM_WIRE = taggedIngredient("aluminum_wire",forgeItemTag("wires/aluminum")), + + SYNTHETIC_LEATHER = taggedIngredient("synthetic_leather", Tags.Items.LEATHER), + + SYNTHETIC_STRING = taggedIngredient("synthetic_string", Tags.Items.STRING) + + + + + + + + ; + public static final ItemEntry + STEEL_HELMET = armor("steel_helmet",TFMGArmorMaterials.STEEL,EquipmentSlot.HEAD), + STEEL_CHESTPLATE = armor("steel_chestplate",TFMGArmorMaterials.STEEL,EquipmentSlot.CHEST), + STEEL_LEGGINGS = armor("steel_leggings",TFMGArmorMaterials.STEEL,EquipmentSlot.LEGS), + STEEL_BOOTS = armor("steel_boots",TFMGArmorMaterials.STEEL,EquipmentSlot.FEET); + + public static final ItemEntry COPPER_CABLE = + REGISTRATE.item("copper_cable",p->new WireItem(p, WireManager.Conductor.COPPER)) + .register(); + + public static final ItemEntry STEEL_VERTICAL_GEARBOX = + REGISTRATE.item("steel_vertical_gearbox", SteelVerticalGearboxItem::new) + .model(AssetLookup.customBlockItemModel("steel_gearbox", "item_vertical")) + .lang("Steel Vertical Gearbox") + .register(); public static final ItemEntry REBAR = REGISTRATE.item("rebar", Item::new).register(); + public static final ItemEntry + STEEL_SWORD = toolset("steel",TFMGTiers.STEEL), + ALUMINUM_SWORD = toolset("aluminum",TFMGTiers.ALUMINUM); + + public static final ItemEntry LEAD_SWORD = leadToolset(); + + + public static final ItemEntry LITHIUM_BLADE = + REGISTRATE.item("lithium_blade",p -> new LithiumBladeItem(TFMGTiers.STEEL,3, -2.4F,p)) + .model((ctx, prov) -> prov + .withExistingParent("lithium_blade","minecraft:item/handheld") + .texture("layer0","createindustry:item/lithium_blade")) + .register(); + + + public static final ItemEntry LIT_LITHIUM_BLADE = + REGISTRATE.item("lit_lithium_blade",p -> new LitLithiumBladeItem(TFMGTiers.STEEL,4, -2.4F,p)) + .model((ctx, prov) -> prov + .withExistingParent("lit_lithium_blade","minecraft:item/handheld") + .texture("layer0","createindustry:item/lithium_blade_lit")) + .lang("Lithium Blade") + .register(); + public static final ItemEntry SPARK_PLUG = REGISTRATE.item("spark_plug", Item::new).register(), SLAG = REGISTRATE.item("slag", Item::new).register(), @@ -48,7 +127,7 @@ public class TFMGItems { FIREPROOF_BRICK = REGISTRATE.item("fireproof_brick", Item::new).register(), FIRECLAY_BALL = REGISTRATE.item("fireclay_ball", Item::new).register(), SCREW = REGISTRATE.item("screw", Item::new).register(), - HEAVY_PLATE = REGISTRATE.item("heavy_plate", Item::new).register(), + ENGINE_CHAMBER = REGISTRATE.item("engine_chamber", Item::new).register(), ENGINE_BASE = REGISTRATE.item("engine_base", Item::new) .model((c, p) -> p.withExistingParent(c.getName(), CreateTFMG.asResource("item/unfinished_engine"))) @@ -62,10 +141,38 @@ public class TFMGItems { LIMESAND = REGISTRATE.item("limesand", Item::new).register(), - CONCRETE_MIXTURE = REGISTRATE.item("concrete_mixture", Item::new).register() + CONCRETE_MIXTURE = REGISTRATE.item("concrete_mixture", Item::new).register(), + + MAGNETIC_INGOT = REGISTRATE.item("magnetic_ingot", Item::new).register(), + + RESISTOR = REGISTRATE.item("resistor_", Item::new).lang("Resistor").register(), + + CAPACITOR = REGISTRATE.item("capacitor_", Item::new).lang("Capacitor").register(), + + ZINC_SULFATE = REGISTRATE.item("zinc_sulfate", Item::new).register(), + + COPPER_SULFATE = REGISTRATE.item("copper_sulfate", Item::new).register(), + + LITHIUM_CHARGE = REGISTRATE.item("lithium_charge", Item::new).register(), + + CINDERBLOCK = REGISTRATE.item("cinderblock", Item::new) + .recipe((c, p) -> p.stonecutting(DataIngredient.items(TFMGBlocks.CONCRETE.get()), c::get, 4)) + .register(), + + CINDERFLOURBLOCK = REGISTRATE.item("cinderflourblock", Item::new).register() + ; + public static final ItemEntry + BOTTLE_OF_BATTERY_ACID = REGISTRATE.item("bottle_of_battery_acid", BatteryAcidBottleItem::new).lang("Bottle o' Battery Acid") + .properties(p -> p.stacksTo(16)) + .register(); + public static final ItemEntry + BOTTLE_OF_CONCRETE = REGISTRATE.item("bottle_of_concrete", ConcreteBottleItem::new) + .properties(p -> p.stacksTo(16)) + .register(); + public static final ItemEntry @@ -83,9 +190,29 @@ public class TFMGItems { .model((c, p) -> p.withExistingParent(c.getName(), CreateTFMG.asResource("item/unfinished_engine"))) .register(); - public static final ItemEntry - COAL_COKE_DUST = taggedIngredient("coal_coke_dust", forgeItemTag("dusts/coal_coke")); + public static final ItemEntry + COAL_COKE_DUST = REGISTRATE.item("coal_coke_dust", CoalCokeItem::new) + .tag(forgeItemTag("dusts/coal_coke")) + .register(); + public static final ItemEntry + PIPE_BOMB = REGISTRATE.item("pipe_bomb",PipeBombItem::new) + .register(); + public static final ItemEntry + NAPALM_POTATO = REGISTRATE.item("napalm_potato",Item::new) + .register(); + + + public static final ItemEntry ADVANCED_POTATO_CANNON = + REGISTRATE.item("advanced_potato_cannon", AdvancedPotatoCannonItem::new) + .model(AssetLookup.itemModelWithPartials()) + .register(); + + public static final ItemEntry FLAMETHROWER = + REGISTRATE.item("flamethrower", FlamethrowerItem::new) + .model(AssetLookup.itemModelWithPartials()) + .properties(p->p.stacksTo(1)) + .register(); public static final ItemEntry QUAD_POTATO_CANNON = @@ -108,8 +235,82 @@ public class TFMGItems { ZINC_GRENADE = thermiteGrenade("zinc_grenade",GREEN); public static final ItemEntry COPPER_GRENADE = thermiteGrenade("copper_grenade",BLUE); + + + ////////////////////////// + + private static ItemEntry armor(String name, ArmorMaterial material, EquipmentSlot slot){ + return REGISTRATE.item(name,p -> new ArmorItem(material,slot,p)).register(); + } + + private static ItemEntry toolset(String material, Tier tier){ + + REGISTRATE.item(material+"_axe",p -> new AxeItem(tier,6.0F, -3.2F,p)) + .model((ctx, prov) -> prov + .withExistingParent(material+"_axe","minecraft:item/handheld") + .texture("layer0","createindustry:item/"+material+"_axe")) + .register(); + REGISTRATE.item(material+"_hoe",p -> new HoeItem(tier,0, -3.0F,p)) + .model((ctx, prov) -> prov + .withExistingParent(material+"_hoe","minecraft:item/handheld") + .texture("layer0","createindustry:item/"+material+"_hoe")) + .register(); + REGISTRATE.item(material+"_shovel",p -> new ShovelItem(tier,1.5F, -3.0F,p)) + .model((ctx, prov) -> prov + .withExistingParent(material+"_shovel","minecraft:item/handheld") + .texture("layer0","createindustry:item/"+material+"_shovel")) + .register(); + REGISTRATE.item(material+"_pickaxe",p -> new PickaxeItem(tier,1, -2.8F,p)) + .model((ctx, prov) -> prov + .withExistingParent(material+"_pickaxe","minecraft:item/handheld") + .texture("layer0","createindustry:item/"+material+"_pickaxe")) + .register(); + + return REGISTRATE.item(material+"_sword",p -> new SwordItem(tier,3, -2.4F,p)) + .model((ctx, prov) -> prov + .withExistingParent(material+"_sword","minecraft:item/handheld") + .texture("layer0","createindustry:item/"+material+"_sword")) + .register(); + + + } + + + + private static ItemEntry leadToolset(){ + + REGISTRATE.item("lead_axe",p -> new LeadAxeItem(TFMGTiers.LEAD,6.0F, -3.2F,p)) + .model((ctx, prov) -> prov + .withExistingParent("lead_axe","minecraft:item/handheld") + .texture("layer0","createindustry:item/lead_axe")) + .register();; + REGISTRATE.item("lead_hoe",p -> new HoeItem(TFMGTiers.LEAD,0, -3.0F,p)) + .model((ctx, prov) -> prov + .withExistingParent("lead_hoe","minecraft:item/handheld") + .texture("layer0","createindustry:item/lead_hoe")) + .register(); + REGISTRATE.item("lead_shovel",p -> new ShovelItem(TFMGTiers.LEAD,1.5F, -3.0F,p)) + .model((ctx, prov) -> prov + .withExistingParent("lead_shovel","minecraft:item/handheld") + .texture("layer0","createindustry:item/lead_shovel")) + .register(); + REGISTRATE.item("lead_pickaxe",p -> new PickaxeItem(TFMGTiers.LEAD,1, -2.8F,p)) + .model((ctx, prov) -> prov + .withExistingParent("lead_pickaxe","minecraft:item/handheld") + .texture("layer0","createindustry:item/lead_pickaxe")) + .register(); + + return REGISTRATE.item("lead_sword",p -> new LeadSwordItem(TFMGTiers.LEAD,3, -2.4F,p)) + .model((ctx, prov) -> prov + .withExistingParent("lead_sword","minecraft:item/handheld") + .texture("layer0","createindustry:item/lead_sword")) + .register(); + + + } + @SafeVarargs private static ItemEntry taggedIngredient(String name, TagKey... tags) { return REGISTRATE.item(name, Item::new) diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGPaletteStoneTypes.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGPaletteStoneTypes.java index 9835f471..ce9657f0 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGPaletteStoneTypes.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGPaletteStoneTypes.java @@ -23,6 +23,12 @@ public enum TFMGPaletteStoneTypes { BAUXITE(STANDARD_RANGE, r -> r.paletteStoneBlock("bauxite", () -> Blocks.DEEPSLATE, true, true) + .properties(p -> p.destroyTime(1.25f) + .color(MaterialColor.COLOR_BROWN)) + .register()), + + + GALENA(STANDARD_RANGE, r -> r.paletteStoneBlock("galena", () -> Blocks.CALCITE, true, true) .properties(p -> p.destroyTime(1.25f) .color(MaterialColor.COLOR_BLUE)) .register()), diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGPartialModels.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGPartialModels.java index 0c0021a6..62013eb4 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGPartialModels.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGPartialModels.java @@ -52,11 +52,32 @@ public class TFMGPartialModels { ALUMINUM_FLUID_PIPE_CASING = block("aluminum_pipe/casing"), INGOT_MOLD = block("casting_basin/mold_base"), - BlOCK_MOLD = block("casting_basin/block_mold") + BlOCK_MOLD = block("casting_basin/block_mold"), + + STATOR_OUTPUT = block("stator/output"), + VOLTMETER_DIAL = block("voltmeter/dial"), + + LIGHT_BULB = block("light_bulb/light"), + + INDUSTRIAL_LIGHT = block("light_bulb/light"), + + NEON_TUBE_LIGHT = block("neon_tube/light"), + + DIESEL_ENGINE_LINKAGE = block("diesel_engine/linkage"), + DIESEL_ENGINE_PISTON = block("diesel_engine/piston"), + + + STEEL_COGHWEEL = block("steel_cogwheel_shaftless"), + LARGE_STEEL_COGHWEEL = block("large_steel_cogwheel_shaftless"), + ALUMINUM_COGHWEEL = block("aluminum_cogwheel_shaftless"), + LARGE_ALUMINUM_COGHWEEL = block("large_aluminum_cogwheel_shaftless") ; + + + public static final Map> FOLDING_DOORS = new HashMap<>(); public static final Map> STEEL_PIPE_ATTACHMENTS = diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGRecipeTypes.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGRecipeTypes.java index 587fbeba..4ac4a745 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGRecipeTypes.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGRecipeTypes.java @@ -2,12 +2,13 @@ package com.drmangotea.createindustry.registry; import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.blocks.machines.simple.welding_machine.WeldingRecipe; import com.drmangotea.createindustry.recipes.casting.CastingRecipe; import com.drmangotea.createindustry.recipes.coking.CokingRecipe; import com.drmangotea.createindustry.recipes.distillation.DistillationRecipe; -import com.drmangotea.createindustry.recipes.distillation.AdvancedDistillationRecipe; import com.drmangotea.createindustry.recipes.industrial_blasting.IndustrialBlastingRecipe; import com.google.common.collect.ImmutableSet; +import com.simibubi.create.AllTags; import com.simibubi.create.content.processing.recipe.ProcessingRecipeBuilder.ProcessingRecipeFactory; import com.simibubi.create.content.processing.recipe.ProcessingRecipeSerializer; import com.simibubi.create.foundation.recipe.IRecipeTypeInfo; @@ -36,7 +37,7 @@ CASTING(CastingRecipe::new), INDUSTRIAL_BLASTING(IndustrialBlastingRecipe::new), COKING(CokingRecipe::new), DISTILLATION(DistillationRecipe::new), -ADVANCED_DISTILLATION(AdvancedDistillationRecipe::new) +WELDING(WeldingRecipe::new) ; private final ResourceLocation id; @@ -69,7 +70,14 @@ ADVANCED_DISTILLATION(AdvancedDistillationRecipe::new) TFMGRecipeTypes(ProcessingRecipeFactory processingFactory) { this(() -> new ProcessingRecipeSerializer<>(processingFactory)); } - + public static boolean shouldIgnoreInAutomation(Recipe recipe) { + RecipeSerializer serializer = recipe.getSerializer(); + if (serializer != null && AllTags.AllRecipeSerializerTags.AUTOMATION_IGNORE.matches(serializer)) + return true; + return recipe.getId() + .getPath() + .endsWith("_manual_only"); + } public static > RecipeType simpleType(ResourceLocation id) { String stringId = id.toString(); return new RecipeType() { diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGShapes.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGShapes.java index 85f63c29..14e8784d 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGShapes.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGShapes.java @@ -11,6 +11,7 @@ import net.minecraft.world.phys.shapes.VoxelShape; import java.util.function.BiFunction; +import static net.minecraft.core.Direction.SOUTH; import static net.minecraft.core.Direction.UP; public class TFMGShapes { @@ -41,7 +42,58 @@ public class TFMGShapes { COMPACT_ENGINE_VERTICAL = shape(3, 0, 3, 13, 14, 14) .forDirectional(), COMPACT_ENGINE = shape(3, 0, 3, 13, 14, 14) - .forDirectional() + .forDirectional(), + + + + + CABLE_CONNECTOR = shape(6, 0, 6, 10, 9, 10) + .forDirectional(), + CABLE_CONNECTOR_MIDDLE = shape(6, 0, 6, 10, 16, 10) + .forDirectional(), + GALVANIC_CELL = shape(5, 10, 5, 11, 16, 16).add(1, 4, 6, 15, 10, 16) + .forDirectional(), + GENERATOR = shape(3, 0, 3, 13, 14, 13).add(0, 4, 0, 16, 10, 16) + .forDirectional(), + LIGHT_BULB = shape(5, 0, 5, 11, 9, 11) + .forDirectional(), + + RESISTOR = shape(3, 0, 3, 13, 16, 13).add(1, 1, 13, 15, 15, 16) + .forDirectional(), + ROTOR = shape(3, 3, 2, 13, 13, 14) + .forAxis(), + VOLTMETER = shape(0, 0, 2, 16, 3, 14) + .forDirectional(), + + DIAGONAL_CABLE_BLOCK_DOWN = shape(3, 3, 11, 13, 13, 16) + .add(3, 11, 3, 13, 16, 13) + .add(4, 4, 5, 12, 11, 12) + .forDirectional(), + DIAGONAL_CABLE_BLOCK_UP = shape(3, 3, 0, 13, 13, 5) + .add(3, 11, 3, 13, 16, 13) + .add(4, 4, 5, 12, 11, 12) + .forDirectional(), + + CABLE_TUBE = shape(6, 0, 6, 10, 16, 10) + .forDirectional(), + + + ELECTRICAL_SWITCH = shape(5, 0, 3, 11, 3, 13) + .forHorizontalAxis(), + ELECTRICAL_SWITCH_CEILING = shape(5, 13, 3, 11, 16, 13) + .forHorizontalAxis(), + ELECTRICAL_SWITCH_WALL = shape(5, 3, 0, 11, 13, 3) + .forHorizontal(SOUTH) + + + + + + + + + + @@ -59,7 +111,9 @@ public class TFMGShapes { .build(), SURFACE_SCANNER = shape(2, 0, 2, 14, 14, 14).build(), - FULL = shape(0, 0, 0, 16, 16, 16).build(); + FULL = shape(0, 0, 0, 16, 16, 16).build(), + + SLAB = shape(0, 0, 0, 16, 8, 16).build(); ; private static TFMGShapes.Builder shape(VoxelShape shape) { diff --git a/src/main/java/com/drmangotea/createindustry/worldgen/TFMGConfiguredFeatures.java b/src/main/java/com/drmangotea/createindustry/worldgen/TFMGConfiguredFeatures.java index 017e10a8..a9dea66c 100644 --- a/src/main/java/com/drmangotea/createindustry/worldgen/TFMGConfiguredFeatures.java +++ b/src/main/java/com/drmangotea/createindustry/worldgen/TFMGConfiguredFeatures.java @@ -1,7 +1,6 @@ package com.drmangotea.createindustry.worldgen; - import com.drmangotea.createindustry.registry.TFMGBlocks; import com.drmangotea.createindustry.registry.TFMGFluids; import net.minecraft.core.Holder; @@ -16,7 +15,7 @@ import net.minecraft.world.level.levelgen.GeodeLayerSettings; import net.minecraft.world.level.levelgen.VerticalAnchor; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; import net.minecraft.world.level.levelgen.feature.configurations.GeodeConfiguration; -import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.levelgen.feature.stateproviders.BlockStateProvider; import net.minecraft.world.level.levelgen.placement.*; import net.minecraft.world.level.levelgen.structure.templatesystem.BlockMatchTest; @@ -27,7 +26,7 @@ import java.util.List; public class TFMGConfiguredFeatures { - // public static final DeferredRegister PLACED_FEATURES = + // public static final DeferredRegister PLACED_FEATURES = // DeferredRegister.create(Registry.PLACED_FEATURE_REGISTRY, CreateIndustry.MOD_ID); @@ -35,34 +34,51 @@ public class TFMGConfiguredFeatures { //-------------------------------------------------------------------------------------------------// -public static final Holder> OIL_CONFIGURED = - FeatureUtils.register("createindustry:oil", TFMGFeatures.OIL.get(), - new GeodeConfiguration(new GeodeBlockSettings(BlockStateProvider.simple(TFMGFluids.CRUDE_OIL.get().getSource().defaultFluidState().createLegacyBlock()), BlockStateProvider.simple(Blocks.AIR), BlockStateProvider.simple(Blocks.AIR), BlockStateProvider.simple(Blocks.AIR), BlockStateProvider.simple(TFMGBlocks.FOSSILSTONE.get()), List.of(Blocks.AIR.defaultBlockState(), Blocks.AIR.defaultBlockState(), Blocks.AIR.defaultBlockState(), Blocks.AIR.defaultBlockState()), BlockTags.FEATURES_CANNOT_REPLACE, BlockTags.GEODE_INVALID_BLOCKS), new GeodeLayerSettings(1.7D, 2.2D, 3.2D, 4.2D), new GeodeCrackSettings(0.95D, 2.0D, 2), 0.35D, 0.083D, true, UniformInt.of(4, 6), UniformInt.of(3, 4), UniformInt.of(1, 2), -16, 16, 0.05D, 1)); + public static final Holder> OIL_CONFIGURED = + FeatureUtils.register("createindustry:oil", TFMGFeatures.OIL.get(), + new GeodeConfiguration(new GeodeBlockSettings(BlockStateProvider.simple(TFMGFluids.CRUDE_OIL.get().getSource().defaultFluidState().createLegacyBlock()), BlockStateProvider.simple(Blocks.AIR), BlockStateProvider.simple(Blocks.AIR), BlockStateProvider.simple(Blocks.AIR), BlockStateProvider.simple(TFMGBlocks.FOSSILSTONE.get()), List.of(Blocks.AIR.defaultBlockState(), Blocks.AIR.defaultBlockState(), Blocks.AIR.defaultBlockState(), Blocks.AIR.defaultBlockState()), BlockTags.FEATURES_CANNOT_REPLACE, BlockTags.GEODE_INVALID_BLOCKS), new GeodeLayerSettings(1.7D, 2.2D, 3.2D, 4.2D), new GeodeCrackSettings(0.95D, 2.0D, 2), 0.35D, 0.083D, true, UniformInt.of(4, 6), UniformInt.of(3, 4), UniformInt.of(1, 2), -16, 16, 0.05D, 1)); -public static final Holder> SIMULATED_OIL_CONFIGURED = - FeatureUtils.register("createindustry:simulated_oil", TFMGFeatures.SIMULATED_OIL.get(), - new OreConfiguration(BEDROCK, TFMGBlocks.OIL_DEPOSIT.get().defaultBlockState(), 35)); +//public static final Holder> SIMULATED_OIL_CONFIGURED = +// FeatureUtils.register("createindustry:simulated_oil", TFMGFeatures.SIMULATED_OIL.get(), +// new OreConfiguration(BEDROCK, TFMGBlocks.OIL_DEPOSIT.get().defaultBlockState(), 35)); + public static final Holder> OIL_DEPOSIT_CONFIGURED = + FeatureUtils.register("createindustry:oil_deposit", TFMGFeatures.OIL_DEPOSIT.get(), + new NoneFeatureConfiguration()); + + + public static final Holder> OIL_WELL_CONFIGURED = + FeatureUtils.register("createindustry:oil_well", TFMGFeatures.OIL_WELL.get(), + new NoneFeatureConfiguration()); + //-------------------------------------------------------------------------------------------------// - - -public static final Holder OIL_PLACED = PlacementUtils.register("createindustry:oil", - OIL_CONFIGURED, RarityFilter.onAverageOnceEvery(120), - InSquarePlacement.spread(), - HeightRangePlacement.uniform(VerticalAnchor.absolute(-50), - VerticalAnchor.absolute(-10)), BiomeFilter.biome()); - -public static final Holder SIMULATED_OIL_PLACED = PlacementUtils.register("createindustry:simulated_oil", - SIMULATED_OIL_CONFIGURED, RarityFilter.onAverageOnceEvery(75)); + public static final Holder OIL_PLACED = PlacementUtils.register("createindustry:oil", + OIL_CONFIGURED, RarityFilter.onAverageOnceEvery(120), + InSquarePlacement.spread(), + HeightRangePlacement.uniform(VerticalAnchor.absolute(-50), + VerticalAnchor.absolute(-10)), BiomeFilter.biome()); + +//public static final Holder SIMULATED_OIL_PLACED = PlacementUtils.register("createindustry:simulated_oil", +// SIMULATED_OIL_CONFIGURED, RarityFilter.onAverageOnceEvery(75)); + + public static final Holder OIL_DEPOSIT_PLACED = PlacementUtils.register("createindustry:oil_deposit", + OIL_DEPOSIT_CONFIGURED, RarityFilter.onAverageOnceEvery(50) + , HeightRangePlacement.uniform(VerticalAnchor.absolute(-64), + VerticalAnchor.absolute(-64))); + + public static final Holder OIL_WELL_PLACED = PlacementUtils.register("createindustry:oil_well", + OIL_WELL_CONFIGURED, RarityFilter.onAverageOnceEvery(200) + , HeightRangePlacement.uniform(VerticalAnchor.absolute(-64), + VerticalAnchor.absolute(-64))); - // public static void register(IEventBus eventBus) { - // PLACED_FEATURES.register(eventBus); + // public static void register(IEventBus eventBus) { + // PLACED_FEATURES.register(eventBus); //} diff --git a/src/main/java/com/drmangotea/createindustry/worldgen/TFMGFeatures.java b/src/main/java/com/drmangotea/createindustry/worldgen/TFMGFeatures.java index ba75550a..650825b7 100644 --- a/src/main/java/com/drmangotea/createindustry/worldgen/TFMGFeatures.java +++ b/src/main/java/com/drmangotea/createindustry/worldgen/TFMGFeatures.java @@ -3,9 +3,12 @@ package com.drmangotea.createindustry.worldgen; import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.worldgen.oil_deposit.OilDepositFeature; +import com.drmangotea.createindustry.worldgen.oil_deposit.OilWellFeature; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.OreFeature; import net.minecraft.world.level.levelgen.feature.configurations.GeodeConfiguration; +import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.levelgen.feature.configurations.OreConfiguration; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; @@ -23,8 +26,15 @@ public class TFMGFeatures { - public static final RegistryObject> SIMULATED_OIL = FEATURES.register("simulated_oil", () -> - new OreFeature(OreConfiguration.CODEC)); + //public static final RegistryObject> SIMULATED_OIL = FEATURES.register("simulated_oil", () -> + // new OreFeature(OreConfiguration.CODEC)); + + + public static final RegistryObject> OIL_DEPOSIT = FEATURES.register("oil_deposit", () -> + new OilDepositFeature(NoneFeatureConfiguration.CODEC)); + + public static final RegistryObject> OIL_WELL = FEATURES.register("oil_well", () -> + new OilWellFeature(NoneFeatureConfiguration.CODEC)); //-------------------------------------------------------------------------------------------------// diff --git a/src/main/java/com/drmangotea/createindustry/worldgen/TFMGLayeredPatterns.java b/src/main/java/com/drmangotea/createindustry/worldgen/TFMGLayeredPatterns.java index 6422edfe..ef512170 100644 --- a/src/main/java/com/drmangotea/createindustry/worldgen/TFMGLayeredPatterns.java +++ b/src/main/java/com/drmangotea/createindustry/worldgen/TFMGLayeredPatterns.java @@ -28,23 +28,23 @@ public class TFMGLayeredPatterns { .block(AllPaletteStoneTypes.ANDESITE.getBaseBlock())) .build(); - //public static final NonNullSupplier -// - // GALENA = () -> LayerPattern.builder() - // .layer(l -> l.weight(1) - // .passiveBlock()) - // .layer(l -> l.weight(2) - // .block(TFMGBlocks.CONCRETE.get()) - // .size(1, 3)) - // .layer(l -> l.weight(1) - // .block(Blocks.SMOOTH_BASALT) - // .block(Blocks.GRANITE) - // .size(2, 2)) - // .layer(l -> l.weight(1) - // .blocks(Blocks.GRANITE, Blocks.SMOOTH_BASALT)) - // .layer(l -> l.weight(1) - // .block(AllPaletteStoneTypes.ANDESITE.getBaseBlock())) - // .build(); + public static final NonNullSupplier + + GALENA = () -> LayerPattern.builder() + .layer(l -> l.weight(1) + .passiveBlock()) + .layer(l -> l.weight(2) + .block(TFMGPaletteStoneTypes.GALENA.getBaseBlock()) + .size(1, 3)) + .layer(l -> l.weight(1) + .block(Blocks.SMOOTH_BASALT) + .block(Blocks.DRIPSTONE_BLOCK) + .size(2, 2)) + .layer(l -> l.weight(1) + .blocks(Blocks.DRIPSTONE_BLOCK, Blocks.SMOOTH_BASALT)) + .layer(l -> l.weight(1) + .block(AllPaletteStoneTypes.DEEPSLATE.getBaseBlock())) + .build(); public static final NonNullSupplier diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 40ef673c..70461505 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -8,7 +8,7 @@ license="MIT" modId="createindustry" -version="0.7.0c" +version="0.9.0b" displayName="Create: The Factory Must Grow" diff --git a/src/main/resources/assets/createindustry/lang/default/interface.json b/src/main/resources/assets/createindustry/lang/default/interface.json index 8db04f8a..0694cac4 100644 --- a/src/main/resources/assets/createindustry/lang/default/interface.json +++ b/src/main/resources/assets/createindustry/lang/default/interface.json @@ -1,6 +1,8 @@ { "itemGroup.createindustry.base": "Create: The Factory Must Grow", "itemGroup.createindustry.building": "Create: TFMG Building Blocks", + + "create.goggles.misc.number": "%1$s", "create.goggles.misc.percent_symbol": "%", "create.goggles.misc.dot_one": ".", @@ -8,20 +10,20 @@ "create.goggles.misc.dot_three": "...", "create.goggles.misc.storage_info": "Storage Info:", "create.goggles.fluid_in_tank": "Tank Contents:", + "create.goggles.surface_scanner.no_rotation": "Machine Unpowered", "create.goggles.surface_scanner.no_deposit": "No Deposit Found", "create.goggles.surface_scanner.deposit_found": "Deposit Located!", "create.goggles.surface_scanner.distance": "Distance: %1$s Blocks", - "create.goggles.surface_scanner.scanning_surface": "Scanning The Surface...", + "create.goggles.surface_scanner.scanning_surface": "Scanning The Surface", + "create.goggles.distillation_tower.status": "Distillation Tower Info:", "create.goggles.distillation_tower.tank_not_found": "Steel Fluid Tank Not Found", - "create.goggles.distillation_tower.not_tall_enough": "The Fluid Tank is Too Short", - "create.goggles.distillation_tower.level": "Distillation Tower Level: %1$s", - "create.goggles.distillation_tower.found_outputs": "Number of Outputs: %1$s", + "create.goggles.distillation_tower.level": "Heat Level: %1$s", + "create.goggles.distillation_tower.found_outputs": "Output Count: %1$s", "create.goggles.distillation_tower.no_outputs": "No Output Blocks Found", + "create.goggles.blast_furnace.stats": "Blast Furnace:", - "create.distillation_tower.size": "Size", - "create.distillation_tower.heat": "Heat", "create.goggles.blast_furnace.fuel_amount": "Fuel Amount: %1$s", "create.goggles.blast_furnace.item_count": "Item Count: %1$s", "create.goggles.blast_furnace.height": "Height: %1$s", @@ -31,6 +33,7 @@ "create.goggles.blast_furnace.diameter.one": "Diameter: 1", "create.goggles.blast_furnace.diameter.two": "Diameter: 2", "create.goggles.blast_furnace.invalid": "Blast Furnace Invalid", + "create.goggles.coke_oven.status": "Coke Oven:", "create.goggles.coke_oven.fluid_amount_output": "Internal Tank Contents: %1$s mb", "create.goggles.coke_oven.fluid_amount_exhaust": "Carbon Dioxide: %1$s mb", @@ -38,6 +41,7 @@ "create.goggles.coke_oven.invalid": "Coke Oven Invalid", "create.goggles.coke_oven.tank_full": "An Internal Tank is Full", "create.goggles.coke_oven.progress": "Progress: %1$s", + "create.goggles.engine_stats": "Engine Stats:", "create.goggles.engine_exhaust_stats": "Engine Exhaust Stats:", "create.goggles.fuel_container": "Fluid Storage", @@ -48,25 +52,64 @@ "create.goggles.get_engine_efficiency": "%1$s", "create.goggles.engine.stress": "%1$ssu", "create.goggles.diesel_engine.info": "Diesel Engine:", + "create.goggles.pumpjack_info": "Pumpjack Info:", "create.goggles.pumpjack.part_missing": "Hammer or Crank Missing", "create.goggles.pumpjack.wrong_rotation1": "The Pumpjack Base is oriented incorrectly, the red marker must", "create.goggles.pumpjack.wrong_rotation2": "face away from the Pumpjack Hammer Holder", "create.goggles.pumpjack_fluid_storage": "Fluid Tank Info:", - "create.pumpjack_deposit_amount": "%1$s Buckets", - "create.goggles.pumpjack.deposit_info": "Deposit Info:", - "create.goggles.zero": "No Deposit Found", "create.goggles.pumpjack.fluid_amount": "Fluid Amount:", + "create.goggles.pumpjack.deposit_info": "Deposit Info:", + "create.pumpjack_deposit_amount": "%1$s Buckets", + "create.goggles.zero": "Machine Invalid", + "create.goggles.machine_input.info": "Machine Input Info", "create.goggles.machine_input.no_rot": "No Rotation Provided!", "create.goggles.machine_input.power_level": "Power Level: ", + "create.goggles.electricity.no_power": "No Power", + "create.goggles.electricity.insufficient_voltage": "Insufficient Voltage", + + "create.goggles.voltmeter": "Voltmeter:", + "create.goggles.voltmeter.voltage": " Measured Voltage: %1$s V", + "create.goggles.voltmeter.range": " Measuring Range: %1$s V", + + "create.goggles.energy_meter": "Energy Meter:", + "create.goggles.energy_meter.energy": " Energy: %1$s fe", + + "create.goggles.motor.usage": "Energy Usage: %1$s fe/t", + "create.goggles.generator.production": "Energy Production: %1$s fe/t", + + + "create.resistor.allowed_voltage": "Allowed Voltage", + "create.creative_generator.voltage_generation": "Voltage Generation", + + + "death.attack.createindustry.concrete": "%1$s tried to eat Concrete", + "death.attack.createindustry.concrete.player": "%1$s tried to eat Concrete", + + "death.attack.createindustry.acid": "%1$s took an acid bath", + "death.attack.createindustry.acid.player": "%1$s took an acid bath", + "create.recipe.distillation": "Distillation", "create.recipe.advanced_distillation": "Advanced Distillation", "create.recipe.industrial_blasting": "Industrial Blasting", "create.recipe.casting": "Casting", "create.recipe.coking": "Coking", + "item.minecraft.potion.effect.hellfire_potion": "Potion of Hellfire", + "item.minecraft.splash_potion.effect.hellfire_potion": "Splash Potion of Hellfire", + "item.minecraft.lingering_potion.effect.hellfire_potion": "Lingering Potion of Hellfire", + "item.minecraft.tipped_arrow.effect.hellfire_potion": "Arrow of Hellfire", + + "effect.createindustry.hellfire": "Hellfire", + + "create.wires.removed_data": "Data Removed", + + + "createindustry.subtitle.engine_sounds": "Engine Sounds", "createindustry.subtitle.diesel_engine_sounds": "Diesel Engine Sounds" + + } diff --git a/src/main/resources/assets/createindustry/lang/default/ponders.json b/src/main/resources/assets/createindustry/lang/default/ponders.json index d0e27ef8..e82a4b47 100644 --- a/src/main/resources/assets/createindustry/lang/default/ponders.json +++ b/src/main/resources/assets/createindustry/lang/default/ponders.json @@ -21,7 +21,7 @@ "createindustry.ponder.pumpjack.text_2": "Then, construct a Pumpjack on top of the pipeline by first placing down a Pumpjack Base...", "createindustry.ponder.pumpjack.text_3": "Placing the Pumpjack Hammer behind it...", "createindustry.ponder.pumpjack.text_4": "Next step is building the Connector And the Head of the Pumpjack above the crank and the base", - "createindustry.ponder.pumpjack.text_5": "Now they need to be connected with Pumpjack Pammer Parts, keep in mind that superglue is needed to finish the structure", + "createindustry.ponder.pumpjack.text_5": "Now they need to be connected with Pumpjack Hammer Parts, keep in mind that superglue is needed to finish the structure", "createindustry.ponder.pumpjack.text_6": "And finally, placing the Machine Input with a Pumpjack Crank above it, as shown in the scene", "createindustry.ponder.distillation_tower.text_1": "A sufficiently large Steel Fluid Tank can be turned into a Distillation Tower", @@ -60,6 +60,14 @@ "createindustry.ponder.radial_engines.text_5": "The second variant of a radial is The Large Radial Engine which uses kerosene as fuel", + "createindustry.ponder.large_generator.text_1": "The main of the Large Generator is the Rotor", + "createindustry.ponder.large_generator.text_2": "To complete the Large Generator, place Stator block around the Rotor", + "createindustry.ponder.large_generator.text_3": "Providing rotational power to the Rotor will produce electric energy", + "createindustry.ponder.large_generator.text_4": "Clicking a side with a wrench will make it the energy output", + + + + "createindustry.ponder.distillation_tower.header": "Distillation Tower Setup", "createindustry.ponder.pumpjack.header": "Building Pumpjacks", @@ -68,6 +76,8 @@ "createindustry.ponder.diesel_engine_expansion.header": "Expanding Diesel Engines", "createindustry.ponder.small_engines.header": "Building Small Engines", "createindustry.ponder.radial_engines.header": "Using Radial Engines", + "createindustry.ponder.large_generator.header": "Building a Large Generator", + "createindustry.ponder.coke_oven.header": "Building a Coke Oven", "createindustry.ponder.blast_furnace.header": "Building a Blast Furnace", @@ -75,7 +85,7 @@ "createindustry.ponder.tag.oil": "Oil Related Machines", - "createindustry.ponder.tag.metallurgy": "Metal Working Machines", + "createindustry.ponder.tag.metallurgy": "Metal Processing", "createindustry.ponder.tag.oil.description": "Machines that extract, process or use Crude Oil and its byproducts", diff --git a/src/main/resources/assets/createindustry/models/block/formwork_block/block_base.json b/src/main/resources/assets/createindustry/models/block/formwork_block/block_base.json index 9e26dfee..d4f03b2e 100644 --- a/src/main/resources/assets/createindustry/models/block/formwork_block/block_base.json +++ b/src/main/resources/assets/createindustry/models/block/formwork_block/block_base.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "textures": { + "particle": "minecraft:block/spruce_planks" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/casing.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/casing.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/casing.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/casing.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/connection/down.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/down.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/connection/down.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/down.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/connection/east.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/east.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/connection/east.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/east.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/connection/north.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/north.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/connection/north.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/north.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/connection/south.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/south.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/connection/south.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/south.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/connection/up.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/up.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/connection/up.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/up.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/connection/west.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/west.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/connection/west.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/connection/west.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/core_x.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/core_x.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/core_x.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/core_x.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/core_y.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/core_y.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/core_y.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/core_y.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/core_z.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/core_z.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/core_z.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/core_z.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/drain/down.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/down.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/drain/down.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/down.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/drain/east.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/east.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/drain/east.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/east.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/drain/north.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/north.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/drain/north.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/north.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/drain/south.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/south.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/drain/south.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/south.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/drain/up.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/up.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/drain/up.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/up.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/drain/west.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/west.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/drain/west.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/drain/west.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/item.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/item.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/item.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/item.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim/down.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/down.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim/down.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/down.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim/east.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/east.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim/east.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/east.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim/north.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/north.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim/north.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/north.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim/south.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/south.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim/south.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/south.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim/up.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/up.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim/up.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/up.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim/west.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/west.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim/west.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim/west.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/down.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/down.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/down.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/down.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/east.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/east.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/east.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/east.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/north.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/north.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/north.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/north.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/south.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/south.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/south.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/south.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/up.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/up.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/up.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/up.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/west.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/west.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/rim_connector/west.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/rim_connector/west.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/window.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/window.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/window.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/window.json diff --git a/src/main/resources/assets/createindustry/models/block/brass_pipe/window_alt.json b/src/main/resources/assets/createindustry/models/block/lo/brass_pipe/window_alt.json similarity index 100% rename from src/main/resources/assets/createindustry/models/block/brass_pipe/window_alt.json rename to src/main/resources/assets/createindustry/models/block/lo/brass_pipe/window_alt.json diff --git a/src/main/resources/assets/createindustry/models/block/pumpjack_hammer/block_wide.json b/src/main/resources/assets/createindustry/models/block/pumpjack_hammer/block_wide.json index 0cdb2643..708ec934 100644 --- a/src/main/resources/assets/createindustry/models/block/pumpjack_hammer/block_wide.json +++ b/src/main/resources/assets/createindustry/models/block/pumpjack_hammer/block_wide.json @@ -85,7 +85,7 @@ "faces": { "north": {"uv": [0, 0, 1.5, 4], "texture": "#1"}, "east": {"uv": [0, 0, 0, 4], "texture": "#1"}, - "south": {"uv": [0, 0, 1.5, 4], "texture": "#1"}, + "south": {"uv": [0, 2.625, 1.5, 4], "texture": "#1"}, "west": {"uv": [0, 0, 0, 4], "texture": "#1"}, "up": {"uv": [1.5, 0, 0, 0], "texture": "#1"}, "down": {"uv": [1.5, 0, 0, 0], "texture": "#1"} diff --git a/src/main/resources/assets/createindustry/models/block/steel_distillation_controller/block.json b/src/main/resources/assets/createindustry/models/block/steel_distillation_controller/block.json index e25b4f73..87ed6932 100644 --- a/src/main/resources/assets/createindustry/models/block/steel_distillation_controller/block.json +++ b/src/main/resources/assets/createindustry/models/block/steel_distillation_controller/block.json @@ -12,12 +12,12 @@ "from": [0, 0, 0], "to": [16, 16, 16], "faces": { - "north": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#2"}, - "east": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#0"}, - "south": {"uv": [0, 0, 16, 16], "texture": "#2"}, - "west": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#0"}, - "up": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#1"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#0"} + "north": {"uv": [0, 0, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#0"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#2"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#2"} } } ] diff --git a/src/main/resources/assets/createindustry/models/block/surface_scanner/block.json b/src/main/resources/assets/createindustry/models/block/surface_scanner/block.json deleted file mode 100644 index 995e1cbc..00000000 --- a/src/main/resources/assets/createindustry/models/block/surface_scanner/block.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "minecraft:block/block", - "texture_size": [64, 64], - "textures": { - "2": "createindustry:block/surface_scanner", - "particle": "createindustry:block/surface_scanner" - }, - "elements": [ - { - "from": [0, 0, 0], - "to": [16, 2, 16], - "faces": { - "north": {"uv": [7.5, 9, 11.5, 9.5], "texture": "#2"}, - "east": {"uv": [4, 9.5, 8, 10], "texture": "#2"}, - "south": {"uv": [8, 9.5, 12, 10], "texture": "#2"}, - "west": {"uv": [4, 10, 8, 10.5], "texture": "#2"}, - "up": {"uv": [4, 4, 0, 0], "texture": "#2"}, - "down": {"uv": [4, 4, 0, 8], "texture": "#2"} - } - }, - { - "from": [1, 2, 2], - "to": [15, 14, 15], - "faces": { - "north": {"uv": [4, 6.5, 7.5, 9.5], "texture": "#2"}, - "east": {"uv": [7.5, 3, 10.75, 6], "texture": "#2"}, - "south": {"uv": [7.5, 0, 11, 3], "texture": "#2"}, - "west": {"uv": [7.5, 6, 10.75, 9], "texture": "#2"}, - "up": {"uv": [7.5, 3.25, 4, 0], "texture": "#2"}, - "down": {"uv": [7.5, 3.25, 4, 6.5], "texture": "#2"} - } - }, - { - "from": [14, 2, 15], - "to": [15, 14, 16], - "faces": { - "north": {"uv": [6, 10.5, 6.25, 13.5], "texture": "#2"}, - "east": {"uv": [6.25, 10.5, 6.5, 13.5], "texture": "#2"}, - "south": {"uv": [6.5, 10.5, 6.75, 13.5], "texture": "#2"}, - "west": {"uv": [6.75, 10.5, 7, 13.5], "texture": "#2"}, - "up": {"uv": [3.25, 11, 3, 10.75], "texture": "#2"}, - "down": {"uv": [3.5, 10.75, 3.25, 11], "texture": "#2"} - } - }, - { - "from": [2, 13, 15], - "to": [14, 14, 16], - "faces": { - "north": {"uv": [9, 10.5, 12, 10.75], "texture": "#2"}, - "east": {"uv": [3.5, 10.75, 3.75, 11], "texture": "#2"}, - "south": {"uv": [0, 10.75, 3, 11], "texture": "#2"}, - "west": {"uv": [10.75, 3.5, 11, 3.75], "texture": "#2"}, - "up": {"uv": [13.75, 3.25, 10.75, 3], "texture": "#2"}, - "down": {"uv": [13.75, 3.25, 10.75, 3.5], "texture": "#2"} - } - }, - { - "from": [1, 2, 15], - "to": [2, 14, 16], - "faces": { - "north": {"uv": [7, 10.5, 7.25, 13.5], "texture": "#2"}, - "east": {"uv": [7.25, 10.5, 7.5, 13.5], "texture": "#2"}, - "south": {"uv": [7.5, 10.5, 7.75, 13.5], "texture": "#2"}, - "west": {"uv": [7.75, 10.5, 8, 13.5], "texture": "#2"}, - "up": {"uv": [4, 11, 3.75, 10.75], "texture": "#2"}, - "down": {"uv": [11, 3.75, 10.75, 4], "texture": "#2"} - } - }, - { - "from": [4, 2, 0], - "to": [12, 13, 2], - "faces": { - "north": {"uv": [0, 8, 2, 10.75], "texture": "#2"}, - "east": {"uv": [8, 10, 8.5, 12.75], "texture": "#2"}, - "south": {"uv": [2, 8, 4, 10.75], "texture": "#2"}, - "west": {"uv": [8.5, 10, 9, 12.75], "texture": "#2"}, - "up": {"uv": [11, 10.5, 9, 10], "texture": "#2"}, - "down": {"uv": [6, 10.5, 4, 11], "texture": "#2"} - } - }, - { - "from": [7, 14, 8], - "to": [9, 15, 10], - "faces": { - "north": {"uv": [5.5, 1.25, 6, 1.5], "texture": "#2"}, - "east": {"uv": [5.5, 1.25, 6, 1.5], "texture": "#2"}, - "south": {"uv": [5.5, 1.25, 6, 1.5], "texture": "#2"}, - "west": {"uv": [5.5, 1.25, 6, 1.5], "texture": "#2"}, - "up": {"uv": [5.5, 1.25, 6, 1.75], "texture": "#2"}, - "down": {"uv": [5.5, 1.25, 6, 1.75], "texture": "#2"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/createindustry/models/block/surface_scanner/dial.json b/src/main/resources/assets/createindustry/models/block/surface_scanner/dial.json index f12fd227..93228970 100644 --- a/src/main/resources/assets/createindustry/models/block/surface_scanner/dial.json +++ b/src/main/resources/assets/createindustry/models/block/surface_scanner/dial.json @@ -1,5 +1,6 @@ { "credit": "Made with Blockbench", + "texture_size": [48, 32], "textures": { "0": "createindustry:block/surface_scanner", "particle": "createindustry:block/surface_scanner" @@ -14,7 +15,7 @@ "east": {"uv": [0, 0, 4, 0], "texture": "#0"}, "south": {"uv": [0, 0, 1, 0], "texture": "#0"}, "west": {"uv": [0, 0, 4, 0], "texture": "#0"}, - "up": {"uv": [3.75, 7, 4, 9], "rotation": 180, "texture": "#0"}, + "up": {"uv": [10, 8.5, 10.33333, 12.5], "rotation": 180, "texture": "#0"}, "down": {"uv": [3.75, 7, 4, 9], "texture": "#0"} } } diff --git a/src/main/resources/assets/createindustry/models/block/surface_scanner/item.json b/src/main/resources/assets/createindustry/models/block/surface_scanner/item.json index a61cfb8a..555767db 100644 --- a/src/main/resources/assets/createindustry/models/block/surface_scanner/item.json +++ b/src/main/resources/assets/createindustry/models/block/surface_scanner/item.json @@ -1,7 +1,7 @@ { "credit": "Made with Blockbench", "parent": "minecraft:block/block", - "texture_size": [64, 64], + "texture_size": [48, 32], "textures": { "2": "createindustry:block/surface_scanner", "particle": "createindustry:block/surface_scanner" @@ -11,72 +11,84 @@ "from": [0, 0, 0], "to": [16, 2, 16], "faces": { - "north": {"uv": [7.5, 9, 11.5, 9.5], "texture": "#2"}, - "east": {"uv": [4, 9.5, 8, 10], "texture": "#2"}, - "south": {"uv": [8, 9.5, 12, 10], "texture": "#2"}, - "west": {"uv": [4, 10, 8, 10.5], "texture": "#2"}, - "up": {"uv": [4, 4, 0, 0], "texture": "#2"}, - "down": {"uv": [4, 4, 0, 8], "texture": "#2"} + "north": {"uv": [5.33333, 13, 10.66667, 14], "texture": "#2"}, + "east": {"uv": [5.33333, 13, 10.66667, 14], "texture": "#2"}, + "south": {"uv": [5.33333, 13, 10.66667, 14], "texture": "#2"}, + "west": {"uv": [5.33333, 13, 10.66667, 14], "texture": "#2"}, + "up": {"uv": [5.33333, 8, 0, 0], "texture": "#2"}, + "down": {"uv": [5.33333, 0, 0, 8], "texture": "#2"} } }, { "from": [1, 2, 2], "to": [15, 14, 15], "faces": { - "north": {"uv": [4, 6.5, 7.5, 9.5], "texture": "#2"}, - "east": {"uv": [7.5, 3, 10.75, 6], "texture": "#2"}, - "south": {"uv": [7.5, 0, 11, 3], "texture": "#2"}, - "west": {"uv": [7.5, 6, 10.75, 9], "texture": "#2"}, - "up": {"uv": [7.5, 3.25, 4, 0], "texture": "#2"}, - "down": {"uv": [7.5, 3.25, 4, 6.5], "texture": "#2"} + "north": {"uv": [0.66667, 8, 5.33333, 14], "texture": "#2"}, + "east": {"uv": [5, 8, 0.66667, 14], "texture": "#2"}, + "south": {"uv": [10, 0, 14.66667, 6], "texture": "#2"}, + "west": {"uv": [0.66667, 8, 5, 14], "texture": "#2"}, + "up": {"uv": [10, 6.5, 5.33333, 0], "texture": "#2"}, + "down": {"uv": [13, 9.5, 8.33333, 16], "texture": "#2"} } }, { "from": [14, 2, 15], "to": [15, 14, 16], "faces": { - "north": {"uv": [6, 10.5, 6.25, 13.5], "texture": "#2"}, - "east": {"uv": [6.25, 10.5, 6.5, 13.5], "texture": "#2"}, - "south": {"uv": [6.5, 10.5, 6.75, 13.5], "texture": "#2"}, - "west": {"uv": [6.75, 10.5, 7, 13.5], "texture": "#2"}, - "up": {"uv": [3.25, 11, 3, 10.75], "texture": "#2"}, - "down": {"uv": [3.5, 10.75, 3.25, 11], "texture": "#2"} + "north": {"uv": [5, 8, 5.33333, 14], "texture": "#2"}, + "east": {"uv": [5, 8, 5.33333, 14], "texture": "#2"}, + "south": {"uv": [5, 8, 5.33333, 14], "texture": "#2"}, + "west": {"uv": [5, 8, 5.33333, 14], "texture": "#2"}, + "up": {"uv": [1, 14, 0.66667, 13.5], "texture": "#2"}, + "down": {"uv": [1, 13.5, 0.66667, 14], "texture": "#2"} } }, { "from": [2, 13, 15], "to": [14, 14, 16], "faces": { - "north": {"uv": [9, 10.5, 12, 10.75], "texture": "#2"}, - "east": {"uv": [3.5, 10.75, 3.75, 11], "texture": "#2"}, - "south": {"uv": [0, 10.75, 3, 11], "texture": "#2"}, - "west": {"uv": [10.75, 3.5, 11, 3.75], "texture": "#2"}, - "up": {"uv": [13.75, 3.25, 10.75, 3], "texture": "#2"}, - "down": {"uv": [13.75, 3.25, 10.75, 3.5], "texture": "#2"} + "north": {"uv": [1, 13.5, 5, 14], "texture": "#2"}, + "east": {"uv": [5, 13.5, 5.33333, 14], "texture": "#2"}, + "south": {"uv": [1, 13.5, 5, 14], "texture": "#2"}, + "west": {"uv": [5, 13.5, 5.33333, 14], "texture": "#2"}, + "up": {"uv": [5, 14, 1, 13.5], "texture": "#2"}, + "down": {"uv": [5, 13.5, 1, 14], "texture": "#2"} } }, { "from": [1, 2, 15], "to": [2, 14, 16], "faces": { - "north": {"uv": [7, 10.5, 7.25, 13.5], "texture": "#2"}, - "east": {"uv": [7.25, 10.5, 7.5, 13.5], "texture": "#2"}, - "south": {"uv": [7.5, 10.5, 7.75, 13.5], "texture": "#2"}, - "west": {"uv": [7.75, 10.5, 8, 13.5], "texture": "#2"}, - "up": {"uv": [4, 11, 3.75, 10.75], "texture": "#2"}, - "down": {"uv": [11, 3.75, 10.75, 4], "texture": "#2"} + "north": {"uv": [5, 8, 5.33333, 14], "texture": "#2"}, + "east": {"uv": [5, 8, 5.33333, 14], "texture": "#2"}, + "south": {"uv": [5, 8, 5.33333, 14], "texture": "#2"}, + "west": {"uv": [5, 8, 5.33333, 14], "texture": "#2"}, + "up": {"uv": [5.33333, 14, 5, 13.5], "texture": "#2"}, + "down": {"uv": [14.66667, 7.5, 14.33333, 8], "texture": "#2"} } }, { "from": [4, 2, 0], "to": [12, 13, 2], "faces": { - "north": {"uv": [0, 8, 2, 10.75], "texture": "#2"}, - "east": {"uv": [8, 10, 8.5, 12.75], "texture": "#2"}, - "south": {"uv": [2, 8, 4, 10.75], "texture": "#2"}, - "west": {"uv": [8.5, 10, 9, 12.75], "texture": "#2"}, - "up": {"uv": [11, 10.5, 9, 10], "texture": "#2"}, - "down": {"uv": [6, 10.5, 4, 11], "texture": "#2"} + "north": {"uv": [5.33333, 6.5, 8, 12], "texture": "#2"}, + "east": {"uv": [8, 6.5, 8.66667, 12], "texture": "#2"}, + "south": {"uv": [0, 16, 2.66667, 21.5], "texture": "#2"}, + "west": {"uv": [8.66667, 6.5, 8, 12], "texture": "#2"}, + "up": {"uv": [8, 13, 5.33333, 12], "texture": "#2"}, + "down": {"uv": [8, 21, 5.33333, 22], "texture": "#2"} + } + }, + { + "from": [7, 14, 8], + "to": [9, 15, 10], + "faces": { + "north": {"uv": [7.33333, 2.5, 8, 3], "texture": "#2"}, + "east": {"uv": [7.33333, 2.5, 8, 3], "texture": "#2"}, + "south": {"uv": [7.33333, 2.5, 8, 3], "texture": "#2"}, + "west": {"uv": [7.33333, 2.5, 8, 3], "texture": "#2"}, + "up": {"uv": [7.33333, 2.5, 8, 3.5], "texture": "#2"}, + "down": {"uv": [7.33333, 2.5, 8, 3.5], "texture": "#2"} } } ] diff --git a/src/main/resources/assets/createindustry/textures/block/bauxite_cap.png b/src/main/resources/assets/createindustry/textures/block/bauxite_cap.png deleted file mode 100644 index 9d99e1273010134e114f5c99664dac8e670e265c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257 zcmV+c0sj7pP)3b%o;eTgUx_6jWmXhIf)FpLmJ7EXb{@cLhN8QH`EUH zB>_dX6t)`J-qgJ#{ zY@uS+es2AIf8+W4`Q!0=c}ed3oa;LGeXVoe=Y53hXsJ-#WVi_efhg2epXh=>S3-c_ zk2kIWSHdUnSpa{CJattRLFGeCYrvPQFBLQuK%goF*{St4;5+GSRTEDTh|25omk8s) z;s*k$t*Jdx(D$>%FUYvyjD0S4zJ7a4?($_o^z_FqCLaC57jN&p=ok-uzt$u3=Dq8S zcgdA6uG0#?{nkwqsu*%}?(N&?a~&QR{VWMR9u-4l>w=5%LFcCR>aAZJazmW$*ID=- zCiTOWtN&sHWA+CxPBPnxKp^{AGzgTS0wxCOfMMjI$1t1-2(VK7KWQ&Lh21|cR3v@=_lh(N;SeUL=j zKdF-L=BGaE%gfznU=RrVDt&l=2di?gJw3ah0i=^|x@+vtE>=PY(n$h7@@U#Ml@fux ziyk46T!f<|sbLZ#kbdrO2rY|Tz-!WZUUqtrPHfYzar;hqxCQ8q=|npExKxmr%ZCV5 ztm6wNvo}n-t7!*%OjA5;dui6SLODd2PqVCy3}9%H3w3jfkZs$MX#l4f=tTl2u8L>Q zdErcSIsdP^1E}LMSuYl2xsf~Sx7YtU)ds`}68^48FkWq)(&fz-nGnSYwYlE}jW|oe z`1dTGi&jSqYoq3V|4IkFv5f4y)ciR5cW-ZEPSkDv{2X&)0UCc;!<8%)u579gj>Lpp z?5f0u?L9|%L!pG@pM%ItG%yf8!TG_^0;l-iN8Oc$F$VGAnlI8b@R(SAFb3|$!2gXGr>ZUcPVG0@q zjnnu+I%osWs(gSGc~i>~r7}2|{hndt37A;bQJ-bsp(d6i|9`&Q=(E(-hBqQv_<#lX z(cO!p{OWQ+b_z1l*0?jIu4P;9bzzn?lBW_ zbCDA*u?nz0+3Cha6FHWgOR^Td@EpkTu8(Wd~8~9o1POr zKU&FL%OQaSYWdB;iYsE|aiXX0?zj!~7G6JBrm^sNRFi_-C=e_!E4#3`7<^>;TZFTn zy?wRy?wen5|6poN^r0un$V%|Mem|yHS@V;g+cOzq@Ag(4p=N0t1pO4RS{p@sh0mJ7`H?YyD z!h%3J(e|fYRyFLoWp^=qVfMg&|9Ec|sJd=x?2pE9=OD#m=8XZnhlr*3vh|w$)61!Y z`BLIM-hqLEaQJ!y=xfqL~1 zYXWCG$8HayX}JkmQ=>J7KAUXe44yWl*0Z4~Sy{t@-UKca{Pg?%T&RYt7R9H_2GYF= z_ZGMw@jEd~Y>XSupM$UpH1@`_X5807n_@|5;_DYFydkb1cGQ zsrc*278O*v9^cDL$r>b@_=Isyi~Jhmblz-COe(eH#sip@oA>pEmizACh{WPRckOr( zVe@wUD>~ndRs9+SpvDAGcQxhI!Bzteo!;Umicwynz;H{@lyR@El+?O4|B9Z}Cqijx zsLM^1#Vw7XErG@dS%Xk-@2*(ljz@g3Qc6anQIixs9zVl#elkHl&_w@}%c<8${qoCd z&cTOwDz65It6335m)AE?MXK1(S#rZ+lq~a8YZECoVGt6X3IePY!8EQHm_Wcw<2+D3 zwx9##u&q7r??SV0Z4}~WU~}|c*t`IN?oD9Gt}%;L+ft-{XHSM;J?R@b&CsPF4u@M> z>M{chR2M|LUio6lx$B3T<6UI@T3Hpnxn`3JDm3ba7`8FE*Ub2lbt)ZrRcV4IN{qo9 zh++p^!@ZgDx=L39Ft7jq<;lFey#k^wG6su5A=I$>y3ekJy}jDt#ji_CoWmzqX)BDu zVOr_B52M3a5zUHox!LHCTRzP>zM%3`wZaaD&;7O;-Qu@l^Ldc^(g>CEbulK`EB;EC zF2bXS$s5PVvu0E(Aq2lcMje<-^4UQixLfxb^lD<+GcaF#jqg$0O_5|bP0c9}d-rv8g5+(&xr!?ABO>TT%eVbXFNd?DA!5SjH zcZ^#^VNC1JNShcJRwpuby&tZ1ou<3upT?d@G?*yXpqjd{9&fsUsq$=@VF@tEwV~70 z6C61*YX92K0>+_bM#%cfPGd}L1{<&|f3BG7u>@mcFad@XSONrELDe-=ca3kK6GbYi z>Ir^J3Zk^BJ3RJw3qAZBZx<#$hyZ)1N7s)i72f+By0lboFC@jS$xCm-%ta(@KhBVz zR#a3Fn{^N5lT3v|%8ebxM9JMf35_2-wgWYFYop$Jvm^Mr?U?8wr2=Pr~~PR7&t-yssWh zI_;3J!j-BRv^O@EmCdKkOz~U8;mkyJdlV`PS<(Enne{DC54Nd_Q;CBufy=3$i!eSO zj}c9Ds5(Qt?*|>;r5<^6^iP0>iptH?>w!|d)@-v9*J}aRsJv3y6Y|14FmuWJTt#UnIBB?d5$ zsR-D&+w&(h&mr04-uCuj`+9n{v=Z>V+KnY)pJrm7z7B1!Ma|(mgcIdo1rPZB{ChYW zXO-(t^7##>G|*qCbZQaJ&DJc z9j1VQGiH)b=JVm%;o`XGj~mSHy9Hhp;pO=p9j{=~2HUYydnmrx0qTjjq&-+^a@g_C zXk6`2kI<~=2g&c#D~Q1@lls&zFcotX{<(GAOTT_8gxh6&xfP`ho>n+gT*OGr%O_FH zO`RRLkvvXLd1%evWWLxVksu&t_rZWlBe7Qg#rzoJ;dU!eY=DP{0yRBd2&DYIC<1O; zR=iO9Y%PxA2NW4e7yj${A=XVIwMn8{PTBmHqC4ykLu!)E-Ty5P#iLU1Ejk*e1QHHf zLu74PB1iRU^iT(Dp2d000ky~qb6(L1@+d{Xsv+n2ZFzdjF-OZ+!hD)`+l9`vUkRP{ zB)6zgoTCO7bYy2KSVye!s!_zl*tfrWu&-QDW_jb{ZfaKoHQ9~&Z#cp3Z{e8}Pg_i0 zn9BU%BgLBLyWz(RJbF`a%4$Aq*TwCycD%-UXmSYWeq}RrY7aV@TWlIkYIwy0O>|wt z^jg;?iyTB(yBRQa!?o)Y&hz*9l-cR&K0?YZ9c}Xqi&-MeqP+S}j$0 zA?tzgijJ5z-$q@1_Qv&2k{)1LS@Jjp?Uz_JUPPGgV~mOsUgv+Yh^_W+qdekn3a6GP zlt*c3FvmV)-m6UskSMSdn5$@inKwUaUOdy1@HTrMnz`iNLQ@zbH+D39aXP%!9*VU4 z<51%y;WD}KR~>6iFR>LjSift8B6G$Fw7$&iV=X5=7W1s&{7;zts>Kb$fqmp;+qHwiMu8I^`(3KuH|5X3 z8~0(5BOiV#?@8#=1hN358AbdN&m68qTDXR6daoN zXT}R`p51)&G#QdeStc6C%`N8+TeXX91X{2~4nst!hoi#6E;2Twm=G1Fl3L8)D(FMX9OaaM*4+owmX zy-y9lg-UhXf~c-8%^Svv>YlNslU3f%`mXrgpuraXZG& zTh&^#dibMXVJ!0+zUxu$wpVWfN90$#X<#3#I^SqN?|0475^&GC^uRB+B~{P&#qB?iU9eRu{9a@Pf9JEg96jwE*_y`}^L>n%4zq(g`OnKoV^d_aFZ!`C-I;zi6Xy zuIulRLroVws6vb}bCEo&&$GXa7M{up0Bg)Y@U>DkI15pP#h`Qcz|i(nLgXQz#F}=#`O}>p^rd>1 z{Gduo&$Eq@ShVdLs{8yX^WrG;e2;tEhF3o_-RA2q0Eq^w_-DLj*nZO7?s+lKYx2YY>%^XjJN#RvLnshfYTEIJ z+c{17wO^CMH&J-~bKf@S@IG+r#t6R{Up6-GlVitJ-F7zhpe{2x@tKTcl*pLMr^)I| z-*8b-NGQ+b=h;?DEIR(|{IK1Zkx$29@uGO~Hs`0c2JI5CYG!+{Lgc0Nw~b&ub=~Bx z4H6i{#BsdNVBgbhf9Tgcf#*webigs*8uAt?oP<_v4>(Yt9iPuq1#3^GqIHqCUiC@y zrB7~ST6YtN`D>Swx!z4ye+J~vip==hRgxhYE~;RS$w!4pz-mGrq{mSj?F>hn`!v_B z-Hna%7EM9_-rwIpK8E`#naFjH=~%9yKLa{1z(&(g&Vc~IY~R*COG7R5hcbt4$mX(# z68+1YlS@l^X?8})LEMfV@vd=kxpi!0BpC{W?o)jkC)aYeJebN5M*60=bft=J&bQSn zZqWIL1HrHQ7tH*5q~_Fk*-@dS(iDzVig#27_O}kPRX4pI{QmF^q`*f*FpQd#xb+Ef^%UX>8E=0WN)8nnW@<~ZK4d%UWi`xXnZDHTXY^%Us>H1jDvp^#JjJw~CNsM^?aRbjsAid`%7fnA1)ztr zBa|vW>HBU_N$rH6=eF>#G(t9fhfQF6v~?HgT9T}X_O-mUAuUPV5^K`rYd){i*+UyE zM_*Nw9}|yt$%e5{=k+la>?=3yKMOp^ht=Z7CgOH>LBXsEt_yDr(x=Pg&S;vR3xnCq~B$6D4ox{W_g zv`r7jAjedWl9G!-CuL??orEp@VGm7#lTdy`imoN(Z5Jyd>9LmXmY28juC}G6s+EttZ?GJdFTz zo=NzL|33P?YMxtGXgMh@bvOG%!N*|RuRU1KN*JLpelR}FMX5-FLvtUDCD*iT&`v-wn=N5luBg9X!%c+*^jK075h54C-}RXA8bH?(2*k4x;x~2SF=)l@x)d=(k86JO$!p@)Ht)9al*!s0!Ufll}kN&;0vxCEZ=j^Rww}5D-8qa=p zBWC6Udy;_o?g${dfTsZW?tPU=kf<_(ER%x_*&V=SPJbFXNbfRF|6X73bB%6eM-aW> zWMA>veq22PbG7RE;l;1<@M+Oo0c<{Q8_q`zGS2OR@x$GNAvS{cS(@m*mBiKfv?Gy)IdCXjLU(_TQ@7{)=WDlj#jvbqSTN8 z!2j|=UIiVt_Vvg#HpJSOA=X-!vL%uC^BsLlJ+|RyflYOT8J#1r)Ae=rbElwDh4e6& zSE!YLyMYPq|A=Kt#+IeiGuEY{vr25_LrEIfwz~k?Nad|f**bH4@8!NTS`v{ z+^)|yYcba4wH7t3h1_5heL1Bj*MZE!3r@mPRm_O@%4aQlm+LX;ex0tM06)LiC6m0- zk}o)`m#Z+&uC9jn{;8=f<$T>CDSa{pp;d2BtJ~G0S@GB_wwH&t5b-6+Ado>)&K6T? zEJ9NFGKdhUP<4?WCD5)q*vO+r zZKu%n1;tHV73N9(xE-+M6?&z3Wzc5IdVHW<9acoh*pqtC^~>wSwle? z>Y1S;ZZGf(&Nyi#$fa)xQ~Fzph&3IEfi?@$&&0pq&N}-svA3)_d2xgAsIV#i ze)LVeN(DcJvAjuX3z*bpzb$9h+(GM#;Ohpy(C^Q)&Q_5jTu_U!d7ozQjcMMD9nxoy z!Ph6fp-)sD<$X&2+VXBlm@ z1K7p?rIt~)8lxv&GH2sd=r=o`lVJIGHaT1Af4vE(n72i1}~O{Gia^=Ouc1-#Y)Y6=-AQ@JGP@b{H&ezwVz; zlp3+*v8p(yHA^oqW%FeuNS})nIop*;*|^|V5XGcH*RMQ)#oDeu2zze##V8qKC|HZn zO<#(?A4-N-ajFWL^~_`N1f(&-ZnW_iujTP~W64+ha8(4HSsN4BBjnwa1MDRRd?8h; z+iQIg1AruWtG0mi)1%GJfitB7+?9{v7LQevA-B?faf&CG*lxq!8g3Qxf~(=1Xf#>{ zu+zZKFlk0f>tg-JHUoU(8_3k2@MywLM0^c6lR=z}cJk|=8c!E>>~>@P0|O1XUU^q! z?U$Jzg!8?zzXpWm)qZ66>~?Vpse%;dC}}=q(dzg6ksSEYkbiWiirl^gxAuL?OAzvey`1kukrW08LFxC!kHLY z23so1n4!m$p4-_ zw8x`!qW8`?`FwcR_4lev5K&ELXy3?KVaZE-o6A(_7bGtN@STw8YyIfSiT{!2p+(G-^okO_E3$0X$zgRavP{nAX0Y|h9fn2TDPn>V!k8Xr+g z<<-DVDQnC}cn)D2G^evp9UpO*sRj*tKpPYxCKBx1!}>^iCe?LD|!Z{ska-!{7t=X{IQfuy69bg7E! z0YTd>tFuqIn96j{cN+uK;6m=n-8efaINV$ zHU*ZIKD4lqZq}vBS+?SksyZ4qq$bfYcm1Ci>Y_$GBrs8wOC6nH=rp7qQO$5i=*xbQ zCv^RV&AlmJEwD!SYMFIKwz(sBw!D|5I&5%NXS5|ltv+k+_kRtn*`}?*y`sp$d?h=- zIINJYe;T>UprfTEtBd35EpNo6?_%HzZMuHIYn>uq7(e&NGwq*+9EqZHdJ7{f zGs{A5gK5uhX`${={>u?*_vU)#^kf+fLj0Igq}Vb|wllC?p-O?9v=NlIip3rx=Gs=P z);5qk!fpVF8p!Ur{CjG^DSxSI>`7uKw{(}b*sIjh=NEQa z*t|dS&L1FaP+QqLjpFx;aM_Y?`!7cm4Fe_reHp+v7p)%x^l@kvT)6EwnlyDdHaIYs#A#HOxWQR%bvE{|FmO9&tk8Hiar%hT2aoJXro-6JGdwSI!- z22awhc;4UzzU^Zf8}egMQ&n{(XN5CK z4|H2fKV!v@E}kw+Zf!G{1fQaVPvcsx_~!OeE(V7y2xMBcBfD)8oM61^Bh$!*q|80t zE)KO*bmgD9i-{9fcG}f+v{S#zJ3+pD#<=>diTh9K4J z-3}E~4Bc+K8o`P{#3y)Xo?8Q+3~->f-cz`f^*3$)_cLFiYH0KGb%-JSPA)&>sgj8j zJALF6FpDJK>|Sbxbbgn)ArFF^J54SE^73g2fj>GIRw{q}@O!uIL%SM2Z2|jo@x(BQ z+!iAEH0NYqTcEn}2B*_9M;g>>1XrJO4#*4WFG+Vyq-nO^5t4!L_`+To^kA{TWSkF^ zd)gcR9e}DH2v7vkX ziF&CDqj$EoAma{mhG))A-pyp5h=gP~w^InLoQ;p``PzIo+GY9P@L*<{e1oFyZLq3S zpN6veT%fx4es8ZD&0rs<(L%Fqh5p2tj_^p-DI`E`d8TzHT&qtb4=S*l|qQK!$SE{-cbl&{Zqb}DUi3XM1G@Dd&&^A{kET`n-;VOF)fs9(}F9)B8u zTw&PNR7^rr-6y$D6U4>cU=iM#R6^AlW8a=>&QqKR)HTxN)eDFUBBm?eb)$a4x;OFJ zs6YL&r;@1yTu<(JR!&Z?De0DeUTbr!q=JWXvS9>-l9#T}!$qSg6t=Z#X# zv}b;myoPPyl~$&m(!-CgOsVzO-9gD`vExJ%Sv|oUYPVmpZ>-U^@?NZsb03bqHGM4k zY+K3Sku&FiB*@M%sczIJ01ikK*s}Zk_qW!)stAmvWdz2EO_`6rjulaL^$5szV3QWe zM+!WYw@VYBX8Et#BD39F5-Z;4$EE^h!N zc)^v#Cq1_O3Xb1A#~`$QPn?S+i1*$^WkmNq-k(Fc-;=V|ssHotWt=VNKdIXy$6rcS zSXx}f9+UPAI*hlO-aUT2UshEi8LjHh8IP_+K)R`z@X|xV>a%n9XQ!v7*X{PwV(xhf zE%45;8Z7>t&~V}`XcHw~zK^K7ZMn-c$5Vvik5`>Ksl6{@ynm9KM?3$>jd_8YzI*^k zHQVxsU5$GZ{qXiuuxCav=ii0!3u9i2)dq?wOhIrdN4&a4GLaYn!I;A<>U8gTDsIyx znGR5(l@gkO9#|1?Z|rdqMk5|&^X}Aas@Ps}ehenQ6XnVd_+9=L!eIc{!0X4AgIM%q zrks?XI|T-Z2l`@lbcI)7J$Z;zVvQjv7LZZ=lT2aqIpq|ZCfNzzgQBoQoA3r^96mk|MVd=%Pkte?Zr%p_|pRCqsx z=gb#xEEsn&cYr`2FPblmXCpPYxLhCktUx`l16Z0MV)w@2((ri@zn@K!pr2 z7sZ6_%%I)n!D+8^s$nWTCKCiQehN-XT0JRP5^v8JD|-nl1i{QdKeW^P;DMT*+6@|w zBLM-&kxlmAbCsfePE85o#|k(P`takz6{ETSg}ZDNARsYl@6~S92~|^dN11I4fI#f* z2+x{vP1$-5Wb!={5CFI}QaI7GoSm=fv<6>b&P@~lGU=8 zFwJeDY*sb7)J~QtH;`>C+9ag@u^uq;HMvEHe7k_}b_QT1p26OBY8z<(z`NGL>{oIa zJ9uy&hFJovoC4Up)=ca#J)KH})s{tC=aY@7A|B+giZv0DtAJn9%wE}TE_z9TH|905 zSp;y7GKk*!s@VG$S0?r5Hei2KeMgY0hHXk>6|=9e@773_1z-b^LpG_pcKZ?-l<^|J z_dlJvyq$ytKLG(z-uFiUw%%e33>yuO?^-1RAmB6_vlk&P;UiUUS7+T&3u=V8cPg12 zyI6#L6X&fB-}aMqGxk>^O+)~s^0JH8IBV<4sb7aoNWwwM6B`99r5MBa)c6LP8 zjMPFiW@9}OVbM+T@zgU{0M4K~8=}UBjIL@9k7@N^sXv!oRDG4N%0=pbcwHL#PjX|! z*kEt`DY4dcw<) zVeYDdfB$?nlOv99vX4>fZ=Q(U-!!0$6-O-D;i7XoBObZEWCB$7wpCKZsx)AKpDtTt zX;m!nEh=BOjrLBi=;%yA47>4AIk`&Kp{S=lyw4ixoe0;mp$NV6|0MU;-UcA1Z0rVY zrO+YWcthx`p979z=FI9(o0vz6obG+>>+$%iKp)+7l#v}|vCMP4_qd2B9{fT903xA= z(CeeXO2)+X{QUKc?QSpiZ#@<%!N0kVWW$@KM%fkpOj`6rPLY-y_C4unK1vS4kCYK` z^2qXtO0{A%zM=QvXssf_LH7P!@Tl)wee9xOCp7Y}}ZOWuC$z5Z9O zYV(#vc%lg&x>6NnKP}^%?~}$Pz!+5J82qE5i%l{UI;CDkzn^T5x0=WM^eGtIUC;*q zCq7cKnRwPk1&EIe(au?JV1y;St%SnN?@CGL$i+Kftm+QsDL0iOeyo z02)snbx~ze4p%RFTO@=}=|a!FfyDJDIV0*3E?Z}r_6eeOL@++5mb1$aGwJ%m8vk_u>;71(hLW8?8 z!Ce6sNJYF~j)_#f6+ZGvc~5Vu&?3L|v;I)4c~`7Mz?N?nWN7BXR)r>v|ASo2yg<$3 zUY5p^RV-36Jw{2i)H5cex*f9Qs5FbMn|F+z%M&s)A>h3Mk zyzn$nA%q2fp!oBN1wX>`;Npk%X-t<~pk2AZd(Vag0c=do$lzyz1FlU`GXI%x(jO*7 z51Wm_ku*LgW^#7FVt2O}&+&^*vUdfs=vVl#v?8}|2&3mWE7CLdp?b}XPhy$^p6wdT zJ2#t41z4(An;IHk`}62HgncrrV}a&3(JL{EZ9UNZVNW|Nk%)NMzfoUd2Y$J6QI(U} zd4+ufJvn7{zGRhnGxS%n9In(`EL0+2|GU9W*%s58|CdVSh=b|+ZKy!lweK;_F?h;S z{lFfR4F~;{tSZAb-qSy?mb8r>=XzM6!Gub6d}(0fw5!!Gh~?Zr6-z6t%gu9(bh@i6 zWQPo0OxZZnm(*lAJVI_zeq{;R&<|-AN4tz3Tf-I(Xoj$L6l~K_-`9C_Td?=Jjz(E(d3_kajsmOX3N zmROzjof#GIOU5p}hC0Lkffnz{Gg#t+j5cxU;z##vdE2hsyd1p%aAYnTbqymH8afSR z0bH);eZ+s<3-ki&Kf>fszn*1k^|t-79K2;BiAoGJ=(h-&8lud?)7uAfwfl|LF=YQ| zlpHn8yuUl8^du^)fwM|ecsLipPU+<3<@o~J3knJxP{DX#8dDj04vWlQp$xCGP@ey~ zM?kdPzMX#QwcpkFzPZ6H;pVB)D^W8zIJ^CTJe@_|^-u0f$^TY}7-=#&8HhvoE-WlG z9>(XrTKiC&6iqK39`muDxdz{mUhlXU!qGC{d7| z@JQ;6JR>`?YJsrIEU_hbcWr0qdC*qkBmNpQxxG7l`}&`rC&W9&?rX!_QvUot7D>Y& zdHnC*q(CR2TS zzESeQ&DQHhtXZu>07D?{#b)FN`t{J)(cDyfIc&)^D`J=auLNh~(p_Hpi48{=4Z68B zUAq`eKeyQrv!G1TY~D{a?*+6>@L|F!(pM5G|6<0=MzSWwyp?Xk(uUPB`GN7k#zG)6wEXH2spn*4=z&N}H#3Y2 ziV16Pz*J=%hS)XfoqMSD?Jt2a=6Y-^{@RzPrZmq51ErO|lD8=t zi=VHK+j|fB)8*ToKK2Me!A{6lV!dhxUgFCeb9%4=h6D+L@#dnur~3po#SiQ=%W`!- z*byG}%qPob>3|}xi!*B9xsTn~m;)G$nZ^vg81zvo&NYS8)lfDnuUmo|PyXsw7O+NZ znxX>U#g#wZjyw#lGQUrotP*$G&k9@%cs(_7D5sdTjJ-Ls5P28ZX|>09`%*VWmWPl!X&6T1o4|`7V$#m%Lj+$BdxM z)_E7J>cBOlQ4SqenCU7jNnbeqj(*x@%quxj2WHSK4zMOrb;$z zKGLOf)MUS=6p0*`U=jG&pSsBn+pH)qIw$ryN(REC>q{avmy|x*?q_rOddaB8wm`;1 zQ64XHjpo7G{lqkSCA}tK%z*}cnpEL!H(UJ*qdru{SmXq3@eg3M{~7G517>#F-FWk$ zZVn$hKh054nH)G_q24_Bv$VW8)7~OL&U9>dGKRQ8;3#qwfs;xQbSC58{m<&K5yo5( zrX<4Euk}=Q+zCFZ33X=v$T}ofbY01H?VWMuCYq7<3a56Qu*9S7?|;QABUq$bd$3F# zz5qw7w5vsdEP>wBwbz7yVIeuI)41_Z!1k3fy*}Hy1u-^-QpxU%+ zu!@`m&gaS&=O;U@IjShEjYupyE50aw@L`x}4II!cWz#Fl3j#{GChohcV;}d;Hn>59#ESDUNW2S%%{mPzE_hC5yQS^Z z_w#G%e7=39!lG_D2f+pBRj@z8x1F?uiTv%a66=QUy5!cfQDcqXDe-IznyK=Sb;!Lc znpl`PNr;af{GfNG14=DbJ6pXY=7Jlk{d!d3ZST98RJZmvW2Bkq{El$5O&I~kH2W0F zAh7>p?_+}R%cFpo^FSNCGv~=d@J;zV$IKnlDz?6-T7h@k7u*)C)+bH{Xr(Ru>SkP8 ztR5=E?%7vx43ry}1c1X#r4BOlWuC0w_swCvy&x*nU12VObhS^ms4@iHl7pW+zbho540118W?cFtm=jDaNQSe-m#cKR zayTt^N0#G|$?~F9@Ex5QCRM}o#6GR3V!$JRgE2{W3flhhn=xXPqTkLr;9>FSb>1aW zq<<0IQP}fdEZ(jBtx=k*g}M2U&ALRgYp96y2mTb+K3xm|2ir+*R{kD&mbtpn&sX}DI)hHa#sejH(PR%=?N>UKjHIekYu zLaD^P%5b4jV92uVz(UP6rZ{;k{(+e7uo%%tYU&>j+7gNco%6a_?R~~#Zn*yPnr>E0 zy`6=+ztRc7M~xEDiwk4=7MSP-hMuR^hW6IJ4Xo7MNihG2Zg%IgGR%ut626r*C`{Wo zNHe9V<(^CrnU+*Ed$cgm#3{NW$+ia?KaBmVr+(flrsF81LBpabn21)F$DQ&G>f+dy zek&BOEs^2<-m`$;=W70}H~R97g3gy$(n!_hGh{4oHwUOn@^5$`i{~w81Kda@+uP4m zZXd5H9>j`9DxUXF&}8TwXwAG|Bv|wSRRT^-Mzbah%xf(zEvGwZmW2x`euCc(+2NqS zzpmE|D><%m>o}ty7tMt&>j>W0jSAq?{K%84YWcl&-nvexe9`_z8GX)XdbLUd)P@)1 zVZenzw%u#=+o3K0))70DKalbB*>l3Pxcj?$!UfMAOc%J=mf( zOu4Q5yjpnA@&MHy$4SDy7!qArT?SkF&TdeTx8y=7$&w%?qOV7L)dNLZ9E|n;;R4sg zXYObsmb8PWV<44Jx1WUjrSWKfG=5peHfJTDU8-C?CT3nQ?q1*D^b8y(r##hUPO{Ft zwzm#YZIP{QR`?h(2vAZHeG`@J=7wu8aimA_QyRkT0_Rhh6PKDZ_5vaviRrI_B9X^g z_-$tHzMgjpMd^9KVo0CND>a_cwoiu09rG6FQCDlUtFl-ECEL)4k2ZHAC#jK0wRD^j{7^rUjq#&q~V@y>6SK&n#4Ed(%(BBMgUVo4ld9^> zJ|K*1DesApW^3N-6moPm5Tpa%^TV+4!(2Ej`v4RXs0JtjHr!x=@;D zWe89LKFg9P1f;;=`1F4*(fSC%ja3%k0W3!|rJ-_6MFN$&oJsFH6@AAt2e7ahasV3= zOW6U?OSC4@tNNx>4&ccp$DtXf^wD90kEw-4R#A%>T5mt&*GHM>hGVUc1&Xm3fBt;g zP&hUzqWuj_xMCWE!yjCA2il6`vbOZI5;2u!`$<^9tnn?Gjli;`Pf`tPjhg~#sC z^z6sGoR08T{R|I*SduyM^z(M$G0Fg8+)5xv?3kx|CL?b3{UV%BqpLOhW>;sk?{*8P zY?f6*+}(#`&aQu^4n}HY8SknbT)+l_};GYo#-;VN-3(6x$o!UpUFg$JgBdp9>FME zzFu`|r1jW(zq~Psjom(LT6%8_2hEzmGsa8$>Eb*BvW9m@5gv1&q*}@=DryE9;=Ltg z#=^aD!k#J})-;f}x9+Up18PNBs%NVQfc^O-{dL~oCm$plfaGztMrMu8FH$xVch}6C zuj6cp`v4p2KE|D!!cfXhH)$tUD_3u=Mj>Hx%2q9U7vtce7vAlL!!Dn9{5wz)WBz54 z+oJXnb^5Vtq+*hO>^KiQf`_+Ey&kP}^cyzvjK^W0X*F7Nx?J;8RYk|YsK4OdsR}4%Ch*P_C)n1AZA+EPhOWUl>KkO?_VGkQW zrO3DfV=`Hd>fqsDx4~bPjtLl<2U6lr?EQU`;*jvXxX`MYeUIR^e-3iQg4?|a-0z&8 zzC7L7tvwz_h&16*8$dfcJ2D&-)jG2#$*%Fa!mMh7cS5f0GV+1t0*`S)HF{n5P3RYf z7tPraM!CuE`<;~XJr|}Kh?_hK)P+kL&stY}^zED5Sq&jQOCJfC{-@QVO_}o7Y+e5V zSrQPMmwV**CxLXiD(4qVEi*zk5FTO*UH85~#+)&41+e6$$XZ}K*;XCkNhiA>MAA_b zF#B6?-+4AGx{F;@0Y&PCQF5{mE-DvakHgC}1`j?mQugKarNo``iAK}HQ+1QwvjHGp z|EarUqAYBmfw5Ogrcibi`%B?$ox6zr{;j^K4+CXBKxuklHsoGY!rNGWcO8tz*MiZ! zkJsPF0$k&Mx4s$sbes3XK*{^+9k`&^O#JlYR>a3)h<-pqY3N-3zeFIDa^@T-QYvnL zi`K-<{m6^T^-nTjysS$`OCrZ8?N<66Cnr&IjWtluzQo>fhVSf~c~TEkjYosvAG9pH zx8cRAO@4pC+FrFlv5KeGwyr6D#=#rNBNXeeP0Jc^I6(juz70U@TW!8Tw^Z^bGX!o` zl$XzELim9SVW(rPIRE0leq=6eel;EA?d!X8rY@aDPYQD|0g?cRhtfdONm!HN;XYiTH zz+9+Y4339D*P)X)l+~Y~Yn%OnZVZsBMVjM`bp->pw6uW#FVM0i1`I2?GPvOOY_S@( zq9sg~qaYPS1D^&m_kDSnwbm^myZ_G+N>;WTm+!s{oY(O7eb2Qwdu7RGX6O1VPLCrd z9A{`#>JQe~9a_C#CsNDxcYS@2a|Pn6LYC_;#iYH*jLA zz+q;lX!*76Mc0FmJP3E|>xHUkck)fi^gSkf`<%g2Z%NB(U3LMs?7$ONK2!$pTPk$+ zm!ECR8sMVHnY&8o0q3}6F8ckP=4JjmTGDBr{50T>Y2eV<=~At#;(9fp9RWQ?EjF7w z??@kW&HEGv4DyDgFE8&DD}4qoT-|$W<0QBJ+iMDeYw8!Mq*{G{as{~R^_?nHY4&5_ z)I2Z~Ie1=7k9=)=HE3C$bslJH?T|`&Y>3>o7R4v`45n=|D+2qkwe?d(R!-Tg!^bWe znU(fmwgcHaqv-nO4{D!Yzh3=GLr=50c-42X{wctfcWpJDM^B&bHuB#M6yE`y9|oHH z1=zNTj0GM2^8NeX#GJP;=3PsBm(qtP;N2 zo$@n3Q~3M2#d)i`48(vM4zK`ER|zrRxVrpO*!EQ%$&SF&X?!lEmwE!H+xC^uso1Y` z|LzrFjsyzsUUU3f+Gb0uS2@6a2Mik){oZ@}@~TB?g}@181_>kMNv~fmz6UzoCMWP+ zZIIWb9lPva)q-r8wvqYdq$9wCMUKgTzX(!1!+68>U7nAsZXW>!S%d4|i8_ffr}rLp z28K4nV&Ljp;P&P%4ZBtC*Y9n<f QJPC@y)78&qol`;+03C47`2YX_ diff --git a/src/main/resources/assets/createindustry/textures/block/cast_iron_distillation_output.png b/src/main/resources/assets/createindustry/textures/block/cast_iron_distillation_output.png deleted file mode 100644 index efdf27089cf24561c1ffe9dca4c2150e17457f85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19028 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 QJPC@y)78&qol`;+03C47`2YX_ diff --git a/src/main/resources/assets/createindustry/textures/block/coke_oven/coke_oven_front_top_on.png b/src/main/resources/assets/createindustry/textures/block/coke_oven/coke_oven_front_top_on.png index 352b7805381cdbdcc08ad2f2295723341317d2df..e800c1b121ab674b07ec31475db44e2891671d3f 100644 GIT binary patch delta 298 zcmV+_0oDGW1BC;S7zqRe0002uh3Gz!As_)TkwP?oXT%3a00009a7bBm000ia000ia z0czHX2><{9-bqA3R4C75fCC|uP$i{MXGI2KC$qG)WEDdoqkw^d9mtSqmz=qBVn-u` zP_Wd@ofAzJfg&JAMI(dEWvP`r7n&Yq5WXf2WTXOhg-Ng4xe>;IimcuR5|MERF-#5u zwM*}R-n9{={V|AP2h{#ddjIZ?d4@!~M+)Jdl`!|Lgt$i<As_)WkwP?oH8eQsmehLy000SaNLh0L01m+b z01m+cxRGn^0002>Nkl3`A+u3%!8;|JS-{>OfnC!NDCKbX`;S5T-#& zld)Dq)*8}kQe-r_BGQJ$@Dlc7%(GV^gct%o&M>qkg>MN4S)Rd(YWR}K3lb4VL?ZLh z#i=BJhQq&MSTsKCV zJMdtm;lakn19XJgF^|4}2k1JFn%MDR-OS_DehfUi{dgxf9;hFVd7SPCbi$)18Xi33 z?>yw`f8CEL^*bKt^{?~5({Fje_`Dy_PSSHLulrsgr~y>kHZPFWZvl1n2jfOSS-k+D WHXGo($u5@w0000}O-DCkK3Q!P@su;tiZ*Q#Zi`)zD&LU_FKfy_);sdCKL>u<0 z7~Htc4D>#9XUu`|){_+2K&^D6eVr3eA=ogsWqg}Z9LaO)YORhuy-3+e83m0}U|)^? z5@O5wng%2ck;qVbKUJKUkhL<6@~#kODDuY0eH0{Y6SjeLx!yA`#Q`HnXJYQy-&#o& z-vvMG5yc0=o*aSzF*YA`{XzFEJ#);&YhVmxMF6nZEJbwETl*|0CoZalfsH!&x1kK( zjAKDUcs`<0*rn-&bk_FHVxkpGBO4B@&>3tl26`LYVQk;a#n19V5Ib{G8Q2FYZy1Xd jXQO(XVF_@&1!}~9O##aTQzwjq00000NkvXXu0mjfwY&4i diff --git a/src/main/resources/assets/createindustry/textures/block/cut_bauxite_brick.png b/src/main/resources/assets/createindustry/textures/block/cut_bauxite_brick.png deleted file mode 100644 index 4337a55bcde3b3787eb2b9a18684779054127ec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251 zcmVdESEssn1cFI!)i3QZt0!Ai|LWM6iV z3HX5XDEU|AgHrhyVZp delta 20 ccmZo5{Q zAS?GrcO5YPAZzFKy7RGdr1N*zLFrn;Qz>g!S%qM6F?cx0*}aIpn^jn%qXhi z)c_Ps_jGX#(FpcE>&SONfx{(GM2qL>@A&O5Yps&FCw~{7x*}xS^6&RTc8J|t`1RPP z<`r4LxOUo{pZe6ACqD64%hSIv-oKvyQg~Xrfx$9G10{2v^hV2_dmLn$;|jUNHXEg> i$%s6hr{BBNz2@dF<}0_;{T>7DWbkzLb6Mw<&;$U{n`7<( diff --git a/src/main/resources/assets/createindustry/textures/block/heavy_casing_top.png b/src/main/resources/assets/createindustry/textures/block/heavy_casing_top.png index 1ad4b063ec4ec52dbfa1572ebe397d5c57f914b1..d8dc81283620ffe1264f1c1bcf028a9a317c3494 100644 GIT binary patch delta 240 zcmZ3=w32CpW4%g%Pl&6gnx3J7xvsXMPheTDoq>VD zQ|nd+km4x`@(cct01QI+&z%E`a~60+7BevL9Ry*<9TT(P0tL%FT^vI+fU<~yLk z!F+)!^vd7=|JTKB%h@wyj)+#m{=&?N4SNm;G>F!*O>JU2y+G|!fLg^oj!Wh)RoQE+ zk1?vFr%o3R|8Nm&C|s( zL?d|W=}5j710LoJI(~(mU;d>YS5+|MjZa?b^=DC6$Evx3Yqk11%2b%*%6(Goo%{kW zD*WY<)DkOUDp)YhVB@vy`_+5z>CG_Se2n*V#IXqZ4{QFhrF>=j&-nkq^V9MV%uQ}H Yd`@I*$h*^Y6KExar>mdKI;Vst05D2q9RL6T diff --git a/src/main/resources/assets/createindustry/textures/block/heavy_machinery_casing.png b/src/main/resources/assets/createindustry/textures/block/heavy_machinery_casing.png index 2e8b407c0a26513c548999fdd4a027051d2f177d..6f34926b690e36e110677d1685f0e056afc7b015 100644 GIT binary patch delta 195 zcmZo*`olQEv0fs;C&X1#P0!H4TvyxBConWJDW$om%go%t-pT9l`>;t23=EtF9+AZi z415Pbm@(^GCnr!a*VDx@MB;LCf(Q$w!mXa;^M`P3~Yg= z--;eLDJeMbymRBu9gY(Lnr51M%?5W)U!LQ@^LW!1n<9h5Ho7|{js)m=8#8N%rF;A7 uF&HMW9a<}3UdYJwoQaK&nx?MhpxL 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 aDx=2o-d{1~{@vi4f&?52@~ie`ru`ey8Ie^0 diff --git a/src/main/resources/assets/createindustry/textures/block/heavy_machinery_encased_cogwheel_side.png b/src/main/resources/assets/createindustry/textures/block/heavy_machinery_encased_cogwheel_side.png index abffeabde7d5d11eca12a1654fb438b79af2dc7c..b53331d947d7acdd1ed6b1bb4b80e3a332a06354 100644 GIT binary patch delta 197 zcmbQj^pA0ZW4&~MPl&6gnx3J7xvsXMPhe4IqlMB*-uL zKNK(o`&S5o1PeSOiy0XB4uUY_j)~cCfr8u!xH-{9j*qJ)tKz zUzV?hQSgAAMUSDGBd^OL@e>myHrOR`OiT26*t$w->K@kglR;Z{@crY`J?rxd<}C1tEM{QfI|Ravq8eTeK*3Z`7sn8d;JN*dLWd1Fm{~cL zzW?XfTV`i6Ir>{mkGl}VnLi2FghCFUkus9p`&@Oc zU;CRnwfXDM#Xp`U`jn?x7ti*4jX)q=w{x?FEiT?+^W#O^+12!ZXT;E63xero*cR+;L|3}l>Im>aQfAiI}j6{k_t9y<6V@IOS7Uw45(m+j2bS%%u85(Y|Tfw9^tK1jtYQ8%2mV(&T zX)CzWE1hO%1T*k%a5B?ozI=~8_wNR)uNR*mc+-3#zO_%sZ=M9l|YX0>HE1q58 zs(*ItcuYt~#Fbmy8&`+c%dhUOx|BEPch-VC_H}`EFF9H#XP)xWTgLmz-1pB+Q+d9p z#s0PS6Wb^8zrVec-TC&a=`}Z|e^Tq@Pnl_B81TnMZd#2*$SbP0l+XkKL3)=c diff --git a/src/main/resources/assets/createindustry/textures/block/heavy_machinery_encased_cogwheel_side_large.png b/src/main/resources/assets/createindustry/textures/block/heavy_machinery_encased_cogwheel_side_large.png index 384deb1959fd3b559e975ba20e18380ae3b467d5..329e3e8884f542aa7abc4cedb663c3e8667a732b 100644 GIT binary patch delta 198 zcmeyw_@8ltW4&~MPl&6gnx3J7xvsXMPhe4IqlMB*-uL zKNK(o`&S5o1PeSOiy0XB_Jc5^1#7ShP%y&N#W6%9cy6B~UxNV$i}j&^SEf5UXd3YW~5G~sEO^jz|zxx!s*;Q=Eg@16mhOn5t3>0DmTEgJz>gTe~DWM4f^aV$v delta 185 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 QJPC@y)78&qol`;+03C47`2YX_ diff --git a/src/main/resources/assets/createindustry/textures/block/napalm_bomb.png b/src/main/resources/assets/createindustry/textures/block/napalm_bomb.png deleted file mode 100644 index efdf27089cf24561c1ffe9dca4c2150e17457f85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19028 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 QJPC@y)78&qol`;+03C47`2YX_ diff --git a/src/main/resources/assets/createindustry/textures/block/polished_cut_bauxite.png b/src/main/resources/assets/createindustry/textures/block/polished_cut_bauxite.png deleted file mode 100644 index a6a874023f54b239ca492c0f9b7674a6f7217a3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 398 zcmV;90df9`P)aEL-srExV$KF(-RzYIqkcl37cK3TFbE%IQ9wX^}g?>vtbQfO5YZ(wj7 z+?7I-wQYmV&;k3<1GT~T3u$S{h!{}wy1}Vo1~|9w=qJPHG+_*i{sRLlgcF+5hGCW- zA|D{YYkxo}ZU4f1h%J81RWT)S{l# zsMP_n9)-+1=aSe%J9{=j1I~F@kgU!yOOJ6_B@u?O5Y|e;QL=S-ApPA#Ggf4nn*yH2 zUjt^EtB1eunwfs3VLc#aTe-Re^$?|`fl&~md54P)*hlQ#N=Q~o=;501jahTO8W`(p sV56H`UB~Z@0*9q(EG@GI(z0iPZyYAP;Qe`#;{X5v07*qoM6N<$f}}sIA^-pY diff --git a/src/main/resources/assets/createindustry/textures/block/pumpjack_crank.png b/src/main/resources/assets/createindustry/textures/block/pumpjack_crank.png deleted file mode 100644 index 065e3c4d6af251f73c023d44795a08f787226f9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1098 zcmV-Q1hxB#P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizyJUazyWI3i3tDz1K&wRK~z{rt(MzQ z6HyR{&teO-g;)@pw6diJLKIQrr9Kda#KucaOrQDlOiYN6yjWv`2|V~xZwLaRpruQT zX%K3tEl|w5zv)h0cee;-zhpXRZ=E@F=FAys@Jdt_8l4@TP@=<+pmV?5Z$}b(+ySU$Mz2CypmUoJ4IgfrHjch@DOuZpvqt|XxB-^!_E7^4+hX-(JfuHT`k#OM$ zGgmU}bYtl1FzK1(OVUg%{)F`EmnCvE61_tX7`Z$;qR;-GW%dlBz!CVaYzmig&0!n{ zlx#-0TrQE{+M@fRV2~V=!;$(sz??5D^NZ5gmGnv0U(%p)3x2TX9CkTU3mqE=Jm%=& zU2~qyFT9r^sdsOsxw#pVpSwkExjINN#few9Mvz>mWnyANot&Ih6N!Y1 zv3|P_5>p>qusDF-01$S@I6e)ks>1r2PM0EWiKV`P-2k#WZB_3ER)=tYULjSCduIsq&WAj9)Hg+$q? z$@=PA?ONZecKCcgTPKXO2iOVNqP!!>0j_WWyI^2wkVNj6so;bz$|SrCfbkoU%jGP~ zVBC(4wq^_0c2qckSz^Wz%pMhzBf|Ti-{o(s)hg*?u_#KV5{->CDoTJNfZEPrmY6+e zjM+o@nrj3we#4;;g+d|_2+)`@8%HEi4LKt9WH<})cwB95Z6!w#g=8{G|2sY&Qy(TC z(>t%HUkMZ^+zW>L#8!5bu5GvBY2md;BL0u!&aNg!(!dc1fZYyY_!zdsF$WO(bUG~x zg?~>-JL45YqB_zMAqOx<9>9^=*;&eg=`O|`g9*|x#KskV!vvIBi zjRa6fq(=)N0*wwMg#S2N>^dTVC1K%fJTsPK{uT}({AMRG;}_4LL0ar)4=4i0jtBO7N&x*wXoQ630a2jG~K=^dz z{BRPB16XH1|IrUXkp1S<&?zhqG}{q13pwCKN7O8ibVO%?B5>A@sCk6=1GuVYF0^xz Q?EnA(07*qoM6N<$f(0Y>O#lD@ diff --git a/src/main/resources/assets/createindustry/textures/block/steel_encased_cogwheel_side_connected.png b/src/main/resources/assets/createindustry/textures/block/steel_encased_cogwheel_side_connected.png index ddae6d4fd2690707fc6c5ce1751544c2502b1310..1554d64ddfe90bea5b61350044ccf110ce98735c 100644 GIT binary patch delta 706 zcmV;z0zLin2LA<+Nq@fp01m$aI0aKA0007%NklMKB6{`WRYA0(6-r~$m~FR7HtT#|cETFk zBs)ZM=@%Y5JF}nJncer^Jm>1lwXV`~J(r8}eP7K4fkQhuR)3Pd@J~~&yJ46_Q6%kd zELdN*ye#1C#U%me7b;14e$F|4>ZA+~>gUEU)u?SJwQ60S|NiA`^5F49X^*4*cxQEW zt$XJDIp^cMH}cTztgng%PulHHEZ3c#-l~xqU%IlUetcU`w$?xWvw*z3d^dK^_4r~% zRZ4*>r?yZji+=&lm4p8HAcOIY4e#>L`0U*5wc0Aw|ESRnRk$1J`<9CJF3b)XkJ@e7 z84N7yr2o@~cX1f=&l$kB8=?ALYpBhwy4u*R${2lEwAYdeVPKoOO&_x1)xGADKCvn00xks?qmoJGQbh^Em z&&#`{M=})3hLJJC3D2hAgcX93)T+Y@gSFvZax>|XWI^(fm3n#?sTFjNCv0dF@9dNb zVPO4YQ3W$S)`k}!FuA!}Z^%mHI2I#jiE|c5T$|X=GIhO6I81h&^04FZ(?5(RaU2h0 z(J+1@VSi{QV{%?X+q`s?a{Yq;A?td;hyy08yu2)6dF8Tt`}&o0P$I&^fsP(2$~ZEK z#|UpP>B;l*R`tN(%k$O)S>CE1U?PlN+tdSD-nt%`l%{?f9xlMSb^C5|^Ue+R^63*P zo5wlN5#Ei*(~pd2=jE;I0W+CxJz#jNdcaJAY&+_KEZo7AVKk~97*z`(`&vS&zXMc$4Or?%NdN!<07*qoM6N<$f>G9Kga7~l delta 823 zcmV-71IYaU1@i`wNq@iq01m(bYSxJf0009BNkl2P#g1{W|EoAc)ydJ zkc3iZCWX4_2Z#I0cka1!?|DR>JA2V14I^ftp=2^i6Q-%qH-8UI@tjqwbK9^i-?nY; zdu^um5S7mcEF8}^~OJHuy(vS!O6OW#qoZjsfn^|(cCeF`}N z)@{e(lYs*+;CAmbDBtxuUj{JnVC2rB7*eTP^tV){jm>Hr2U4OsnU%hdKUO#`vZW1?Q6zlU- z0IwRZBl8&Ff4oBP-n=JkeU0bjWe4E{@D6y4f$)e32lTs<2;2!T8}s5;05}|4wOc{t zWe4SpF$Q8Y!YhIWf(Kg~)2HZ4T*r909s2NhoD>Sd0XLaQkU7!e2IY$pKrEYGcse$o zRK-G`8h>_^+MY+g@3XWVmnD&iQ?+LCx}}w2Y-Z+EwOpZE`H#Xp#C2V5oZI8N?KZcL z7WobQ*4AGNeb4j%gJiTD>3Ae=w;c(h5F214^kri)1cpiO5Q6~~CJb+P1!#j_;dW5R z=4J;B=+D=9?SN!6K-Q%mz+9AiLSRJ6=YZ4$K!4bJVxS%XF>F4^$)p~DgsmqA>VYWv z915i#fP}3lUh6ZbDIU!W%sA4Sr&D{eRn_6<;%PoHEL3X{(Qv2^bd~Xd}_H?TwnkI002ovPDHLkV1hpv Bh|d53 diff --git a/src/main/resources/assets/createindustry/textures/block/surface_scanner.png b/src/main/resources/assets/createindustry/textures/block/surface_scanner.png index b32078921945f0649e3dfd09bac1163b64758e2b..3a98246eaa88964d0e3f8d589927e2eff6cec7d5 100644 GIT binary patch delta 613 zcmV-r0-F7U2#^IKiBL{Q4GJ0x0000DNk~Le0000m0000W2m=5B0AmUZE|DQ1WmHg1 zR7EK!E-^4SEh{lhQB_%DWN>tNgN%wcH$WgHBNrJNKSD|(C?_#BLOniDuvAKnKtP^K zMR+zl#A8zQws`=Q|J{RNjgyqvb6Vk!Wa*=AT3T8F006Dqmwf;L0338uPE(Q58-D;7 zvf|eO000SaNLh0L01m$Z01m$aI0aKA0004uHVIq-g(AwCpU`;zp2@nErD~Kqoofe$7^{6#k1Z5rNfY#(J zsgCri2PaKkHHtBng*Q^(SYW&&e1GY3o(%}NaK`u38Doo}J$dhq!G{(h=lfm+?elyX zTLr^$Vs)CYNNAqy|d zicNE#4HlY%D-~x@^+oWM^CW^dr87EQ(Ns}RS~BG)aBzsce`HFe<UbNB@7{T*Xy;!HriEU5h0EdPZn-Z1)ijWrWoV>exJrix|K`=gtq4)ARni3 zW+9Z=288x-M2HZk)TQ(&u?-fau-vbF{4;(Z!i*WdQkqL_Lj<`ajN$u11WdvLm?Tt_ z1#WQ6z%5)=31E^PMc}wJpHd2!8OS*RY-7i=B($HCC5?kH=94~F_OR)tHS+Ltp($%C z9ATm9`F*RD+zN!Y=kaG*BR5SAgun6cgp|Gk`?^%HTttB!00000NkvXXu0mjfXk7x% delta 1011 zcmbQh+RUNY8Q|y6%O%Cdz`(%k>ERLtq#Zz*gBeK9-QM_SqM|~5X@F0NtBR(np{bLt zoquFpd_ZtSK}kjLhJirNt3)#KnW&&%~la?qD;m3NyHZWKqoT%22BX8o`)<^QSHQyC!-x|8?D z`Ok232I`%#_wWsddIkpdk|4j}|3m?X=CJ8Efm%5WJR*x382Ao=Fk{xWPEG~}rYD{* zjv*25Z>PSTbjv`XB~>|jU91A9VO&q6>chYChQ(W0l26NQomzj}b*j$I`2Ho5oX=yX z)jtiG7FhnId*g}^i*IlL@@~=uhQ_)j)fZo?w*NFwu4_-S z!Mt_T?LAJjemx*z`Ku-3SteJPz-#x52^*7|uQD?~tzXY3{C^f>g*>mzt?J9FYu-z; z*d+>>eSH2w?UhiAcypc9_5EV`uMe7ZF;Njp^j8Oe|OJK?!r^u6X zypmt|C$mhQ5EW+V?6Bt7@tM39DuQ!&u_QfRmFs&eY+)#K+7X3!0{Ka=;>xcc@B0$i z8aCY_T7k`f$;PZ#ZFQj;rNX8u&nK}bJuUOS{O0@b*o<7M+{i}5B<4p_W)rT73BBDY zxI%iRBQtZB_0l^)X8q1-kA!Zti7jMf)$`)f*dbBS9nj1qe)TjHldJ5u+s-Q{UeODZ z-J-INIag4l%lpkb$GxH#t8))3?kmo5@ReZ^KboAlzWV%{UpKD(Fk5+Ljmv}ByLDF+ z%BvCrg1K>GJWQawuriabt@UVwcsDSeX3Tj+aEYAM0_zp+nJ(o4|Ia^&td*{j-movDVCNrZ=Fp^j Ul8dZufmwmU)78&qol`;+0Jn$A#Q*>R diff --git a/src/main/resources/assets/createindustry/textures/fluid/air.png b/src/main/resources/assets/createindustry/textures/fluid/air.png deleted file mode 100644 index 5b902ed0d34311739b2709fd962ff93ea13bfe01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11808 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 delta 269 zcmZo!8pmV`I~R;E2e$_^iC5>UG<@ z51zg7>SbYR<%$b8Tf2Mvr%q#FV0ah2q8dmEmjw9*|Hl9fn`-ZH0Hrw#JR*x382Ao> zFr%o3R|8P6%+tj&M58`9_uOs1!wNji7nuACqx5qB{ZD4sn7u1=;-?47?x)i1KZ|b@ zxZWaqY#ECngQn%16Cp;){-Dxeb>JYCuRT-G@yGywn% CwsQag diff --git a/src/main/resources/assets/createindustry/textures/item/lead_ingot.png b/src/main/resources/assets/createindustry/textures/item/lead_ingot.png deleted file mode 100644 index 42fc8ac717e7085e566618fb2e8e0b54c0044c99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}%0G|-oirT&n+jhNv|E{pO^xA@-x@bhBN0Fz3#-UI6U*w8~^(&s~GI>u)b4|Y}5i;$KdJe=d#Wzp$PyA+hX$o diff --git a/src/main/resources/createindustry.mixins.json b/src/main/resources/createindustry.mixins.json index 69c1fd8d..7b030096 100644 --- a/src/main/resources/createindustry.mixins.json +++ b/src/main/resources/createindustry.mixins.json @@ -9,7 +9,9 @@ "AllOreFeatureConfigEntriesMixin", "FluidPropagatorMixin", "FluidPipeBlockMixin", - "PipeAttachmentModelMixin" + "PipeAttachmentModelMixin", + "BucketItemMixin", + // "ArrowMixin" //, // "ScreenEffectRendererMixin" ], diff --git a/src/main/resources/data/createindustry/forge/biome_modifier/yeehaw.json b/src/main/resources/data/createindustry/forge/biome_modifier/yeehaw.json index 825cda8d..2031a8c0 100644 --- a/src/main/resources/data/createindustry/forge/biome_modifier/yeehaw.json +++ b/src/main/resources/data/createindustry/forge/biome_modifier/yeehaw.json @@ -1,6 +1,6 @@ { "type": "forge:add_features", "biomes": "#minecraft:is_overworld", - "features": "createindustry:simulated_oil", + "features": "createindustry:oil_deposit", "step": "underground_ores" } \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete.json deleted file mode 100644 index 314fe271..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:black_dye" - } - ], - "results": [ - { - "item": "createindustry:black_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete_q.json deleted file mode 100644 index c48b05db..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/black_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:black_dye" - } - ], - "results": [ - { - "item": "createindustry:black_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete.json deleted file mode 100644 index 5499265d..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:blue_dye" - } - ], - "results": [ - { - "item": "createindustry:blue_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete_q.json deleted file mode 100644 index 7ac4c752..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/blue_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:blue_dye" - } - ], - "results": [ - { - "item": "createindustry:blue_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete.json deleted file mode 100644 index 80a9f4cc..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:brown_dye" - } - ], - "results": [ - { - "item": "createindustry:brown_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete_q.json deleted file mode 100644 index 474a8a34..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/brown_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:brown_dye" - } - ], - "results": [ - { - "item": "createindustry:brown_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete.json deleted file mode 100644 index 06840dc5..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:cyan_dye" - } - ], - "results": [ - { - "item": "createindustry:cyan_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete_q.json deleted file mode 100644 index 19c8774f..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/cyan_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:cyan_dye" - } - ], - "results": [ - { - "item": "createindustry:cyan_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete.json deleted file mode 100644 index 3e636631..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:gray_dye" - } - ], - "results": [ - { - "item": "createindustry:gray_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete_q.json deleted file mode 100644 index dff956f4..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/gray_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:gray_dye" - } - ], - "results": [ - { - "item": "createindustry:gray_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete.json deleted file mode 100644 index 4c626e31..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:green_dye" - } - ], - "results": [ - { - "item": "createindustry:green_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete_q.json deleted file mode 100644 index bbd45fe7..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/green_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:green_dye" - } - ], - "results": [ - { - "item": "createindustry:green_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete.json deleted file mode 100644 index ccf2bc9c..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:light_blue_dye" - } - ], - "results": [ - { - "item": "createindustry:light_blue_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete_q.json deleted file mode 100644 index bb5b8b6d..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_blue_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:light_blue_dye" - } - ], - "results": [ - { - "item": "createindustry:light_blue_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete.json deleted file mode 100644 index 96d74cef..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:light_gray_dye" - } - ], - "results": [ - { - "item": "createindustry:light_gray_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete_q.json deleted file mode 100644 index 36426e30..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/light_gray_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:light_gray_dye" - } - ], - "results": [ - { - "item": "createindustry:light_gray_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete.json deleted file mode 100644 index 2053e513..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:lime_dye" - } - ], - "results": [ - { - "item": "createindustry:lime_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete_q.json deleted file mode 100644 index 373d8ca4..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/lime_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:lime_dye" - } - ], - "results": [ - { - "item": "createindustry:lime_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete.json deleted file mode 100644 index f7f4046a..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:magenta_dye" - } - ], - "results": [ - { - "item": "createindustry:magenta_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete_q.json deleted file mode 100644 index 53aa0513..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/magenta_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:magenta_dye" - } - ], - "results": [ - { - "item": "createindustry:magenta_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete.json deleted file mode 100644 index 2f9695d2..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:orange_dye" - } - ], - "results": [ - { - "item": "createindustry:orange_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete_q.json deleted file mode 100644 index 44164e40..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/orange_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:orange_dye" - } - ], - "results": [ - { - "item": "createindustry:orange_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete.json deleted file mode 100644 index 3b4d8a02..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:_dye" - } - ], - "results": [ - { - "item": "createindustry:_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete_q.json deleted file mode 100644 index 6b8a9859..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/pink_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:pink_dye" - } - ], - "results": [ - { - "item": "createindustry:pink_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete.json deleted file mode 100644 index 5185f483..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:purple_dye" - } - ], - "results": [ - { - "item": "createindustry:purple_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete_q.json deleted file mode 100644 index 5361103b..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/purple_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:purple_dye" - } - ], - "results": [ - { - "item": "createindustry:purple_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete.json deleted file mode 100644 index 5278abf4..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:red_dye" - } - ], - "results": [ - { - "item": "createindustry:red_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete_q.json deleted file mode 100644 index fa912679..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/red_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:red_dye" - } - ], - "results": [ - { - "item": "createindustry:red_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete.json deleted file mode 100644 index 7b69a616..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:white_dye" - } - ], - "results": [ - { - "item": "createindustry:white_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete_q.json deleted file mode 100644 index 4c7786de..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/white_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:white_dye" - } - ], - "results": [ - { - "item": "createindustry:white_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete.json deleted file mode 100644 index f1bf583e..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:concrete" - }, - { - "item": "minecraft:yellow_dye" - } - ], - "results": [ - { - "item": "createindustry:yellow_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete_q.json b/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete_q.json deleted file mode 100644 index 2eee399d..00000000 --- a/src/main/resources/data/createindustry/recipes/colored_concrete/full_block/yellow_concrete_q.json +++ /dev/null @@ -1,17 +0,0 @@ - -{ - "type": "create:item_application", - "ingredients": [ - { - "item": "createindustry:mesh_concrete" - }, - { - "item": "minecraft:yellow_dye" - } - ], - "results": [ - { - "item": "createindustry:yellow_high_quality_concrete" - } - ] -} \ No newline at end of file diff --git a/src/main/resources/data/createindustry/recipes/crafting/blast_furnace_output.json b/src/main/resources/data/createindustry/recipes/crafting/blast_furnace_output.json index b7e56fd1..cee02da6 100644 --- a/src/main/resources/data/createindustry/recipes/crafting/blast_furnace_output.json +++ b/src/main/resources/data/createindustry/recipes/crafting/blast_furnace_output.json @@ -8,7 +8,7 @@ ], "key": { "F": { - "item": "createindustry:fireproof_brick" + "item": "createindustry:fireproof_bricks" }, "C": { "tag": "forge:ingots/cast_iron" diff --git a/src/main/resources/data/createindustry/recipes/crafting/coal_coke_from_block.json b/src/main/resources/data/createindustry/recipes/crafting/coal_coke_from_block.json index 20d4be99..132e69b7 100644 --- a/src/main/resources/data/createindustry/recipes/crafting/coal_coke_from_block.json +++ b/src/main/resources/data/createindustry/recipes/crafting/coal_coke_from_block.json @@ -3,11 +3,11 @@ "type": "minecraft:crafting_shaped", "pattern": [ " ", - " S ", + " A ", " " ], "key": { - "S": { + "A": { "item": "createindustry:coal_coke_block" } }, diff --git a/src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil.json b/src/main/resources/data/createindustry/recipes/distillation/crude_oil.json similarity index 69% rename from src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil.json rename to src/main/resources/data/createindustry/recipes/distillation/crude_oil.json index 8cb5b681..cba38b8e 100644 --- a/src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil.json +++ b/src/main/resources/data/createindustry/recipes/distillation/crude_oil.json @@ -1,37 +1,37 @@ { - "type": "createindustry:advanced_distillation", + "type": "createindustry:distillation", "ingredients": [ { - "fluid": "createindustry:crude_oil_fluid", + "fluid": "createindustry:crude_oil", "nbt": {}, - "amount": 180 + "amount": 360 } ], "results": [ { "fluid": "createindustry:heavy_oil", - "amount": 40 + "amount": 80 }, { "fluid": "createindustry:diesel", - "amount": 30 + "amount": 60 }, { "fluid": "createindustry:kerosene", - "amount": 20 - }, - { - "fluid": "createindustry:naphtha", - "amount": 20 - }, - { - "fluid": "createindustry:gasoline", "amount": 40 }, + { + "fluid": "createindustry:naphtha", + "amount": 40 + }, + { + "fluid": "createindustry:gasoline", + "amount": 80 + }, { "fluid": "createindustry:lpg", - "amount": 30 + "amount": 60 } ] diff --git a/src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil_sus.json b/src/main/resources/data/createindustry/recipes/distillation/crude_oil_no_naphtha.json similarity index 65% rename from src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil_sus.json rename to src/main/resources/data/createindustry/recipes/distillation/crude_oil_no_naphtha.json index 615e6444..03eb9304 100644 --- a/src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil_sus.json +++ b/src/main/resources/data/createindustry/recipes/distillation/crude_oil_no_naphtha.json @@ -1,33 +1,33 @@ { - "type": "createindustry:advanced_distillation", + "type": "createindustry:distillation", "ingredients": [ { - "fluid": "createindustry:crude_oil_fluid", + "fluid": "createindustry:crude_oil", "nbt": {}, - "amount": 170 + "amount": 340 } ], "results": [ { "fluid": "createindustry:heavy_oil", - "amount": 40 + "amount": 80 }, { "fluid": "createindustry:diesel", - "amount": 30 + "amount": 60 }, { "fluid": "createindustry:kerosene", - "amount": 20 - }, - { - "fluid": "createindustry:gasoline", "amount": 40 }, + { + "fluid": "createindustry:gasoline", + "amount": 80 + }, { "fluid": "createindustry:lpg", - "amount": 30 + "amount": 60 } ] diff --git a/src/main/resources/data/createindustry/recipes/distillation/heavy_oil.json b/src/main/resources/data/createindustry/recipes/distillation/heavy_oil.json deleted file mode 100644 index 8e148564..00000000 --- a/src/main/resources/data/createindustry/recipes/distillation/heavy_oil.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "createindustry:distillation", - "ingredients": [ - - { - "fluid": "createindustry:heavy_oil", - "nbt": {}, - "amount": 90 - } - ], - "results": [ - { - "fluid": "createindustry:diesel", - "amount": 30 - }, - { - "fluid": "createindustry:lubrication_oil", - "amount": 30 - }, - { - "fluid": "createindustry:lubrication_oil", - "amount": 30 - }, - { - "item": "createindustry:sulfur_dust" - - }, - { - "item": "createindustry:bitumen" - - } - ] - - -} diff --git a/src/main/resources/data/createindustry/recipes/distillation/naphtha.json b/src/main/resources/data/createindustry/recipes/distillation/naphtha.json deleted file mode 100644 index b96e1e48..00000000 --- a/src/main/resources/data/createindustry/recipes/distillation/naphtha.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "createindustry:distillation", - "ingredients": [ - - { - "fluid": "createindustry:naphtha", - "nbt": {}, - "amount": 3 - } - ], - "results": [ - { - "fluid": "createindustry:propylene", - "amount": 1 - }, - { - "fluid": "createindustry:ethylene", - "amount": 1 - }, - { - "fluid": "createindustry:ethylene", - "amount": 1 - }, - { - "item": "minecraft:air" - - }, - { - "item": "minecraft:air" - - } - ] - - -} diff --git a/src/main/resources/data/createindustry/recipes/industrial_blasting/steel.json b/src/main/resources/data/createindustry/recipes/industrial_blasting/steel.json index 04809f9a..f5f5e4de 100644 --- a/src/main/resources/data/createindustry/recipes/industrial_blasting/steel.json +++ b/src/main/resources/data/createindustry/recipes/industrial_blasting/steel.json @@ -10,11 +10,11 @@ "results": [ { "fluid": "createindustry:molten_steel", - "amount": 333 + "amount": 111 }, { "fluid": "createindustry:molten_slag", - "amount": 111 + "amount": 75 } ] diff --git a/src/main/resources/data/createindustry/recipes/mixing/cement.json b/src/main/resources/data/createindustry/recipes/mixing/cement.json index 19ac750b..4eadb871 100644 --- a/src/main/resources/data/createindustry/recipes/mixing/cement.json +++ b/src/main/resources/data/createindustry/recipes/mixing/cement.json @@ -12,7 +12,7 @@ ], "results": [ { - "count": 2, + "count": 4, "item": "createindustry:cement" } diff --git a/src/main/resources/data/createindustry/recipes/mixing/concrete_mixture.json b/src/main/resources/data/createindustry/recipes/mixing/concrete_mixture.json index 15cb6b3e..091a3e88 100644 --- a/src/main/resources/data/createindustry/recipes/mixing/concrete_mixture.json +++ b/src/main/resources/data/createindustry/recipes/mixing/concrete_mixture.json @@ -15,7 +15,7 @@ ], "results": [ { - "count": 8, + "count": 16, "item": "createindustry:concrete_mixture" } diff --git a/src/main/resources/data/createindustry/recipes/mixing/concrete_mixture_from_slag.json b/src/main/resources/data/createindustry/recipes/mixing/concrete_mixture_from_slag.json index 1830fcad..c6540b69 100644 --- a/src/main/resources/data/createindustry/recipes/mixing/concrete_mixture_from_slag.json +++ b/src/main/resources/data/createindustry/recipes/mixing/concrete_mixture_from_slag.json @@ -15,7 +15,7 @@ ], "results": [ { - "count": 16, + "count": 32, "item": "createindustry:concrete_mixture" } diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/red_caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/red_caution_block.json similarity index 100% rename from src/main/resources/data/createindustry/recipes/stonecutting/red_caution_block.json rename to src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/red_caution_block.json diff --git a/src/main/resources/data/createindustry/recipes/stonecutting/caution_block.json b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/yellow_caution_block.json similarity index 68% rename from src/main/resources/data/createindustry/recipes/stonecutting/caution_block.json rename to src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/yellow_caution_block.json index e763cfb3..c3ca686a 100644 --- a/src/main/resources/data/createindustry/recipes/stonecutting/caution_block.json +++ b/src/main/resources/data/createindustry/recipes/stonecutting/caution_blocks/yellow_caution_block.json @@ -4,6 +4,6 @@ "ingredient": { "tag": "forge:ingots/aluminum" }, - "result": "createindustry:caution_block", + "result": "createindustry:yellow_caution_block", "count": 4 } \ No newline at end of file