From d9027c1d9990fc0b30a5a02d7f7410b83ed13667 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Mon, 15 Mar 2021 23:20:24 +0100 Subject: [PATCH] Logic Thinking - Ponder scenes for various redstone components --- src/generated/resources/.cache/cache | 28 +- .../resources/assets/create/lang/en_us.json | 40 ++ .../assets/create/lang/unfinished/de_de.json | 42 +- .../assets/create/lang/unfinished/es_es.json | 42 +- .../assets/create/lang/unfinished/es_mx.json | 42 +- .../assets/create/lang/unfinished/fr_fr.json | 42 +- .../assets/create/lang/unfinished/it_it.json | 42 +- .../assets/create/lang/unfinished/ja_jp.json | 42 +- .../assets/create/lang/unfinished/ko_kr.json | 42 +- .../assets/create/lang/unfinished/nl_nl.json | 42 +- .../assets/create/lang/unfinished/pt_br.json | 42 +- .../assets/create/lang/unfinished/ru_ru.json | 42 +- .../assets/create/lang/unfinished/zh_cn.json | 42 +- .../assets/create/lang/unfinished/zh_tw.json | 42 +- .../block/redstone/AnalogLeverTileEntity.java | 1 - .../content/schematics/SchematicWorld.java | 29 +- .../create/foundation/ponder/PonderWorld.java | 5 + .../foundation/ponder/SceneBuilder.java | 18 + .../ponder/content/PonderIndex.java | 18 + .../ponder/content/RedstoneScenes.java | 662 +++++++++++++++++- .../ponder/adjustable_pulse_repeater.nbt | Bin 0 -> 453 bytes .../resources/ponder/adjustable_repeater.nbt | Bin 0 -> 447 bytes src/main/resources/ponder/analog_lever.nbt | Bin 0 -> 514 bytes src/main/resources/ponder/nixie_tube.nbt | Bin 0 -> 467 bytes src/main/resources/ponder/powered_latch.nbt | Bin 0 -> 443 bytes .../resources/ponder/powered_toggle_latch.nbt | Bin 0 -> 409 bytes src/main/resources/ponder/pulse_repeater.nbt | Bin 0 -> 400 bytes src/main/resources/ponder/redstone_link.nbt | Bin 0 -> 564 bytes 28 files changed, 1265 insertions(+), 40 deletions(-) create mode 100644 src/main/resources/ponder/adjustable_pulse_repeater.nbt create mode 100644 src/main/resources/ponder/adjustable_repeater.nbt create mode 100644 src/main/resources/ponder/analog_lever.nbt create mode 100644 src/main/resources/ponder/nixie_tube.nbt create mode 100644 src/main/resources/ponder/powered_latch.nbt create mode 100644 src/main/resources/ponder/powered_toggle_latch.nbt create mode 100644 src/main/resources/ponder/pulse_repeater.nbt create mode 100644 src/main/resources/ponder/redstone_link.nbt diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 670bb1770..08e29ebe9 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -402,19 +402,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json 2b12f3cf99e498899207a8c4855210e7b5dc55cd assets/create/lang/en_ud.json -6d00aa2e085c5754a9b7f5fffdea8702c474f5a6 assets/create/lang/en_us.json -be6252adfc657c2ee9f0f30bcca3155dc9ca98d8 assets/create/lang/unfinished/de_de.json -64baba74aa6a1e980dc4a7d469dba660a308e42c assets/create/lang/unfinished/es_es.json -e5fa6c5ad75b424382ae0d202547908bab13f569 assets/create/lang/unfinished/es_mx.json -945e755bdfa2996060129e6edad5ef6a3ed171e0 assets/create/lang/unfinished/fr_fr.json -bb0cc8cc01bf99b33f8c42c333ecac5e65f0c134 assets/create/lang/unfinished/it_it.json -37d0b9d5ccb0072b52f1896f836cea8d042a9156 assets/create/lang/unfinished/ja_jp.json -c380bc0d1933a41fdf64d323775a43dfe6ac92b1 assets/create/lang/unfinished/ko_kr.json -d003e93a08a630e803293612793a9ecd3b38017a assets/create/lang/unfinished/nl_nl.json -0c3c6e0c574c22e4e39a1ee88e13e0c2c677845d assets/create/lang/unfinished/pt_br.json -a376c60e64007b73f034ebd2f46551f7d4f63237 assets/create/lang/unfinished/ru_ru.json -20530fd24391fcd010d2d20965ed1797142c0ec4 assets/create/lang/unfinished/zh_cn.json -ee78cba92550be14a61bc862d5ae63d31258cc75 assets/create/lang/unfinished/zh_tw.json +212de32a4245c53011c14d5a449cc9845ba8a897 assets/create/lang/en_us.json +68692dcac5364521de8437c653b64791e962628a assets/create/lang/unfinished/de_de.json +ea0fb50d4198972c4c7865d2471cdbc75977cc70 assets/create/lang/unfinished/es_es.json +5a54f2e9ad6264bdbb41fe6390b6674904219bfe assets/create/lang/unfinished/es_mx.json +a1a8a74c61650c1bb59a4187864d952f534100c7 assets/create/lang/unfinished/fr_fr.json +07992e28b58ec1bc837a80ab633dca672ad236e4 assets/create/lang/unfinished/it_it.json +8b84abd9b61ab88fdbbf9c0cc1979e95b34b3580 assets/create/lang/unfinished/ja_jp.json +fcd3bde020b3e904d5a31032c01e2e5b9c05a702 assets/create/lang/unfinished/ko_kr.json +2e4780fe25cef72f9bb3b43be76a379e3dde9f00 assets/create/lang/unfinished/nl_nl.json +edd45f6e468d4976d2bcd714066ae3284fc27ddb assets/create/lang/unfinished/pt_br.json +8c27872585a9a180ede3ccdd1d07014863501b89 assets/create/lang/unfinished/ru_ru.json +dead3a1a62323e91d41a8e8864b7179fd2f30583 assets/create/lang/unfinished/zh_cn.json +41faa5ab5d3f812e46d8d0e1580e83cd9f2f4bb3 assets/create/lang/unfinished/zh_tw.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1585,7 +1585,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear 9f9455ccb5fc9e3cbfce73862b46078346a522a5 assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json e76041b7ae829fdd7dc0524f6ca4d2f89fca51bb assets/create/sounds.json -0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json +5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 356f4855a2a6c65be3fb51d7d1aabf2ca6034d42 data/create/advancements/arm_blaze_burner.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 3307f8347..0060f63ea 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1850,6 +1850,23 @@ "create.ponder.tag.fluids": "Fluid Manipulators", "create.ponder.tag.fluids.description": "Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2077,6 +2094,21 @@ "create.ponder.portable_storage_interface_redstone.header": "Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "...on and back off", + "create.ponder.powered_toggle_latch.text_4": "Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "When one is moved by a Contraption, the others are dragged with it", @@ -2092,6 +2124,14 @@ "create.ponder.redstone_contact.text_1": "Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "Using Redstone Links", + "create.ponder.redstone_link.text_1": "Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "Direction and Speed of movement depend on the Rotational Input", 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 690fa404f..f727142a9 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: 1263", + "_": "Missing Localizations: 1296", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index a8c5d3c4a..58b16e83f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 294", + "_": "Missing Localizations: 327", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 b3d1c305d..ed7c04672 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: 1193", + "_": "Missing Localizations: 1226", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 60960800a..533355d03 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: 975", + "_": "Missing Localizations: 1008", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 a5e05faa6..d08d07d00 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: 311", + "_": "Missing Localizations: 344", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 163a2c7e0..a5958565a 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: 318", + "_": "Missing Localizations: 351", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 c0d1e71cc..64125ad90 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: 364", + "_": "Missing Localizations: 397", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 4933193e5..e90aa4a1e 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: 1462", + "_": "Missing Localizations: 1495", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 098d5ea60..495da0f25 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: 1528", + "_": "Missing Localizations: 1561", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 ee7c4ce98..59f6535e0 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: 314", + "_": "Missing Localizations: 347", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 166f470d3..314b568f1 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: 312", + "_": "Missing Localizations: 345", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", 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 100ff16ac..e900c1e46 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: 317", + "_": "Missing Localizations: 350", "_": "->------------------------] Game Elements [------------------------<-", @@ -1851,6 +1851,23 @@ "create.ponder.tag.fluids": "UNLOCALIZED: Fluid Manipulators", "create.ponder.tag.fluids.description": "UNLOCALIZED: Components which help relaying and making use of Fluids", + "create.ponder.adjustable_pulse_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Pulse Repeaters", + "create.ponder.adjustable_pulse_repeater.text_1": "UNLOCALIZED: Adjustable Pulse Repeaters emit a short pulse at a delay", + "create.ponder.adjustable_pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.adjustable_repeater.header": "UNLOCALIZED: Controlling signals using Adjustable Repeaters", + "create.ponder.adjustable_repeater.text_1": "UNLOCALIZED: Adjustable Repeaters behave similarly to regular Repeaters", + "create.ponder.adjustable_repeater.text_2": "UNLOCALIZED: They charge up for a set time...", + "create.ponder.adjustable_repeater.text_3": "UNLOCALIZED: ...and cool down for the same duration", + "create.ponder.adjustable_repeater.text_4": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured", + "create.ponder.adjustable_repeater.text_5": "UNLOCALIZED: Configured delays can range up to 30 minutes", + + "create.ponder.analog_lever.header": "UNLOCALIZED: Controlling signals using the Analog Lever", + "create.ponder.analog_lever.text_1": "UNLOCALIZED: Analog Levers make for a compact and precise source of redstone power", + "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", + "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -2078,6 +2095,21 @@ "create.ponder.portable_storage_interface_redstone.header": "UNLOCALIZED: Redstone Control", "create.ponder.portable_storage_interface_redstone.text_1": "UNLOCALIZED: Redstone power will prevent the stationary interface from engaging", + "create.ponder.powered_latch.header": "UNLOCALIZED: Controlling signals using the Powered Latch", + "create.ponder.powered_latch.text_1": "UNLOCALIZED: Powered Latches are redstone controllable Levers", + "create.ponder.powered_latch.text_2": "UNLOCALIZED: Signals at the back switch it on", + "create.ponder.powered_latch.text_3": "UNLOCALIZED: Signals from the side switch it back off", + "create.ponder.powered_latch.text_4": "UNLOCALIZED: Powered latches can also be toggled manually", + + "create.ponder.powered_toggle_latch.header": "UNLOCALIZED: Controlling signals using the Powered Toggle Latch", + "create.ponder.powered_toggle_latch.text_1": "UNLOCALIZED: Powered Toggle Latches are redstone controllable Levers", + "create.ponder.powered_toggle_latch.text_2": "UNLOCALIZED: Signals at the back will toggle its state", + "create.ponder.powered_toggle_latch.text_3": "UNLOCALIZED: ...on and back off", + "create.ponder.powered_toggle_latch.text_4": "UNLOCALIZED: Powered toggle latches can also be toggled manually", + + "create.ponder.pulse_repeater.header": "UNLOCALIZED: Controlling signals using Pulse Repeaters", + "create.ponder.pulse_repeater.text_1": "UNLOCALIZED: Pulse Repeaters will shorten any redstone signal to a single pulse", + "create.ponder.radial_chassis.header": "UNLOCALIZED: Attaching blocks using Radial Chassis", "create.ponder.radial_chassis.text_1": "UNLOCALIZED: Radial Chassis connect to identical Chassis blocks in a row", "create.ponder.radial_chassis.text_2": "UNLOCALIZED: When one is moved by a Contraption, the others are dragged with it", @@ -2093,6 +2125,14 @@ "create.ponder.redstone_contact.text_1": "UNLOCALIZED: Redstone Contacts facing each other will emit a redstone signal", "create.ponder.redstone_contact.text_2": "UNLOCALIZED: This still applies when one of them is part of a moving Contraption", + "create.ponder.redstone_link.header": "UNLOCALIZED: Using Redstone Links", + "create.ponder.redstone_link.text_1": "UNLOCALIZED: Redstone Links can transmit redstone signals wirelessly", + "create.ponder.redstone_link.text_2": "UNLOCALIZED: Right-click while Sneaking to toggle receive mode", + "create.ponder.redstone_link.text_3": "UNLOCALIZED: A simple Right-click with a Wrench can do the same", + "create.ponder.redstone_link.text_4": "UNLOCALIZED: Receivers will emit the redstone power of transmitters within a range of 128 blocks", + "create.ponder.redstone_link.text_5": "UNLOCALIZED: Placing items in the two slots can specify a Frequency", + "create.ponder.redstone_link.text_6": "UNLOCALIZED: Only the links with matching Frequency combinations will communicate", + "create.ponder.rope_pulley.header": "UNLOCALIZED: Moving Structures using Rope Pulleys", "create.ponder.rope_pulley.text_1": "UNLOCALIZED: Rope Pulleys can move blocks vertically when given Rotational Force", "create.ponder.rope_pulley.text_2": "UNLOCALIZED: Direction and Speed of movement depend on the Rotational Input", diff --git a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverTileEntity.java index 233c8b441..d98c89f5f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/redstone/AnalogLeverTileEntity.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.logistics.block.redstone; import java.util.List; -import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue; import com.simibubi.create.foundation.render.backend.instancing.IInstanceRendered; diff --git a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java index 06abab70c..1b6c7e5ab 100644 --- a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java +++ b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java @@ -11,6 +11,7 @@ import java.util.function.Predicate; import com.simibubi.create.Create; import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; +import net.minecraft.block.AbstractFurnaceBlock; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -39,14 +40,14 @@ public class SchematicWorld extends WrappedWorld { protected List renderedTileEntities; protected List entities; protected MutableBoundingBox bounds; - + public BlockPos anchor; public boolean renderMode; public SchematicWorld(World original) { this(BlockPos.ZERO, original); } - + public SchematicWorld(BlockPos anchor, World original) { super(original); this.blocks = new HashMap<>(); @@ -111,12 +112,8 @@ public class SchematicWorld extends WrappedWorld { if (pos.getY() - bounds.minY == -1 && !renderMode) return Blocks.GRASS_BLOCK.getDefaultState(); - if (getBounds().isVecInside(pos) && blocks.containsKey(pos)) { - BlockState blockState = blocks.get(pos); - if (blockState.has(BlockStateProperties.LIT)) - blockState = blockState.with(BlockStateProperties.LIT, false); - return blockState; - } + if (getBounds().isVecInside(pos) && blocks.containsKey(pos)) + return processBlockStateForPrinting(blocks.get(pos)); return Blocks.AIR.getDefaultState(); } @@ -177,21 +174,23 @@ public class SchematicWorld extends WrappedWorld { @Override public boolean setBlockState(BlockPos pos, BlockState arg1, int arg2) { - pos = pos.subtract(anchor); + pos = pos.toImmutable() + .subtract(anchor); bounds.expandTo(new MutableBoundingBox(pos, pos)); blocks.put(pos, arg1); if (tileEntities.containsKey(pos)) { TileEntity tileEntity = tileEntities.get(pos); - if (!tileEntity.getType().isValidBlock(arg1.getBlock())) { + if (!tileEntity.getType() + .isValidBlock(arg1.getBlock())) { tileEntities.remove(pos); renderedTileEntities.remove(tileEntity); } } - + TileEntity tileEntity = getTileEntity(pos); if (tileEntity != null) tileEntities.put(pos, tileEntity); - + return true; } @@ -213,4 +212,10 @@ public class SchematicWorld extends WrappedWorld { return renderedTileEntities; } + protected BlockState processBlockStateForPrinting(BlockState state) { + if (state.getBlock() instanceof AbstractFurnaceBlock && state.has(BlockStateProperties.LIT)) + state = state.with(BlockStateProperties.LIT, false); + return state; + } + } 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 ec5a41f0f..298b01d8f 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java @@ -280,5 +280,10 @@ public class PonderWorld extends SchematicWorld { } } } + + @Override + protected BlockState processBlockStateForPrinting(BlockState state) { + return state; + } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java index e628ae1f3..811aa75a9 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java @@ -55,11 +55,13 @@ import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; +import net.minecraft.block.RedstoneTorchBlock; import net.minecraft.entity.Entity; import net.minecraft.entity.item.ItemEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.particles.RedstoneParticleData; +import net.minecraft.state.IProperty; import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; @@ -334,6 +336,15 @@ public class SceneBuilder { expands, duration)); } + public void showRepeaterScrollInput(BlockPos pos, int duration) { + float s = 1 / 16f; + float q = 1 / 6f; + Vec3d expands = new Vec3d(q, s, q); + addInstruction( + new HighlightValueBoxInstruction(scene.getSceneBuildingUtil().vector.blockSurface(pos, Direction.DOWN) + .add(0, 3 / 16f, 0), expands, duration)); + } + public void showFilterSlotInput(Vec3d location, int duration) { float s = .1f; Vec3d expands = new Vec3d(s, s, s); @@ -523,6 +534,11 @@ public class SceneBuilder { modifyBlocks(scene.getSceneBuildingUtil().select.position(pos), stateFunc, spawnParticles); } + public void cycleBlockProperty(BlockPos pos, IProperty property) { + modifyBlocks(scene.getSceneBuildingUtil().select.position(pos), + s -> s.has(property) ? s.cycle(property) : s, false); + } + public void modifyBlocks(Selection selection, UnaryOperator stateFunc, boolean spawnParticles) { addInstruction(new ReplaceBlocksInstruction(selection, stateFunc, false, spawnParticles)); } @@ -533,6 +549,8 @@ public class SceneBuilder { s = s.with(BlockStateProperties.POWER_0_15, s.get(BlockStateProperties.POWER_0_15) == 0 ? 15 : 0); if (s.has(BlockStateProperties.POWERED)) s = s.cycle(BlockStateProperties.POWERED); + if (s.has(RedstoneTorchBlock.LIT)) + s = s.cycle(RedstoneTorchBlock.LIT); return s; }, false); } 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 88309ec71..d1c4b0a5d 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 @@ -149,6 +149,24 @@ public class PonderIndex { .addStoryBoard("mechanical_drill/contraption", MechanicalDrillScenes::contraption, PonderTag.CONTRAPTION_ACTOR); + // Redstone + PonderRegistry.forComponents(AllBlocks.PULSE_REPEATER) + .addStoryBoard("pulse_repeater", RedstoneScenes::pulseRepeater); + PonderRegistry.forComponents(AllBlocks.ADJUSTABLE_REPEATER) + .addStoryBoard("adjustable_repeater", RedstoneScenes::adjustableRepeater); + PonderRegistry.forComponents(AllBlocks.ADJUSTABLE_PULSE_REPEATER) + .addStoryBoard("adjustable_pulse_repeater", RedstoneScenes::adjustablePulseRepeater); + PonderRegistry.forComponents(AllBlocks.POWERED_LATCH) + .addStoryBoard("powered_latch", RedstoneScenes::poweredLatch); + PonderRegistry.forComponents(AllBlocks.POWERED_TOGGLE_LATCH) + .addStoryBoard("powered_toggle_latch", RedstoneScenes::poweredToggleLatch); + PonderRegistry.forComponents(AllBlocks.ANALOG_LEVER) + .addStoryBoard("analog_lever", RedstoneScenes::analogLever); + PonderRegistry.forComponents(AllBlocks.NIXIE_TUBE) + .addStoryBoard("nixie_tube", RedstoneScenes::nixieTube); + PonderRegistry.forComponents(AllBlocks.REDSTONE_LINK) + .addStoryBoard("redstone_link", RedstoneScenes::redstoneLink); + // Debug scenes, can be found in game via the Brass Hand if (EDITOR_MODE) DebugScenes.registerAll(); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java index c707e191b..4d98b7d3c 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/RedstoneScenes.java @@ -2,14 +2,36 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.StickerBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.StickerTileEntity; +import com.simibubi.create.content.logistics.block.diodes.AdjustablePulseRepeaterTileEntity; +import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterBlock; +import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterTileEntity; +import com.simibubi.create.content.logistics.block.diodes.PoweredLatchBlock; +import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterBlock; +import com.simibubi.create.content.logistics.block.diodes.ToggleLatchBlock; +import com.simibubi.create.content.logistics.block.redstone.AnalogLeverTileEntity; +import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; +import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkBlock; +import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity; import com.simibubi.create.foundation.ponder.ElementLink; import com.simibubi.create.foundation.ponder.SceneBuilder; import com.simibubi.create.foundation.ponder.SceneBuildingUtil; import com.simibubi.create.foundation.ponder.Selection; +import com.simibubi.create.foundation.ponder.elements.InputWindowElement; +import com.simibubi.create.foundation.ponder.elements.ParrotElement; import com.simibubi.create.foundation.ponder.elements.WorldSectionElement; +import com.simibubi.create.foundation.utility.Pointing; +import net.minecraft.block.RedstoneWireBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.state.IntegerProperty; import net.minecraft.util.Direction; +import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; public class RedstoneScenes { @@ -82,7 +104,7 @@ public class RedstoneScenes { .pointAt(util.vector.blockSurface(stickerPos, Direction.WEST)) .placeNearTarget(); scene.idle(70); - + scene.world.rotateBearing(bearingPos, 180 * 3, 80); scene.world.rotateSection(sticker, 0, 180 * 3, 0, 80); } @@ -166,4 +188,642 @@ public class RedstoneScenes { scene.world.rotateSection(contact, 0, 10, 0, speed); } + public static void pulseRepeater(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("pulse_repeater", "Controlling signals using Pulse Repeaters"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + + BlockPos circuitPos = util.grid.at(2, 1, 2); + BlockPos leverPos = util.grid.at(4, 1, 2); + + scene.world.showSection(util.select.layersFrom(1) + .substract(util.select.position(circuitPos)), Direction.UP); + scene.idle(10); + scene.world.showSection(util.select.position(circuitPos), Direction.DOWN); + scene.idle(20); + scene.effects.indicateRedstone(leverPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, PulseRepeaterBlock.PULSING); + scene.idle(3); + scene.world.cycleBlockProperty(circuitPos, PulseRepeaterBlock.PULSING); + scene.world.toggleRedstonePower(util.select.position(1, 1, 2)); + scene.idle(2); + scene.world.toggleRedstonePower(util.select.position(0, 1, 2)); + + scene.idle(15); + scene.overlay.showText(70) + .text("Pulse Repeaters will shorten any redstone signal to a single pulse") + .placeNearTarget() + .attachKeyFrame() + .pointAt(util.vector.topOf(util.grid.at(0, 1, 2))); + scene.idle(60); + + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 2, 1, 2)); + scene.idle(20); + scene.effects.indicateRedstone(leverPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, PulseRepeaterBlock.PULSING); + scene.idle(3); + scene.world.cycleBlockProperty(circuitPos, PulseRepeaterBlock.PULSING); + scene.world.toggleRedstonePower(util.select.position(1, 1, 2)); + scene.idle(2); + scene.world.toggleRedstonePower(util.select.position(0, 1, 2)); + } + + public static void adjustableRepeater(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("adjustable_repeater", "Controlling signals using Adjustable Repeaters"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + + BlockPos circuitPos = util.grid.at(2, 1, 2); + BlockPos leverPos = util.grid.at(4, 1, 2); + + scene.world.modifyTileNBT(util.select.position(circuitPos), AdjustableRepeaterTileEntity.class, + nbt -> nbt.putInt("ScrollValue", 30)); + scene.world.showSection(util.select.layersFrom(1) + .substract(util.select.position(circuitPos)), Direction.UP); + scene.idle(10); + scene.world.showSection(util.select.position(circuitPos), Direction.DOWN); + scene.idle(20); + + Vec3d circuitTop = util.vector.blockSurface(circuitPos, Direction.DOWN) + .add(0, 3 / 16f, 0); + scene.overlay.showText(70) + .text("Adjustable Repeaters behave similarly to regular Repeaters") + .attachKeyFrame() + .placeNearTarget() + .pointAt(circuitTop); + scene.idle(60); + + scene.effects.indicateRedstone(leverPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 2, 1, 2)); + scene.idle(30); + scene.world.cycleBlockProperty(circuitPos, AdjustableRepeaterBlock.POWERING); + scene.world.toggleRedstonePower(util.select.fromTo(1, 1, 2, 0, 1, 2)); + scene.idle(15); + + scene.overlay.showText(40) + .text("They charge up for a set time...") + .placeNearTarget() + .pointAt(util.vector.topOf(util.grid.at(0, 1, 2))); + scene.idle(50); + + scene.effects.indicateRedstone(leverPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 2, 1, 2)); + scene.idle(30); + scene.world.cycleBlockProperty(circuitPos, AdjustableRepeaterBlock.POWERING); + scene.world.toggleRedstonePower(util.select.fromTo(1, 1, 2, 0, 1, 2)); + scene.idle(15); + + scene.overlay.showText(40) + .text("...and cool down for the same duration") + .placeNearTarget() + .pointAt(util.vector.topOf(util.grid.at(0, 1, 2))); + scene.idle(50); + + scene.overlay.showRepeaterScrollInput(circuitPos, 60); + scene.overlay.showControls(new InputWindowElement(circuitTop, Pointing.DOWN).scroll(), 60); + scene.idle(10); + scene.overlay.showText(60) + .text("Using the mouse wheel, the charge time can be configured") + .attachKeyFrame() + .placeNearTarget() + .pointAt(circuitTop); + scene.world.modifyTileNBT(util.select.position(circuitPos), AdjustableRepeaterTileEntity.class, + nbt -> nbt.putInt("ScrollValue", 120)); + scene.idle(70); + + scene.effects.indicateRedstone(leverPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 2, 1, 2)); + scene.idle(60); + scene.overlay.showText(50) + .text("Configured delays can range up to 30 minutes") + .placeNearTarget() + .pointAt(circuitTop); + scene.idle(60); + scene.world.cycleBlockProperty(circuitPos, AdjustableRepeaterBlock.POWERING); + scene.world.toggleRedstonePower(util.select.fromTo(1, 1, 2, 0, 1, 2)); + scene.idle(15); + + } + + public static void adjustablePulseRepeater(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("adjustable_pulse_repeater", "Controlling signals using Adjustable Pulse Repeaters"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + + BlockPos circuitPos = util.grid.at(2, 1, 2); + BlockPos leverPos = util.grid.at(4, 1, 2); + + scene.world.modifyTileNBT(util.select.position(circuitPos), AdjustablePulseRepeaterTileEntity.class, + nbt -> nbt.putInt("ScrollValue", 30)); + scene.world.showSection(util.select.layersFrom(1) + .substract(util.select.position(circuitPos)), Direction.UP); + scene.idle(10); + scene.world.showSection(util.select.position(circuitPos), Direction.DOWN); + scene.idle(20); + + Vec3d circuitTop = util.vector.blockSurface(circuitPos, Direction.DOWN) + .add(0, 3 / 16f, 0); + + scene.effects.indicateRedstone(leverPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 2, 1, 2)); + scene.idle(30); + scene.world.cycleBlockProperty(circuitPos, AdjustableRepeaterBlock.POWERING); + scene.world.toggleRedstonePower(util.select.fromTo(1, 1, 2, 0, 1, 2)); + scene.idle(3); + scene.world.toggleRedstonePower(util.select.fromTo(1, 1, 2, 0, 1, 2)); + scene.idle(15); + + scene.overlay.showText(60) + .text("Adjustable Pulse Repeaters emit a short pulse at a delay") + .attachKeyFrame() + .placeNearTarget() + .pointAt(circuitTop); + + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 2, 1, 2)); + scene.idle(70); + + scene.overlay.showRepeaterScrollInput(circuitPos, 60); + scene.overlay.showControls(new InputWindowElement(circuitTop, Pointing.DOWN).scroll(), 60); + scene.idle(10); + scene.overlay.showText(60) + .text("Using the mouse wheel, the charge time can be configured") + .attachKeyFrame() + .placeNearTarget() + .pointAt(circuitTop); + scene.world.modifyTileNBT(util.select.position(circuitPos), AdjustablePulseRepeaterTileEntity.class, + nbt -> nbt.putInt("ScrollValue", 120)); + scene.idle(70); + + scene.effects.indicateRedstone(leverPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 2, 1, 2)); + scene.idle(60); + scene.overlay.showText(50) + .text("Configured delays can range up to 30 minutes") + .placeNearTarget() + .pointAt(circuitTop); + scene.idle(60); + scene.world.cycleBlockProperty(circuitPos, AdjustableRepeaterBlock.POWERING); + scene.world.toggleRedstonePower(util.select.fromTo(1, 1, 2, 0, 1, 2)); + scene.idle(3); + scene.world.toggleRedstonePower(util.select.fromTo(1, 1, 2, 0, 1, 2)); + } + + public static void poweredLatch(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("powered_latch", "Controlling signals using the Powered Latch"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + + BlockPos circuitPos = util.grid.at(2, 1, 2); + BlockPos buttonPos = util.grid.at(4, 1, 2); + Vec3d circuitTop = util.vector.blockSurface(circuitPos, Direction.DOWN) + .add(0, 3 / 16f, 0); + + scene.world.showSection(util.select.layersFrom(1) + .substract(util.select.position(circuitPos)), Direction.UP); + scene.idle(10); + scene.world.showSection(util.select.position(circuitPos), Direction.DOWN); + scene.idle(20); + + scene.overlay.showText(40) + .attachKeyFrame() + .text("Powered Latches are redstone controllable Levers") + .placeNearTarget() + .pointAt(circuitTop); + scene.idle(50); + + scene.effects.indicateRedstone(buttonPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, PoweredLatchBlock.POWERING); + scene.idle(30); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 3, 1, 2)); + + AxisAlignedBB bb = new AxisAlignedBB(circuitPos).grow(-.48f, -.45f, -.05f) + .offset(.575, -.45, 0); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, bb, bb, 40); + scene.overlay.showText(40) + .colored(PonderPalette.GREEN) + .text("Signals at the back switch it on") + .placeNearTarget() + .pointAt(bb.getCenter()); + scene.idle(60); + + scene.effects.indicateRedstone(util.grid.at(2, 1, 0)); + scene.world.toggleRedstonePower(util.select.fromTo(2, 1, 0, 2, 1, 1)); + scene.world.toggleRedstonePower(util.select.fromTo(2, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, PoweredLatchBlock.POWERING); + scene.idle(30); + scene.world.toggleRedstonePower(util.select.fromTo(2, 1, 0, 2, 1, 1)); + + bb = new AxisAlignedBB(circuitPos).grow(-.05f, -.45f, -.48f) + .offset(0, -.45, .575); + AxisAlignedBB bb2 = new AxisAlignedBB(circuitPos).grow(-.05f, -.45f, -.48f) + .offset(0, -.45, -.575); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, bb, bb, 40); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, bb2, bb2, 40); + scene.overlay.showText(40) + .colored(PonderPalette.RED) + .text("Signals from the side switch it back off") + .placeNearTarget() + .pointAt(bb2.getCenter()); + scene.idle(50); + + scene.addKeyframe(); + scene.idle(10); + scene.overlay.showControls(new InputWindowElement(circuitTop, Pointing.DOWN).rightClick(), 40); + scene.idle(7); + scene.world.toggleRedstonePower(util.select.fromTo(2, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, PoweredLatchBlock.POWERING); + scene.idle(10); + + scene.overlay.showText(50) + .text("Powered latches can also be toggled manually") + .placeNearTarget() + .pointAt(circuitTop); + scene.idle(60); + + scene.overlay.showControls(new InputWindowElement(circuitTop, Pointing.DOWN).rightClick(), 40); + scene.idle(7); + scene.world.toggleRedstonePower(util.select.fromTo(2, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, PoweredLatchBlock.POWERING); + scene.idle(10); + } + + public static void poweredToggleLatch(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("powered_toggle_latch", "Controlling signals using the Powered Toggle Latch"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + + BlockPos circuitPos = util.grid.at(2, 1, 2); + BlockPos buttonPos = util.grid.at(4, 1, 2); + Vec3d circuitTop = util.vector.blockSurface(circuitPos, Direction.DOWN) + .add(0, 3 / 16f, 0); + + scene.world.showSection(util.select.layersFrom(1) + .substract(util.select.position(circuitPos)), Direction.UP); + scene.idle(10); + scene.world.showSection(util.select.position(circuitPos), Direction.DOWN); + scene.idle(20); + + scene.overlay.showText(40) + .attachKeyFrame() + .text("Powered Toggle Latches are redstone controllable Levers") + .placeNearTarget() + .pointAt(circuitTop); + scene.idle(50); + + scene.effects.indicateRedstone(buttonPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, ToggleLatchBlock.POWERING); + scene.idle(30); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 3, 1, 2)); + + AxisAlignedBB bb = new AxisAlignedBB(circuitPos).grow(-.48f, -.45f, -.05f) + .offset(.575, -.45, 0); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, bb, bb, 40); + scene.overlay.showText(40) + .colored(PonderPalette.GREEN) + .text("Signals at the back will toggle its state") + .placeNearTarget() + .pointAt(bb.getCenter()); + scene.idle(60); + + scene.effects.indicateRedstone(buttonPos); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, ToggleLatchBlock.POWERING); + scene.idle(30); + scene.world.toggleRedstonePower(util.select.fromTo(4, 1, 2, 3, 1, 2)); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, bb, bb, 40); + scene.overlay.showText(30) + .colored(PonderPalette.RED) + .text("...on and back off") + .placeNearTarget() + .pointAt(bb.getCenter()); + scene.idle(50); + + scene.addKeyframe(); + scene.idle(10); + scene.overlay.showControls(new InputWindowElement(circuitTop, Pointing.DOWN).rightClick(), 40); + scene.idle(7); + scene.world.toggleRedstonePower(util.select.fromTo(2, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, ToggleLatchBlock.POWERING); + scene.idle(10); + + scene.overlay.showText(50) + .text("Powered toggle latches can also be toggled manually") + .placeNearTarget() + .pointAt(circuitTop); + scene.idle(60); + + scene.overlay.showControls(new InputWindowElement(circuitTop, Pointing.DOWN).rightClick(), 40); + scene.idle(7); + scene.world.toggleRedstonePower(util.select.fromTo(2, 1, 2, 0, 1, 2)); + scene.world.cycleBlockProperty(circuitPos, ToggleLatchBlock.POWERING); + scene.idle(10); + } + + public static void analogLever(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("analog_lever", "Controlling signals using the Analog Lever"); + scene.configureBasePlate(0, 0, 5); + + BlockPos[] wireLocations = new BlockPos[] { util.grid.at(2, 1, 1), util.grid.at(2, 1, 0), util.grid.at(1, 1, 0), + util.grid.at(0, 1, 0), util.grid.at(0, 1, 1), util.grid.at(0, 1, 2), util.grid.at(0, 1, 3), + util.grid.at(0, 1, 4), util.grid.at(1, 1, 4), util.grid.at(2, 1, 4), util.grid.at(3, 1, 4), + util.grid.at(4, 1, 4), util.grid.at(4, 1, 3), util.grid.at(4, 1, 2), util.grid.at(4, 1, 1) }; + + Selection leverSelection = util.select.fromTo(2, 1, 2, 2, 2, 2); + Selection lamp = util.select.position(4, 1, 0); + BlockPos leverPos = util.grid.at(2, 2, 2); + Vec3d leverVec = util.vector.centerOf(leverPos) + .add(0, -.25, 0); + + scene.world.showSection(util.select.layersFrom(0) + .substract(lamp) + .substract(leverSelection), Direction.UP); + scene.idle(5); + scene.world.showSection(lamp, Direction.DOWN); + scene.idle(10); + + scene.world.showSection(leverSelection, Direction.DOWN); + scene.idle(20); + + scene.overlay.showText(60) + .text("Analog Levers make for a compact and precise source of redstone power") + .placeNearTarget() + .attachKeyFrame() + .pointAt(leverVec); + scene.idle(70); + + IntegerProperty power = RedstoneWireBlock.POWER; + scene.overlay.showControls(new InputWindowElement(leverVec, Pointing.DOWN).rightClick(), 40); + scene.idle(7); + for (int i = 0; i < 7; i++) { + scene.idle(2); + final int state = i + 1; + scene.world.modifyTileNBT(leverSelection, AnalogLeverTileEntity.class, nbt -> nbt.putInt("State", state)); + scene.world.modifyBlock(wireLocations[i], s -> s.with(power, 7 - state), false); + scene.effects.indicateRedstone(wireLocations[i]); + } + scene.idle(20); + + scene.overlay.showText(60) + .attachKeyFrame() + .text("Right-click to increase its analog power output") + .placeNearTarget() + .pointAt(leverVec); + scene.idle(70); + + scene.overlay.showControls(new InputWindowElement(leverVec, Pointing.DOWN).rightClick() + .whileSneaking(), 40); + scene.idle(7); + for (int i = 7; i > 0; i--) { + scene.idle(2); + final int state = i - 1; + if (i > 3) { + scene.world.modifyTileNBT(leverSelection, AnalogLeverTileEntity.class, + nbt -> nbt.putInt("State", state)); + scene.effects.indicateRedstone(wireLocations[i]); + } + scene.world.modifyBlock(wireLocations[i], s -> s.with(power, state > 2 ? 0 : 3 - state), false); + } + scene.world.modifyBlock(wireLocations[0], s -> s.with(power, 3), false); + scene.idle(20); + + scene.overlay.showText(60) + .attachKeyFrame() + .text("Right-click while Sneaking to decrease the power output again") + .placeNearTarget() + .pointAt(leverVec); + scene.idle(70); + + scene.overlay.showControls(new InputWindowElement(leverVec, Pointing.DOWN).rightClick(), 40); + scene.idle(7); + for (int i = 0; i < 15; i++) { + scene.idle(2); + final int state = i + 1; + if (i >= 4) { + scene.world.modifyTileNBT(leverSelection, AnalogLeverTileEntity.class, + nbt -> nbt.putInt("State", state)); + scene.effects.indicateRedstone(wireLocations[i]); + } + scene.world.modifyBlock(wireLocations[i], s -> s.with(power, 15 - state), false); + } + + scene.world.toggleRedstonePower(lamp); + scene.effects.indicateRedstone(leverPos); + scene.effects.indicateRedstone(util.grid.at(4, 1, 1)); + scene.idle(20); + } + + public static void nixieTube(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("analog_lever", "Using Nixie Tubes"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0) + .add(util.select.fromTo(2, 1, 1, 2, 1, 2)), Direction.UP); + scene.idle(10); + scene.world.showSection(util.select.position(2, 1, 3), Direction.DOWN); + scene.idle(20); + + Selection tubes = util.select.fromTo(3, 1, 3, 1, 1, 3); + + scene.effects.indicateRedstone(util.grid.at(2, 1, 1)); + scene.world.modifyTileNBT(util.select.position(2, 1, 1), AnalogLeverTileEntity.class, + nbt -> nbt.putInt("State", 11)); + scene.world.modifyBlock(util.grid.at(2, 1, 2), s -> s.with(RedstoneWireBlock.POWER, 11), false); + scene.world.modifyTileNBT(tubes, NixieTubeTileEntity.class, nbt -> nbt.putInt("RedstoneStrength", 11)); + scene.idle(20); + + Vec3d centerTube = util.vector.centerOf(2, 1, 3); + + scene.overlay.showText(60) + .attachKeyFrame() + .text("When powered by Redstone, Nixie Tubes will display the redstone signals' strength") + .placeNearTarget() + .pointAt(util.vector.blockSurface(util.grid.at(2, 1, 3), Direction.WEST)); + scene.idle(70); + + scene.world.hideSection(util.select.position(2, 1, 3), Direction.UP); + scene.idle(5); + scene.world.hideSection(util.select.fromTo(2, 1, 1, 2, 1, 2), Direction.NORTH); + scene.idle(10); + scene.world.modifyTileNBT(tubes, NixieTubeTileEntity.class, nbt -> nbt.putInt("RedstoneStrength", 0)); + scene.world.showSection(tubes, Direction.DOWN); + scene.idle(20); + + scene.overlay.showControls(new InputWindowElement(centerTube.add(0, .35, 0), Pointing.DOWN).rightClick() + .withItem(new ItemStack(Items.NAME_TAG)), 40); + scene.idle(7); + + ITextComponent component = new StringTextComponent("CREATE"); + for (int i = 0; i < 3; i++) { + final int index = i; + scene.world.modifyTileNBT(util.select.position(3 - i, 1, 3), NixieTubeTileEntity.class, nbt -> { + nbt.putString("RawCustomText", component.getFormattedText()); + nbt.putString("CustomText", ITextComponent.Serializer.toJson(component)); + nbt.putInt("CustomTextIndex", index); + }); + } + + scene.idle(10); + scene.world.showSection(util.select.position(4, 1, 3), Direction.DOWN); + scene.idle(10); + scene.special.createBirb(util.vector.topOf(util.grid.at(0, 0, 3)), ParrotElement.DancePose::new); + + scene.idle(20); + scene.overlay.showText(80) + .attachKeyFrame() + .text("Using name tags edited with an anvil, custom text can be displayed") + .pointAt(util.vector.topOf(util.grid.at(2, 1, 3)) + .add(.25, -.05f, 0)); + scene.idle(70); + } + + public static void redstoneLink(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("redstone_link", "Using Redstone Links"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0) + .add(util.select.fromTo(3, 1, 1, 2, 1, 1)), Direction.UP); + scene.idle(5); + scene.world.showSection(util.select.fromTo(4, 1, 3, 0, 2, 3), Direction.DOWN); + scene.idle(10); + + Selection redstone = util.select.fromTo(3, 1, 1, 1, 1, 1); + BlockPos leverPos = util.grid.at(3, 1, 1); + BlockPos link1Pos = util.grid.at(1, 1, 1); + BlockPos link2Pos = util.grid.at(1, 2, 2); + BlockPos link3Pos = util.grid.at(3, 2, 2); + Selection link1Select = util.select.position(link1Pos); + Selection link2Select = util.select.position(link2Pos); + Selection link3Select = util.select.position(link3Pos); + Vec3d link1Vec = util.vector.blockSurface(link1Pos, Direction.DOWN) + .add(0, 3 / 16f, 0); + Vec3d link2Vec = util.vector.blockSurface(link2Pos, Direction.SOUTH) + .add(0, 0, -3 / 16f); + Vec3d link3Vec = util.vector.blockSurface(link3Pos, Direction.SOUTH) + .add(0, 0, -3 / 16f); + + scene.world.showSection(link1Select, Direction.DOWN); + scene.idle(5); + scene.world.showSection(link2Select, Direction.DOWN); + scene.idle(5); + scene.world.showSection(link3Select, Direction.DOWN); + scene.idle(10); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("Redstone Links can transmit redstone signals wirelessly") + .placeNearTarget() + .pointAt(link1Vec); + scene.idle(60); + + scene.overlay.showControls(new InputWindowElement(link2Vec, Pointing.UP).rightClick() + .whileSneaking(), 40); + scene.idle(7); + scene.world.modifyBlock(link2Pos, s -> s.cycle(RedstoneLinkBlock.RECEIVER), true); + scene.idle(10); + scene.overlay.showText(50) + .text("Right-click while Sneaking to toggle receive mode") + .placeNearTarget() + .pointAt(link2Vec); + scene.idle(60); + + scene.overlay.showControls(new InputWindowElement(link3Vec, Pointing.UP).rightClick() + .withWrench(), 40); + scene.idle(7); + scene.world.modifyBlock(link3Pos, s -> s.cycle(RedstoneLinkBlock.RECEIVER), true); + scene.idle(10); + scene.overlay.showText(50) + .text("A simple Right-click with a Wrench can do the same") + .placeNearTarget() + .pointAt(link3Vec); + scene.idle(70); + + scene.addKeyframe(); + scene.idle(10); + scene.world.toggleRedstonePower(redstone); + scene.effects.indicateRedstone(leverPos); + scene.idle(5); + scene.world.toggleRedstonePower(util.select.fromTo(3, 2, 3, 1, 2, 2)); + scene.effects.indicateRedstone(link2Pos); + scene.effects.indicateRedstone(link3Pos); + + scene.idle(10); + scene.overlay.showText(70) + .colored(PonderPalette.GREEN) + .text("Receivers will emit the redstone power of transmitters within a range of 128 blocks") + .placeNearTarget() + .pointAt(link2Vec); + scene.idle(80); + scene.world.toggleRedstonePower(redstone); + scene.idle(5); + scene.world.toggleRedstonePower(util.select.fromTo(3, 2, 3, 1, 2, 2)); + scene.idle(20); + + Vec3d frontSlot = link1Vec.add(.18, -.05, -.15); + Vec3d backSlot = link1Vec.add(.18, -.05, .15); + Vec3d top2Slot = link2Vec.add(-.09, .15, 0); + Vec3d bottom2Slot = link2Vec.add(-.09, -.2, 0); + Vec3d top3Slot = link3Vec.add(-.09, .15, 0); + Vec3d bottom3Slot = link3Vec.add(-.09, -.2, 0); + + scene.addKeyframe(); + scene.idle(10); + scene.overlay.showFilterSlotInput(frontSlot, 100); + scene.overlay.showFilterSlotInput(backSlot, 100); + scene.idle(10); + + scene.overlay.showText(50) + .text("Placing items in the two slots can specify a Frequency") + .placeNearTarget() + .pointAt(backSlot); + scene.idle(60); + + ItemStack iron = new ItemStack(Items.IRON_INGOT); + ItemStack gold = new ItemStack(Items.GOLD_INGOT); + ItemStack sapling = new ItemStack(Items.OAK_SAPLING); + + scene.overlay.showControls(new InputWindowElement(backSlot, Pointing.DOWN).withItem(iron), 40); + scene.idle(7); + scene.overlay.showControls(new InputWindowElement(frontSlot, Pointing.UP).withItem(sapling), 40); + scene.world.modifyTileNBT(link1Select, RedstoneLinkTileEntity.class, + nbt -> nbt.put("FrequencyLast", iron.write(new CompoundNBT()))); + scene.idle(7); + scene.world.modifyTileNBT(link1Select, RedstoneLinkTileEntity.class, + nbt -> nbt.put("FrequencyFirst", sapling.write(new CompoundNBT()))); + scene.idle(20); + + scene.overlay.showControls(new InputWindowElement(top2Slot, Pointing.DOWN).withItem(iron), 40); + scene.idle(7); + scene.overlay.showControls(new InputWindowElement(bottom2Slot, Pointing.UP).withItem(sapling), 40); + scene.world.modifyTileNBT(link2Select, RedstoneLinkTileEntity.class, + nbt -> nbt.put("FrequencyLast", iron.write(new CompoundNBT()))); + scene.idle(7); + scene.world.modifyTileNBT(link2Select, RedstoneLinkTileEntity.class, + nbt -> nbt.put("FrequencyFirst", sapling.write(new CompoundNBT()))); + scene.idle(20); + + scene.overlay.showControls(new InputWindowElement(top3Slot, Pointing.DOWN).withItem(gold), 40); + scene.idle(7); + scene.overlay.showControls(new InputWindowElement(bottom3Slot, Pointing.UP).withItem(sapling), 40); + scene.world.modifyTileNBT(link3Select, RedstoneLinkTileEntity.class, + nbt -> nbt.put("FrequencyLast", gold.write(new CompoundNBT()))); + scene.idle(7); + scene.world.modifyTileNBT(link3Select, RedstoneLinkTileEntity.class, + nbt -> nbt.put("FrequencyFirst", sapling.write(new CompoundNBT()))); + scene.idle(20); + + scene.world.toggleRedstonePower(redstone); + scene.effects.indicateRedstone(leverPos); + scene.idle(5); + scene.world.toggleRedstonePower(util.select.fromTo(1, 2, 2, 1, 2, 3)); + scene.effects.indicateRedstone(link2Pos); + scene.overlay.showText(90) + .attachKeyFrame() + .text("Only the links with matching Frequency combinations will communicate") + .placeNearTarget() + .pointAt(link2Vec); + scene.idle(100); + } + } diff --git a/src/main/resources/ponder/adjustable_pulse_repeater.nbt b/src/main/resources/ponder/adjustable_pulse_repeater.nbt new file mode 100644 index 0000000000000000000000000000000000000000..bac67f6a1da1b6c12495a2a25141dd4c6c639dd9 GIT binary patch literal 453 zcmV;$0XqI4iwFP!000000Hu`8PUA2T$0xB<(sJN}#GVk3u;*TP&nqM(u92Hesae;K zYIvm#j6 zRmVGy+P1p)u0@}&zY>Je5sIy%7MvV!&W;|N5S_)!sC_&3EnC;2Pn~}Ul$2?DgU#v1 zVyo&Tkf=gD1^9Xhqe$=WbelKCEP^}49Y{-g(at)5-pLM=us=Fx1KH2n$~x`wyYYJA v|Hq>?AvMi7=V!XuXEM;Q&UAzSC^CKYzg1L^=!13^pnQcl0#*5N2L}KEl9$&; literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/adjustable_repeater.nbt b/src/main/resources/ponder/adjustable_repeater.nbt new file mode 100644 index 0000000000000000000000000000000000000000..feb3414774597c8daa1e5448964f50831b470991 GIT binary patch literal 447 zcmV;w0YLsAiwFP!000000Hu`8PUA2T$0xB<(sJN}1mdvIuxGAtMo36pD>s=^@49wm zyF}u_cs|A@X;2iR5sYL-cK-95uf!{WCCH%PPyj$$1+6?imr$aOI%*7%Yzd2van=8@ zqRpQrh{lE9>0|06QWiy;?LNn&%431!MB!kmi&ggT_ z=<^&$FgTLIfi9=7n*5u(1Y;J0F^f5lU~nXZ)0LNaDC#}N#UoaC%P*iFo!yxS@N zqU}riC7$}%0?wZ*?~Hj?=5U0Tkn0+5Dvu<&RrS9Eu{H+R9-DOJC$b+;S4?zatdSEH zjy1(Zg=5WvG-r)67$c^O>8u3#p!NvYdu_4uY8!9cosPJ!oTaMBsaISMieO#4KHhHB zu+^h?4f=HPl^~3cP;8Y6gX7iU=&=sbSzH^nZ^pi5<688o=bwO*GEFB~pAHsVRV9H$ z72+wtT>D2cJ{{=>uZdO!cZfTXmNKH9b$-~%7L%}hb<6{@zq2*9+T(BIb;6&=qXr?h p%Q)v}`qyRB(=P_P!B>h*ANswD>KT2|&H|M0@B!wabyWKX006Ky+x`Fm literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/analog_lever.nbt b/src/main/resources/ponder/analog_lever.nbt new file mode 100644 index 0000000000000000000000000000000000000000..07bfc5e2974a9090056cc10409936094f4897023 GIT binary patch literal 514 zcmV+d0{#6TiwFP!000000L7Khj?*v@#wWJZO|ozT0q?+t^IqYMkU(53Z#r!)QaiE@ zk$5nk52qWa*{l-=@ny_Nw}b+xp) z!>f<+6^HA$N2w3^NuAL4Zwg>)2hVDYL2@ItY|LTX;J5Ja!>O`aD@CF#^P`t1$}-n% z7Pie)bG6_#Ju<}tXR0X|J{MC>wcy28yaYiLIh?>*(?rg+-Pa3s7KA#lX*fY65}GGL zbJfZQy~qA$d0K#YFHZ=sPD*2K<=)?PN9A!_8y&V^NQ#Q*7lqTN+n%qd(3I+fH7(ly z<|=?U%0s@Fjk_eiyd+xOId3#>8+mF+!HaR9@6esSrBnJaXN$e8F~A#RYyq1P^&)}N z`4N>oGIP#3BV5BfEJ9_>SAQHMZEPRuFvlS5uovD1d271B%HFK5t5X(9egib+HwgdK zZ*cha`u>C8UG#VBdEf7TJ^#Jmy**q!}$Y#0v0xsK?(~1 E0KT{K6951J literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/nixie_tube.nbt b/src/main/resources/ponder/nixie_tube.nbt new file mode 100644 index 0000000000000000000000000000000000000000..7d858b35f140a88d926cea864e9ddba15e2dc154 GIT binary patch literal 467 zcmV;^0WAI>iwFP!000000JW9DZrmUchQ|hPyxU8wRBCTI8ZX3i-yI4pz1GdM$( z89tX8KA+;S3=YrWj9Zc6Gt2P#6o+MScm`((p5Zgk@c9&nWpH?svjS$;fx7O8E(V`& zcG7I|LG97So*GKEf%C>8Nv@@l+HQr$7kc~mRO6D4k6$?s@%blie6R-ZgF~|oyNUhf zz&7etp$N}wOc+(n3}^p@T>dvQOOn&0A0K|6*tj{TBF$MRHHLukE?v~Xf5<(;_q{UM zIN65ley0M8#u}O^6%C57lfoO@i;oML7QDK1wnG>1YLd3HL8w}7t*c={nKE18D18_~ z$pbOtoHeL)EUj9pJx-{~SVwLStc02K8GVe+4edouKG}*f7 zDz3(nzD>(_hrJcOa+5!olc2L???z~)--K;N*r9llTH{;%NN#12kLbLzhK|HU^`CRj(dcid)|54X;+joca25~N>U;1 z!S;L$Z77IRWUaG=km2v2zoKLSDR8U4kpV#aB>supcM1Y4r<_6yt);M7m%8|}nRlL2 zV70bg(8(Ai)=7sUVyKBGG|@;C6F7{(;RH@+(F`Y=(2O}Tfx`$KPT+JF6XqNf<~+w? z1P&)~Ak;L}#25Nvgk3PgF6KClz~KZ=XPmGLPT0j9hY>iOz=^w>1{!ujGdzcUqOb8z zlM9@oW--y%ShJkyYpfAov#e!_&S85Ur2_b?+#x*fRE33+8@Fn<%3)sUsxat-I>lYD zu$6A|!<_~hWN${-Xxi&e04tS)WFt%42R`(H20yIR73QVf)#F&ckp=qTQfni8mAXN% z4>SP_|65g`z8AfB+Y|l1r>~VMw)uMRe2OzTO6!1EKDp=+{`&rCy-J(j;|&gkhaw<) zo^7U41~23b8A84Q4f&4VKjjmL$isZXyv_!A8$RT1QD>jBRU)q1~)I#$#*nXc^AYF`~qY}_2AV9003+J&T{|& literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/powered_toggle_latch.nbt b/src/main/resources/ponder/powered_toggle_latch.nbt new file mode 100644 index 0000000000000000000000000000000000000000..e17715e41ad4ad944cdde610a7129a487ec78686 GIT binary patch literal 409 zcmV;K0cQRmiwFP!000000Hu_{YQr!LhLzZDlk7US!C=p@bI&`EopudwsL_WUxdX| z4x+KXPr8JFg(pSWWn62L2~9H6qzsN=a3q7%M>4}nCNyJC%HRkFM>05lq>MhNj6TnC z1cM_P9Oyhi&5Bp zYHW)RlIPj;TJ3OrUUtsZX5SgkLTBO*ZZ8|lovNbX$69~DV`xlh=ekpuWcT|z)XAT*!km{l zjKJXp4h){oHTf@nF~TkwVHZmrM&NJ)XADl*1t;uciNgpSPT*uSyI?bZQVpN+lWK|? zKdELFH0w?%^d93gvMzx?iUY#!L27KR*!fMrmmZte=+gWUFdCaGSV+6y2AHxGlPo<;l(prCyfRuKj8~{O=o|j1^@t+1iQrm literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/redstone_link.nbt b/src/main/resources/ponder/redstone_link.nbt new file mode 100644 index 0000000000000000000000000000000000000000..6535d7930f62e90e67f38775c0aa647b423b2975 GIT binary patch literal 564 zcmV-40?Yj$iwFP!000000L_-)Yuhjo$Iq6WI4)foly(2W-uIk6cJyUqlri=iRQuA1 zI+7s}d!3PMo)z0dv7`JxP90o=;p$N-@JB;k7jDJmzOL<{v= z!0e{f`JK)D=G_8VrEM_k7K6k(;jpzBYN8QMbfk$197f=90w=6!f)kBsjyW-b!w4Ks z;Di+u>Kqg5JjG!I4kvKBqaf6o5$Zg}VFV5*aG;H8sEJ2neoPY+G>o9(#CYN(4IAAkwv*3UYv8ei2ig;*AFo*VQomj(;#w8B*>)m;X!t_=Rzp~`<53 zJ>5!$xe;r(6w*YHT2kq`B>lh^L1)em&pa4PWU&i?+x3(CIkqv3o>o;CaX7nD64 z&3=5s4EtmDz=RoU=3X+AR!yh^?ZIAHscwBGvTLI&H1&ld1y=fFOV*;aJ@}#r_ca&W>ezN(={f;_e&;MX2N*lL%8lIzXg8IT$cu->X&I7pe>NMcm9pB?XcnAuj z_midCON0OT^Rc3jywuu^Bo|U?!V2)S9$sRdIfIjr!in!_?BOj*|G;0~=jKm23IG6b CFCB{j literal 0 HcmV?d00001