diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 588bd62e9..e0d2e9685 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -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 diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 32a7025d9..9ea4a76c2 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index a51776d21..845da707f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/es_mx.json b/src/generated/resources/assets/create/lang/unfinished/es_mx.json index 440b56c5b..9946947f4 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_mx.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_mx.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 9afcc1138..cdeab2100 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 3d2f316b5..5169c7260 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 004d882f2..0d1de356a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 51612fa21..33c304adf 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 2fb0077c9..f09b09a1d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index be5288f9b..5e937709f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 261a60115..82bb3ce9f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 135caaf45..3ea36f056 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index c300d3e80..03543e9a6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 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!" diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java index 373387ab7..9d64fbe32 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/gauge/SpeedGaugeTileEntity.java @@ -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 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 tooltip, boolean isPlayerSneaking) { super.addToGoggleTooltip(tooltip, isPlayerSneaking); diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java index 5528f791b..bb7c03018 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java @@ -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), ; diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java index 51e0c0764..faa7d9af7 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java @@ -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(), diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java index fcc7945d1..3f8b855ea 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderRegistry.java @@ -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; diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java index 84fd7d8f5..7157d1891 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderScene.java @@ -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 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); } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java index 04c3b7935..acaf4089b 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java @@ -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, diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java index 0c67d647a..b478ec6d4 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java @@ -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); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/CogwheelStory.java b/src/main/java/com/simibubi/create/foundation/ponder/content/CogwheelStory.java deleted file mode 100644 index 921db2309..000000000 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/CogwheelStory.java +++ /dev/null @@ -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); - - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java index 2d3327ba5..1d93364d7 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java @@ -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"; + } + + } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java index 4a560622f..7ff108e90 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java @@ -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()); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ShaftAsRelay.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ShaftAsRelay.java index 90f5fa097..627e014ed 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/ShaftAsRelay.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ShaftAsRelay.java @@ -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(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ShaftsCanBeEncased.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ShaftsCanBeEncased.java index a93b98143..2ddf32ba9 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/ShaftsCanBeEncased.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ShaftsCanBeEncased.java @@ -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 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 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); } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/SharedText.java b/src/main/java/com/simibubi/create/foundation/ponder/content/SharedText.java index c0c449599..84b615ad1 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/SharedText.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/SharedText.java @@ -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 +"); } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/elements/InputWindowElement.java b/src/main/java/com/simibubi/create/foundation/ponder/elements/InputWindowElement.java new file mode 100644 index 000000000..ae9ed8a89 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/elements/InputWindowElement.java @@ -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(); + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/elements/ParrotElement.java b/src/main/java/com/simibubi/create/foundation/ponder/elements/ParrotElement.java index 428274395..1209312f2 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/elements/ParrotElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/elements/ParrotElement.java @@ -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); } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instructions/EmitParticlesInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instructions/EmitParticlesInstruction.java index 7c1d0197c..eb4a85f6c 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/instructions/EmitParticlesInstruction.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/instructions/EmitParticlesInstruction.java @@ -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 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; } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instructions/FadeInOutInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instructions/FadeInOutInstruction.java new file mode 100644 index 000000000..a7f195ffe --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/instructions/FadeInOutInstruction.java @@ -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); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instructions/ShowInputInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instructions/ShowInputInstruction.java new file mode 100644 index 000000000..4a1864478 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/instructions/ShowInputInstruction.java @@ -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); + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/ponder/instructions/TextInstruction.java b/src/main/java/com/simibubi/create/foundation/ponder/instructions/TextInstruction.java index ca81f4bb6..ab7c84761 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/instructions/TextInstruction.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/instructions/TextInstruction.java @@ -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 text, int duration) { - super(false, duration + 2 * fadeTime); + super(duration); } public TextInstruction(int color, Supplier 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); } } diff --git a/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java b/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java index 61691caf0..300f02316 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/VecHelper.java @@ -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)); } diff --git a/src/main/resources/assets/create/textures/gui/icons.png b/src/main/resources/assets/create/textures/gui/icons.png index 8bc0cb6a5..3276c6033 100644 Binary files a/src/main/resources/assets/create/textures/gui/icons.png and b/src/main/resources/assets/create/textures/gui/icons.png differ diff --git a/src/main/resources/assets/create/textures/gui/widgets.png b/src/main/resources/assets/create/textures/gui/widgets.png index 76be05990..22ec3d894 100644 Binary files a/src/main/resources/assets/create/textures/gui/widgets.png and b/src/main/resources/assets/create/textures/gui/widgets.png differ diff --git a/src/main/resources/ponder/cogwheel/first.nbt b/src/main/resources/ponder/cogwheel/first.nbt deleted file mode 100644 index 3adbe8a14..000000000 Binary files a/src/main/resources/ponder/cogwheel/first.nbt and /dev/null differ diff --git a/src/main/resources/ponder/debug/scene_6.nbt b/src/main/resources/ponder/debug/scene_6.nbt new file mode 100644 index 000000000..6a7f63510 Binary files /dev/null and b/src/main/resources/ponder/debug/scene_6.nbt differ diff --git a/src/main/resources/ponder/debug/scene_7.nbt b/src/main/resources/ponder/debug/scene_7.nbt new file mode 100644 index 000000000..d0b4f88f6 Binary files /dev/null and b/src/main/resources/ponder/debug/scene_7.nbt differ diff --git a/src/main/resources/ponder/shaft/shaft.nbt b/src/main/resources/ponder/shaft/shaft.nbt index 36ea03bc3..548effb1d 100644 Binary files a/src/main/resources/ponder/shaft/shaft.nbt and b/src/main/resources/ponder/shaft/shaft.nbt differ