Birbs and Click input

This commit is contained in:
simibubi 2021-02-18 15:44:18 +01:00
parent fd99acc00a
commit 203ca6f849
39 changed files with 757 additions and 296 deletions

View file

@ -401,18 +401,18 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
e3f618c5b622d21880de858678d1802cbf65e615 assets/create/lang/en_ud.json
694cfe3d8fe9793b7ac0fbc7bbd3cf6bf455bf92 assets/create/lang/en_us.json
499d461cf16f5a94049fbbe9eb758e0eaa19fa83 assets/create/lang/unfinished/de_de.json
8e486714ce38b6702fc614f4ba7cd34e003800aa assets/create/lang/unfinished/es_mx.json
53f2918966bd9c045314a02ff0f5439720969087 assets/create/lang/unfinished/fr_fr.json
073ead0ceacdcf666fece6a78071a36fa9c3d356 assets/create/lang/unfinished/it_it.json
0967bfc8888598329563ff6ee419038aef03df0a assets/create/lang/unfinished/ja_jp.json
50e210e32d4a55561ffed5a62ac10802107b719e assets/create/lang/unfinished/ko_kr.json
40784b923f0defdecbd35f73c7d7ead9c3fe9d8a assets/create/lang/unfinished/nl_nl.json
ad719b1559c58c9e7c1b22023c5e686d4fa1ca19 assets/create/lang/unfinished/pt_br.json
1190f9152de89c7e0b7561c3cdddae6fe2f1aa19 assets/create/lang/unfinished/ru_ru.json
bbcd8d37a18c779dfcca9aeaeb2b2d101a4b4fe2 assets/create/lang/unfinished/zh_cn.json
be270f1d2bc61ebd4a9f1be5b00daa56947de2d7 assets/create/lang/unfinished/zh_tw.json
1c2c42b885b5d2b23f452d1550fb6c3a3a7ab952 assets/create/lang/en_us.json
90fb5c8d2b384d93c3bbc2693103be18a0ff3dc7 assets/create/lang/unfinished/de_de.json
3789e356240833be498849723cde53f12553c889 assets/create/lang/unfinished/es_mx.json
89aa38cb8250cd56dff4ae00d1491aea7e8aea36 assets/create/lang/unfinished/fr_fr.json
61e46061b0e9487f381c32a6c1004aacdb0be2b1 assets/create/lang/unfinished/it_it.json
70d3beec87b4e461b02b38feec572fcf92ffad35 assets/create/lang/unfinished/ja_jp.json
d77cefebb91bce27fc098d4e5a81a39c5b3f10de assets/create/lang/unfinished/ko_kr.json
6f7f629f4e8597c39f1cb259359e451255b31864 assets/create/lang/unfinished/nl_nl.json
0fd66b2ff7124cff646f32cebcd679d5e16ed805 assets/create/lang/unfinished/pt_br.json
5cf5aae29b48a7066c98dfbb130f58dcca7be5f6 assets/create/lang/unfinished/ru_ru.json
d1afca478f7ceaa739220873cfdff4f2caa3b3fd assets/create/lang/unfinished/zh_cn.json
ee8599a8bf1c4fac02dc9501de5d08f58b19f395 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

View file

@ -1797,14 +1797,11 @@
"create.ponder.hold_to_ponder": "Hold [%1$s] to Ponder",
"create.ponder.pondering": "Pondering about...",
"create.ponder.shared.more_shared": "This is Shared stuff",
"create.ponder.shared.when_wrenched": "When Wrenched",
"create.ponder.cogwheel.scene_0.title": "My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "Sneak +",
"create.ponder.shared.ctrl_and": "Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "Das X axis",
"create.ponder.brass_hand.scene_0.y": "Das Y axis",
@ -1814,11 +1811,13 @@
"create.ponder.brass_hand.scene_1.title": "Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "Incoming...",
"create.ponder.brass_hand.scene_4.title": "Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1119",
"_": "Missing Localizations: 1124",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1798,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1815,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 910",
"_": "Missing Localizations: 915",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "UNLOCALIZED: Kinetic Stats:",
"create.gui.goggles.at_current_speed": "UNLOCALIZED: at current speed",
"create.gui.goggles.pole_length": "UNLOCALIZED: Pole Length:",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "UNLOCALIZED: Gauge Information:",
"create.gui.speedometer.title": "UNLOCALIZED: Rotation Speed",
"create.gui.stressometer.title": "UNLOCALIZED: Network Stress",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 690",
"_": "Missing Localizations: 695",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "Statistiques cinétiques:",
"create.gui.goggles.at_current_speed": "À la vitesse actuelle",
"create.gui.goggles.pole_length": "Longueur de la barre",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "Informations sur la jauge:",
"create.gui.speedometer.title": "Vitesse de rotation",
"create.gui.stressometer.title": "Stress du réseau",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 27",
"_": "Missing Localizations: 32",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "Statistiche cinetiche:",
"create.gui.goggles.at_current_speed": "Alla velocità attuale",
"create.gui.goggles.pole_length": "Lunghezza palo:",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "Informazioni sul calibro:",
"create.gui.speedometer.title": "Velocità di rotazione",
"create.gui.stressometer.title": "Stress della rete",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 36",
"_": "Missing Localizations: 41",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "動力の統計:",
"create.gui.goggles.at_current_speed": "現在の速度",
"create.gui.goggles.pole_length": "ポールの長さ:",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "計器の情報:",
"create.gui.speedometer.title": "回転速度",
"create.gui.stressometer.title": "ネットワークの応力",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 79",
"_": "Missing Localizations: 84",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "가동 상태:",
"create.gui.goggles.at_current_speed": "현재 에너지량",
"create.gui.goggles.pole_length": "UNLOCALIZED: Pole Length:",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "게이지 정보:",
"create.gui.speedometer.title": "회전 속도",
"create.gui.stressometer.title": "네트워크 부하",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1179",
"_": "Missing Localizations: 1184",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "UNLOCALIZED: Kinetic Stats:",
"create.gui.goggles.at_current_speed": "UNLOCALIZED: at current speed",
"create.gui.goggles.pole_length": "UNLOCALIZED: Pole Length:",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "UNLOCALIZED: Gauge Information:",
"create.gui.speedometer.title": "UNLOCALIZED: Rotation Speed",
"create.gui.stressometer.title": "UNLOCALIZED: Network Stress",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1245",
"_": "Missing Localizations: 1250",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "UNLOCALIZED: Kinetic Stats:",
"create.gui.goggles.at_current_speed": "UNLOCALIZED: at current speed",
"create.gui.goggles.pole_length": "UNLOCALIZED: Pole Length:",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "UNLOCALIZED: Gauge Information:",
"create.gui.speedometer.title": "UNLOCALIZED: Rotation Speed",
"create.gui.stressometer.title": "UNLOCALIZED: Network Stress",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 29",
"_": "Missing Localizations: 34",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "Кинетическая статистика:",
"create.gui.goggles.at_current_speed": "На текущей скорости",
"create.gui.goggles.pole_length": "Длина поршня",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "Калибровочная информация:",
"create.gui.speedometer.title": "Скорость вращения",
"create.gui.stressometer.title": "Сетевой момент",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 27",
"_": "Missing Localizations: 32",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "动力学状态:",
"create.gui.goggles.at_current_speed": "当前速度应力值",
"create.gui.goggles.pole_length": "活塞杆长度:",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "仪表信息:",
"create.gui.speedometer.title": "旋转速度",
"create.gui.stressometer.title": "网络应力",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 32",
"_": "Missing Localizations: 37",
"_": "->------------------------] Game Elements [------------------------<-",
@ -823,6 +823,12 @@
"create.gui.goggles.kinetic_stats": "機械學狀態:",
"create.gui.goggles.at_current_speed": "現在速度動能值",
"create.gui.goggles.pole_length": "UNLOCALIZED: Pole Length:",
"create.gui.assembly.exception": "UNLOCALIZED: This Contraption was unable to assemble:",
"create.gui.assembly.exception.unmovableBlock": "UNLOCALIZED: Unmovable Block (%4$s) at [%1$s %2$s %3$s]",
"create.gui.assembly.exception.chunkNotLoaded": "UNLOCALIZED: The Block at [%1$s %2$s %3$s] was not in a loaded chunk",
"create.gui.assembly.exception.structureTooLarge": "UNLOCALIZED: There are too many Blocks included in the contraption.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.tooManyPistonPoles": "UNLOCALIZED: There are too many extension Poles attached to this Piston.\nThe configured maximum is: %1$s",
"create.gui.assembly.exception.noPistonPoles": "UNLOCALIZED: The Piston is missing some extension Poles",
"create.gui.gauge.info_header": "儀表訊息:",
"create.gui.speedometer.title": "旋轉速度",
"create.gui.stressometer.title": "網路動能",
@ -1792,14 +1798,11 @@
"create.ponder.hold_to_ponder": "UNLOCALIZED: Hold [%1$s] to Ponder",
"create.ponder.pondering": "UNLOCALIZED: Pondering about...",
"create.ponder.shared.more_shared": "UNLOCALIZED: This is Shared stuff",
"create.ponder.shared.when_wrenched": "UNLOCALIZED: When Wrenched",
"create.ponder.cogwheel.scene_0.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_1.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.cogwheel.scene_2.title": "UNLOCALIZED: My First Ponder Story, Parrots",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts seem to relay rotation in a straight line.",
"create.ponder.shared.sneak_and": "UNLOCALIZED: Sneak +",
"create.ponder.shared.ctrl_and": "UNLOCALIZED: Ctrl +",
"create.ponder.shaft.scene_0.shaft_relay": "UNLOCALIZED: Shafts will relay rotation in a straight line.",
"create.ponder.shaft.scene_0.title": "UNLOCALIZED: Relaying rotational force using Shafts",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: I could use Brass or Andesite Casing to hide them.",
"create.ponder.shaft.scene_1.shaft_can_be_encased": "UNLOCALIZED: Andesite or Brass Casing can be used to encase them.",
"create.ponder.shaft.scene_1.title": "UNLOCALIZED: Encasing Shafts",
"create.ponder.brass_hand.scene_0.x": "UNLOCALIZED: Das X axis",
"create.ponder.brass_hand.scene_0.y": "UNLOCALIZED: Das Y axis",
@ -1809,11 +1812,13 @@
"create.ponder.brass_hand.scene_1.title": "UNLOCALIZED: Debug Scene 2: Changing Blocks",
"create.ponder.brass_hand.scene_2.title": "UNLOCALIZED: Debug Scene 3: Showing Fluids",
"create.ponder.brass_hand.scene_2.fluids": "UNLOCALIZED: Fluid rendering test.",
"create.ponder.brass_hand.scene_3.outofbounds2": "UNLOCALIZED: Blocks outside of the base plate \n\nIgnored by scaling, thanks to configureBasePlate()",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate",
"create.ponder.brass_hand.scene_3.outofbounds": "UNLOCALIZED: Blocks outside of the base plate do not affect scaling",
"create.ponder.brass_hand.scene_3.thanks_to_configureBasePlate": "UNLOCALIZED: configureBasePlate() makes sure of that.",
"create.ponder.brass_hand.scene_3.title": "UNLOCALIZED: Debug Scene 4: Out of bounds / configureBasePlate",
"create.ponder.brass_hand.scene_4.incoming": "UNLOCALIZED: Incoming...",
"create.ponder.brass_hand.scene_4.title": "UNLOCALIZED: Debug Scene 5: Emitting particles",
"create.ponder.brass_hand.scene_5.title": "UNLOCALIZED: Debug Scene 6: Basic player interaction",
"create.ponder.brass_hand.scene_6.title": "UNLOCALIZED: Debug Scene 7: Birbs",
"_": "Thank you for translating Create!"

View file

@ -13,7 +13,7 @@ import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.TextFormatting;
public class SpeedGaugeTileEntity extends GaugeTileEntity{
public class SpeedGaugeTileEntity extends GaugeTileEntity {
public SpeedGaugeTileEntity(TileEntityType<? extends SpeedGaugeTileEntity> type) {
super(type);
@ -23,28 +23,36 @@ public class SpeedGaugeTileEntity extends GaugeTileEntity{
public void onSpeedChanged(float prevSpeed) {
super.onSpeedChanged(prevSpeed);
float speed = Math.abs(getSpeed());
float medium = AllConfigs.SERVER.kinetics.mediumSpeed.get().floatValue();
float fast = AllConfigs.SERVER.kinetics.fastSpeed.get().floatValue();
float max = AllConfigs.SERVER.kinetics.maxRotationSpeed.get().floatValue();
color = ColorHelper.mixColors(SpeedLevel.of(speed).getColor(), 0xffffff, .25f);
color = speed == 0 ? 0x333333
: ColorHelper.mixColors(SpeedLevel.of(speed)
.getColor(), 0xffffff, .25f);
if (speed == 69)
AllTriggers.triggerForNearbyPlayers(AllTriggers.SPEED_READ, world, pos, 6,
GogglesItem::canSeeParticles);
if (speed == 0) {
dialTarget = 0;
color = 0x333333;
} else if (speed < medium) {
dialTarget = MathHelper.lerp(speed / medium, 0, .45f);
} else if (speed < fast) {
dialTarget = MathHelper.lerp((speed - medium) / (fast - medium), .45f, .75f);
} else {
dialTarget = MathHelper.lerp((speed - fast) / (max - fast), .75f, 1.125f);
}
AllTriggers.triggerForNearbyPlayers(AllTriggers.SPEED_READ, world, pos, 6, GogglesItem::canSeeParticles);
dialTarget = getDialTarget(speed);
markDirty();
}
public static float getDialTarget(float speed) {
float medium = AllConfigs.SERVER.kinetics.mediumSpeed.get()
.floatValue();
float fast = AllConfigs.SERVER.kinetics.fastSpeed.get()
.floatValue();
float max = AllConfigs.SERVER.kinetics.maxRotationSpeed.get()
.floatValue();
float target = 0;
if (speed == 0)
target = 0;
else if (speed < medium)
target = MathHelper.lerp(speed / medium, 0, .45f);
else if (speed < fast)
target = MathHelper.lerp((speed - medium) / (fast - medium), .45f, .75f);
else
target = MathHelper.lerp((speed - fast) / (max - fast), .75f, 1.125f);
return target;
}
@Override
public boolean addToGoggleTooltip(List<String> tooltip, boolean isPlayerSneaking) {
super.addToGoggleTooltip(tooltip, isPlayerSneaking);

View file

@ -78,6 +78,9 @@ public enum AllGuiTextures {
INDICATOR_GREEN("widgets.png", 36, 18, 18, 6),
INDICATOR_YELLOW("widgets.png", 54, 18, 18, 6),
INDICATOR_RED("widgets.png", 72, 18, 18, 6),
SPEECH_TOOLTIP("widgets.png", 0, 24, 8, 8),
SPEECH_TOOLTIP_HIGHLIGHT("widgets.png", 8, 24, 8, 8),
;

View file

@ -70,7 +70,10 @@ public class AllIcons {
I_REPLACE = next(),
I_CLEAR = next(),
I_OVERLAY = next(),
I_FLATTEN = next();
I_FLATTEN = next(),
I_LMB = next(),
I_SCROLL = next(),
I_RMB = next();
public static final AllIcons
I_TOOL_DEPLOY = newRow(),

View file

@ -23,7 +23,6 @@ import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTSizeTracker;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3i;
import net.minecraft.world.gen.feature.template.PlacementSettings;
import net.minecraft.world.gen.feature.template.Template;

View file

@ -14,6 +14,7 @@ import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity;
import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity;
import com.simibubi.create.foundation.ponder.content.PonderPalette;
import com.simibubi.create.foundation.ponder.elements.InputWindowElement;
import com.simibubi.create.foundation.ponder.elements.ParrotElement;
import com.simibubi.create.foundation.ponder.elements.PonderOverlayElement;
import com.simibubi.create.foundation.ponder.elements.PonderSceneElement;
@ -21,12 +22,15 @@ import com.simibubi.create.foundation.ponder.elements.WorldSectionElement;
import com.simibubi.create.foundation.ponder.instructions.CreateParrotInstruction;
import com.simibubi.create.foundation.ponder.instructions.DelayInstruction;
import com.simibubi.create.foundation.ponder.instructions.DisplayWorldSectionInstruction;
import com.simibubi.create.foundation.ponder.instructions.EmitParticlesInstruction;
import com.simibubi.create.foundation.ponder.instructions.EmitParticlesInstruction.Emitter;
import com.simibubi.create.foundation.ponder.instructions.HideAllInstruction;
import com.simibubi.create.foundation.ponder.instructions.MarkAsFinishedInstruction;
import com.simibubi.create.foundation.ponder.instructions.MovePoiInstruction;
import com.simibubi.create.foundation.ponder.instructions.ReplaceBlocksInstruction;
import com.simibubi.create.foundation.ponder.instructions.RotateSceneInstruction;
import com.simibubi.create.foundation.ponder.instructions.ShowCompleteSchematicInstruction;
import com.simibubi.create.foundation.ponder.instructions.ShowInputInstruction;
import com.simibubi.create.foundation.ponder.instructions.TextInstruction;
import com.simibubi.create.foundation.ponder.instructions.TileEntityDataInstruction;
import com.simibubi.create.foundation.renderState.SuperRenderTypeBuffer;
@ -41,6 +45,7 @@ import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.Matrix4f;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.Vector4f;
import net.minecraft.particles.RedstoneParticleData;
import net.minecraft.util.Direction;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
@ -360,7 +365,7 @@ public class PonderScene {
}
public SceneBuilder replaceBlocks(Select selection, BlockState state) {
return addInstruction(new ReplaceBlocksInstruction(selection, state, false));
return addInstruction(new ReplaceBlocksInstruction(selection, state, true));
}
public SceneBuilder setKineticSpeed(Select selection, float speed) {
@ -373,17 +378,11 @@ public class PonderScene {
public SceneBuilder modifyKineticSpeed(Select selection, UnaryOperator<Float> speedFunc) {
addInstruction(new TileEntityDataInstruction(selection, SpeedGaugeTileEntity.class, nbt -> {
if (!nbt.contains("Speed"))
return nbt;
float newSpeed = speedFunc.apply(nbt.getFloat("Speed"));
// TODO speed gauge consistency
nbt.putFloat("Value", Math.abs(newSpeed) / 256f);
nbt.putFloat("Value", SpeedGaugeTileEntity.getDialTarget(newSpeed));
return nbt;
}, false));
return addInstruction(new TileEntityDataInstruction(selection, KineticTileEntity.class, nbt -> {
if (!nbt.contains("Speed"))
return nbt;
nbt.putFloat("Speed", speedFunc.apply(nbt.getFloat("Speed")));
return nbt;
}, false));
@ -396,19 +395,42 @@ public class PonderScene {
}, false));
}
public SceneBuilder createParrotSpinningOn(BlockPos pos, Direction fadeInDirection) {
return addInstruction(new CreateParrotInstruction(15, fadeInDirection,
ParrotElement.spinOnComponent(new Vec3d(pos).add(.5, 0, .5), pos.down())));
}
public SceneBuilder createParrotLookingAtPOI(Vec3d location, Direction fadeInDirection) {
return addInstruction(new CreateParrotInstruction(15, fadeInDirection, ParrotElement.lookAtPOI(location)));
}
public SceneBuilder movePOI(Vec3d location) {
return addInstruction(new MovePoiInstruction(location));
}
public SceneBuilder showControls(InputWindowElement element, int duration) {
return addInstruction(new ShowInputInstruction(element, duration));
}
public SceneBuilder emitParticles(Vec3d location, Emitter emitter, float amountPerCycle, int cycles) {
return addInstruction(new EmitParticlesInstruction(location, emitter, amountPerCycle, cycles));
}
public SceneBuilder indicateSuccess(BlockPos pos) {
return addInstruction(new EmitParticlesInstruction(VecHelper.getCenterOf(pos),
Emitter.withinBlockSpace(new RedstoneParticleData(.5f, 1, .7f, 1), new Vec3d(0, 0, 0)), 20, 2));
}
public SceneBuilder birbOnTurntable(BlockPos pos) {
return addInstruction(new CreateParrotInstruction(10, Direction.DOWN,
ParrotElement.spinOnComponent(VecHelper.getCenterOf(pos), pos)));
}
public SceneBuilder birbOnSpinnyShaft(BlockPos pos) {
return addInstruction(
new CreateParrotInstruction(10, Direction.DOWN, ParrotElement.spinOnComponent(VecHelper.getCenterOf(pos)
.add(0, 0.5, 0), pos)));
}
public SceneBuilder birbLookingAtPOI(Vec3d location) {
return addInstruction(new CreateParrotInstruction(10, Direction.DOWN, ParrotElement.lookAtPOI(location)));
}
public SceneBuilder birbPartying(Vec3d location) {
return addInstruction(new CreateParrotInstruction(10, Direction.DOWN, ParrotElement.dance(location)));
}
public SceneBuilder addInstruction(PonderInstruction instruction) {
schedule.add(instruction);
return this;
@ -420,6 +442,10 @@ public class PonderScene {
return VecHelper.getCenterOf(new BlockPos(x, y, z));
}
public Vec3d topOf(int x, int y, int z) {
return new Vec3d(x + .5, y + 1, z + .5);
}
public Vec3d vector(double x, double y, double z) {
return new Vec3d(x, y, z);
}

View file

@ -7,6 +7,7 @@ import org.apache.commons.lang3.mutable.MutableBoolean;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.foundation.gui.AbstractSimiScreen;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.ponder.content.PonderIndex;
import com.simibubi.create.foundation.ponder.ui.PonderButton;
@ -15,6 +16,7 @@ import com.simibubi.create.foundation.utility.ColorHelper;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LerpedFloat;
import com.simibubi.create.foundation.utility.LerpedFloat.Chaser;
import com.simibubi.create.foundation.utility.Pointing;
import net.minecraft.client.GameSettings;
import net.minecraft.client.Minecraft;
@ -141,43 +143,44 @@ public class PonderUI extends AbstractSimiScreen {
RenderSystem.enableAlphaTest();
RenderSystem.enableBlend();
RenderSystem.enableDepthTest();
ms.push();
story.transform.updateScreenParams(width, height, slide);
story.transform.apply(ms);
story.renderScene(buffer, ms);
buffer.draw();
// coords for debug
if (PonderIndex.EDITOR_MODE) {
MutableBoundingBox bounds = story.getBounds();
RenderSystem.pushMatrix();
RenderSystem.multMatrix(ms.peek().getModel());
RenderSystem.scaled(-1/16d, -1/16d, 1/16d);
RenderSystem.translated(1, -8, -1/64f);
RenderSystem.multMatrix(ms.peek()
.getModel());
RenderSystem.scaled(-1 / 16d, -1 / 16d, 1 / 16d);
RenderSystem.translated(1, -8, -1 / 64f);
RenderSystem.pushMatrix();
for (int x = 0; x <= bounds.getXSize(); x++) {
RenderSystem.translated(-16, 0, 0);
font.drawString(x == bounds.getXSize() ? "x" : "" + x, 0, 0, 0xFFFFFFFF);
}
RenderSystem.popMatrix();
RenderSystem.pushMatrix();
RenderSystem.scaled(-1, 1, 1);
RenderSystem.rotatef(-90, 0, 1, 0);
RenderSystem.translated(-8, -2, 2/64f);
RenderSystem.translated(-8, -2, 2 / 64f);
for (int z = 0; z <= bounds.getZSize(); z++) {
RenderSystem.translated(16, 0, 0);
font.drawString(z == bounds.getZSize() ? "z" : "" + z, 0, 0, 0xFFFFFFFF);
}
RenderSystem.popMatrix();
buffer.draw();
RenderSystem.popMatrix();
}
ms.pop();
}
@ -229,6 +232,7 @@ public class PonderUI extends AbstractSimiScreen {
right.flash();
else
right.dim();
}
protected void lowerButtonGroup(int index, int mouseX, int mouseY, float fade, AllIcons icon, KeyBinding key) {
@ -320,7 +324,72 @@ public class PonderUI extends AbstractSimiScreen {
}
public static void renderBox(int x, int y, int w, int h, boolean highlighted) {
renderBox(x, y, w, h, 0xdd000000, highlighted ? 0x70ffffff : 0x30eebb00, highlighted ? 0x30ffffff : 0x10eebb00);
renderBox(x, y, w, h, 0xff000000, highlighted ? 0xf0ffeedd : 0x40ffeedd, highlighted ? 0x60ffeedd : 0x20ffeedd);
}
public static void renderSpeechBox(int x, int y, int w, int h, boolean highlighted, Pointing pointing,
boolean returnWithLocalTransform) {
if (!returnWithLocalTransform)
RenderSystem.pushMatrix();
int boxX = x;
int boxY = y;
int divotX = x;
int divotY = y;
int divotRotation = 0;
int divotSize = 8;
int distance = 1;
int divotRadius = divotSize / 2;
switch (pointing) {
default:
case DOWN:
divotRotation = 0;
boxX -= w / 2;
boxY -= h + divotSize + 1 + distance;
divotX -= divotRadius;
divotY -= divotSize + distance;
break;
case LEFT:
divotRotation = 90;
boxX += divotSize + 1 + distance;
boxY -= h / 2;
divotX += distance;
divotY -= divotRadius;
break;
case RIGHT:
divotRotation = 270;
boxX -= w + divotSize + 1 + distance;
boxY -= h / 2;
divotX -= divotSize + distance;
divotY -= divotRadius;
break;
case UP:
divotRotation = 180;
boxX -= w / 2;
boxY += divotSize + 1 + distance;
divotX -= divotRadius;
divotY += distance;
break;
}
renderBox(boxX, boxY, w, h, highlighted);
RenderSystem.pushMatrix();
AllGuiTextures toRender = highlighted ? AllGuiTextures.SPEECH_TOOLTIP_HIGHLIGHT : AllGuiTextures.SPEECH_TOOLTIP;
RenderSystem.translated(divotX + divotRadius, divotY + divotRadius, 10);
RenderSystem.rotatef(divotRotation, 0, 0, 1);
RenderSystem.translated(-divotRadius, -divotRadius, 0);
toRender.draw(0, 0);
RenderSystem.popMatrix();
if (returnWithLocalTransform) {
RenderSystem.translated(boxX, boxY, 0);
return;
}
RenderSystem.popMatrix();
}
public static void renderBox(int x, int y, int w, int h, int backgroundColor, int borderColorStart,

View file

@ -131,6 +131,9 @@ public class PonderWorld extends SchematicWorld {
public void addBlockDestroyEffects(BlockPos pos, BlockState state) {
VoxelShape voxelshape = state.getShape(this, pos);
if (voxelshape.isEmpty())
return;
AxisAlignedBB bb = voxelshape.getBoundingBox();
double d1 = Math.min(1.0D, bb.maxX - bb.minX);
double d2 = Math.min(1.0D, bb.maxY - bb.minY);

View file

@ -1,42 +0,0 @@
package com.simibubi.create.foundation.ponder.content;
import com.simibubi.create.foundation.ponder.PonderStoryBoard;
import com.simibubi.create.foundation.ponder.Select;
import com.simibubi.create.foundation.ponder.PonderScene.SceneBuilder;
import com.simibubi.create.foundation.ponder.PonderScene.SceneBuilder.SceneBuildingUtil;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
public class CogwheelStory extends PonderStoryBoard {
public CogwheelStory() {
}
@Override
public String getSchematicName() {
return "cogwheel/first";
}
@Override
public String getStoryTitle() {
return "My First Ponder Story, Parrots";
}
@Override
public void program(SceneBuilder scene, SceneBuildingUtil util) {
scene.movePOI(new Vec3d(3.5, 4, 4.5));
scene.showBasePlate();
scene.idle(10);
scene.createParrotSpinningOn(new BlockPos(1, 4, 2), Direction.DOWN);
scene.showSection(util.layersFrom(1), Direction.DOWN);
scene.idle(10);
scene.rotateCameraY(180);
}
}

View file

@ -11,14 +11,18 @@ import com.simibubi.create.foundation.ponder.PonderScene.SceneBuilder;
import com.simibubi.create.foundation.ponder.PonderScene.SceneBuilder.SceneBuildingUtil;
import com.simibubi.create.foundation.ponder.PonderStoryBoard;
import com.simibubi.create.foundation.ponder.Select;
import com.simibubi.create.foundation.ponder.elements.InputWindowElement;
import com.simibubi.create.foundation.ponder.instructions.EmitParticlesInstruction;
import com.simibubi.create.foundation.ponder.instructions.EmitParticlesInstruction.Emitter;
import com.simibubi.create.foundation.utility.Pointing;
import com.tterrag.registrate.util.entry.ItemEntry;
import net.minecraft.block.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.particles.ParticleTypes;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
public abstract class DebugScenes extends PonderStoryBoard {
@ -33,6 +37,8 @@ public abstract class DebugScenes extends PonderStoryBoard {
PonderRegistry.addStoryBoard(item, new FluidsScene(++i));
PonderRegistry.addStoryBoard(item, new OffScreenScene(++i));
PonderRegistry.addStoryBoard(item, new ParticlesScene(++i));
PonderRegistry.addStoryBoard(item, new ControlsScene(++i));
PonderRegistry.addStoryBoard(item, new BirbScene(++i));
}
public DebugScenes(int index) {
@ -64,7 +70,6 @@ public abstract class DebugScenes extends PonderStoryBoard {
scene.showBasePlate();
scene.idle(10);
scene.showSection(util.layersFrom(1), Direction.DOWN);
// scene.showTargetedText(WHITE, new Vec3d(1.5, 1.5, 1.5), "coordinate", "Schematic orientation: ", 40);
scene.idle(10);
scene.showSelectionWithText(PonderPalette.RED, Select.fromTo(2, 1, 1, 4, 1, 1), "x", "Das X axis", 20);
@ -96,9 +101,10 @@ public abstract class DebugScenes extends PonderStoryBoard {
scene.idle(10);
scene.showText(WHITE, 10, "change_blocks", "Blocks can be modified", 1000);
scene.idle(20);
scene.replaceBlocks(Select.fromTo(1, 1, 2, 2, 2, 4), AllBlocks.REFINED_RADIANCE_CASING.getDefaultState());
scene.replaceBlocks(Select.fromTo(1, 1, 3, 2, 2, 4), AllBlocks.REFINED_RADIANCE_CASING.getDefaultState());
scene.idle(10);
scene.replaceBlocks(Select.pos(3, 1, 1), Blocks.GOLD_BLOCK.getDefaultState());
scene.rotateCameraY(180);
scene.markAsFinished();
}
@ -131,6 +137,36 @@ public abstract class DebugScenes extends PonderStoryBoard {
}
static class OffScreenScene extends DebugScenes {
public OffScreenScene(int index) {
super(index);
}
@Override
public void program(SceneBuilder scene, SceneBuildingUtil util) {
scene.configureBasePlate(1, 0, 6);
scene.showBasePlate();
Select out1 = Select.fromTo(7, 0, 0, 8, 0, 5);
Select out2 = Select.fromTo(0, 0, 0, 0, 0, 5);
scene.idle(10);
scene.showSection(Select.compound(util.layersFrom(1), out1, out2), Direction.DOWN);
scene.idle(10);
scene.showSelectionWithText(PonderPalette.BLACK, out1, "outofbounds",
"Blocks outside of the base plate do not affect scaling", 100);
scene.showSelectionWithText(PonderPalette.BLACK, out2, "thanks_to_configureBasePlate",
"configureBasePlate() makes sure of that.", 100);
scene.markAsFinished();
}
@Override
protected String getTitle() {
return "Out of bounds / configureBasePlate";
}
}
static class ParticlesScene extends DebugScenes {
public ParticlesScene(int index) {
@ -165,34 +201,94 @@ public abstract class DebugScenes extends PonderStoryBoard {
}
static class OffScreenScene extends DebugScenes {
static class ControlsScene extends DebugScenes {
public OffScreenScene(int index) {
public ControlsScene(int index) {
super(index);
}
@Override
public void program(SceneBuilder scene, SceneBuildingUtil util) {
scene.configureBasePlate(1, 0, 6);
scene.showBasePlate();
Select out1 = Select.fromTo(7, 0, 0, 8, 0, 5);
Select out2 = Select.fromTo(0, 0, 0, 0, 0, 5);
scene.idle(10);
scene.showSection(Select.compound(util.layersFrom(1), out1, out2), Direction.DOWN);
scene.showSection(util.layer(1), Direction.DOWN);
scene.idle(4);
scene.showSection(util.layer(2), Direction.DOWN);
scene.idle(4);
scene.showSection(util.layer(3), Direction.DOWN);
scene.idle(10);
scene.showSelectionWithText(PonderPalette.BLACK, out1, "outofbounds",
"Blocks outside of the base plate do not affect scaling", 100);
scene.showSelectionWithText(PonderPalette.BLACK, out2, "thanks_to_configureBasePlate",
"configureBasePlate() makes sure of that.", 100);
scene.markAsFinished();
scene.showControls(new InputWindowElement(util.topOf(3, 1, 1), Pointing.DOWN).rightClick()
.whileSneaking()
.withWrench(), 40);
scene.idle(8);
scene.replaceBlocks(Select.pos(3, 1, 1), AllBlocks.SHAFT.getDefaultState());
scene.idle(20);
scene.showControls(new InputWindowElement(new Vec3d(1, 4.5, 3.5), Pointing.LEFT).rightClick()
.withItem(new ItemStack(Blocks.POLISHED_ANDESITE)), 20);
scene.idle(4);
scene.showSection(util.layer(4), Direction.DOWN);
scene.idle(8);
scene.showControls(new InputWindowElement(new Vec3d(2.5, 1.5, 3), Pointing.UP).whileCTRL()
.scroll()
.withWrench(), 40);
}
@Override
protected String getTitle() {
return "Out of bounds / configureBasePlate";
return "Basic player interaction";
}
}
static class BirbScene extends DebugScenes {
public BirbScene(int index) {
super(index);
}
@Override
public void program(SceneBuilder scene, SceneBuildingUtil util) {
scene.showBasePlate();
scene.idle(10);
scene.showSection(util.layersFrom(1), Direction.DOWN);
scene.idle(10);
BlockPos pos = new BlockPos(1, 2, 3);
scene.birbOnSpinnyShaft(pos);
scene.showTargetedText(PonderPalette.GREEN, util.topOf(1, 2, 3), "birbs_interesting",
"More birbs = More interesting", 100);
scene.idle(10);
scene.birbPartying(util.topOf(0, 1, 2));
scene.idle(10);
scene.movePOI(Vec3d.ZERO);
scene.birbLookingAtPOI(util.centerOf(3, 1, 3)
.add(0, 0.25f, 0));
scene.idle(20);
scene.replaceBlocks(Select.pos(4, 1, 0), Blocks.GOLD_BLOCK.getDefaultState());
scene.movePOI(util.centerOf(4, 1, 0));
scene.idle(20);
scene.replaceBlocks(Select.pos(0, 1, 4), Blocks.GOLD_BLOCK.getDefaultState());
scene.movePOI(util.centerOf(0, 1, 4));
scene.showTargetedText(PonderPalette.FAST, util.centerOf(0, 1, 4), "poi", "Point of Interest", 20);
scene.idle(20);
scene.replaceBlocks(Select.pos(4, 1, 0), Blocks.AIR.getDefaultState());
scene.movePOI(util.centerOf(4, 1, 0));
scene.idle(20);
scene.replaceBlocks(Select.pos(0, 1, 4), Blocks.AIR.getDefaultState());
scene.movePOI(util.centerOf(0, 1, 4));
}
@Override
protected String getTitle() {
return "Birbs";
}
}
}

View file

@ -14,10 +14,6 @@ public class PonderIndex {
public static void register() {
// Register storyboards here (Requires re-launch)
PonderRegistry.addStoryBoard(AllBlocks.COGWHEEL, new CogwheelStory());
PonderRegistry.addStoryBoard(AllBlocks.COGWHEEL, new CogwheelStory());
PonderRegistry.addStoryBoard(AllBlocks.COGWHEEL, new CogwheelStory());
PonderRegistry.addStoryBoard(AllBlocks.SHAFT, new ShaftAsRelay());
PonderRegistry.addStoryBoard(AllBlocks.SHAFT, new ShaftsCanBeEncased());

View file

@ -10,7 +10,6 @@ import com.simibubi.create.foundation.ponder.Select;
import net.minecraft.util.Direction;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.Vec3i;
class ShaftAsRelay extends PonderStoryBoard {
@ -26,26 +25,30 @@ class ShaftAsRelay extends PonderStoryBoard {
@Override
public void program(SceneBuilder scene, SceneBuildingUtil util) {
scene.showBasePlate();
scene.configureBasePlate(0, 0, 5);
scene.showSection(util.layer(0), Direction.UP);
Select encased = util.column(4, 2);
Select gauge = util.column(0, 2);
Select shafts = Select.cuboid(new BlockPos(1, 1, 2), new Vec3i(2, 0, 0));
scene.idle(10);
scene.showSection(encased, Direction.DOWN);
scene.idle(10);
scene.showSection(gauge, Direction.DOWN);
Select gauge = Select.pos(0, 1, 2);
scene.showSection(gauge, Direction.UP);
scene.setKineticSpeed(gauge, 0);
scene.idle(20);
scene.showSection(shafts, Direction.DOWN);
scene.setKineticSpeed(gauge, -112);
scene.idle(5);
scene.showSection(Select.pos(5, 1, 2), Direction.DOWN);
scene.idle(10);
for (int i = 4; i >= 1; i--) {
if (i == 2)
scene.rotateCameraY(70);
scene.idle(5);
scene.showSection(Select.pos(i, 1, 2), Direction.DOWN);
}
scene.setKineticSpeed(gauge, 64);
scene.indicateSuccess(new BlockPos(0, 1, 2));
scene.idle(10);
scene.showTargetedText(WHITE, new Vec3d(3, 1.5, 2.5), "shaft_relay",
"Shafts seem to relay rotation in a straight line.", 1000);
"Shafts will relay rotation in a straight line.", 1000);
scene.idle(20);
scene.markAsFinished();

View file

@ -8,6 +8,9 @@ import com.simibubi.create.foundation.ponder.PonderScene.SceneBuilder;
import com.simibubi.create.foundation.ponder.PonderScene.SceneBuilder.SceneBuildingUtil;
import com.simibubi.create.foundation.ponder.PonderStoryBoard;
import com.simibubi.create.foundation.ponder.Select;
import com.simibubi.create.foundation.ponder.elements.InputWindowElement;
import com.simibubi.create.foundation.utility.Pointing;
import com.tterrag.registrate.util.entry.BlockEntry;
import net.minecraft.util.Direction;
import net.minecraft.util.Direction.Axis;
@ -38,18 +41,26 @@ class ShaftsCanBeEncased extends PonderStoryBoard {
scene.showSection(shaft, Direction.DOWN);
scene.idle(20);
scene.setBlocks(andesite, AllBlocks.ANDESITE_ENCASED_SHAFT.getDefaultState()
BlockEntry<EncasedShaftBlock> andesiteEncased = AllBlocks.ANDESITE_ENCASED_SHAFT;
scene.showControls(new InputWindowElement(util.topOf(3, 1, 2), Pointing.DOWN).rightClick()
.withItem(AllBlocks.ANDESITE_CASING.asStack()), 60);
scene.idle(7);
scene.setBlocks(andesite, andesiteEncased.getDefaultState()
.with(EncasedShaftBlock.AXIS, Axis.X));
scene.setKineticSpeed(shaft, -112);
scene.idle(10);
scene.setBlocks(brass, AllBlocks.BRASS_ENCASED_SHAFT.getDefaultState()
BlockEntry<EncasedShaftBlock> brassEncased = AllBlocks.BRASS_ENCASED_SHAFT;
scene.showControls(new InputWindowElement(util.topOf(1, 0, 2), Pointing.UP).rightClick()
.withItem(AllBlocks.BRASS_CASING.asStack()), 60);
scene.idle(7);
scene.setBlocks(brass, brassEncased.getDefaultState()
.with(EncasedShaftBlock.AXIS, Axis.X));
scene.setKineticSpeed(shaft, -112);
scene.idle(10);
scene.showTargetedText(WHITE, new Vec3d(1.5, 2, 2.5), "shaft_can_be_encased",
"I could use Brass or Andesite Casing to hide them.", 1000);
"Andesite or Brass Casing can be used to encase them.", 1000);
}
}

View file

@ -7,8 +7,8 @@ public class SharedText {
public static void gatherText() {
// Add entries used across several ponder scenes (Safe for hotswap)
add("when_wrenched", "When Wrenched");
add("more_shared", "This is Shared stuff");
add("sneak_and", "Sneak +");
add("ctrl_and", "Ctrl +");
}

View file

@ -0,0 +1,135 @@
package com.simibubi.create.foundation.ponder.elements;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.AllItems;
import com.simibubi.create.foundation.gui.AllIcons;
import com.simibubi.create.foundation.gui.GuiGameElement;
import com.simibubi.create.foundation.ponder.PonderLocalization;
import com.simibubi.create.foundation.ponder.PonderScene;
import com.simibubi.create.foundation.ponder.PonderUI;
import com.simibubi.create.foundation.ponder.content.PonderPalette;
import com.simibubi.create.foundation.utility.ColorHelper;
import com.simibubi.create.foundation.utility.Pointing;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.Vec2f;
import net.minecraft.util.math.Vec3d;
public class InputWindowElement extends AnimatedOverlayElement {
private Pointing direction;
String key;
AllIcons icon;
ItemStack item = ItemStack.EMPTY;
private Vec3d sceneSpace;
public InputWindowElement(Vec3d sceneSpace, Pointing direction) {
this.sceneSpace = sceneSpace;
this.direction = direction;
}
public InputWindowElement withItem(ItemStack stack) {
item = stack;
return this;
}
public InputWindowElement withWrench() {
item = AllItems.WRENCH.asStack();
return this;
}
public InputWindowElement scroll() {
icon = AllIcons.I_SCROLL;
return this;
}
public InputWindowElement rightClick() {
icon = AllIcons.I_RMB;
return this;
}
public InputWindowElement leftClick() {
icon = AllIcons.I_LMB;
return this;
}
public InputWindowElement whileSneaking() {
key = "sneak_and";
return this;
}
public InputWindowElement whileCTRL() {
key = "ctrl_and";
return this;
}
@Override
protected void render(PonderScene scene, PonderUI screen, MatrixStack ms, float partialTicks, float fade) {
FontRenderer font = screen.getFontRenderer();
int width = 0;
int height = 0;
int xFade = direction == Pointing.RIGHT ? -1 : direction == Pointing.LEFT ? 1 : 0;
int yFade = direction == Pointing.DOWN ? -1 : direction == Pointing.UP ? 1 : 0;
xFade *= 10 * (1 - fade);
yFade *= 10 * (1 - fade);
boolean hasItem = !item.isEmpty();
boolean hasText = key != null;
boolean hasIcon = icon != null;
int keyWidth = 0;
String text = hasText ? PonderLocalization.getShared(key) : "";
if (fade < 1 / 16f)
return;
Vec2f sceneToScreen = scene.getTransform()
.sceneToScreen(sceneSpace);
if (hasIcon) {
width += 24;
height = 24;
}
if (hasText) {
keyWidth = font.getStringWidth(text);
width += keyWidth;
}
if (hasItem) {
width += 24;
height = 24;
}
RenderSystem.pushMatrix();
RenderSystem.translated(sceneToScreen.x + xFade, sceneToScreen.y + yFade, 400);
PonderUI.renderSpeechBox(0, 0, width, height, false, direction, true);
if (hasText)
font.drawString(text, 2, (height - font.FONT_HEIGHT) / 2 + 2,
ColorHelper.applyAlpha(PonderPalette.WHITE.getColor(), fade));
if (hasIcon) {
RenderSystem.pushMatrix();
RenderSystem.translated(keyWidth, 0, 0);
RenderSystem.scaled(1.5, 1.5, 1.5);
icon.draw(0, 0);
RenderSystem.popMatrix();
}
if (hasItem) {
GuiGameElement.of(item)
.at(keyWidth + 24, 0)
.scale(1.5)
.render();
RenderSystem.disableDepthTest();
}
RenderSystem.popMatrix();
}
}

View file

@ -5,12 +5,12 @@ import com.simibubi.create.Create;
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
import com.simibubi.create.foundation.ponder.PonderScene;
import com.simibubi.create.foundation.ponder.PonderWorld;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.MatrixStacker;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.command.arguments.EntityAnchorArgument;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.ParrotEntity;
import net.minecraft.tileentity.TileEntity;
@ -29,13 +29,19 @@ public class ParrotElement extends AnimatedSceneElement {
parrotElement.pose = parrotElement.new FacePointOfInterestPose();
return parrotElement;
}
public static ParrotElement spinOnComponent(Vec3d location, BlockPos componentPos) {
ParrotElement parrotElement = new ParrotElement(location);
parrotElement.pose = parrotElement.new SpinOnComponentPose(componentPos);
return parrotElement;
}
public static ParrotElement dance(Vec3d location) {
ParrotElement parrotElement = new ParrotElement(location);
parrotElement.pose = parrotElement.new DancePose();
return parrotElement;
}
protected ParrotElement(Vec3d location) {
this.location = location;
}
@ -69,7 +75,7 @@ public class ParrotElement extends AnimatedSceneElement {
ms.translate(location.x, location.y, location.z);
MatrixStacker.of(ms)
.rotateY(MathHelper.lerp(pt, entity.prevRotationYaw, entity.rotationYaw));
.rotateY(AngleHelper.angleLerp(pt, entity.prevRotationYaw, entity.rotationYaw));
entityrenderermanager.render(entity, 0, 0, 0, 0, pt, ms, buffer, lightCoordsFromFade(fade));
ms.pop();
@ -81,7 +87,24 @@ public class ParrotElement extends AnimatedSceneElement {
void create(PonderWorld world) {
entity = new ParrotEntity(EntityType.PARROT, world);
entity.setVariant(Create.random.nextInt(5));
int nextInt = Create.random.nextInt(5);
entity.setVariant(nextInt == 1 ? 0 : nextInt); // blue parrots are kinda hard to see
}
}
class DancePose extends ParrotPose {
@Override
void create(PonderWorld world) {
super.create(world);
entity.setPartying(BlockPos.ZERO, true);
}
@Override
void tick(PonderScene scene) {
entity.prevRotationYaw = entity.rotationYaw;
entity.rotationYaw -= 2;
}
}
@ -111,7 +134,18 @@ public class ParrotElement extends AnimatedSceneElement {
@Override
void tick(PonderScene scene) {
entity.lookAt(EntityAnchorArgument.Type.EYES, scene.getPointOfInterest());
Vec3d p_200602_2_ = scene.getPointOfInterest();
Vec3d vec3d = location.add(entity.getEyePosition(0));
double d0 = p_200602_2_.x - vec3d.x;
double d1 = p_200602_2_.y - vec3d.y;
double d2 = p_200602_2_.z - vec3d.z;
double d3 = (double) MathHelper.sqrt(d0 * d0 + d2 * d2);
entity.prevRotationYaw = entity.rotationYaw;
entity.prevRotationPitch = entity.rotationPitch;
entity.rotationPitch =
MathHelper.wrapDegrees((float) -(MathHelper.atan2(d1, d3) * (double) (180F / (float) Math.PI)));
entity.rotationYaw =
MathHelper.wrapDegrees((float) -(MathHelper.atan2(d2, d0) * (double) (180F / (float) Math.PI)) + 90);
}
}

View file

@ -22,6 +22,12 @@ public class EmitParticlesInstruction extends TickingInstruction {
return (w, x, y, z) -> w.addParticle(data, x, y, z, motion.x, motion.y, motion.z);
}
public static <T extends IParticleData> Emitter withinBlockSpace(T data, Vec3d motion) {
return (w, x, y, z) -> w.addParticle(data, Math.floor(x) + Create.random.nextFloat(),
Math.floor(y) + Create.random.nextFloat(), Math.floor(z) + Create.random.nextFloat(), motion.x,
motion.y, motion.z);
}
static ParticleManager paticleManager() {
return Minecraft.getInstance().particles;
}

View file

@ -0,0 +1,49 @@
package com.simibubi.create.foundation.ponder.instructions;
import com.simibubi.create.foundation.ponder.PonderScene;
public abstract class FadeInOutInstruction extends TickingInstruction {
protected static final int fadeTime = 5;
public FadeInOutInstruction(int duration) {
super(false, duration + 2 * fadeTime);
}
protected abstract void show(PonderScene scene);
protected abstract void hide(PonderScene scene);
protected abstract void applyFade(PonderScene scene, float fade);
@Override
protected void firstTick(PonderScene scene) {
super.firstTick(scene);
show(scene);
applyFade(scene, 0);
}
@Override
public void tick(PonderScene scene) {
super.tick(scene);
int elapsed = totalTicks - remainingTicks;
if (elapsed < fadeTime) {
float fade = (elapsed / (float) fadeTime);
applyFade(scene, fade * fade);
} else if (remainingTicks < fadeTime) {
float fade = (remainingTicks / (float) fadeTime);
applyFade(scene, fade * fade);
} else
applyFade(scene, 1);
if (remainingTicks == 0) {
applyFade(scene, 0);
hide(scene);
}
}
}

View file

@ -0,0 +1,31 @@
package com.simibubi.create.foundation.ponder.instructions;
import com.simibubi.create.foundation.ponder.PonderScene;
import com.simibubi.create.foundation.ponder.elements.InputWindowElement;
public class ShowInputInstruction extends FadeInOutInstruction {
private InputWindowElement element;
public ShowInputInstruction(InputWindowElement element, int ticks) {
super(ticks);
this.element = element;
}
@Override
protected void show(PonderScene scene) {
scene.addElement(element);
element.setVisible(true);
}
@Override
protected void hide(PonderScene scene) {
element.setVisible(false);
}
@Override
protected void applyFade(PonderScene scene, float fade) {
element.setFade(fade);
}
}

View file

@ -9,14 +9,13 @@ import com.simibubi.create.foundation.ponder.elements.TextWindowElement;
import net.minecraft.util.math.Vec3d;
public class TextInstruction extends TickingInstruction {
public class TextInstruction extends FadeInOutInstruction {
private TextWindowElement element;
private OutlinerElement outline;
private static final int fadeTime = 5;
protected TextInstruction(int color, Supplier<String> text, int duration) {
super(false, duration + 2 * fadeTime);
super(duration);
}
public TextInstruction(int color, Supplier<String> text, int duration, Select selection) {
@ -41,11 +40,9 @@ public class TextInstruction extends TickingInstruction {
}
@Override
protected void firstTick(PonderScene scene) {
super.firstTick(scene);
protected void show(PonderScene scene) {
scene.addElement(element);
element.setVisible(true);
element.setFade(0);
if (outline != null) {
scene.addElement(outline);
outline.setFade(1);
@ -54,31 +51,17 @@ public class TextInstruction extends TickingInstruction {
}
@Override
public void tick(PonderScene scene) {
super.tick(scene);
int elapsed = totalTicks - remainingTicks;
if (elapsed < fadeTime) {
float fade = (elapsed / (float) fadeTime);
element.setFade(fade * fade);
} else if (remainingTicks < fadeTime) {
float fade = (remainingTicks / (float) fadeTime);
element.setFade(fade * fade);
} else
element.setFade(1);
if (remainingTicks == 0) {
element.setFade(0);
element.setFade(0);
element.setVisible(false);
if (outline != null) {
outline.setFade(0);
outline.setVisible(false);
}
protected void hide(PonderScene scene) {
element.setVisible(false);
if (outline != null) {
outline.setFade(0);
outline.setVisible(false);
}
}
@Override
protected void applyFade(PonderScene scene, float fade) {
element.setFade(fade);
}
}

View file

@ -119,7 +119,7 @@ public class VecHelper {
}
public static Vec3d lerp(float p, Vec3d from, Vec3d to) {
return from.add(from.subtract(to)
return from.add(to.subtract(from)
.scale(p));
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Binary file not shown.