diff --git a/gradle.properties b/gradle.properties index 5f6a3164..acc154b2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ jei_version = 11.4.0.274 create_minecraft_version = 1.19.2 flywheel_minecraft_version = 1.19.2 -flywheel_version = 0.6.9-18 -create_version = 0.5.1.c-36 +flywheel_version = 0.6.10-20 +create_version = 0.5.1.f-45 registrate_version = MC1.19-1.1.5 \ No newline at end of file diff --git a/src/generated/resources/.cache/2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 b/src/generated/resources/.cache/2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 index 7f966a7f..ba8aa929 100644 --- a/src/generated/resources/.cache/2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 +++ b/src/generated/resources/.cache/2d06ea55ee27bcb1f7f87fa8ec3e037afa7e1ad9 @@ -1,4 +1,4 @@ -// 1.19.2 2023-11-01T14:33:21.8836334 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 2023-11-02T15:43:25.647238 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)] 50db526af77cf0ead08cadfd3f7daa8b84a40312 assets/createindustry/blockstates/air_intake.json 429437419b2ec98bd716e7ba15583b84da7488d5 assets/createindustry/blockstates/aluminum_bars.json 9e2417e479011e42ebf00685068e6b6f515f0b11 assets/createindustry/blockstates/aluminum_block.json @@ -1140,6 +1140,7 @@ bb6ed3bebbde28633a04b3c36c5ddfa2b761e2c1 data/forge/tags/items/buckets/naphtha.j 9fbe71f4776547000044bcc08054bb6ab2da4639 data/forge/tags/items/buckets/slag.json 94945bea02cca0bfa9c9c05fa16b5533f47024c0 data/forge/tags/items/buckets/steel.json ecf1a4c60ac630afe103f9d1c8bfea432158bdf9 data/forge/tags/items/concrete.json +d3d09e8b5b11e9272ed9e56093116cd3d82226f3 data/forge/tags/items/dusts/charcoal.json 8d6fdd619eb49c2a6d8ee3f30138b6aa1c24a9a8 data/forge/tags/items/dusts/coal_coke.json a5782b1478ab73e6bc6582e4008338de550b3fc6 data/forge/tags/items/factory_floor.json 6f21498ac0f4c376952c9c596a4813ec0919e966 data/forge/tags/items/ingots/aluminum.json diff --git a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e index db0267d2..907024f6 100644 --- a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e +++ b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e @@ -1,2 +1,2 @@ -// 1.19.2 2023-11-01T15:21:42.7803908 Create: The Factory Must Grow's lang merger -03dd999e2b7c33844c23e1c90ffb51f1098b6c7c assets/createindustry/lang/en_us.json +// 1.19.2 2023-11-04T17:59:14.3408431 Create: The Factory Must Grow's lang merger +d1ce4ba37e273babae91e01f54aba93f4014b80b assets/createindustry/lang/en_us.json diff --git a/src/generated/resources/assets/createindustry/lang/en_us.json b/src/generated/resources/assets/createindustry/lang/en_us.json index ccc60afe..abf63fdb 100644 --- a/src/generated/resources/assets/createindustry/lang/en_us.json +++ b/src/generated/resources/assets/createindustry/lang/en_us.json @@ -336,6 +336,62 @@ "create.goggles.get_engine_efficiency": "%1$s", "create.goggles.engine.stress": "%1$ssu", + "create.goggles.blast_furnace.nothing_lol": "", + "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: ", + + "createindustry.ponder.small_engines.text_1": "To create a small engine, place front part and back part next to each other", + "createindustry.ponder.small_engines.text_2": "Fuel is inputted to the front part and exhaust is removed from the back part using pipes and an exhaust block", + "createindustry.ponder.small_engines.text_3": "Engine will start when redstone signal is applied to the front part", + "createindustry.ponder.small_engines.text_4": "There are engines with Gasoline, LPG and Kerosene as a fuel", + "createindustry.ponder.diesel_engine_small.text_1": "Diesel Engine is assembled by placing a shaft over a diesel engine block", + "createindustry.ponder.diesel_engine_small.text_2": "Carbon Dioxide has to be outputted by pipes and exhaust block", + "createindustry.ponder.diesel_engine_big.text_1": "Diesel engines can be placed next to each other to form bigger ones", + "createindustry.ponder.diesel_engine_big.text_2": "This way, Diesel Engines can have very big output", + "createindustry.ponder.surface_scanner.text_1": "Surface Scanner is use for finding crude oil deposits", + "createindustry.ponder.surface_scanner.text_2": "When rotation is applied, the machine starts to find a nearest oil deposit", + "createindustry.ponder.surface_scanner.text_3": "When a deposit is found, it will write coordinates of it in a goggle tooltip", + "createindustry.ponder.surface_scanner.text_4": "X: 47 Z: 68", + "createindustry.ponder.pumpjack.text_1": "First step of mining oil is building industrial pipes from deposit to surface", + "createindustry.ponder.pumpjack.text_2": "Then pumpjack has to be built on the top of the pipe", + "createindustry.ponder.distillation_tower.text_1": "Base of a distillation tower are steel tanks", + "createindustry.ponder.distillation_tower.text_2": "Tower is assembled by placing Steel Distillation Controller next to the tanks", + "createindustry.ponder.distillation_tower.text_3": "Placing 5 Distillation outputs and 5 Industrial Pipes finishes the structure", + "createindustry.ponder.distillation_tower.text_4": "Place Blaze Burners under the tanks to power it, dial on the tower shows the power level of the structure", + "createindustry.ponder.distillation_tower.text_5": "Oil is inputted into the controller block", + "createindustry.ponder.distillation_tower.text_6": "Every output block outputs one of the oil products", + "createindustry.ponder.distillation_tower.text_7": "LPG", + "createindustry.ponder.distillation_tower.text_8": "Kerosene", + "createindustry.ponder.distillation_tower.text_9": "Gasoline", + "createindustry.ponder.distillation_tower.text_10": "Diesel", + "createindustry.ponder.distillation_tower.text_11": "Heavy Oil", + + "createindustry.ponder.distillation_tower.header": "Distillation Tower Setup", + + "createindustry.ponder.pumpjack.header": "Building Pumpjack", + + "createindustry.ponder.surface_scanner.header": "Finding Oil", + + "createindustry.ponder.diesel_engine_big.header": "Making Big Engines", + + "createindustry.ponder.diesel_engine_small.header": "Building Diesel Engine", + + "createindustry.ponder.small_engines.header": "Building Small Engines", + "createindustry.ponder.tag.oil": "Oil Related Machines", + "createindustry.ponder.tag.oil.description": "Machines that mine, process or use crude oil and fluids created from it", "_": "->------------------------] UI & Messages [------------------------<-", @@ -391,6 +447,83 @@ "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: ", + + + "_": "->------------------------] Ponders [------------------------<-", + + "createindustry.ponder.small_engines.text_1": "To create a small engine, place a front part and a back part behind it", + "createindustry.ponder.small_engines.text_2": "Fuel is inputted to the front part and exhaust is removed from the back part using pipes and an exhaust block", + "createindustry.ponder.small_engines.text_3": "Engine will start when redstone signal is applied to the front part", + "createindustry.ponder.small_engines.text_4": "There are engines with Gasoline, LPG and Kerosene as a fuel", + "createindustry.ponder.diesel_engine.text_1": "Diesel Engine is assembled by placing a shaft in the front of a diesel engine block", + "createindustry.ponder.diesel_engine.text_2": "Carbon Dioxide has to be outputted by pipes and exhaust block", + "createindustry.ponder.diesel_engine.text_3": "Diesel engines need air that can be collected with air intakes", + "createindustry.ponder.diesel_engine_expansion.text_1": "Diesel engine expansions give diesel engines 2 new fluid slots, for cooling and lubrication", + "createindustry.ponder.surface_scanner.text_1": "Surface Scanner is used for finding crude oil deposits", + "createindustry.ponder.surface_scanner.text_2": "When rotation is applied, the machine starts to find the nearest oil deposit", + "createindustry.ponder.surface_scanner.text_3": "When a deposit is found, compass at the top will show the direction", + "createindustry.ponder.pumpjack.text_1": "First step of mining oil is building industrial pipes from deposit to surface", + "createindustry.ponder.pumpjack.text_2": "Pumpjack base has to be placed on the top of the pipe", + "createindustry.ponder.pumpjack.text_3": "Pumpjack hammer needs to be placed behind it", + "createindustry.ponder.pumpjack.text_4": "The last step is placing a machine input (which is a power input for the pumpjack) with a pumpjack crank above it", + "createindustry.ponder.distillation_tower.text_1": "Base of a distillation tower are steel tanks", + "createindustry.ponder.distillation_tower.text_2": "Tower is assembled by placing Steel Distillation Controller next to the tanks", + "createindustry.ponder.distillation_tower.text_3": "To finish the multiblock place up to 6 Distillation outputs and Industrial Pipes between them", + "createindustry.ponder.distillation_tower.text_4": "Place Blaze Burners under the tanks to power it, dial on the tower shows the power level of the structure", + "createindustry.ponder.distillation_tower.text_5": "Oil is inserted into the controller block", + "createindustry.ponder.distillation_tower.text_6": "Every output block outputs one of the oil products", + "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": "Main part of a blast furnace is a blast furnace output", + "createindustry.ponder.blast_furnace.text_2": "To make a blast furnace, make a cylinder of fireproof bricks around it", + "createindustry.ponder.blast_furnace.text_3": "Blast furnaces need reinforcements that are at least half the total height", + "createindustry.ponder.blast_furnace.text_4": "Everything is inserted through a hole at the top", + "createindustry.ponder.coke_oven.text_1": "Coke Oven is created by placing coke oven block as shown and clicking the front block with a wrench", + "createindustry.ponder.coke_oven.text_2": "Coke Ovens are slow so it is beneficial to have long arrays of them", + "createindustry.ponder.coke_oven.text_3": "Coal can be inserted from anywhere", + "createindustry.ponder.coke_oven.text_4": "Creosote and Carbon Dioxide have to be pumped out of the machine", + "createindustry.ponder.coke_oven.text_5": "After some time, coal coke will fall out of the machine at the front", + "createindustry.ponder.casting.text_1": "Casting is done by pouring liquid metal into a casting basin with a casting spout", + "createindustry.ponder.casting.text_2": "Casting basin needs a mold to function", + + "createindustry.ponder.distillation_tower.header": "Distillation Tower Setup", + + "createindustry.ponder.pumpjack.header": "Building Pumpjack", + + "createindustry.ponder.surface_scanner.header": "Finding Oil", + + "createindustry.ponder.diesel_engine.header": "Building Diesel Engine", + + "createindustry.ponder.diesel_engine_expansion.header": "Expanding Diesel Engines", + + "createindustry.ponder.small_engines.header": "Building Small Engines", + + "createindustry.ponder.coke_oven.header": "Building Coke Oven", + "createindustry.ponder.blast_furnace": "Building Blast Furnace", + + "createindustry.ponder.casting.header": "Casting Metal", + "createindustry.ponder.tag.oil": "Oil Related Machines", + "createindustry.ponder.tag.metallurgy": "Metal Processing Related Machines", + "createindustry.ponder.tag.oil.description": "Machines that mine, process or use crude oil and fluids created from it", + "createindustry.ponder.tag.metallurgy.description": "Machines that mine, process or use crude oil and fluids created from it", "_": "Thank you for translating Create: The Factory Must Grow!" diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_brick_slab.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_brick_slab.json new file mode 100644 index 00000000..858c888c --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_brick_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_bauxite_bricks": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_bauxite_bricks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_bauxite_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_bauxite_bricks", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_bauxite_brick_slab" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_brick_wall.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_brick_wall.json new file mode 100644 index 00000000..fde4e96f --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_brick_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_bauxite_bricks": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_bauxite_bricks" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_bauxite_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_bauxite_bricks", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_bauxite_brick_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_from_stone_types_bauxite_stonecutting.json new file mode 100644 index 00000000..ed4b6274 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_from_stone_types_bauxite_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone_types_bauxite": { + "conditions": { + "items": [ + { + "tag": "createindustry:stone_types/bauxite" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_bauxite_from_stone_types_bauxite_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_stone_types_bauxite", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_bauxite_from_stone_types_bauxite_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_wall.json b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_wall.json new file mode 100644 index 00000000..f4460973 --- /dev/null +++ b/src/generated/resources/data/createindustry/advancements/recipes/createindustry.building/cut_bauxite_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_bauxite": { + "conditions": { + "items": [ + { + "items": [ + "createindustry:cut_bauxite" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "createindustry:cut_bauxite_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_bauxite", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "createindustry:cut_bauxite_wall" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_bauxite_brick_stairs.json b/src/generated/resources/data/createindustry/recipes/cut_bauxite_brick_stairs.json new file mode 100644 index 00000000..26b5b6f7 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_bauxite_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "cut_bauxite_brick_stairs", + "key": { + "X": { + "item": "createindustry:cut_bauxite_bricks" + } + }, + "pattern": [ + "X ", + "XX ", + "XXX" + ], + "result": { + "count": 4, + "item": "createindustry:cut_bauxite_brick_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/cut_bauxite_stairs.json b/src/generated/resources/data/createindustry/recipes/cut_bauxite_stairs.json new file mode 100644 index 00000000..dc8ec057 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/cut_bauxite_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "cut_bauxite_stairs", + "key": { + "X": { + "item": "createindustry:cut_bauxite" + } + }, + "pattern": [ + "X ", + "XX ", + "XXX" + ], + "result": { + "count": 4, + "item": "createindustry:cut_bauxite_stairs" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_bauxite_brick_slab.json b/src/generated/resources/data/createindustry/recipes/small_bauxite_brick_slab.json new file mode 100644 index 00000000..faad3b22 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_bauxite_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "small_bauxite_brick_slab", + "key": { + "X": { + "item": "createindustry:small_bauxite_bricks" + } + }, + "pattern": [ + "XXX" + ], + "result": { + "count": 6, + "item": "createindustry:small_bauxite_brick_slab" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/createindustry/recipes/small_bauxite_brick_stairs.json b/src/generated/resources/data/createindustry/recipes/small_bauxite_brick_stairs.json new file mode 100644 index 00000000..fc390281 --- /dev/null +++ b/src/generated/resources/data/createindustry/recipes/small_bauxite_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "group": "small_bauxite_brick_stairs", + "key": { + "X": { + "item": "createindustry:small_bauxite_bricks" + } + }, + "pattern": [ + "X ", + "XX ", + "XXX" + ], + "result": { + "count": 4, + "item": "createindustry:small_bauxite_brick_stairs" + } +} \ 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 009ecc4c..b47a2f40 100644 --- a/src/main/java/com/drmangotea/createindustry/CreateTFMG.java +++ b/src/main/java/com/drmangotea/createindustry/CreateTFMG.java @@ -65,6 +65,7 @@ public class CreateTFMG modEventBus.addListener(this::clientSetup); MinecraftForge.EVENT_BUS.register(this); } + @SuppressWarnings("removal") public static void gatherData(GatherDataEvent event) { DataGenerator gen = event.getGenerator(); gen.addProvider(true, new LangMerger(gen, MOD_ID, NAME, TFMGLangPartials.values())); diff --git a/src/main/java/com/drmangotea/createindustry/CreateTFMGClient.java b/src/main/java/com/drmangotea/createindustry/CreateTFMGClient.java index 0998a2b6..4ff8a5fa 100644 --- a/src/main/java/com/drmangotea/createindustry/CreateTFMGClient.java +++ b/src/main/java/com/drmangotea/createindustry/CreateTFMGClient.java @@ -2,6 +2,7 @@ package com.drmangotea.createindustry; import com.drmangotea.createindustry.items.gadgets.quad_potato_cannon.QuadPotatoCannonRenderHandler; +import com.drmangotea.createindustry.ponder.TFMGPonderIndex; import com.drmangotea.createindustry.registry.TFMGPartialModels; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -19,8 +20,8 @@ public class CreateTFMGClient { @SubscribeEvent public void setup(final FMLClientSetupEvent event) { - // CIPonderIndex.register(); - //CIPonderIndex.registerTags(); + TFMGPonderIndex.register(); + TFMGPonderIndex.registerTags(); } diff --git a/src/main/java/com/drmangotea/createindustry/base/TFMGLangPartials.java b/src/main/java/com/drmangotea/createindustry/base/TFMGLangPartials.java index 41693e82..c15773e9 100644 --- a/src/main/java/com/drmangotea/createindustry/base/TFMGLangPartials.java +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGLangPartials.java @@ -12,7 +12,8 @@ import com.simibubi.create.foundation.utility.FilesHelper; import com.simibubi.create.foundation.utility.Lang; public enum TFMGLangPartials implements LangPartial { - INTERFACE("UI & Messages"); + INTERFACE("UI & Messages"), + 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 a2522b1d..e5fd1e16 100644 --- a/src/main/java/com/drmangotea/createindustry/base/TFMGSpriteShifts.java +++ b/src/main/java/com/drmangotea/createindustry/base/TFMGSpriteShifts.java @@ -35,6 +35,12 @@ public class TFMGSpriteShifts { ALUMINUM_SCAFFOLD_INSIDE = horizontal("scaffold/aluminum_scaffold_inside"); + public static final CTSpriteShiftEntry + COKE_OVEN_TOP = getCT(AllCTTypes.RECTANGLE, "coke_oven_top"), + COKE_OVEN_BOTTOM = getCT(AllCTTypes.RECTANGLE, "coke_oven_bottom"), + COKE_OVEN_BACK = getCT(AllCTTypes.RECTANGLE, "coke_oven_back"), + COKE_OVEN_SIDE = getCT(AllCTTypes.RECTANGLE, "coke_oven_side"); + public static final CTSpriteShiftEntry STEEL_ENCASED_COGWHEEL_SIDE = vertical("steel_encased_cogwheel_side"), diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlock.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlock.java index 0ca3b043..48049d62 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlock.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlock.java @@ -23,7 +23,7 @@ import net.minecraft.world.level.material.Fluids; import java.util.Random; -public class ExhaustBlock extends RodBlock implements IBE, IWrenchable { +public class ExhaustBlock extends RodBlock implements IBE, IWrenchable { public static final BooleanProperty WATERLOGGED = BlockStateProperties.WATERLOGGED; //Direction facing = this.defaultBlockState().getValue(FACING); public ExhaustBlock(Properties p_55926_) { @@ -80,12 +80,12 @@ public class ExhaustBlock extends RodBlock implements IBE, IW p_153746_.add(FACING, WATERLOGGED); } @Override - public Class getBlockEntityClass() { - return ExhaustTileEntity.class; + public Class getBlockEntityClass() { + return ExhaustBlockEntity.class; } @Override - public BlockEntityType getBlockEntityType() { + public BlockEntityType getBlockEntityType() { return TFMGBlockEntities.EXHAUST.get(); } } diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustTileEntity.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java similarity index 96% rename from src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustTileEntity.java rename to src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java index d66e2371..f06311e2 100644 --- a/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustTileEntity.java +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/exhaust/ExhaustBlockEntity.java @@ -30,7 +30,7 @@ import java.util.List; import java.util.Optional; @SuppressWarnings("removal") -public class ExhaustTileEntity extends SmartBlockEntity implements IHaveGoggleInformation { +public class ExhaustBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation { @@ -46,7 +46,7 @@ public class ExhaustTileEntity extends SmartBlockEntity implements IHaveGoggleIn - public ExhaustTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { + public ExhaustBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { super(type, pos, state); tankInventory = createInventory(); fluidCapability = LazyOptional.of(() -> tankInventory); @@ -171,7 +171,7 @@ public class ExhaustTileEntity extends SmartBlockEntity implements IHaveGoggleIn int random = Create.RANDOM.nextInt(5); if(random==0) - tankInventory.drain(20, IFluidHandler.FluidAction.EXECUTE); + tankInventory.drain(35, IFluidHandler.FluidAction.EXECUTE); diff --git a/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/coke_oven/CokeOvenCTBehavior.java b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/coke_oven/CokeOvenCTBehavior.java new file mode 100644 index 00000000..d9c9f316 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/blocks/machines/metal_processing/coke_oven/CokeOvenCTBehavior.java @@ -0,0 +1,76 @@ +package com.drmangotea.createindustry.blocks.machines.metal_processing.coke_oven; + +import com.drmangotea.createindustry.base.TFMGSpriteShifts; +import com.simibubi.create.AllSpriteShifts; +import com.simibubi.create.api.connectivity.ConnectivityHandler; +import com.simibubi.create.content.logistics.vault.ItemVaultBlock; +import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; +import com.simibubi.create.foundation.block.connected.ConnectedTextureBehaviour; +import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.core.Direction.AxisDirection; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; + +import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING; + +public class CokeOvenCTBehavior extends ConnectedTextureBehaviour.Base { + + @Override + public CTSpriteShiftEntry getShift(BlockState state, Direction direction, @Nullable TextureAtlasSprite sprite) { + Direction cokeOvenDirection = state.getValue(FACING); + boolean small = !ItemVaultBlock.isLarge(state); + if (cokeOvenDirection == null) + return null; + + if (direction == cokeOvenDirection.getOpposite()) + return TFMGSpriteShifts.COKE_OVEN_BACK; + if (direction == Direction.UP) + return TFMGSpriteShifts.COKE_OVEN_TOP; + if (direction == Direction.DOWN) + return TFMGSpriteShifts.COKE_OVEN_BOTTOM; + + return TFMGSpriteShifts.COKE_OVEN_SIDE; + } + + @Override + protected Direction getUpDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) { + Direction cokeOvenDirection =state.getValue(FACING); + boolean alongX = cokeOvenDirection.getAxis() == Axis.X; + if (face.getAxis() + .isVertical() && alongX) + return super.getUpDirection(reader, pos, state, face).getClockWise(); + if (face.getAxis() == cokeOvenDirection.getAxis() || face.getAxis() + .isVertical()) + return super.getUpDirection(reader, pos, state, face); + return Direction.fromAxisAndDirection(cokeOvenDirection.getAxis(), alongX ? AxisDirection.POSITIVE : AxisDirection.NEGATIVE); + } + + + + @Override + protected Direction getRightDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) { + Direction cokeOvenDirection =state.getValue(FACING); + if (face.getAxis() + .isVertical() && cokeOvenDirection.getAxis() == Axis.X) + return super.getRightDirection(reader, pos, state, face).getClockWise(); + if (face.getAxis() == cokeOvenDirection.getAxis() || face.getAxis() + .isVertical()) + return super.getRightDirection(reader, pos, state, face); + return Direction.fromAxisAndDirection(Axis.Y, face.getAxisDirection()); + } + + public boolean buildContextForOccludedDirections() { + return super.buildContextForOccludedDirections(); + } + + @Override + public boolean connectsTo(BlockState state, BlockState other, BlockAndTintGetter reader, BlockPos pos, + BlockPos otherPos, Direction face) { + return state == other && ConnectivityHandler.isConnected(reader, pos, otherPos); //ItemVaultConnectivityHandler.isConnected(reader, pos, otherPos); + } + +} diff --git a/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderIndex.java b/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderIndex.java new file mode 100644 index 00000000..2c5b0ce4 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderIndex.java @@ -0,0 +1,81 @@ +package com.drmangotea.createindustry.ponder; + + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.ponder.scenes.MetallurgyScenes; +import com.drmangotea.createindustry.ponder.scenes.OilScenes; +import com.drmangotea.createindustry.registry.TFMGBlocks; +import com.simibubi.create.foundation.ponder.PonderRegistrationHelper; +import com.simibubi.create.foundation.ponder.PonderRegistry; + + +public class TFMGPonderIndex { + static final PonderRegistrationHelper HELPER = new PonderRegistrationHelper(CreateTFMG.MOD_ID); + + public static void register() { + HELPER.forComponents(TFMGBlocks.GASOLINE_ENGINE, TFMGBlocks.GASOLINE_ENGINE_BACK, + TFMGBlocks.LPG_ENGINE, TFMGBlocks.LPG_ENGINE_BACK, + TFMGBlocks.TURBINE_ENGINE, TFMGBlocks.TURBINE_ENGINE_BACK) + + .addStoryBoard("small_engines", OilScenes::small_engines, TFMGPonderTag.OIL); + + + HELPER.forComponents(TFMGBlocks.DIESEL_ENGINE) + + .addStoryBoard("diesel_engine", OilScenes::diesel_engine, TFMGPonderTag.OIL) + .addStoryBoard("diesel_engine_expansion", OilScenes::diesel_engine_expansion, TFMGPonderTag.OIL); + + HELPER.forComponents(TFMGBlocks.SURFACE_SCANNER) + + .addStoryBoard("surface_scanner", OilScenes::surface_scanner, TFMGPonderTag.OIL); + + HELPER.forComponents(TFMGBlocks.PUMPJACK_BASE,TFMGBlocks.PUMPJACK_CRANK,TFMGBlocks.PUMPJACK_HAMMER_HOLDER) + .addStoryBoard("pumpjack", OilScenes::pumpjack, TFMGPonderTag.OIL); + HELPER.forComponents(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER,TFMGBlocks.STEEL_DISTILLATION_OUTPUT) + + .addStoryBoard("distillation_tower", OilScenes::distillation_tower, TFMGPonderTag.OIL); + ///////////////////////////////////////// + + HELPER.forComponents(TFMGBlocks.BLAST_FURNACE_OUTPUT) + + .addStoryBoard("blast_furnace", MetallurgyScenes::blast_furnace, TFMGPonderTag.METALLURGY); + + + HELPER.forComponents(TFMGBlocks.COKE_OVEN) + + .addStoryBoard("coke_oven", MetallurgyScenes::coke_oven, TFMGPonderTag.METALLURGY); + + + HELPER.forComponents(TFMGBlocks.CASTING_BASIN,TFMGBlocks.CASTING_SPOUT) + + .addStoryBoard("casting", MetallurgyScenes::casting, TFMGPonderTag.METALLURGY); + + + } + public static void registerTags() { + PonderRegistry.TAGS.forTag(TFMGPonderTag.OIL) + .add(TFMGBlocks.GASOLINE_ENGINE) + .add(TFMGBlocks.GASOLINE_ENGINE_BACK) + .add(TFMGBlocks.LPG_ENGINE) + .add(TFMGBlocks.LPG_ENGINE_BACK) + .add(TFMGBlocks.TURBINE_ENGINE) + .add(TFMGBlocks.TURBINE_ENGINE_BACK) + .add(TFMGBlocks.STEEL_DISTILLATION_OUTPUT) + .add(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER) + .add(TFMGBlocks.PUMPJACK_BASE) + .add(TFMGBlocks.PUMPJACK_HAMMER_HOLDER) + .add(TFMGBlocks.PUMPJACK_CRANK); + + PonderRegistry.TAGS.forTag(TFMGPonderTag.METALLURGY) + .add(TFMGBlocks.COKE_OVEN) + .add(TFMGBlocks.CASTING_BASIN) + .add(TFMGBlocks.CASTING_SPOUT) + .add(TFMGBlocks.FIREPROOF_BRICKS) + .add(TFMGBlocks.FIREPROOF_BRICK_REINFORCEMENT) + .add(TFMGBlocks.BLAST_FURNACE_OUTPUT); + + + + } + + } diff --git a/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderTag.java b/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderTag.java new file mode 100644 index 00000000..a612d3cf --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/ponder/TFMGPonderTag.java @@ -0,0 +1,29 @@ +package com.drmangotea.createindustry.ponder; + + + +import com.drmangotea.createindustry.CreateTFMG; +import com.drmangotea.createindustry.registry.TFMGFluids; +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.foundation.ponder.PonderTag; +import net.minecraft.resources.ResourceLocation; + +public class TFMGPonderTag extends PonderTag { + + public static final PonderTag OIL = create("oil") + .defaultLang("Oil Related Machines", "Machines used to get, refine and use oil") + .item(TFMGFluids.CRUDE_OIL.getBucket().get(), true, false).addToIndex(); + + public static final PonderTag METALLURGY = create("metallurgy") + .defaultLang("Metal processing", "Machines related to metal") + .item(TFMGItems.STEEL_INGOT.get(), true, false).addToIndex(); + + public TFMGPonderTag(ResourceLocation id) { + super(id); + } + + private static PonderTag create(String id) { + return new PonderTag(CreateTFMG.asResource(id)); + } + } + diff --git a/src/main/java/com/drmangotea/createindustry/ponder/scenes/MetallurgyScenes.java b/src/main/java/com/drmangotea/createindustry/ponder/scenes/MetallurgyScenes.java new file mode 100644 index 00000000..81361ca4 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/ponder/scenes/MetallurgyScenes.java @@ -0,0 +1,261 @@ +package com.drmangotea.createindustry.ponder.scenes; + +import com.drmangotea.createindustry.registry.TFMGItems; +import com.simibubi.create.foundation.ponder.*; +import com.simibubi.create.foundation.ponder.element.EntityElement; +import com.simibubi.create.foundation.ponder.element.InputWindowElement; +import com.simibubi.create.foundation.ponder.element.WorldSectionElement; +import com.simibubi.create.foundation.utility.Pointing; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.phys.Vec3; + +public class MetallurgyScenes { + + public static void blast_furnace(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("blast_furnace", ""); + scene.configureBasePlate(0, 0, 5); + scene.scaleSceneView(.7f); + scene.showBasePlate(); + // + Selection output = util.select.fromTo(2, 1, 2, 2, 1, 2); + + Selection furnace1 = util.select.fromTo(1, 1, 3, 3, 1, 3); + Selection furnace2 = util.select.fromTo(2, 1, 4, 2, 1, 4); + + Selection reinforcement1 = util.select.fromTo(3, 1, 2, 3, 2, 2); + Selection reinforcement2 = util.select.fromTo(3, 1, 4, 3, 2, 4); + Selection reinforcement3 = util.select.fromTo(1, 1, 4, 1, 2, 4); + Selection reinforcement4 = util.select.fromTo(1, 1, 2, 1, 2, 2); + + Selection furnace3 = util.select.fromTo(1, 2, 3, 3, 2, 3); + Selection furnace4 = util.select.fromTo(2, 2, 2, 2, 2, 4); + + Selection furnace5 = util.select.fromTo(0, 3, 0, 4, 4, 4); + + + Selection pipez = util.select.fromTo(0, 1, 0, 4, 2, 1); + scene.world.setKineticSpeed(pipez, 80); + + // + + scene.world.showIndependentSection(output, Direction.DOWN); + scene.overlay.showText(50) + .attachKeyFrame() + .text("Main part of a blast furnace is a blast furnace output") + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(70); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("To make a blast furnace, make a cylinder of fireproof bricks around it"); + + + scene.world.showIndependentSection(furnace1, Direction.DOWN); + scene.world.showIndependentSection(furnace2, Direction.DOWN); + scene.idle(10); + scene.world.showIndependentSection(furnace3, Direction.DOWN); + scene.world.showIndependentSection(furnace4, Direction.DOWN); + scene.idle(10); + scene.world.showIndependentSection(furnace5, Direction.DOWN); + + scene.idle(70); + + scene.world.showIndependentSection(reinforcement1, Direction.DOWN); + scene.world.showIndependentSection(reinforcement2, Direction.DOWN); + scene.world.showIndependentSection(reinforcement3, Direction.DOWN); + scene.world.showIndependentSection(reinforcement4, Direction.DOWN); + + scene.overlay.showText(100) + .attachKeyFrame() + .text("Blast furnaces need reinforcements that are at least half the total height") + .pointAt(util.vector.blockSurface(util.grid.at(1, 2, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(70); + + scene.world.showIndependentSection(pipez, Direction.DOWN); + + scene.idle(20); + scene.overlay.showText(100) + .attachKeyFrame() + .text("Everything is inserted to through a hole at the top"); + + + ItemStack stack1 = new ItemStack(TFMGItems.COAL_COKE_DUST.get()); + ItemStack stack2 = new ItemStack(TFMGItems.BLASTING_MIXTURE.get()); + + scene.world.createItemEntity(util.vector.centerOf(2, 6, 3), util.vector.of(0, 0, 0), stack1); + scene.idle(10); + scene.world.createItemEntity(util.vector.centerOf(2, 6, 3), util.vector.of(0, 0, 0), stack1); + scene.idle(10); + scene.world.createItemEntity(util.vector.centerOf(2, 6, 3), util.vector.of(0, 0, 0), stack1); + scene.idle(10); + + scene.world.createItemEntity(util.vector.centerOf(2, 6, 3), util.vector.of(0, 0, 0), stack2); + scene.idle(10); + scene.world.createItemEntity(util.vector.centerOf(2, 6, 3), util.vector.of(0, 0, 0), stack2); + scene.idle(10); + scene.world.createItemEntity(util.vector.centerOf(2, 6, 3), util.vector.of(0, 0, 0), stack2); + scene.idle(10); + + } + + public static void coke_oven(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("coke_oven", ""); + scene.configureBasePlate(0, 0, 7); + scene.scaleSceneView(.7f); + + scene.showBasePlate(); + + + Selection coke_oven_middle = util.select.fromTo(3, 1, 2, 3, 3, 4); + + Selection coke_oven_right = util.select.fromTo(4, 1, 2, 5, 3, 4); + Selection coke_oven_left = util.select.fromTo(2, 1, 2, 1, 3, 4); + + Selection chutes = util.select.fromTo(1, 4, 4, 5, 4, 4); + Selection exhaust = util.select.fromTo(0, 4, 2, 5, 6, 2); + Selection output = util.select.fromTo(1, 4, 3, 5, 5, 3); + + Selection tank = util.select.fromTo(6, 1, 3, 6, 5, 3); + + ItemStack coal = new ItemStack(Items.COAL, 3); + ItemStack coal_coke = new ItemStack(TFMGItems.COAL_COKE.get(), 10); + + scene.world.setKineticSpeed(output, 80); + scene.world.setKineticSpeed(exhaust, 80); + + + scene.world.showIndependentSection(coke_oven_middle, Direction.DOWN); + scene.overlay.showText(70) + .attachKeyFrame() + .text("Coke Oven is created by placing coke oven block as shown and clicking the front block with a wrench") + .pointAt(util.vector.blockSurface(util.grid.at(3, 2, 2), Direction.WEST)) + .placeNearTarget(); + + scene.idle(90); + + scene.world.showIndependentSection(coke_oven_right, Direction.DOWN); + scene.world.showIndependentSection(coke_oven_left, Direction.DOWN); + scene.overlay.showText(70) + .attachKeyFrame() + .text("Coke Ovens are slow so it is beneficial to have long arrays of them") + .pointAt(util.vector.blockSurface(util.grid.at(1, 2, 2), Direction.WEST)) + .placeNearTarget(); + + + scene.idle(30); + + + scene.world.showIndependentSection(chutes, Direction.DOWN); + scene.overlay.showText(70) + .attachKeyFrame() + .text("Coal can be inserted from anywhere"); + scene.idle(10); + ElementLink item = null; + for (int i = 0; i < 3; i++) { + scene.idle(10); + + for (int y = 0; y < 5; y++) { + + item = scene.world.createItemEntity(util.vector.centerOf(1 + y, 6, 4), util.vector.of(0, 0, 0), coal); + } + } + if (item != null) + scene.world.modifyEntity(item, Entity::discard); + scene.idle(40); + + scene.world.showIndependentSection(exhaust, Direction.DOWN); + scene.world.showIndependentSection(tank, Direction.DOWN); + scene.world.showIndependentSection(output, Direction.DOWN); + + scene.overlay.showText(70) + .attachKeyFrame() + .text("Creosote and Carbon Dioxide have to be pumped out of the machine") + .pointAt(util.vector.blockSurface(util.grid.at(3, 4, 2), Direction.WEST)) + .placeNearTarget(); + + + scene.idle(50); + + + scene.overlay.showText(70) + .attachKeyFrame() + .text("After some time, coal coke will fall out of the machine at the front"); + + + for (int y = 0; y < 5; y++) { + scene.world.createItemEntity(util.vector.centerOf(1 + y, 2, 1), util.vector.of(0, 0, 0), coal_coke); + } + + + } + + public static void casting(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("casting", ""); + scene.configureBasePlate(0, 0, 5); + scene.showBasePlate(); + + Selection spout = util.select.fromTo(2, 3, 2, 2, 3, 2); + Selection basin_empty = util.select.fromTo(2, 1, 2, 2, 1, 2); + Selection basin_with_mold = util.select.fromTo(2, 1, 4, 2, 1, 4); + + Selection chain_drives = util.select.fromTo(5, 0, 3, 5, 3, 3); + + Selection pipez = util.select.fromTo(3, 1, 2, 4, 3, 3); + + Selection funnel = util.select.fromTo(2, 1, 1, 2, 1, 1); + + ItemStack steel_ingot = new ItemStack(TFMGItems.STEEL_INGOT.get()); + + scene.world.setKineticSpeed(chain_drives, 80); + scene.world.setKineticSpeed(pipez, 80); + + ElementLink emptyBasinElement = scene.world.showIndependentSection(basin_empty,Direction.DOWN); + scene.idle(20); + scene.world.showIndependentSection(spout, Direction.DOWN); + + scene.overlay.showText(70) + .attachKeyFrame() + .text("Casting is done by pouring liquid metal into a casting basin with a casting spout") + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(20); + scene.world.showIndependentSection(pipez, Direction.DOWN); + scene.world.showIndependentSection(chain_drives, Direction.DOWN); + + scene.idle(50); + + + ElementLink basinElement = scene.world.showIndependentSection(basin_with_mold,null); + scene.world.hideIndependentSection(emptyBasinElement,null); + + scene.world.moveSection(basinElement,new Vec3(0d,0d,-2d),0); + + + BlockPos basinPos = util.grid.at(2, 1, 2); + Vec3 topOf = util.vector.topOf(basinPos); + scene.overlay.showControls(new InputWindowElement(topOf, Pointing.DOWN).rightClick() + .withItem(new ItemStack(TFMGItems.INGOT_MOLD.get())), 20); + + + scene.idle(10); + + scene.overlay.showText(70) + .attachKeyFrame() + .text("Casting basin needs a mold to function") + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 2), Direction.WEST)) + .placeNearTarget(); + + scene.idle(20); + scene.world.showIndependentSection(funnel,Direction.SOUTH); + scene.idle(20); + + scene.world.createItemEntity(util.vector.centerOf(2, 1, 1), util.vector.of(0, 0, 0), steel_ingot); + + } +} diff --git a/src/main/java/com/drmangotea/createindustry/ponder/scenes/OilScenes.java b/src/main/java/com/drmangotea/createindustry/ponder/scenes/OilScenes.java new file mode 100644 index 00000000..c2f82d59 --- /dev/null +++ b/src/main/java/com/drmangotea/createindustry/ponder/scenes/OilScenes.java @@ -0,0 +1,434 @@ +package com.drmangotea.createindustry.ponder.scenes; + +import com.simibubi.create.foundation.ponder.*; +import com.simibubi.create.foundation.ponder.element.WorldSectionElement; +import net.minecraft.core.Direction; +import net.minecraft.world.phys.Vec3; + +public class OilScenes { + + public static void small_engines(SceneBuilder scene, SceneBuildingUtil util){ + scene.title("small_engines", ""); + scene.configureBasePlate(0, 0, 5); + scene.setSceneOffsetY(-2); + scene.idle(10); + + scene.showBasePlate(); + + + Selection gasoline_engine = util.select.fromTo(2, 1, 1, 2, 1, 2); + + Selection lpg_engine = util.select.fromTo(2, 3, 1, 2, 3, 2); + + Selection turbine_engine = util.select.fromTo(2, 5, 1, 2, 5, 2); + + Selection engine_lever = util.select.fromTo(1, 1, 1, 1, 1, 1); + + Selection exhaust = util.select.fromTo(1, 1, 2, 0, 2, 2); + + Selection input_pump = util.select.fromTo(3, 1, 1, 3, 1, 1); + + Selection tank_1 = util.select.fromTo(4, 1, 1, 4, 1, 1); + + Selection tank_2 = util.select.fromTo(4, 3, 1, 4, 3, 1); + + Selection tank_3 = util.select.fromTo(4, 5, 1, 4, 5, 1); + + scene.world.setKineticSpeed(gasoline_engine,0); + //scene.world.showSection(util.select.fromTo(0, 2, 0, 4, 2, 4), Direction.UP); + + + + ElementLink gasolineEngineElement = scene.world.showIndependentSectionImmediately(gasoline_engine); + scene.overlay.showText(50) + .attachKeyFrame() + .text("To create a small engine, place a front part and a back part behind it") + .pointAt(util.vector.blockSurface(util.grid.at(4, 0, 4), Direction.WEST)) + .placeNearTarget(); + scene.idle(100); + + + scene.world.setKineticSpeed(exhaust,80); + scene.world.setKineticSpeed(input_pump,80); + ElementLink exhaustElement = scene.world.showIndependentSection(exhaust,Direction.DOWN); + ElementLink inputPumpElement = scene.world.showIndependentSection(input_pump,Direction.DOWN); + ElementLink tankElement1 = scene.world.showIndependentSection(tank_1,Direction.DOWN); + + scene.overlay.showText(70) + .attachKeyFrame() + .text("Fuel is inputted to the front part and exhaust is removed from the back part using pipes and an exhaust block") + .pointAt(util.vector.blockSurface(util.grid.at(4, 0, 3), Direction.WEST)) + .placeNearTarget(); + scene.idle(80); + + + + ElementLink leverElement = scene.world.showIndependentSection(engine_lever,Direction.DOWN); + scene.world.setKineticSpeed(gasoline_engine,225); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("Engine will start when redstone signal is applied to the front part") + .pointAt(util.vector.blockSurface(util.grid.at(1, 1, 1), Direction.WEST)) + .placeNearTarget(); + scene.idle(100); + + + + scene.world.hideIndependentSection(gasolineEngineElement,Direction.SOUTH); + scene.world.hideIndependentSection(tankElement1,Direction.SOUTH); + + scene.idle(50); + + ElementLink lpgEngineElement = scene.world.showIndependentSection(lpg_engine,Direction.DOWN); + ElementLink tankElement2 = scene.world.showIndependentSection(tank_2,Direction.DOWN); + scene.world.moveSection(lpgEngineElement,new Vec3(0d,-2d,0d),0); + scene.world.moveSection(tankElement2,new Vec3(0d,-2d,0d),0); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("There are engines with Gasoline, LPG and Kerosene as a fuel"); + scene.idle(50); + scene.world.hideIndependentSection(lpgEngineElement,Direction.SOUTH); + scene.world.hideIndependentSection(tankElement2,Direction.SOUTH); + scene.idle(30); + ElementLink turbineEngineElement = scene.world.showIndependentSection(turbine_engine,Direction.DOWN); + ElementLink tankElement3 = scene.world.showIndependentSection(tank_3,Direction.DOWN); + scene.world.moveSection(turbineEngineElement,new Vec3(0d,-4d,0d),0); + scene.world.moveSection(tankElement3,new Vec3(0d,-4d,0d),0); + + scene.idle(50); + + } + public static void pumpjack(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("pumpjack", ""); + scene.configureBasePlate(0, 0, 7); + //// + Selection pipez = util.select.fromTo(0, 2, 0, 0, 4, 0); + Selection hammer = util.select.fromTo(3, 1, 2, 3, 3, 2); + Selection base = util.select.fromTo(1, 1, 2, 1, 1, 2); + Selection crank = util.select.fromTo(5, 2, 2, 5, 2, 2); + Selection input = util.select.fromTo(5, 1, 1, 5, 1, 2); + Selection base1 = util.select.fromTo(2, 0, 0, 6, 0, 4); + Selection base2 = util.select.fromTo(0, 0, 0, 1, 0, 4); + Selection deposit = util.select.fromTo(0, 1, 0, 0, 1, 0); + Selection tank = util.select.fromTo(0, 0, 3, 1, 0, 4); + + + //// + // scene.scaleSceneView(.4f); + //scene.removeShadow(); + + + + ElementLink baseElement1 = scene.world.showIndependentSection(base1,Direction.UP); + ElementLink baseElement2 = scene.world.showIndependentSection(base2,Direction.UP); + + scene.idle(20); + scene.world.hideIndependentSection(baseElement2,Direction.UP); + scene.idle(25); + ElementLink depositElement = scene.world.showIndependentSection(deposit,Direction.UP); + scene.world.moveSection(depositElement,new Vec3(0d,-4d,2d),0); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("First step of mining oil is building industrial pipes from deposit to surface"); + + + ElementLink pipeElement = scene.world.showIndependentSection(pipez,Direction.SOUTH); + scene.world.moveSection(pipeElement,new Vec3(0d,-4d,2d),0); + scene.idle(25); + scene.world.hideIndependentSection(pipeElement,Direction.DOWN); + scene.world.hideIndependentSection(depositElement,Direction.DOWN); + scene.idle(25); + scene.world.showIndependentSection(base2,Direction.SOUTH); + scene.idle(25); + ElementLink pumpjackBaseElement = scene.world.showIndependentSection(base,Direction.SOUTH); + scene.overlay.showText(50) + .attachKeyFrame() + .text("Pumpjack base has to be placed on the top of the pipe") + .pointAt(util.vector.blockSurface(util.grid.at(1, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(40); + ElementLink hammerElement1 = scene.world.showIndependentSection(hammer,Direction.UP); + scene.overlay.showText(50) + .attachKeyFrame() + .text("Pumpjack hammer needs to be placed behind it") + .pointAt(util.vector.blockSurface(util.grid.at(3, 3, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(40); + scene.world.setKineticSpeed(input,70); + scene.world.setKineticSpeed(base1,-140); + scene.world.showIndependentSection(input,Direction.SOUTH); + scene.idle(10); + scene.world.showIndependentSection(crank,Direction.SOUTH); + scene.overlay.showText(50) + .attachKeyFrame() + .text("The last step is placing a machine input (which is a power input for the pumpjack) with a pumpjack crank above it") + .pointAt(util.vector.blockSurface(util.grid.at(5, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(40); + + + + } + public static void diesel_engine(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("diesel_engine", ""); + scene.configureBasePlate(0, 0, 5); + scene.showBasePlate(); + + Selection engine = util.select.fromTo(2, 1, 0, 2, 1, 2); + Selection exhaust = util.select.fromTo(2, 1, 3, 2, 2, 4); + Selection air = util.select.fromTo(0, 1, 0, 1, 1, 2); + Selection input = util.select.fromTo(3, 1, 0, 4, 1, 2); + + + + scene.idle(30); + + ElementLink engineElement = scene.world.showIndependentSection(engine,Direction.DOWN); + scene.overlay.showText(50) + .attachKeyFrame() + .text("Diesel Engine is assembled by placing a shaft in the front of a diesel engine block"); + + + scene.idle(70); + + + + ElementLink inputElement = scene.world.showIndependentSection(input,Direction.DOWN); + ElementLink exhaustElement = scene.world.showIndependentSection(exhaust,Direction.DOWN); + scene.world.setKineticSpeed(input,80); + scene.world.setKineticSpeed(exhaust,80); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("Carbon Dioxide has to be outputted by pipes and exhaust block") + .pointAt(util.vector.blockSurface(util.grid.at(2, 2, 4), Direction.WEST)) + .placeNearTarget(); + scene.idle(40); + + ElementLink airElement = scene.world.showIndependentSection(air,Direction.DOWN); + scene.world.setKineticSpeed(air,80); + scene.overlay.showText(50) + .attachKeyFrame() + .text("Diesel engines need air that can be collected with air intakes") + .pointAt(util.vector.blockSurface(util.grid.at(0, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(10); + scene.world.setKineticSpeed(engine,128); + scene.idle(70); + + + + + } + public static void diesel_engine_expansion(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("diesel_engine_expansion", ""); + scene.configureBasePlate(0, 0, 6); + scene.showBasePlate(); + + Selection engine = util.select.fromTo(2, 1, 0, 2, 1, 2); + Selection input = util.select.fromTo(0, 1, 0, 1, 1, 2); + Selection exhaust = util.select.fromTo(3, 1, 0, 4, 2, 2); + + Selection expansion = util.select.fromTo(2, 1, 3, 2, 1, 3); + Selection air = util.select.fromTo(2, 1, 4, 2, 1, 5); + Selection coolant = util.select.fromTo(0, 1, 3, 1, 1, 3); + Selection oil = util.select.fromTo(3, 1, 3, 4, 1, 3); + + scene.world.setKineticSpeed(input,80); + scene.world.setKineticSpeed(exhaust,80); + scene.world.setKineticSpeed(air,80); + scene.world.setKineticSpeed(coolant,80); + scene.world.setKineticSpeed(oil,80); + scene.world.setKineticSpeed(engine,128); + + + + scene.world.showIndependentSection(engine,Direction.DOWN); + scene.world.showIndependentSection(input,Direction.DOWN); + scene.world.showIndependentSection(exhaust,Direction.DOWN); + ElementLink airElement = scene.world.showIndependentSection(air,Direction.DOWN); + + + scene.world.moveSection(airElement,new Vec3(0d,0d,-1d),0); + + scene.idle(30); + + scene.world.moveSection(airElement,new Vec3(0d,0d,1d),10); + + scene.idle(30); + + scene.world.showIndependentSection(expansion,Direction.DOWN); + + scene.idle(20); + + scene.world.showIndependentSection(coolant,Direction.DOWN); + scene.world.showIndependentSection(oil,Direction.DOWN); + + scene.overlay.showText(100) + .attachKeyFrame() + .text("Diesel engine expansions give diesel engines 2 new fluid slots, for cooling and lubrication") + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 3), Direction.WEST)) + .placeNearTarget(); + + + + scene.idle(50); + + + + + } + + public static void surface_scanner(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("surface_scanner", ""); + scene.configureBasePlate(0, 0, 5); + scene.showBasePlate(); + Selection scanner = util.select.fromTo(0, 1, 0, 5, 1, 5); + + scene.world.showSection(util.select.fromTo(0, 1, 0, 5, 1, 5), Direction.UP); + scene.overlay.showText(50) + .attachKeyFrame() + .text("Surface Scanner is used for finding crude oil deposits") + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(70); + scene.world.setKineticSpeed(scanner,30); + scene.overlay.showText(50) + .attachKeyFrame() + .text("When rotation is applied, the machine starts to find the nearest oil deposit") + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(70); + + + scene.overlay.showText(50) + .attachKeyFrame() + .text("When a deposit is found, compass at the top will show the direction") + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(70); + + + } + + public static void distillation_tower(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("distillation_tower", ""); + scene.configureBasePlate(0, 0, 6); + scene.showBasePlate(); + scene.scaleSceneView(.4f); + Selection burners = util.select.fromTo(3, 1, 2, 4, 1, 3); + Selection tank = util.select.fromTo(3, 2, 2, 4, 14, 3); + Selection controller = util.select.fromTo(2, 1, 3, 2, 2, 3); + Selection output = util.select.fromTo(2, 3, 3, 2, 13, 3); + Selection oil_tank = util.select.fromTo(0, 1, 4, 2, 3, 4); + scene.world.setKineticSpeed(oil_tank,80); + + ElementLink tankElement = scene.world.showIndependentSection(tank,Direction.DOWN); + + scene.overlay.showText(70) + .attachKeyFrame() + .text("Base of a distillation tower are steel tanks") + .pointAt(util.vector.blockSurface(util.grid.at(4, 6, 3), Direction.WEST)) + .placeNearTarget(); + scene.idle(80); + ElementLink controllerElement = scene.world.showIndependentSection(controller,Direction.DOWN); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("Tower is assembled by placing Steel Distillation Controller next to the tanks") + .pointAt(util.vector.blockSurface(util.grid.at(2, 2, 3), Direction.WEST)) + .placeNearTarget(); + + scene.idle(70); + ElementLink outputElement = scene.world.showIndependentSection(output,Direction.DOWN); + scene.overlay.showText(60) + .attachKeyFrame() + .text("To finish the multiblock place up to 6 Distillation outputs and Industrial Pipes between them") + .pointAt(util.vector.blockSurface(util.grid.at(2, 7, 3), Direction.WEST)) + .placeNearTarget(); + scene.idle(70); + + + ElementLink burnerElement = scene.world.showIndependentSection(burners,Direction.DOWN); + scene.overlay.showText(60) + .attachKeyFrame() + .text("Place Blaze Burners under the tanks to power it, dial on the tower shows the power level of the structure ") + .pointAt(util.vector.blockSurface(util.grid.at(3, 1, 2), Direction.WEST)) + .placeNearTarget(); + scene.idle(70); + + ElementLink oilTankElement = scene.world.showIndependentSection(oil_tank,Direction.DOWN); + + scene.overlay.showText(60) + .attachKeyFrame() + .text("Oil is inputted into the controller block") + .pointAt(util.vector.blockSurface(util.grid.at(2, 2, 3), Direction.WEST)) + .placeNearTarget(); + scene.idle(70); + + scene.overlay.showText(120) + .attachKeyFrame() + .text("Every output block outputs one of the oil products") + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 3), Direction.WEST)) + .placeNearTarget(); + +/// + scene.overlay.showText(120) + .attachKeyFrame() + .text("LPG") + .colored(PonderPalette.BLUE) + .pointAt(util.vector.blockSurface(util.grid.at(2, 13, 3), Direction.WEST)) + .placeNearTarget(); + + scene.overlay.showText(120) + .attachKeyFrame() + .text("Gasoline") + .colored(PonderPalette.BLUE) + .pointAt(util.vector.blockSurface(util.grid.at(2, 11, 3), Direction.WEST)) + .placeNearTarget(); + + + + scene.overlay.showText(120) + .attachKeyFrame() + .text("Naphtha") + .colored(PonderPalette.BLUE) + .pointAt(util.vector.blockSurface(util.grid.at(2, 9, 3), Direction.WEST)) + .placeNearTarget(); + + scene.overlay.showText(120) + .attachKeyFrame() + .text("Kerosene") + .colored(PonderPalette.BLUE) + .pointAt(util.vector.blockSurface(util.grid.at(2, 7, 3), Direction.WEST)) + .placeNearTarget(); + + scene.overlay.showText(120) + .attachKeyFrame() + .text("Diesel") + .colored(PonderPalette.BLUE) + .pointAt(util.vector.blockSurface(util.grid.at(2, 5, 3), Direction.WEST)) + .placeNearTarget(); + + scene.overlay.showText(120) + .attachKeyFrame() + .text("Heavy Oil") + .colored(PonderPalette.BLUE) + .pointAt(util.vector.blockSurface(util.grid.at(2, 3, 3), Direction.WEST)) + .placeNearTarget(); + + + + scene.idle(150); + + } + + + + + + +} diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGBlockEntities.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGBlockEntities.java index ca9e94b5..e32a91af 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGBlockEntities.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGBlockEntities.java @@ -24,7 +24,7 @@ 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.machines.exhaust.ExhaustTileEntity; +import com.drmangotea.createindustry.blocks.machines.exhaust.ExhaustBlockEntity; 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; @@ -51,7 +51,6 @@ import com.drmangotea.createindustry.blocks.pipes.normal.LockablePipeBlockEntity import com.drmangotea.createindustry.blocks.tanks.SteelFluidTankRenderer; import com.drmangotea.createindustry.blocks.tanks.SteelTankBlockEntity; import com.drmangotea.createindustry.blocks.engines.small.UniversalEngineRenderer; -import com.simibubi.create.Create; import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; import com.simibubi.create.content.fluids.pipes.SmartFluidPipeBlockEntity; import com.simibubi.create.content.fluids.pipes.StraightPipeBlockEntity; @@ -242,8 +241,8 @@ public class TFMGBlockEntities { .validBlocks(TFMGBlocks.TURBINE_ENGINE_BACK) .register(); - public static final BlockEntityEntry EXHAUST = REGISTRATE - .blockEntity("exhaust", ExhaustTileEntity::new) + public static final BlockEntityEntry EXHAUST = REGISTRATE + .blockEntity("exhaust", ExhaustBlockEntity::new) .validBlocks(TFMGBlocks.EXHAUST) .register(); diff --git a/src/main/java/com/drmangotea/createindustry/registry/TFMGBlocks.java b/src/main/java/com/drmangotea/createindustry/registry/TFMGBlocks.java index 5230f60b..62382bd2 100644 --- a/src/main/java/com/drmangotea/createindustry/registry/TFMGBlocks.java +++ b/src/main/java/com/drmangotea/createindustry/registry/TFMGBlocks.java @@ -27,6 +27,7 @@ import com.drmangotea.createindustry.blocks.engines.small.turbine.TurbineEngineB import com.drmangotea.createindustry.blocks.machines.exhaust.ExhaustBlock; 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.pipes.normal.aluminum.AluminumPipeAttachmentModel; import com.drmangotea.createindustry.blocks.pipes.normal.aluminum.AluminumPipeBlock; @@ -83,6 +84,7 @@ 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.logistics.vault.ItemVaultCTBehaviour; import com.simibubi.create.content.processing.AssemblyOperatorBlockItem; import com.simibubi.create.foundation.data.*; import com.simibubi.create.foundation.utility.Couple; @@ -489,7 +491,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU REGISTRATE.block("steel_distillation_output", DistillationOutputBlock::new) .initialProperties(SharedProperties::copperMetal) .properties(p -> p.color(MaterialColor.STONE)) - .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov))) .properties(BlockBehaviour.Properties::noOcclusion) .transform(pickaxeOnly()) .item() @@ -639,6 +641,7 @@ public static final BlockEntry STEEL_DISTILLATION_OUTPU .properties(p -> p.requiresCorrectToolForDrops()) .blockstate(new CokeOvenGenerator()::generate) .transform(pickaxeOnly()) + .onRegister(connectedTextures(CokeOvenCTBehavior::new)) .item() .transform(customItemModel()) .lang("Coke Oven") diff --git a/src/main/resources/assets/createindustry/lang/default/ponders.json b/src/main/resources/assets/createindustry/lang/default/ponders.json new file mode 100644 index 00000000..073eb3a0 --- /dev/null +++ b/src/main/resources/assets/createindustry/lang/default/ponders.json @@ -0,0 +1,71 @@ +{ + + "createindustry.ponder.small_engines.text_1": "To create a small engine, place a front part and a back part behind it", + "createindustry.ponder.small_engines.text_2": "Fuel is inputted to the front part and exhaust is removed from the back part using pipes and an exhaust block", + "createindustry.ponder.small_engines.text_3": "Engine will start when redstone signal is applied to the front part", + "createindustry.ponder.small_engines.text_4": "There are engines with Gasoline, LPG and Kerosene as a fuel", + + "createindustry.ponder.diesel_engine.text_1": "Diesel Engine is assembled by placing a shaft in the front of a diesel engine block", + "createindustry.ponder.diesel_engine.text_2": "Carbon Dioxide has to be outputted by pipes and exhaust block", + "createindustry.ponder.diesel_engine.text_3": "Diesel engines need air that can be collected with air intakes", + + "createindustry.ponder.diesel_engine_expansion.text_1": "Diesel engine expansions give diesel engines 2 new fluid slots, for cooling and lubrication", + + + "createindustry.ponder.surface_scanner.text_1": "Surface Scanner is used for finding crude oil deposits", + "createindustry.ponder.surface_scanner.text_2": "When rotation is applied, the machine starts to find the nearest oil deposit", + "createindustry.ponder.surface_scanner.text_3": "When a deposit is found, compass at the top will show the direction", + + + "createindustry.ponder.pumpjack.text_1": "First step of mining oil is building industrial pipes from deposit to surface", + "createindustry.ponder.pumpjack.text_2": "Pumpjack base has to be placed on the top of the pipe", + "createindustry.ponder.pumpjack.text_3": "Pumpjack hammer needs to be placed behind it", + "createindustry.ponder.pumpjack.text_4": "The last step is placing a machine input (which is a power input for the pumpjack) with a pumpjack crank above it", + + "createindustry.ponder.distillation_tower.text_1": "Base of a distillation tower are steel tanks", + "createindustry.ponder.distillation_tower.text_2": "Tower is assembled by placing Steel Distillation Controller next to the tanks", + "createindustry.ponder.distillation_tower.text_3": "To finish the multiblock place up to 6 Distillation outputs and Industrial Pipes between them", + "createindustry.ponder.distillation_tower.text_4": "Place Blaze Burners under the tanks to power it, dial on the tower shows the power level of the structure", + "createindustry.ponder.distillation_tower.text_5": "Oil is inserted into the controller block", + "createindustry.ponder.distillation_tower.text_6": "Every output block outputs one of the oil products", + "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": "Main part of a blast furnace is a blast furnace output", + "createindustry.ponder.blast_furnace.text_2": "To make a blast furnace, make a cylinder of fireproof bricks around it", + "createindustry.ponder.blast_furnace.text_3": "Blast furnaces need reinforcements that are at least half the total height", + "createindustry.ponder.blast_furnace.text_4": "Everything is inserted through a hole at the top", + + "createindustry.ponder.coke_oven.text_1": "Coke Oven is created by placing coke oven block as shown and clicking the front block with a wrench", + "createindustry.ponder.coke_oven.text_2": "Coke Ovens are slow so it is beneficial to have long arrays of them", + "createindustry.ponder.coke_oven.text_3": "Coal can be inserted from anywhere", + "createindustry.ponder.coke_oven.text_4": "Creosote and Carbon Dioxide have to be pumped out of the machine", + "createindustry.ponder.coke_oven.text_5": "After some time, coal coke will fall out of the machine at the front", + + "createindustry.ponder.casting.text_1": "Casting is done by pouring liquid metal into a casting basin with a casting spout", + "createindustry.ponder.casting.text_2": "Casting basin needs a mold to function", + + "createindustry.ponder.distillation_tower.header": "Distillation Tower Setup", + "createindustry.ponder.pumpjack.header": "Building Pumpjack", + "createindustry.ponder.surface_scanner.header": "Finding Oil", + "createindustry.ponder.diesel_engine.header": "Building Diesel Engine", + "createindustry.ponder.diesel_engine_expansion.header": "Expanding Diesel Engines", + "createindustry.ponder.small_engines.header": "Building Small Engines", + + "createindustry.ponder.coke_oven.header": "Building Coke Oven", + "createindustry.ponder.blast_furnace": "Building Blast Furnace", + "createindustry.ponder.casting.header": "Casting Metal", + + "createindustry.ponder.tag.oil": "Oil Related Machines", + + "createindustry.ponder.tag.metallurgy": "Metal Processing Related Machines", + + "createindustry.ponder.tag.oil.description": "Machines that mine, process or use crude oil and fluids created from it", + + "createindustry.ponder.tag.metallurgy.description": "Machines that mine, process or use crude oil and fluids created from it" +} \ No newline at end of file diff --git a/src/main/resources/assets/createindustry/ponder/blast_furnace.nbt b/src/main/resources/assets/createindustry/ponder/blast_furnace.nbt new file mode 100644 index 00000000..bf0db6e9 Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/blast_furnace.nbt differ diff --git a/src/main/resources/assets/createindustry/ponder/casting.nbt b/src/main/resources/assets/createindustry/ponder/casting.nbt new file mode 100644 index 00000000..9677b849 Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/casting.nbt differ diff --git a/src/main/resources/assets/createindustry/ponder/coke_oven.nbt b/src/main/resources/assets/createindustry/ponder/coke_oven.nbt new file mode 100644 index 00000000..9bee8b45 Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/coke_oven.nbt differ diff --git a/src/main/resources/assets/createindustry/ponder/diesel_engine.nbt b/src/main/resources/assets/createindustry/ponder/diesel_engine.nbt new file mode 100644 index 00000000..171d20ac Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/diesel_engine.nbt differ diff --git a/src/main/resources/assets/createindustry/ponder/diesel_engine_expansion.nbt b/src/main/resources/assets/createindustry/ponder/diesel_engine_expansion.nbt new file mode 100644 index 00000000..2e1085c3 Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/diesel_engine_expansion.nbt differ diff --git a/src/main/resources/assets/createindustry/ponder/distillation_tower.nbt b/src/main/resources/assets/createindustry/ponder/distillation_tower.nbt new file mode 100644 index 00000000..8ae991d0 Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/distillation_tower.nbt differ diff --git a/src/main/resources/assets/createindustry/ponder/pumpjack.nbt b/src/main/resources/assets/createindustry/ponder/pumpjack.nbt new file mode 100644 index 00000000..ce254e67 Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/pumpjack.nbt differ diff --git a/src/main/resources/assets/createindustry/ponder/small_engines.nbt b/src/main/resources/assets/createindustry/ponder/small_engines.nbt new file mode 100644 index 00000000..0fb6ae29 Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/small_engines.nbt differ diff --git a/src/main/resources/assets/createindustry/ponder/surface_scanner.nbt b/src/main/resources/assets/createindustry/ponder/surface_scanner.nbt new file mode 100644 index 00000000..d4456fbe Binary files /dev/null and b/src/main/resources/assets/createindustry/ponder/surface_scanner.nbt differ diff --git a/src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil_sus.json b/src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil_sus.json index 4e0ec6f5..1800a0de 100644 --- a/src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil_sus.json +++ b/src/main/resources/data/createindustry/recipes/fractional_distillation/crude_oil_sus.json @@ -21,6 +21,10 @@ "fluid": "createindustry:kerosene", "amount": 1 }, + { + "fluid": "createindustry:naphtha", + "amount": 1 + }, { "fluid": "createindustry:gasoline", "amount": 3