From 1d3e057dda27673f8c40a00644d85fb319dac316 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Wed, 17 Mar 2021 01:23:16 +0100 Subject: [PATCH] Last kinetic relays and generators - Fixed transparency depth sorting inside ponder UI - Scenes for Seq. Gearshift, Furnace Engine/Flywheel and Rotation Speed Controllers --- src/generated/resources/.cache/cache | 28 +- .../resources/assets/create/lang/en_us.json | 16 + .../assets/create/lang/unfinished/de_de.json | 18 +- .../assets/create/lang/unfinished/es_es.json | 18 +- .../assets/create/lang/unfinished/es_mx.json | 18 +- .../assets/create/lang/unfinished/fr_fr.json | 18 +- .../assets/create/lang/unfinished/it_it.json | 18 +- .../assets/create/lang/unfinished/ja_jp.json | 18 +- .../assets/create/lang/unfinished/ko_kr.json | 18 +- .../assets/create/lang/unfinished/nl_nl.json | 18 +- .../assets/create/lang/unfinished/pt_br.json | 18 +- .../assets/create/lang/unfinished/ru_ru.json | 18 +- .../assets/create/lang/unfinished/zh_cn.json | 18 +- .../assets/create/lang/unfinished/zh_tw.json | 18 +- .../data/create/advancements/aesthetics.json | 4 +- .../flywheel/FlywheelTileEntity.java | 3 +- .../advanced/SpeedControllerRenderer.java | 3 +- .../advanced/SpeedControllerTileEntity.java | 5 + .../SequencedGearshiftTileEntity.java | 2 + .../create/foundation/ponder/PonderUI.java | 7 + .../ponder/content/KineticsScenes.java | 314 +++++++++++++++++- .../ponder/content/PonderIndex.java | 8 + .../renderState/SuperRenderTypeBuffer.java | 20 +- src/main/resources/ponder/furnace_engine.nbt | Bin 0 -> 600 bytes .../resources/ponder/sequenced_gearshift.nbt | Bin 0 -> 1021 bytes .../resources/ponder/speed_controller.nbt | Bin 0 -> 674 bytes 26 files changed, 594 insertions(+), 32 deletions(-) create mode 100644 src/main/resources/ponder/furnace_engine.nbt create mode 100644 src/main/resources/ponder/sequenced_gearshift.nbt create mode 100644 src/main/resources/ponder/speed_controller.nbt diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 24769c6d2..63087dd59 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -402,19 +402,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json 2b12f3cf99e498899207a8c4855210e7b5dc55cd assets/create/lang/en_ud.json -14e0e7784c59a76deddf3bfc32e334ce043396fe assets/create/lang/en_us.json -9d0c4eb5b8fcf787b1bbdd35dcb2efd37b7b9f9c assets/create/lang/unfinished/de_de.json -7e78635390f2802b325aec510ebef35345e2c9a4 assets/create/lang/unfinished/es_es.json -f87b6f876dbb50c37ebbd67d9f636f70c5e4e7f2 assets/create/lang/unfinished/es_mx.json -866086d9a9fe1f4c39208bf592b75145dd67bb47 assets/create/lang/unfinished/fr_fr.json -2f32a7fbbfaa1d78c6f9975c4aa121def52280b7 assets/create/lang/unfinished/it_it.json -2041ea4e1e516f7953be44b06092b144df0359b3 assets/create/lang/unfinished/ja_jp.json -e5057798e54fe5485a36f71b7298c6b2c73cd1b4 assets/create/lang/unfinished/ko_kr.json -e4bdb059ad70595c66c84ebfc3cac6a3929e97c4 assets/create/lang/unfinished/nl_nl.json -849db8c87d521cdf0ce8dc21652f8d95eea47194 assets/create/lang/unfinished/pt_br.json -cdafda2402e1c3259eba15fdd55a446117fece83 assets/create/lang/unfinished/ru_ru.json -8063b79a864f2a1a56c30aabe6df4bd616c938c2 assets/create/lang/unfinished/zh_cn.json -bd9961903c4e125cd3029dad62a4a7fd690149aa assets/create/lang/unfinished/zh_tw.json +73cd8748a2a6277ec1ec1e4c0af4fe9cffbda8ce assets/create/lang/en_us.json +9777ac3724ec7d626437b12b67b533f6894afd29 assets/create/lang/unfinished/de_de.json +91e44b23201b2165b64837d9a8d0f3d5313a8058 assets/create/lang/unfinished/es_es.json +c859cb5f44c409adcdfa3de65642eb1f6c8fd5bc assets/create/lang/unfinished/es_mx.json +512e8b757d5a6b511a946f3cb56ce90653885f04 assets/create/lang/unfinished/fr_fr.json +af6c1fdea2304970eacaf8413e85fab5c0731918 assets/create/lang/unfinished/it_it.json +96063374af85f0f269b64262c319b3bde9623d45 assets/create/lang/unfinished/ja_jp.json +b5f1962be245e0042255d23c18de532f84a3b0fa assets/create/lang/unfinished/ko_kr.json +14b0b2b88be1d3d9d064f26a36b28e6762522809 assets/create/lang/unfinished/nl_nl.json +a8f5e1dcb5db76b2daffb056841fd0b785af5597 assets/create/lang/unfinished/pt_br.json +d06fb4feed18286366ed958044ab82d1bf2d15b8 assets/create/lang/unfinished/ru_ru.json +3498b6288bce0184992a2a4051c9416d76ad1a13 assets/create/lang/unfinished/zh_cn.json +8c26a0392f613db72705d56f46e8fdaa7e117dc6 assets/create/lang/unfinished/zh_tw.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1585,7 +1585,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear 9f9455ccb5fc9e3cbfce73862b46078346a522a5 assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json e76041b7ae829fdd7dc0524f6ca4d2f89fca51bb assets/create/sounds.json -0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json +5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 356f4855a2a6c65be3fb51d7d1aabf2ca6034d42 data/create/advancements/arm_blaze_burner.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 6cfdb91aa..9aa47e056 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -2020,6 +2020,11 @@ "create.ponder.funnel_transfer.text_2": "Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "Gantry setups can move attached Blocks.", @@ -2192,6 +2197,17 @@ "create.ponder.rope_pulley_modes.text_1": "Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 892ea386e..bf4699ed0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1337", + "_": "Missing Localizations: 1350", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index bf6a5fb5d..e4d4a4f6c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 368", + "_": "Missing Localizations: 381", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_mx.json b/src/generated/resources/assets/create/lang/unfinished/es_mx.json index 53e129369..7a61f13be 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_mx.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_mx.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1267", + "_": "Missing Localizations: 1280", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 2218aae58..19f3255d0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1049", + "_": "Missing Localizations: 1062", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 369acaf8d..a4706944c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 385", + "_": "Missing Localizations: 398", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 5db9138b5..4549c93b4 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 392", + "_": "Missing Localizations: 405", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 9471b7f33..a1d30849c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 438", + "_": "Missing Localizations: 451", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index a4da4b57e..905e5b4c4 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1536", + "_": "Missing Localizations: 1549", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 40031e472..0f0960a19 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1602", + "_": "Missing Localizations: 1615", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index e30cc25d8..571fe933e 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 388", + "_": "Missing Localizations: 401", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index fcfec2f15..9d5f52646 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 386", + "_": "Missing Localizations: 399", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 1b8b2c0d9..b67952a4c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 391", + "_": "Missing Localizations: 404", "_": "->------------------------] Game Elements [------------------------<-", @@ -2021,6 +2021,11 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement.\nA mechanical belt should help here.", + "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", + "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", + "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", + "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", + "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", @@ -2193,6 +2198,17 @@ "create.ponder.rope_pulley_modes.text_1": "UNLOCALIZED: Whenever Pulleys stop moving, the moved structure reverts to blocks", "create.ponder.rope_pulley_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only at the location it started at", + "create.ponder.rotation_speed_controller.header": "UNLOCALIZED: Using the Rotational Speed Controller", + "create.ponder.rotation_speed_controller.text_1": "UNLOCALIZED: Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them", + "create.ponder.rotation_speed_controller.text_2": "UNLOCALIZED: Using the scroll input on its side, the conveyed speed can be configured", + + "create.ponder.sequenced_gearshift.header": "UNLOCALIZED: Controlling Rotational Speed using Sequenced Gearshifts", + "create.ponder.sequenced_gearshift.text_1": "UNLOCALIZED: Seq. Gearshifts relay rotation by following a timed list of instructions", + "create.ponder.sequenced_gearshift.text_2": "UNLOCALIZED: Right-click it to open the Configuration UI", + "create.ponder.sequenced_gearshift.text_3": "UNLOCALIZED: Upon receiving a Redstone Signal, it will start running its configured sequence", + "create.ponder.sequenced_gearshift.text_4": "UNLOCALIZED: Once finished, it waits for the next Redstone Signal and starts over", + "create.ponder.sequenced_gearshift.text_5": "UNLOCALIZED: A redstone comparator can be used to read the current progress", + "create.ponder.shaft.header": "UNLOCALIZED: Relaying rotational force using Shafts", "create.ponder.shaft.text_1": "UNLOCALIZED: Shafts will relay rotation in a straight line.", diff --git a/src/generated/resources/data/create/advancements/aesthetics.json b/src/generated/resources/data/create/advancements/aesthetics.json index d723cbe38..59a86f429 100644 --- a/src/generated/resources/data/create/advancements/aesthetics.json +++ b/src/generated/resources/data/create/advancements/aesthetics.json @@ -28,8 +28,8 @@ "trigger": "create:bracket_apply", "conditions": { "accepted_entries": [ - "create:cogwheel", - "create:large_cogwheel" + "create:large_cogwheel", + "create:cogwheel" ] } }, diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java index 2dab48a50..07dedf3b1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java @@ -76,7 +76,8 @@ public class FlywheelTileEntity extends GeneratingKineticTileEntity { super.tick(); if (world.isRemote) { - visualSpeed.target(getGeneratedSpeed()); + float targetSpeed = isVirtual() ? speed : getGeneratedSpeed(); + visualSpeed.target(targetSpeed); visualSpeed.tick(); angle += visualSpeed.value * 3 / 10f; angle %= 360; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerRenderer.java index f4e324071..786a4b8b4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerRenderer.java @@ -41,11 +41,12 @@ public class SpeedControllerRenderer extends SmartTileEntityRenderer 1 / 512f) @@ -897,4 +898,10 @@ public class PonderUI extends NavigatableSimiScreen { skipCooling = 15; } + @Override + public void removed() { + super.removed(); + SuperRenderTypeBuffer.vertexSortingOrigin = BlockPos.ZERO; + } + } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java index 03ab44c64..e2d9fcab8 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java @@ -1,23 +1,32 @@ package com.simibubi.create.foundation.ponder.content; +import java.io.File; + import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.crank.ValveHandleBlock; import com.simibubi.create.content.contraptions.components.waterwheel.WaterWheelBlock; +import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftBlock; import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock; +import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; import com.simibubi.create.foundation.ponder.ElementLink; import com.simibubi.create.foundation.ponder.SceneBuilder; import com.simibubi.create.foundation.ponder.SceneBuildingUtil; import com.simibubi.create.foundation.ponder.Selection; import com.simibubi.create.foundation.ponder.elements.InputWindowElement; import com.simibubi.create.foundation.ponder.elements.WorldSectionElement; +import com.simibubi.create.foundation.ponder.instructions.EmitParticlesInstruction.Emitter; import com.simibubi.create.foundation.utility.Pointing; import com.tterrag.registrate.util.entry.BlockEntry; import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.FurnaceBlock; +import net.minecraft.block.RedstoneWireBlock; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.particles.ParticleTypes; import net.minecraft.util.Direction; import net.minecraft.util.Direction.Axis; import net.minecraft.util.math.AxisAlignedBB; @@ -280,7 +289,7 @@ public class KineticsScenes { scene.title("gearbox", "Relaying rotational force using Gearboxes"); scene.configureBasePlate(1, 1, 5); scene.setSceneOffsetY(-1); - + scene.world.showSection(util.select.layer(0), Direction.UP); scene.world.showSection(util.select.fromTo(4, 1, 6, 3, 2, 5), Direction.UP); scene.idle(10); @@ -689,4 +698,307 @@ public class KineticsScenes { scene.idle(90); } + public static void sequencedGearshift(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("sequenced_gearshift", "Controlling Rotational Speed using Sequenced Gearshifts"); + scene.configureBasePlate(1, 0, 5); + scene.showBasePlate(); + + Selection redstone = util.select.fromTo(3, 1, 0, 3, 1, 1); + + scene.world.showSection(util.select.position(6, 0, 3) + .add(redstone), Direction.UP); + scene.idle(5); + scene.world.showSection(util.select.fromTo(6, 1, 2, 4, 1, 2), Direction.DOWN); + + BlockPos gearshiftPos = util.grid.at(3, 1, 2); + Selection gearshiftSelection = util.select.position(gearshiftPos); + BlockPos bearingPos = util.grid.at(1, 1, 2); + BlockPos buttonPos = util.grid.at(3, 1, 0); + Selection outputKinetics = util.select.fromTo(3, 1, 2, 1, 1, 2); + + scene.world.setKineticSpeed(gearshiftSelection, 0); + scene.idle(10); + + scene.world.showSection(gearshiftSelection, Direction.DOWN); + scene.idle(10); + + scene.world.showSection(util.select.fromTo(2, 1, 2, 1, 1, 2), Direction.EAST); + scene.idle(10); + + Vec3d top = util.vector.topOf(gearshiftPos); + scene.overlay.showText(60) + .text("Seq. Gearshifts relay rotation by following a timed list of instructions") + .attachKeyFrame() + .pointAt(top) + .placeNearTarget(); + scene.idle(80); + + scene.overlay.showControls(new InputWindowElement(top, Pointing.DOWN).rightClick(), 40); + scene.idle(7); + scene.overlay.showSelectionWithText(gearshiftSelection, 50) + .colored(PonderPalette.BLUE) + .text("Right-click it to open the Configuration UI") + .pointAt(top) + .placeNearTarget(); + scene.idle(60); + + ElementLink contraption = + scene.world.showIndependentSection(util.select.fromTo(0, 3, 2, 0, 0, 2), Direction.EAST); + scene.world.configureCenterOfRotation(contraption, util.vector.centerOf(bearingPos)); + + scene.idle(20); + scene.world.toggleRedstonePower(redstone); + scene.effects.indicateRedstone(buttonPos); + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, 16); + scene.world.rotateBearing(bearingPos, 90, 40); + scene.world.rotateSection(contraption, 90, 0, 0, 40); + scene.effects.rotationDirectionIndicator(gearshiftPos.west()); + scene.idle(20); + scene.world.toggleRedstonePower(redstone); + scene.idle(20); + + scene.overlay.showText(80) + .text("Upon receiving a Redstone Signal, it will start running its configured sequence") + .attachKeyFrame() + .pointAt(top); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, -32); + scene.world.rotateBearing(bearingPos, -180, 40); + scene.world.rotateSection(contraption, -180, 0, 0, 40); + scene.effects.rotationDirectionIndicator(gearshiftPos.west()); + scene.idle(40); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, 0); + scene.idle(20); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, 16); + scene.world.rotateBearing(bearingPos, 90, 40); + scene.world.rotateSection(contraption, 90, 0, 0, 40); + scene.effects.rotationDirectionIndicator(gearshiftPos.west()); + scene.idle(40); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, 0); + + scene.idle(20); + scene.overlay.showText(70) + .text("Once finished, it waits for the next Redstone Signal and starts over") + .pointAt(util.vector.topOf(util.grid.at(3, 0, 1))); + scene.idle(80); + + scene.idle(20); + scene.world.toggleRedstonePower(redstone); + scene.effects.indicateRedstone(buttonPos); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, 16); + scene.world.rotateBearing(bearingPos, 90, 40); + scene.world.rotateSection(contraption, 90, 0, 0, 40); + scene.effects.rotationDirectionIndicator(gearshiftPos.west()); + scene.idle(20); + + scene.overlay.showText(60) + .text("A redstone comparator can be used to read the current progress") + .attachKeyFrame() + .pointAt(util.vector.topOf(util.grid.at(3, 0, 1))); + + scene.world.hideSection(redstone, Direction.NORTH); + scene.idle(15); + + BlockPos wire = util.grid.at(5, 1, 0); + Selection nixie = util.select.position(4, 1, 0); + ElementLink comparator = + scene.world.showIndependentSection(util.select.fromTo(5, 1, 1, 4, 1, 0), Direction.SOUTH); + scene.world.moveSection(comparator, util.vector.of(-2, 0, 0), 0); + scene.world.toggleRedstonePower(util.select.position(5, 1, 1)); + scene.world.cycleBlockProperty(wire, RedstoneWireBlock.POWER); + scene.world.modifyTileNBT(nixie, NixieTubeTileEntity.class, nbt -> nbt.putInt("RedstoneStrength", 1)); + + scene.idle(5); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, -32); + scene.world.rotateBearing(bearingPos, -180, 40); + scene.world.rotateSection(contraption, -180, 0, 0, 40); + scene.effects.rotationDirectionIndicator(gearshiftPos.west()); + scene.world.cycleBlockProperty(wire, RedstoneWireBlock.POWER); + scene.world.modifyTileNBT(nixie, NixieTubeTileEntity.class, nbt -> nbt.putInt("RedstoneStrength", 2)); + scene.idle(40); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, 0); + scene.world.cycleBlockProperty(wire, RedstoneWireBlock.POWER); + scene.world.modifyTileNBT(nixie, NixieTubeTileEntity.class, nbt -> nbt.putInt("RedstoneStrength", 3)); + scene.idle(20); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.setKineticSpeed(outputKinetics, 16); + scene.world.rotateBearing(bearingPos, 90, 40); + scene.world.rotateSection(contraption, 90, 0, 0, 40); + scene.effects.rotationDirectionIndicator(gearshiftPos.west()); + scene.world.cycleBlockProperty(wire, RedstoneWireBlock.POWER); + scene.world.modifyTileNBT(nixie, NixieTubeTileEntity.class, nbt -> nbt.putInt("RedstoneStrength", 4)); + scene.idle(40); + + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.cycleBlockProperty(gearshiftPos, SequencedGearshiftBlock.STATE); + scene.world.modifyBlock(wire, s -> s.with(RedstoneWireBlock.POWER, 0), false); + scene.world.toggleRedstonePower(util.select.position(5, 1, 1)); + scene.world.modifyTileNBT(nixie, NixieTubeTileEntity.class, nbt -> nbt.putInt("RedstoneStrength", 0)); + scene.world.setKineticSpeed(outputKinetics, 0); + } + + public static void furnaceEngine(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("furnace_engine", "Generating Rotational Force using the Furnace Engine"); + scene.configureBasePlate(0, 0, 6); + scene.world.showSection(util.select.layer(0), Direction.UP); + + BlockPos furnacePos = util.grid.at(4, 1, 3); + BlockPos cogPos = util.grid.at(1, 1, 2); + BlockPos gaugePos = util.grid.at(1, 1, 1); + + scene.idle(5); + Selection furnaceSelect = util.select.position(furnacePos); + scene.world.showSection(furnaceSelect, Direction.DOWN); + scene.idle(10); + scene.world.showSection(util.select.position(furnacePos.west()), Direction.DOWN); + scene.idle(10); + scene.world.showSection(util.select.position(furnacePos.west(3)), Direction.EAST); + scene.idle(10); + + scene.overlay.showText(80) + .attachKeyFrame() + .placeNearTarget() + .pointAt(util.vector.topOf(furnacePos.west())) + .text("Furnace Engines generate Rotational Force while their attached Furnace is running"); + scene.idle(90); + + scene.overlay.showControls( + new InputWindowElement(util.vector.topOf(furnacePos), Pointing.DOWN).withItem(new ItemStack(Items.OAK_LOG)), + 30); + scene.idle(5); + scene.overlay + .showControls(new InputWindowElement(util.vector.blockSurface(furnacePos, Direction.NORTH), Pointing.RIGHT) + .withItem(new ItemStack(Items.COAL)), 30); + scene.idle(7); + scene.world.cycleBlockProperty(furnacePos, FurnaceBlock.LIT); + scene.effects.emitParticles(util.vector.of(4.5, 1.2, 2.9), Emitter.simple(ParticleTypes.LAVA, Vec3d.ZERO), 4, + 1); + scene.world.setKineticSpeed(util.select.fromTo(1, 1, 3, 1, 1, 1), 16); + scene.idle(40); + + scene.world.showSection(util.select.position(cogPos), Direction.SOUTH); + scene.idle(15); + scene.effects.rotationSpeedIndicator(cogPos); + scene.world.showSection(util.select.position(gaugePos), Direction.SOUTH); + scene.idle(15); + + scene.overlay.showText(80) + .attachKeyFrame() + .placeNearTarget() + .colored(PonderPalette.GREEN) + .pointAt(util.vector.blockSurface(gaugePos, Direction.WEST)) + .text("The provided Rotational Force has a very large stress capacity"); + scene.idle(90); + + ElementLink engine = + scene.world.makeSectionIndependent(util.select.fromTo(3, 1, 3, 1, 1, 1)); + scene.world.moveSection(engine, util.vector.of(0, 1, 0), 15); + scene.idle(10); + scene.world.hideSection(furnaceSelect, Direction.NORTH); + scene.idle(15); + scene.world.setBlock(furnacePos, Blocks.BLAST_FURNACE.getDefaultState() + .with(FurnaceBlock.FACING, Direction.NORTH) + .with(FurnaceBlock.LIT, true), false); + scene.world.showSection(furnaceSelect, Direction.NORTH); + scene.idle(10); + scene.world.moveSection(engine, util.vector.of(0, -1, 0), 15); + scene.idle(10); + scene.world.setKineticSpeed(util.select.fromTo(1, 1, 3, 1, 1, 1), 32); + scene.idle(5); + scene.effects.rotationSpeedIndicator(cogPos); + + scene.overlay.showText(80) + .placeNearTarget() + .colored(PonderPalette.MEDIUM) + .pointAt(util.vector.topOf(furnacePos.west())) + .text("Using a Blast Furnace will double the efficiency of the Engine"); + + } + + public static void speedController(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("rotation_speed_controller", "Using the Rotational Speed Controller"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + scene.idle(5); + + BlockPos cogPos = util.grid.at(1, 2, 1); + Selection gaugeSelect = util.select.position(1, 2, 3); + + scene.world.multiplyKineticSpeed(util.select.everywhere(), 0.5f); + scene.world.setKineticSpeed(gaugeSelect, 0); + scene.world.showSection(util.select.fromTo(5, 1, 1, 2, 1, 1), Direction.DOWN); + scene.world.showSection(util.select.fromTo(1, 1, 3, 1, 2, 3), Direction.DOWN); + scene.idle(10); + ElementLink rsc = + scene.world.showIndependentSection(util.select.position(0, 1, 1), Direction.DOWN); + scene.world.moveSection(rsc, util.vector.of(1, 0, 0), 0); + ElementLink rsc2 = + scene.world.showIndependentSection(util.select.position(1, 1, 1), Direction.DOWN); + scene.world.moveSection(rsc2, util.vector.of(0, -100, 0), 0); + scene.idle(10); + scene.world.showSection(util.select.position(1, 2, 1), Direction.DOWN); + scene.idle(15); + scene.effects.indicateSuccess(cogPos); + scene.world.moveSection(rsc2, util.vector.of(0, 100, 0), 0); + scene.world.moveSection(rsc, util.vector.of(0, -100, 0), 0); + scene.idle(5); + scene.world.showSection(util.select.position(1, 2, 2), Direction.DOWN); + scene.idle(10); + scene.world.setKineticSpeed(gaugeSelect, 8); + scene.effects.indicateSuccess(util.grid.at(1, 2, 3)); + + scene.overlay.showText(90) + .placeNearTarget() + .attachKeyFrame() + .pointAt(util.vector.blockSurface(cogPos, Direction.NORTH)) + .text("Rot. Speed Controllers relay rotation from their axis to a Large Cogwheel above them"); + scene.idle(100); + + Vec3d inputVec = util.vector.of(1.5, 1.75, 1); + scene.overlay.showFilterSlotInput(inputVec, 60); + + scene.overlay.showText(70) + .placeNearTarget() + .attachKeyFrame() + .pointAt(inputVec) + .text("Using the scroll input on its side, the conveyed speed can be configured"); + scene.idle(80); + + InputWindowElement input = new InputWindowElement(inputVec, Pointing.UP).scroll(); + scene.overlay.showControls(input, 40); + scene.idle(15); + scene.world.multiplyKineticSpeed(util.select.fromTo(1, 2, 1, 1, 2, 3), 4); + scene.effects.rotationSpeedIndicator(cogPos); + scene.idle(55); + scene.markAsFinished(); + + scene.overlay.showControls(input, 30); + scene.idle(15); + scene.world.multiplyKineticSpeed(util.select.fromTo(1, 2, 1, 1, 2, 3), 4); + scene.effects.rotationSpeedIndicator(cogPos); + scene.idle(55); + + scene.overlay.showControls(input, 30); + scene.idle(15); + scene.world.multiplyKineticSpeed(util.select.fromTo(1, 2, 1, 1, 2, 3), -.05f); + scene.effects.rotationSpeedIndicator(cogPos); + scene.idle(35); + } + } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java index e24c22914..d73c72246 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java @@ -45,6 +45,9 @@ public class PonderIndex { PonderRegistry.addStoryBoard(AllBlocks.GEARSHIFT, "gearshift", KineticsScenes::gearshift, PonderTag.KINETIC_RELAYS); + PonderRegistry.forComponents(AllBlocks.SEQUENCED_GEARSHIFT) + .addStoryBoard("sequenced_gearshift", KineticsScenes::sequencedGearshift); + PonderRegistry.forComponents(AllBlocks.ENCASED_FAN) .addStoryBoard("fan/direction", FanScenes::direction, PonderTag.KINETIC_APPLIANCES) .addStoryBoard("fan/processing", FanScenes::processing) @@ -67,6 +70,11 @@ public class PonderIndex { PonderRegistry.forComponents(AllBlocks.ENCASED_CHAIN_DRIVE, AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT) .addStoryBoard("chain_drive/gearshift", ChainDriveScenes::adjustableChainGearshift); + PonderRegistry.forComponents(AllBlocks.FURNACE_ENGINE, AllBlocks.FLYWHEEL) + .addStoryBoard("furnace_engine", KineticsScenes::furnaceEngine); + PonderRegistry.forComponents(AllBlocks.ROTATION_SPEED_CONTROLLER) + .addStoryBoard("speed_controller", KineticsScenes::speedController); + // Funnels PonderRegistry.addStoryBoard(AllBlocks.BRASS_FUNNEL, "funnels/brass", FunnelScenes::brass); PonderRegistry.forComponents(AllBlocks.ANDESITE_FUNNEL, AllBlocks.BRASS_FUNNEL) diff --git a/src/main/java/com/simibubi/create/foundation/renderState/SuperRenderTypeBuffer.java b/src/main/java/com/simibubi/create/foundation/renderState/SuperRenderTypeBuffer.java index 6c2eb5e87..66cefb99d 100644 --- a/src/main/java/com/simibubi/create/foundation/renderState/SuperRenderTypeBuffer.java +++ b/src/main/java/com/simibubi/create/foundation/renderState/SuperRenderTypeBuffer.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.renderState; +import java.util.Objects; +import java.util.Optional; import java.util.SortedMap; import com.mojang.blaze3d.systems.RenderSystem; @@ -13,9 +15,11 @@ import net.minecraft.client.renderer.RegionRenderCacheBuilder; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.model.ModelBakery; import net.minecraft.util.Util; +import net.minecraft.util.math.BlockPos; public class SuperRenderTypeBuffer implements IRenderTypeBuffer { + public static BlockPos vertexSortingOrigin = BlockPos.ZERO; static SuperRenderTypeBuffer instance; public static SuperRenderTypeBuffer getInstance() { @@ -65,6 +69,7 @@ public class SuperRenderTypeBuffer implements IRenderTypeBuffer { // Visible clones from net.minecraft.client.renderer.RenderTypeBuffers static final RegionRenderCacheBuilder blockBuilders = new RegionRenderCacheBuilder(); + static final SortedMap createEntityBuilders() { return Util.make(new Object2ObjectLinkedOpenHashMap<>(), (map) -> { map.put(Atlases.getEntitySolid(), blockBuilders.get(RenderType.getSolid())); @@ -86,7 +91,6 @@ public class SuperRenderTypeBuffer implements IRenderTypeBuffer { }); }); } - private static void assign(Object2ObjectLinkedOpenHashMap map, RenderType type) { map.put(type, new BufferBuilder(type.getExpectedBufferSize())); @@ -96,6 +100,20 @@ public class SuperRenderTypeBuffer implements IRenderTypeBuffer { super(new BufferBuilder(256), createEntityBuilders()); } + public void draw(RenderType p_228462_1_) { + BlockPos v = vertexSortingOrigin; + BufferBuilder bufferbuilder = layerBuffers.getOrDefault(p_228462_1_, this.fallbackBuffer); + boolean flag = Objects.equals(this.currentLayer, p_228462_1_.asOptional()); + if (flag || bufferbuilder != this.fallbackBuffer) { + if (this.activeConsumers.remove(bufferbuilder)) { + p_228462_1_.draw(bufferbuilder, v.getX(), v.getY(), v.getZ()); + if (flag) { + this.currentLayer = Optional.empty(); + } + } + } + } + } } diff --git a/src/main/resources/ponder/furnace_engine.nbt b/src/main/resources/ponder/furnace_engine.nbt new file mode 100644 index 0000000000000000000000000000000000000000..fe916ecc784b5195a8482e1a2a2e3a7ce1d5661f GIT binary patch literal 600 zcmV-e0;l~SiwFP!000000F9N~irX*{h9{Pkb+WX(TUzKV^c8y96iRQF(mmW7tuuB+ z6v;>m?(T#2`6@fHlR8eA0pkNR-~8iWLUVu_aIfBw0YGz2~r6bv@Lk(wME4!JzUpZH~7ZBeoIn{s$U# z@p;)N3b^Y(E@UNh6<(o*rVDHJ($?ni8*cUz3;kNJ5cL^x$NPov#r;2Hv2{k~n4u}- zm?O(!h!K0tPS*NSZE&yhTSRrQGY~%mZg!_)0yn=gR~7mv9|w*HX*b5*CN|BTEJ7!Q z!MhIoXoJ*e7T{3TH0E4YQez0%oV`~m@Ov4xd_HujS1MqZTN6i*MP0_nLxwlD&e{V! z4mtnjY=y2l+f$ep(GOEXvaM3Mm4B4aq_(Ea3gvtNQAq6%$gxE_0AANI!D(BT(fwU{ ztZu+CdFw%)OIo_JkzVf1J|j+eyA7)p=5fY2Qc%_a*I0y}cd~5Gka&$goTwPAl|e1j mD)f`|l8kj>)ss&Bj*eb`mq9+G^Nn6e|H41EBOs1(2><|+VHkq| literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/sequenced_gearshift.nbt b/src/main/resources/ponder/sequenced_gearshift.nbt new file mode 100644 index 0000000000000000000000000000000000000000..3d91ad4850a4fcc44778e7166a1590f8e5ea5c51 GIT binary patch literal 1021 zcmVb~jr#w|3pfAy%2kA8(S(GElvO{E30fsDd=9_PZpJwPGAp=4+{|y2{ zNcrjGhvFw3kO+j~hJz;MH6XodCX=Ne;=>mM668|XP9CvWKtgSp0qfDU@jGn1mQCP* zLmhBJ2b`L-cL2xluxaB24mi{SCv?E6Ir|QE_8sbc2!}f0gbp}0=fI)PfkT}S;ZO&h z&;h6BOdaY>9qN1thdSVdoj5}hh^Yz4(=nvlNC6Y0K+MgeT#Sg%Q}RKg0L@PXzv2*^ zVhSD6H`z9jeT!T{e6->M62)fbB$2C}DQ2V!$nnd<SJI@K195wC?@$D4CL5*uD9nS(0-0z{;r0ME*K70y_uAtJpQmb-iw zQsJ4S2J1L-w2ytY{F;Eu-Bk89&ND4{Z9S^NKZqqOnfKOtlYcnJ&1c*x{_7dA91dI!~nUE?b#!cm= zZfiA-BimI=ul5K$4cEZq@cRHM3r9bC<$#;&EI3Yj>s1{330KmRm z`8Mc4n?f!0|pqlpgj%U%aaDs_>x9s~kynBjRwImWAr@hUOC1BW5`@h|bB z4!xibz1YMd4jfv`34tVMCV-%qaz1#r%IhBEN4@&tbvnREFNB?AZst-=0%#wxltse4 zdvR{Tw1*c5Oxva4zZ_)QuaDqA*$<%AGm7hrO9O%3UZi9kpRjmlgS&0;#Q+{giX;9& zNjx4QlfJh5>_;*&HkzvtF>$(BieZIbk^ zPx3v(GA`)&yRQ34Q= z&#&F1@nYr`=Saz;Rq^RsUea{%wUe@#8^i6YK5PR$W>XFirdYyAv7tGb zkA>m(ZidHzNkzonKM^{S^Zx45VEym?{D4_9;ChwMv`9u+%kY(wDOdKX0)yE?Xz&*6 zyvBQJm9RU(Y*DYy zTKq@W(yc(PAx>ayo