Last kinetic relays and generators

- Fixed transparency depth sorting inside ponder UI
- Scenes for Seq. Gearshift, Furnace Engine/Flywheel and Rotation Speed Controllers
This commit is contained in:
simibubi 2021-03-17 01:23:16 +01:00
parent a897b5e78b
commit 1d3e057dda
26 changed files with 594 additions and 32 deletions

View file

@ -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

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -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.",

View file

@ -28,8 +28,8 @@
"trigger": "create:bracket_apply",
"conditions": {
"accepted_entries": [
"create:cogwheel",
"create:large_cogwheel"
"create:large_cogwheel",
"create:cogwheel"
]
}
},

View file

@ -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;

View file

@ -41,11 +41,12 @@ public class SpeedControllerRenderer extends SmartTileEntityRenderer<SpeedContro
BlockPos pos = tileEntityIn.getPos();
World world = tileEntityIn.getWorld();
BlockState blockState = tileEntityIn.getBlockState();
boolean alongX = blockState.get(SpeedControllerBlock.HORIZONTAL_AXIS) == Axis.X;
SuperByteBuffer bracket = AllBlockPartials.SPEED_CONTROLLER_BRACKET.renderOn(blockState);
bracket.translate(0, 1, 0);
bracket.rotateCentered(Direction.UP,
(float) (blockState.get(SpeedControllerBlock.HORIZONTAL_AXIS) == Axis.X ? Math.PI : 0));
(float) (alongX ? Math.PI : Math.PI / 2));
bracket.light(WorldRenderer.getLightmapCoordinates(world, pos.up()));
bracket.renderInto(ms, builder);
}

View file

@ -121,6 +121,11 @@ public class SpeedControllerTileEntity extends KineticTileEntity {
hasBracket = AllBlocks.LARGE_COGWHEEL.has(stateAbove) && stateAbove.get(CogWheelBlock.AXIS)
.isHorizontal();
}
@Override
public boolean shouldRenderAsTE() {
return true;
}
private class ControllerValueBoxTransform extends ValueBoxTransform.Sided {

View file

@ -150,6 +150,8 @@ public class SequencedGearshiftTileEntity extends SplitShaftTileEntity {
@Override
public float getRotationSpeedModifier(Direction face) {
if (isVirtual())
return 1;
return (!hasSource() || face == getSourceFacing()) ? 1 : getModifier();
}

View file

@ -351,6 +351,7 @@ public class PonderUI extends NavigatableSimiScreen {
}
protected void renderVisibleScenes(int mouseX, int mouseY, float partialTicks) {
SuperRenderTypeBuffer.vertexSortingOrigin = new BlockPos(0, 0, 800);
renderScene(mouseX, mouseY, index, partialTicks);
float lazyIndexValue = lazyIndex.getValue(partialTicks);
if (Math.abs(lazyIndexValue - index) > 1 / 512f)
@ -897,4 +898,10 @@ public class PonderUI extends NavigatableSimiScreen {
skipCooling = 15;
}
@Override
public void removed() {
super.removed();
SuperRenderTypeBuffer.vertexSortingOrigin = BlockPos.ZERO;
}
}

View file

@ -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<WorldSectionElement> 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<WorldSectionElement> 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<WorldSectionElement> 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<WorldSectionElement> rsc =
scene.world.showIndependentSection(util.select.position(0, 1, 1), Direction.DOWN);
scene.world.moveSection(rsc, util.vector.of(1, 0, 0), 0);
ElementLink<WorldSectionElement> 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);
}
}

View file

@ -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)

View file

@ -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<RenderType, BufferBuilder> 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<RenderType, BufferBuilder> 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();
}
}
}
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.