mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-26 06:57:51 +01:00
Ponder Ponder Ponder
- Fixed all scenes with broken mechanical arms - Display Board Scene - Bogeys now animate - Controls now show handles, Conductors show hats - Train Schedule Scene - Updated ponder tags - Fixed Scene end timings to work with "Up Next" - Fixed Glue in Chassis Scene
This commit is contained in:
parent
a1b892ba60
commit
724d3af40e
59 changed files with 873 additions and 177 deletions
|
@ -559,22 +559,22 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json
|
||||
e4387cb6c9c2f655780caae6695c21d4b0f7ff00 assets/create/lang/en_us.json
|
||||
034ed85767e85796f1fbd24e9bc82f6efbb0ff00 assets/create/lang/unfinished/de_de.json
|
||||
8cb1689cfca91a9b90b696c40c255668432f2067 assets/create/lang/unfinished/es_cl.json
|
||||
8aae499911d504a1853e93a1faf3cda884cc33c3 assets/create/lang/unfinished/es_es.json
|
||||
e9e5a2a515962b41deb5cdd64fdda7b88d5b02ce assets/create/lang/unfinished/fr_fr.json
|
||||
d0553cb3b398b02bccc9424de4a5047d798751c9 assets/create/lang/unfinished/it_it.json
|
||||
db62d0e6b3eb76e0e1de5f9172586c7c2a4983a2 assets/create/lang/unfinished/ja_jp.json
|
||||
8ba5cbbcf5b87ce731b591334fa37df9f166d50c assets/create/lang/unfinished/ko_kr.json
|
||||
a70fb96e62e155970756d7b6fc03b110a9f567c6 assets/create/lang/unfinished/nl_nl.json
|
||||
78412fe67fe8d83d21cde2b71619bedecdd0dde1 assets/create/lang/unfinished/pl_pl.json
|
||||
df49ae1125eaa7238b37b3718d3f457eb0995d68 assets/create/lang/unfinished/pt_br.json
|
||||
08313ea78351409316476109c911c01b7f3cd4e0 assets/create/lang/unfinished/pt_pt.json
|
||||
532b44d44f9c5936ab3685b8364110e8589f86c2 assets/create/lang/unfinished/ro_ro.json
|
||||
cd21ad8384b2324dc555d9e83e1335fd3d33be26 assets/create/lang/unfinished/ru_ru.json
|
||||
f25383665c84b72792df13c958324912f664ef73 assets/create/lang/unfinished/zh_cn.json
|
||||
f8fd3b4be22a34130711033ed939a6bad87a5dd6 assets/create/lang/unfinished/zh_tw.json
|
||||
a7577ac3c680ab2310dc75ad5f4ae2b7c04e3e43 assets/create/lang/en_us.json
|
||||
8735c5c7044b78e597f5a824e8983d0621860796 assets/create/lang/unfinished/de_de.json
|
||||
2d30195c7141ccc90f5082a49d45339b228c084b assets/create/lang/unfinished/es_cl.json
|
||||
34d4ac6a07e0aa9532dd2236f453be14afa62dfd assets/create/lang/unfinished/es_es.json
|
||||
97f5084b105870db9d9fd09cf69f76204d09fb31 assets/create/lang/unfinished/fr_fr.json
|
||||
c22700892b9c1d182fcd1fce7949b9514a6dc08d assets/create/lang/unfinished/it_it.json
|
||||
91001c998ab514bd8c1622934768f2c214a9b400 assets/create/lang/unfinished/ja_jp.json
|
||||
0e81eec61de0c788d544532cc7d9415953a57532 assets/create/lang/unfinished/ko_kr.json
|
||||
b5cd4570f324f7ef479b4498530db8424a0fce4e assets/create/lang/unfinished/nl_nl.json
|
||||
4119cf3e85c2db269cfcbb9b0855dc589f1b2efd assets/create/lang/unfinished/pl_pl.json
|
||||
7dfea0cf1817b578cf77bb3cf7aec56cf3ae3c79 assets/create/lang/unfinished/pt_br.json
|
||||
6ebfab1999c828e118fd3416cfc1e7deb92a1951 assets/create/lang/unfinished/pt_pt.json
|
||||
c0696548db7c287f4328da87d7dbd71b5c2fd5cb assets/create/lang/unfinished/ro_ro.json
|
||||
8e51c6dff7d3440fb64e96912de3477b7d93b785 assets/create/lang/unfinished/ru_ru.json
|
||||
b7b8e40e1fdcb192a7d4995ac8e171de8b18714d assets/create/lang/unfinished/zh_cn.json
|
||||
20ecd8bcb6f5bae81b73e6dc578fbac8d0e18cfb assets/create/lang/unfinished/zh_tw.json
|
||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
|
|
@ -2056,7 +2056,7 @@
|
|||
"create.ponder.close": "Close",
|
||||
"create.ponder.identify": "Identify",
|
||||
"create.ponder.next": "Next Scene",
|
||||
"create.ponder.next_up": "Next up:",
|
||||
"create.ponder.next_up": "Up Next:",
|
||||
"create.ponder.previous": "Previous Scene",
|
||||
"create.ponder.replay": "Replay",
|
||||
"create.ponder.think_back": "Think Back",
|
||||
|
@ -2105,6 +2105,8 @@
|
|||
"create.ponder.tag.logistics.description": "Components which help moving items around",
|
||||
"create.ponder.tag.display_targets": "Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"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",
|
||||
|
@ -2352,6 +2354,14 @@
|
|||
"create.ponder.depot.text_3": "Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.display_board.header": "Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2897,6 +2907,12 @@
|
|||
"create.ponder.train_controls.text_8": "Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "Generating Rotational Force using Valve Handles",
|
||||
"create.ponder.valve_handle.text_1": "Valve Handles can be used by players to apply rotational force manually",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1270",
|
||||
"_": "Missing Localizations: 1285",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "UNLOCALIZED: Close",
|
||||
"create.ponder.identify": "UNLOCALIZED: Identify",
|
||||
"create.ponder.next": "UNLOCALIZED: Next Scene",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "UNLOCALIZED: Previous Scene",
|
||||
"create.ponder.replay": "UNLOCALIZED: Replay",
|
||||
"create.ponder.think_back": "UNLOCALIZED: Think Back",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"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",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "UNLOCALIZED: Generating Rotational Force using Valve Handles",
|
||||
"create.ponder.valve_handle.text_1": "UNLOCALIZED: Valve Handles can be used by players to apply rotational force manually",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 920",
|
||||
"_": "Missing Localizations: 935",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "Cerrar",
|
||||
"create.ponder.identify": "Identificar",
|
||||
"create.ponder.next": "Siguiente Escena",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "Escena Previa",
|
||||
"create.ponder.replay": "Reiniciar",
|
||||
"create.ponder.think_back": "Pensar Atrás",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "Componentes que ayudan a mover objetos",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "Controlando señales usando la Palanca Análoga",
|
||||
"create.ponder.analog_lever.text_1": "Las Palancas Análogas son una fuente compacta y precisa de redstone",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "Al igual que las Cintas Mecánicas, pueden proporcionar objetos para procesar.",
|
||||
"create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "Generación Fuerza Rotacional mediante Válvulas de Cobre",
|
||||
"create.ponder.valve_handle.text_1": "Los jugadores pueden usar las Válvulas para aplicar fuerza de rotación manualmente",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 584",
|
||||
"_": "Missing Localizations: 599",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "Cerrar",
|
||||
"create.ponder.identify": "Identificar",
|
||||
"create.ponder.next": "Escena siguiente",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "Escena previa",
|
||||
"create.ponder.replay": "Repetición",
|
||||
"create.ponder.think_back": "Volver atrás",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "Componentes que ayudan a desplazar los objetos",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "Controlar señales mediante la palanca analógica",
|
||||
"create.ponder.analog_lever.text_1": "Las palancas analógicas son una fuente compacta y precisa de energía de redstone",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "Al igual que en las cintas mecánicas, pueden procesarse objetos",
|
||||
"create.ponder.depot.text_4": "...así como proporcionar objetos a los brazos mecánicos",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "Generar fuerza rotacional mediante asas de válvula",
|
||||
"create.ponder.valve_handle.text_1": "Los jugadores pueden utilizar las asas de válvulas para aplicar fuerza rotacional manualmente",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2072",
|
||||
"_": "Missing Localizations: 2087",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "UNLOCALIZED: Close",
|
||||
"create.ponder.identify": "UNLOCALIZED: Identify",
|
||||
"create.ponder.next": "UNLOCALIZED: Next Scene",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "UNLOCALIZED: Previous Scene",
|
||||
"create.ponder.replay": "UNLOCALIZED: Replay",
|
||||
"create.ponder.think_back": "UNLOCALIZED: Think Back",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"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",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "UNLOCALIZED: Generating Rotational Force using Valve Handles",
|
||||
"create.ponder.valve_handle.text_1": "UNLOCALIZED: Valve Handles can be used by players to apply rotational force manually",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1843",
|
||||
"_": "Missing Localizations: 1858",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "UNLOCALIZED: Close",
|
||||
"create.ponder.identify": "UNLOCALIZED: Identify",
|
||||
"create.ponder.next": "UNLOCALIZED: Next Scene",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "UNLOCALIZED: Previous Scene",
|
||||
"create.ponder.replay": "UNLOCALIZED: Replay",
|
||||
"create.ponder.think_back": "UNLOCALIZED: Think Back",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"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",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "UNLOCALIZED: Generating Rotational Force using Valve Handles",
|
||||
"create.ponder.valve_handle.text_1": "UNLOCALIZED: Valve Handles can be used by players to apply rotational force manually",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 586",
|
||||
"_": "Missing Localizations: 601",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "閉じる",
|
||||
"create.ponder.identify": "ブロック名を確認",
|
||||
"create.ponder.next": "次のシーン",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "前のシーン",
|
||||
"create.ponder.replay": "最初から",
|
||||
"create.ponder.think_back": "戻る",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "アイテムの運搬を補助する機械です",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "アナログレバーによる信号制御",
|
||||
"create.ponder.analog_lever.text_1": "アナログレバーはコンパクトに正確なレッドストーン動力を出力できます。",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "メカニカルベルトのように、載せたアイテムを加工できます",
|
||||
"create.ponder.depot.text_4": "また、メカニカルアームにアイテムを供給することもできます",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "バルブハンドルによる回転力の生成",
|
||||
"create.ponder.valve_handle.text_1": "バルブハンドルは手動で回転力を生み出す原動機です",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 586",
|
||||
"_": "Missing Localizations: 601",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "닫기",
|
||||
"create.ponder.identify": "탐색",
|
||||
"create.ponder.next": "다음 장면",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "이전 장면",
|
||||
"create.ponder.replay": "다시 재생",
|
||||
"create.ponder.think_back": "되돌아가기",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "아이템을 옮기는데 도움을 줄 부품입니다.",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "아날로그 레버를 이용해 신호 조절하기",
|
||||
"create.ponder.analog_lever.text_1": "아날로그 레버는 정확하고 간편하게 레드스톤 신호의 세기를 조절합니다.",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "벨트처럼, 놓여진 아이템은 가공될 수 있습니다.",
|
||||
"create.ponder.depot.text_4": "그리고 기계 팔의 목표가 될 수 있습니다.",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "밸브 손잡이로 동력 생산하기",
|
||||
"create.ponder.valve_handle.text_1": "밸브 손잡이를 사용하면 수동으로 동력을 생성할 수 있습니다.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2420",
|
||||
"_": "Missing Localizations: 2435",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "UNLOCALIZED: Close",
|
||||
"create.ponder.identify": "UNLOCALIZED: Identify",
|
||||
"create.ponder.next": "UNLOCALIZED: Next Scene",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "UNLOCALIZED: Previous Scene",
|
||||
"create.ponder.replay": "UNLOCALIZED: Replay",
|
||||
"create.ponder.think_back": "UNLOCALIZED: Think Back",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"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",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "UNLOCALIZED: Generating Rotational Force using Valve Handles",
|
||||
"create.ponder.valve_handle.text_1": "UNLOCALIZED: Valve Handles can be used by players to apply rotational force manually",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 959",
|
||||
"_": "Missing Localizations: 974",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "Zamknij",
|
||||
"create.ponder.identify": "Identyfikacja",
|
||||
"create.ponder.next": "Następna scena",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "Poprzednia scena",
|
||||
"create.ponder.replay": "Powtórka",
|
||||
"create.ponder.think_back": "Powrót",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "Komponenty, które pomagają w transporcie przedmiotów",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "Kontrola sygnałów z wykorzystaniem dźwigni analogowej",
|
||||
"create.ponder.analog_lever.text_1": "Dźwignie analogowe są kompaktowymi i dokładnymi źródłami sygnału Redstone",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "Podobnie jak taśmociągi, składnica może dostarczać przedmioty do obróbki...",
|
||||
"create.ponder.depot.text_4": "…jak i również dla mechanicznych ramion",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "Generowanie siły obrotowej z użyciem pokręteł",
|
||||
"create.ponder.valve_handle.text_1": "Pokrętła mogą być użyte, aby ręcznie wytworzyć siłę obrotową bezpośrednio w miejscu postawienia",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1453",
|
||||
"_": "Missing Localizations: 1468",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "UNLOCALIZED: Close",
|
||||
"create.ponder.identify": "UNLOCALIZED: Identify",
|
||||
"create.ponder.next": "UNLOCALIZED: Next Scene",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "UNLOCALIZED: Previous Scene",
|
||||
"create.ponder.replay": "UNLOCALIZED: Replay",
|
||||
"create.ponder.think_back": "UNLOCALIZED: Think Back",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"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",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "UNLOCALIZED: Generating Rotational Force using Valve Handles",
|
||||
"create.ponder.valve_handle.text_1": "UNLOCALIZED: Valve Handles can be used by players to apply rotational force manually",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2129",
|
||||
"_": "Missing Localizations: 2144",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "UNLOCALIZED: Close",
|
||||
"create.ponder.identify": "UNLOCALIZED: Identify",
|
||||
"create.ponder.next": "UNLOCALIZED: Next Scene",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "UNLOCALIZED: Previous Scene",
|
||||
"create.ponder.replay": "UNLOCALIZED: Replay",
|
||||
"create.ponder.think_back": "UNLOCALIZED: Think Back",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "UNLOCALIZED: Components which help moving items around",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"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",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "UNLOCALIZED: Just like Mechanical Belts, it can provide items to processing",
|
||||
"create.ponder.depot.text_4": "UNLOCALIZED: ...as well as provide Items to Mechanical Arms",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "UNLOCALIZED: Generating Rotational Force using Valve Handles",
|
||||
"create.ponder.valve_handle.text_1": "UNLOCALIZED: Valve Handles can be used by players to apply rotational force manually",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 587",
|
||||
"_": "Missing Localizations: 602",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "Închide",
|
||||
"create.ponder.identify": "Identifică",
|
||||
"create.ponder.next": "Scena următoare",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "Scena precedentă",
|
||||
"create.ponder.replay": "Reia",
|
||||
"create.ponder.think_back": "Gândește Înapoi",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "Componente ce ajută la mișcarea obiectelor în jur",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "Controlarea semnalelor folosind Maneta Analogică",
|
||||
"create.ponder.analog_lever.text_1": "Manetele Analogice fac pentru o sursă de redstone compactă și precisă",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "La fel ca Benzile Mecanice, poate oferi obiecte către procesare",
|
||||
"create.ponder.depot.text_4": "...precum și oferirea Obiectelor Brațelor Mecanice",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "Generarea Forței De Rotație folosind Mânere De Supapă",
|
||||
"create.ponder.valve_handle.text_1": "Mânerele De Supapă pot fi folosite de jucători pentru a aplica forță de rotație manual",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 964",
|
||||
"_": "Missing Localizations: 979",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "Закрыть",
|
||||
"create.ponder.identify": "Определить",
|
||||
"create.ponder.next": "Следующая сцена",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "Предыдущая сцена",
|
||||
"create.ponder.replay": "Воспроизвести снова",
|
||||
"create.ponder.think_back": "Подумать о предыдущем",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "Компоненты, помогающие перемещать предметы",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "Управлении сигналами используя Аналоговый рычаг",
|
||||
"create.ponder.analog_lever.text_1": "Аналоговый рычаг создан как компактный и точный источник Редстоун сигнала",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "Так же, как Механические ремни, оно может предоставлять предметы для обработки",
|
||||
"create.ponder.depot.text_4": "...а также поставлять предметы Механическим рукам",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "Генерации силы вращения при помощи Вентилей",
|
||||
"create.ponder.valve_handle.text_1": "Игроки могут использовать вентили для применения силы вращения вручную",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 584",
|
||||
"_": "Missing Localizations: 599",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "思索结束",
|
||||
"create.ponder.identify": "显示方块名称",
|
||||
"create.ponder.next": "下一情景",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "上一情景",
|
||||
"create.ponder.replay": "重放",
|
||||
"create.ponder.think_back": "回想",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "该组件可以协助物品运输",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "使用模拟拉杆控制红石信号",
|
||||
"create.ponder.analog_lever.text_1": "模拟拉杆可提供紧凑而精确的红石信号源",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "与传送带一样,它也可以将其内的物品转送到其他设备中进行加工……",
|
||||
"create.ponder.depot.text_4": "……同时物品也可以被机械手存取",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "使用阀门手轮产生旋转力",
|
||||
"create.ponder.valve_handle.text_1": "玩家可以手动使用阀门手轮来产生旋转力",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 978",
|
||||
"_": "Missing Localizations: 993",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
"create.ponder.close": "關閉",
|
||||
"create.ponder.identify": "暫停",
|
||||
"create.ponder.next": "下個場景",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Next up:",
|
||||
"create.ponder.next_up": "UNLOCALIZED: Up Next:",
|
||||
"create.ponder.previous": "上個場景",
|
||||
"create.ponder.replay": "重播",
|
||||
"create.ponder.think_back": "返回",
|
||||
|
@ -2106,6 +2106,8 @@
|
|||
"create.ponder.tag.logistics.description": "該裝置用於物品的傳輸",
|
||||
"create.ponder.tag.display_targets": "UNLOCALIZED: Targets for Display Links",
|
||||
"create.ponder.tag.display_targets.description": "UNLOCALIZED: Components or Blocks which can process and display the data received from a Display Link",
|
||||
"create.ponder.tag.train_related": "UNLOCALIZED: Railway Equipment",
|
||||
"create.ponder.tag.train_related.description": "UNLOCALIZED: Components used in the construction or management of Train Contraptions",
|
||||
|
||||
"create.ponder.analog_lever.header": "使用可調式拉桿來控制訊號",
|
||||
"create.ponder.analog_lever.text_1": "可調式拉桿是一種小巧而輕準的紅石能源",
|
||||
|
@ -2353,6 +2355,14 @@
|
|||
"create.ponder.depot.text_3": "與傳送帶一樣,它也可以將其內的物品轉送到其他設備中進行加工...",
|
||||
"create.ponder.depot.text_4": "...同時物品也可以被機械手存取",
|
||||
|
||||
"create.ponder.display_board.header": "UNLOCALIZED: Using Display Boards",
|
||||
"create.ponder.display_board.text_1": "UNLOCALIZED: Display Boards are a scalable alternative to the sign",
|
||||
"create.ponder.display_board.text_2": "UNLOCALIZED: They require Rotational Force to operate",
|
||||
"create.ponder.display_board.text_3": "UNLOCALIZED: Text can be displayed using Name Tags...",
|
||||
"create.ponder.display_board.text_4": "UNLOCALIZED: ...or through the use of Display Links",
|
||||
"create.ponder.display_board.text_5": "UNLOCALIZED: Dyes can be applied to individual lines of the board",
|
||||
"create.ponder.display_board.text_6": "UNLOCALIZED: Lines can be reset by clicking them with an empty hand",
|
||||
|
||||
"create.ponder.display_link.header": "UNLOCALIZED: Setting up Display Links",
|
||||
"create.ponder.display_link.text_1": "UNLOCALIZED: Display Links should be assigned a target before they are placed",
|
||||
"create.ponder.display_link.text_2": "UNLOCALIZED: First select a target by Right- Clicking while holding the Link ...",
|
||||
|
@ -2898,6 +2908,12 @@
|
|||
"create.ponder.train_controls.text_8": "UNLOCALIZED: Sneak or click again to stop controlling the Train",
|
||||
|
||||
"create.ponder.train_schedule.header": "UNLOCALIZED: Using Train Schedules",
|
||||
"create.ponder.train_schedule.text_1": "UNLOCALIZED: Schedules allow Trains to be controlled by other Drivers",
|
||||
"create.ponder.train_schedule.text_2": "UNLOCALIZED: Right-click with the item in hand to open its Interface",
|
||||
"create.ponder.train_schedule.text_3": "UNLOCALIZED: Once programmed, the Schedule can be handed off to a Train Driver",
|
||||
"create.ponder.train_schedule.text_4": "UNLOCALIZED: Any mob or blaze burner sitting in front of Train Controls is an eligible conductor",
|
||||
"create.ponder.train_schedule.text_5": "UNLOCALIZED: Creatures on a lead can be given their seat more conveniently",
|
||||
"create.ponder.train_schedule.text_6": "UNLOCALIZED: Schedules can be retrieved from Drivers at any moment",
|
||||
|
||||
"create.ponder.valve_handle.header": "使用閥門手輪產生動能",
|
||||
"create.ponder.valve_handle.text_1": "玩家可以手動使用閥門手輪來產生動能",
|
||||
|
|
|
@ -179,7 +179,7 @@ import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchTileE
|
|||
import com.simibubi.create.content.logistics.block.vault.ItemVaultTileEntity;
|
||||
import com.simibubi.create.content.logistics.item.LecternControllerRenderer;
|
||||
import com.simibubi.create.content.logistics.item.LecternControllerTileEntity;
|
||||
import com.simibubi.create.content.logistics.trains.IBogeyTileEntityRenderer;
|
||||
import com.simibubi.create.content.logistics.trains.BogeyTileEntityRenderer;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayRenderer;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity;
|
||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.observer.TrackObserverRenderer;
|
||||
|
@ -788,7 +788,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<StandardBogeyTileEntity> BOGEY = Create.registrate()
|
||||
.tileEntity("bogey", StandardBogeyTileEntity::new)
|
||||
.renderer(() -> IBogeyTileEntityRenderer::new)
|
||||
.renderer(() -> BogeyTileEntityRenderer::new)
|
||||
.validBlocks(AllBlocks.SMALL_BOGEY, AllBlocks.LARGE_BOGEY)
|
||||
.register();
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ public class BlazeBurnerRenderer extends SafeTileEntityRenderer<BlazeBurnerTileE
|
|||
float animation = te.headAnimation.getValue(partialTicks) * .175f;
|
||||
BlockState blockState = te.getBlockState();
|
||||
boolean drawGoggles = te.goggles;
|
||||
boolean drawHat = false;
|
||||
boolean drawHat = te.hat;
|
||||
|
||||
renderShared(level, buffer, null, ms, blockState, horizontalAngle, animation, drawGoggles, drawHat, hashCode);
|
||||
}
|
||||
|
@ -122,14 +122,16 @@ public class BlazeBurnerRenderer extends SafeTileEntityRenderer<BlazeBurnerTileE
|
|||
draw(CachedBufferer.partial(AllBlockPartials.BLAZE_GOGGLES, blockState)
|
||||
.translate(0, headY + 8 / 16f, 0), horizontalAngle, modelTransform, ms, solid);
|
||||
|
||||
if (drawHat && modelTransform != null)
|
||||
CachedBufferer.partial(AllBlockPartials.TRAIN_HAT, blockState)
|
||||
.transform(modelTransform)
|
||||
.translate(0, headY + 0.75f, 0)
|
||||
if (drawHat) {
|
||||
SuperByteBuffer partial = CachedBufferer.partial(AllBlockPartials.TRAIN_HAT, blockState);
|
||||
if (modelTransform != null)
|
||||
partial.transform(modelTransform);
|
||||
partial.translate(0, headY + 0.75f, 0)
|
||||
.rotateCentered(Direction.UP, horizontalAngle + Mth.PI)
|
||||
.translate(0.5f, 0, 0.5f)
|
||||
.light(LightTexture.FULL_BRIGHT)
|
||||
.renderInto(ms, solid);
|
||||
}
|
||||
|
||||
draw(CachedBufferer.partial(rods, blockState)
|
||||
.translate(0, offset1 + animation + .125f, 0), 0, modelTransform, ms, solid);
|
||||
|
|
|
@ -40,6 +40,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
|
|||
protected LerpedFloat headAngle;
|
||||
protected boolean isCreative;
|
||||
protected boolean goggles;
|
||||
protected boolean hat;
|
||||
|
||||
public BlazeBurnerTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
|
@ -142,6 +143,8 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
|
|||
compound.putBoolean("isCreative", true);
|
||||
if (goggles)
|
||||
compound.putBoolean("Goggles", true);
|
||||
if (hat)
|
||||
compound.putBoolean("TrainHat", true);
|
||||
super.write(compound, clientPacket);
|
||||
}
|
||||
|
||||
|
@ -151,6 +154,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
|
|||
remainingBurnTime = compound.getInt("burnTimeRemaining");
|
||||
isCreative = compound.getBoolean("isCreative");
|
||||
goggles = compound.contains("Goggles");
|
||||
hat = compound.contains("TrainHat");
|
||||
super.read(compound, clientPacket);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.simibubi.create.content.logistics.trains;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.content.logistics.trains.track.StandardBogeyTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
|
@ -8,16 +9,19 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
|||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class IBogeyTileEntityRenderer<T extends BlockEntity> extends SafeTileEntityRenderer<T> {
|
||||
public class BogeyTileEntityRenderer<T extends BlockEntity> extends SafeTileEntityRenderer<T> {
|
||||
|
||||
public IBogeyTileEntityRenderer(BlockEntityRendererProvider.Context context) {}
|
||||
public BogeyTileEntityRenderer(BlockEntityRendererProvider.Context context) {}
|
||||
|
||||
@Override
|
||||
protected void renderSafe(T te, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light,
|
||||
int overlay) {
|
||||
BlockState blockState = te.getBlockState();
|
||||
float angle = 0;
|
||||
if (te instanceof StandardBogeyTileEntity sbte)
|
||||
angle = sbte.getVirtualAngle(partialTicks);
|
||||
if (blockState.getBlock()instanceof IBogeyBlock bogey)
|
||||
bogey.render(blockState, 0, ms, partialTicks, buffer, light, overlay);
|
||||
bogey.render(blockState, angle, ms, partialTicks, buffer, light, overlay);
|
||||
}
|
||||
|
||||
}
|
|
@ -29,6 +29,7 @@ import net.minecraft.network.chat.Style;
|
|||
import net.minecraft.network.chat.TextColor;
|
||||
import net.minecraft.util.FormattedCharSink;
|
||||
import net.minecraft.util.StringDecomposer;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
@ -85,12 +86,12 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer {
|
|||
|
||||
Pose transform = ms.last();
|
||||
FlapDisplayRenderOutput renderOutput = new FlapDisplayRenderOutput(buffer, color, transform.pose(), light,
|
||||
j, !te.isSpeedRequirementFulfilled());
|
||||
j, !te.isSpeedRequirementFulfilled(), te.getLevel());
|
||||
|
||||
for (int i = 0; i < line.size(); i++) {
|
||||
FlapDisplaySection section = line.get(i);
|
||||
renderOutput.nextSection(section);
|
||||
int ticks = AnimationTickHolder.getTicks();
|
||||
int ticks = AnimationTickHolder.getTicks(te.getLevel());
|
||||
String text = section.renderCharsIndividually() || !section.spinning[0] ? section.text
|
||||
: section.cyclingOptions[((ticks / 3) + i * 13) % section.cyclingOptions.length];
|
||||
StringDecomposer.iterateFormatted(text, Style.EMPTY, renderOutput);
|
||||
|
@ -124,11 +125,13 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer {
|
|||
FlapDisplaySection section;
|
||||
float x;
|
||||
private int lineIndex;
|
||||
private Level level;
|
||||
|
||||
public FlapDisplayRenderOutput(MultiBufferSource buffer, int color, Matrix4f pose, int light, int lineIndex,
|
||||
boolean paused) {
|
||||
boolean paused, Level level) {
|
||||
this.bufferSource = buffer;
|
||||
this.lineIndex = lineIndex;
|
||||
this.level = level;
|
||||
this.a = .75f;
|
||||
this.r = (color >> 16 & 255) / 255f;
|
||||
this.g = (color >> 8 & 255) / 255f;
|
||||
|
@ -145,8 +148,8 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer {
|
|||
|
||||
public boolean accept(int charIndex, Style style, int glyph) {
|
||||
FontSet fontset = getFontSet();
|
||||
int ticks = paused ? 0 : AnimationTickHolder.getTicks();
|
||||
float time = paused ? 0 : AnimationTickHolder.getRenderTime();
|
||||
int ticks = paused ? 0 : AnimationTickHolder.getTicks(level);
|
||||
float time = paused ? 0 : AnimationTickHolder.getRenderTime(level);
|
||||
float dim = 1;
|
||||
|
||||
if (section.renderCharsIndividually() && section.spinning[Math.min(charIndex, section.spinning.length)]) {
|
||||
|
|
|
@ -60,7 +60,7 @@ public class FlapDisplaySection {
|
|||
sendTransition = true;
|
||||
}
|
||||
|
||||
private void refresh(boolean transition) {
|
||||
public void refresh(boolean transition) {
|
||||
if (component == null)
|
||||
return;
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ public class FlapDisplayTileEntity extends KineticTileEntity {
|
|||
public void tick() {
|
||||
super.tick();
|
||||
isRunning = super.isSpeedRequirementFulfilled();
|
||||
if (!level.isClientSide || !isRunning)
|
||||
if ((!level.isClientSide || !isRunning) && !isVirtual())
|
||||
return;
|
||||
int activeFlaps = 0;
|
||||
for (FlapDisplayLayout line : lines)
|
||||
|
@ -139,10 +139,10 @@ public class FlapDisplayTileEntity extends KineticTileEntity {
|
|||
layout.loadDefault(getMaxCharCount());
|
||||
List<FlapDisplaySection> sections = layout.getSections();
|
||||
|
||||
FlapDisplaySection flapDisplaySection = sections.get(0);
|
||||
if (rawComponentText == null) {
|
||||
manualLines[lineIndex] = false;
|
||||
sections.get(0)
|
||||
.setText(new TextComponent(""));
|
||||
flapDisplaySection.setText(new TextComponent(""));
|
||||
notifyUpdate();
|
||||
return;
|
||||
}
|
||||
|
@ -152,10 +152,13 @@ public class FlapDisplayTileEntity extends KineticTileEntity {
|
|||
return;
|
||||
|
||||
manualLines[lineIndex] = true;
|
||||
Component text = DynamicComponent.parseCustomText(level, worldPosition, json);
|
||||
sections.get(0)
|
||||
.setText(text);
|
||||
notifyUpdate();
|
||||
Component text = isVirtual() ? Component.Serializer.fromJson(rawComponentText)
|
||||
: DynamicComponent.parseCustomText(level, worldPosition, json);
|
||||
flapDisplaySection.setText(text);
|
||||
if (isVirtual())
|
||||
flapDisplaySection.refresh(true);
|
||||
else
|
||||
notifyUpdate();
|
||||
}
|
||||
|
||||
public void setColour(int lineIndex, DyeColor color) {
|
||||
|
|
|
@ -125,6 +125,9 @@ public class TrainHatArmorLayer<T extends LivingEntity, M extends EntityModel<T>
|
|||
private boolean shouldRenderOn(LivingEntity entity) {
|
||||
if (entity == null)
|
||||
return false;
|
||||
if (entity.getPersistentData()
|
||||
.contains("TrainHat"))
|
||||
return true;
|
||||
if (!entity.isPassenger())
|
||||
return false;
|
||||
if (entity instanceof Player p) {
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package com.simibubi.create.content.logistics.trains.track;
|
||||
|
||||
import com.simibubi.create.content.logistics.trains.IBogeyBlock;
|
||||
import com.simibubi.create.foundation.tileEntity.CachedRenderBBTileEntity;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
|
@ -18,4 +20,21 @@ public class StandardBogeyTileEntity extends CachedRenderBBTileEntity {
|
|||
return super.createRenderBoundingBox().inflate(2);
|
||||
}
|
||||
|
||||
// Ponder
|
||||
|
||||
LerpedFloat virtualAnimation = LerpedFloat.angular();
|
||||
|
||||
public float getVirtualAngle(float partialTicks) {
|
||||
return virtualAnimation.getValue(partialTicks);
|
||||
}
|
||||
|
||||
public void animate(float distanceMoved) {
|
||||
BlockState blockState = getBlockState();
|
||||
if (!(blockState.getBlock() instanceof IBogeyBlock type))
|
||||
return;
|
||||
double angleDiff = 360 * distanceMoved / (Math.PI * 2 * type.getWheelRadius());
|
||||
double newWheelAngle = (virtualAnimation.getValue() - angleDiff) % 360;
|
||||
virtualAnimation.setValue(newWheelAngle);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -126,7 +126,7 @@ public class PonderLocalization {
|
|||
addGeneral(object, PonderUI.CLOSE, "Close");
|
||||
addGeneral(object, PonderUI.IDENTIFY, "Identify");
|
||||
addGeneral(object, PonderUI.NEXT, "Next Scene");
|
||||
addGeneral(object, PonderUI.NEXT_UP, "Next up:");
|
||||
addGeneral(object, PonderUI.NEXT_UP, "Up Next:");
|
||||
addGeneral(object, PonderUI.PREVIOUS, "Previous Scene");
|
||||
addGeneral(object, PonderUI.REPLAY, "Replay");
|
||||
addGeneral(object, PonderUI.THINK_BACK, "Think Back");
|
||||
|
|
|
@ -22,74 +22,71 @@ public class PonderTag implements ScreenElement {
|
|||
public static final PonderTag
|
||||
|
||||
KINETIC_RELAYS = create("kinetic_relays").item(AllBlocks.COGWHEEL.get(), true, false)
|
||||
.defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere")
|
||||
.addToIndex(),
|
||||
.defaultLang("Kinetic Blocks", "Components which help relaying Rotational Force elsewhere")
|
||||
.addToIndex(),
|
||||
|
||||
KINETIC_SOURCES = create("kinetic_sources").item(AllBlocks.WATER_WHEEL.get(), true, false)
|
||||
KINETIC_SOURCES = create("kinetic_sources").item(AllBlocks.WATER_WHEEL.get(), true, false)
|
||||
.defaultLang("Kinetic Sources", "Components which generate Rotational Force")
|
||||
.addToIndex(),
|
||||
|
||||
KINETIC_APPLIANCES = create("kinetic_appliances").item(AllBlocks.MECHANICAL_PRESS.get(), true, false)
|
||||
KINETIC_APPLIANCES = create("kinetic_appliances").item(AllBlocks.MECHANICAL_PRESS.get(), true, false)
|
||||
.defaultLang("Kinetic Appliances", "Components which make use of Rotational Force")
|
||||
.addToIndex(),
|
||||
|
||||
FLUIDS = create("fluids").item(AllBlocks.FLUID_PIPE.get(), true, false)
|
||||
FLUIDS = create("fluids").item(AllBlocks.FLUID_PIPE.get(), true, false)
|
||||
.defaultLang("Fluid Manipulators", "Components which help relaying and making use of Fluids")
|
||||
.addToIndex(),
|
||||
|
||||
LOGISTICS = create("logistics").item(Blocks.CHEST, true, false)
|
||||
LOGISTICS = create("logistics").item(Blocks.CHEST, true, false)
|
||||
.defaultLang("Item Transportation", "Components which help moving items around")
|
||||
.addToIndex(),
|
||||
|
||||
REDSTONE = create("redstone").item(Items.REDSTONE, true, false)
|
||||
REDSTONE = create("redstone").item(Items.REDSTONE, true, false)
|
||||
.defaultLang("Logic Components", "Components which help with redstone engineering")
|
||||
.addToIndex(),
|
||||
|
||||
DECORATION = create("decoration").item(Items.ROSE_BUSH, true, false)
|
||||
DECORATION = create("decoration").item(Items.ROSE_BUSH, true, false)
|
||||
.defaultLang("Aesthetics", "Components used mostly for decorative purposes"),
|
||||
|
||||
CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get(), true, false)
|
||||
CREATIVE = create("creative").item(AllBlocks.CREATIVE_CRATE.get(), true, false)
|
||||
.defaultLang("Creative Mode", "Components not usually available for Survival Mode")
|
||||
.addToIndex(),
|
||||
|
||||
MOVEMENT_ANCHOR = create("movement_anchor").item(AllBlocks.MECHANICAL_PISTON.get(), true, false)
|
||||
MOVEMENT_ANCHOR = create("movement_anchor").item(AllBlocks.MECHANICAL_PISTON.get(), true, false)
|
||||
.defaultLang("Movement Anchors",
|
||||
"Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways")
|
||||
"Components which allow the creation of moving contraptions, animating an attached structure in a variety of ways")
|
||||
.addToIndex(),
|
||||
|
||||
CONTRAPTION_ACTOR = create("contraption_actor").item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false)
|
||||
CONTRAPTION_ACTOR = create("contraption_actor").item(AllBlocks.MECHANICAL_HARVESTER.get(), true, false)
|
||||
.defaultLang("Contraption Actors",
|
||||
"Components which expose special behaviour when attached to a moving contraption")
|
||||
"Components which expose special behaviour when attached to a moving contraption")
|
||||
.addToIndex(),
|
||||
|
||||
CONTRAPTION_ASSEMBLY = create("contraption_assembly").item(AllItems.SUPER_GLUE.get(), true, false)
|
||||
CONTRAPTION_ASSEMBLY = create("contraption_assembly").item(AllItems.SUPER_GLUE.get(), true, false)
|
||||
.defaultLang("Block Attachment Utility",
|
||||
"Tools and Components used to assemble structures moved as an animated Contraption")
|
||||
"Tools and Components used to assemble structures moved as an animated Contraption")
|
||||
.addToIndex(),
|
||||
|
||||
SAILS = create("windmill_sails").item(AllBlocks.WINDMILL_BEARING.get(), true, true)
|
||||
SAILS = create("windmill_sails").item(AllBlocks.WINDMILL_BEARING.get(), true, true)
|
||||
.defaultLang("Sails for Windmill Bearings",
|
||||
"Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so."),
|
||||
"Blocks that count towards the strength of a Windmill Contraption when assembled. Each of these have equal efficiency in doing so."),
|
||||
|
||||
ARM_TARGETS = create("arm_targets").item(AllBlocks.MECHANICAL_ARM.get())
|
||||
ARM_TARGETS = create("arm_targets").item(AllBlocks.MECHANICAL_ARM.get())
|
||||
.defaultLang("Targets for Mechanical Arms",
|
||||
"Components which can be selected as inputs or outputs to the Mechanical Arm"),
|
||||
"Components which can be selected as inputs or outputs to the Mechanical Arm"),
|
||||
|
||||
DISPLAY_SOURCES = create("display_sources")
|
||||
.item(AllBlocks.CONTENT_OBSERVER.get(), true, false)
|
||||
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
|
||||
.defaultLang(
|
||||
"Sources for Display Links",
|
||||
"Components or Blocks which offer some data that can be read with a Display Link"
|
||||
),
|
||||
TRAIN_RELATED = create("train_related").item(AllBlocks.TRACK.get())
|
||||
.defaultLang("Railway Equipment", "Components used in the construction or management of Train Contraptions"),
|
||||
|
||||
DISPLAY_TARGETS = create("display_targets")
|
||||
.item(AllBlocks.DISPLAY_BOARD.get(), true, false)
|
||||
DISPLAY_SOURCES = create("display_sources").item(AllBlocks.DISPLAY_LINK.get(), true, false)
|
||||
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
|
||||
.defaultLang(
|
||||
"Targets for Display Links",
|
||||
"Components or Blocks which can process and display the data received from a Display Link"
|
||||
);
|
||||
.defaultLang("Sources for Display Links",
|
||||
"Components or Blocks which offer some data that can be read with a Display Link"),
|
||||
|
||||
DISPLAY_TARGETS = create("display_targets").item(AllBlocks.DISPLAY_LINK.get(), true, false)
|
||||
.item(AllBlocks.DISPLAY_LINK.get(), false, true)
|
||||
.defaultLang("Targets for Display Links",
|
||||
"Components or Blocks which can process and display the data received from a Display Link");
|
||||
|
||||
public static class Highlight {
|
||||
public static final PonderTag ALL = create("_all");
|
||||
|
|
|
@ -17,10 +17,13 @@ import com.simibubi.create.content.contraptions.components.structureMovement.glu
|
|||
import com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls.ControlsBlock;
|
||||
import com.simibubi.create.content.contraptions.fluids.PumpTileEntity;
|
||||
import com.simibubi.create.content.contraptions.particle.RotationIndicatorParticleData;
|
||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerTileEntity;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
|
||||
import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity;
|
||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity;
|
||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalTileEntity.SignalState;
|
||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.station.StationTileEntity;
|
||||
|
@ -73,9 +76,11 @@ import net.minecraft.core.Direction.Axis;
|
|||
import net.minecraft.core.Vec3i;
|
||||
import net.minecraft.core.particles.DustParticleOptions;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.item.ItemEntity;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
|
@ -393,7 +398,7 @@ public class SceneBuilder {
|
|||
public void showLine(PonderPalette color, Vec3 start, Vec3 end, int duration) {
|
||||
addInstruction(new LineInstruction(color, start, end, duration, false));
|
||||
}
|
||||
|
||||
|
||||
public void showBigLine(PonderPalette color, Vec3 start, Vec3 end, int duration) {
|
||||
addInstruction(new LineInstruction(color, start, end, duration, true));
|
||||
}
|
||||
|
@ -428,6 +433,11 @@ public class SceneBuilder {
|
|||
.setPose(pose.get()));
|
||||
}
|
||||
|
||||
public void conductorBirb(ElementLink<ParrotElement> birb, boolean conductor) {
|
||||
addInstruction(scene -> scene.resolve(birb)
|
||||
.setConductor(conductor));
|
||||
}
|
||||
|
||||
public void movePointOfInterest(Vec3 location) {
|
||||
addInstruction(new MovePoiInstruction(location));
|
||||
}
|
||||
|
@ -585,6 +595,10 @@ public class SceneBuilder {
|
|||
addInstruction(AnimateTileEntityInstruction.pulley(pos, distance, duration));
|
||||
}
|
||||
|
||||
public void animateBogey(BlockPos pos, float distance, int duration) {
|
||||
addInstruction(AnimateTileEntityInstruction.bogey(pos, distance, duration + 1));
|
||||
}
|
||||
|
||||
public void moveDeployer(BlockPos pos, float distance, int duration) {
|
||||
addInstruction(AnimateTileEntityInstruction.deployer(pos, distance, duration));
|
||||
}
|
||||
|
@ -825,17 +839,35 @@ public class SceneBuilder {
|
|||
public void toggleControls(BlockPos position) {
|
||||
cycleBlockProperty(position, ControlsBlock.VIRTUAL);
|
||||
}
|
||||
|
||||
|
||||
public void animateTrainStation(BlockPos position, boolean trainPresent) {
|
||||
modifyTileNBT(scene.getSceneBuildingUtil().select.position(position), StationTileEntity.class,
|
||||
c -> c.putBoolean("ForceFlag", trainPresent));
|
||||
}
|
||||
|
||||
|
||||
public void conductorBlaze(BlockPos position, boolean conductor) {
|
||||
modifyTileNBT(scene.getSceneBuildingUtil().select.position(position), BlazeBurnerTileEntity.class,
|
||||
c -> c.putBoolean("TrainHat", conductor));
|
||||
}
|
||||
|
||||
public void changeSignalState(BlockPos position, SignalState state) {
|
||||
modifyTileNBT(scene.getSceneBuildingUtil().select.position(position), SignalTileEntity.class,
|
||||
c -> NBTHelper.writeEnum(c, "State", state));
|
||||
}
|
||||
|
||||
public void setDisplayBoardText(BlockPos position, int line, Component text) {
|
||||
modifyTileEntity(position, FlapDisplayTileEntity.class,
|
||||
t -> t.applyTextManually(line, Component.Serializer.toJson(text)));
|
||||
}
|
||||
|
||||
public void dyeDisplayBoard(BlockPos position, int line, DyeColor color) {
|
||||
modifyTileEntity(position, FlapDisplayTileEntity.class, t -> t.setColour(line, color));
|
||||
}
|
||||
|
||||
public void flashDisplayLink(BlockPos position) {
|
||||
modifyTileEntity(position, DisplayLinkTileEntity.class, linkTile -> linkTile.glow.setValue(2));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public class DebugInstructions {
|
||||
|
|
|
@ -263,6 +263,8 @@ public class ArmScenes {
|
|||
scene.idle(2);
|
||||
}
|
||||
}
|
||||
|
||||
scene.world.showSection(util.select.position(6, 1, 1), Direction.WEST);
|
||||
scene.world.showSection(util.select.position(2, 1, 1), Direction.EAST);
|
||||
|
||||
ItemStack sand = new ItemStack(Items.SAND, 64);
|
||||
|
|
|
@ -152,6 +152,7 @@ public class BearingScenes {
|
|||
.pointAt(util.vector.topOf(windmill))
|
||||
.placeNearTarget()
|
||||
.text("Right-click the Bearing anytime to stop and edit the Structure again");
|
||||
scene.idle(30);
|
||||
|
||||
}
|
||||
|
||||
|
@ -370,8 +371,10 @@ public class BearingScenes {
|
|||
|
||||
scene.overlay.showText(120)
|
||||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 1, 3), Direction.UP))
|
||||
.text("It can be configured never to revert to solid blocks, or only near the angle it started at");
|
||||
scene.idle(90);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -168,6 +168,7 @@ public class BeltScenes {
|
|||
.text("Mechanical Belts can be dyed for aesthetic purposes")
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(shaftLocation.east()));
|
||||
scene.idle(50);
|
||||
}
|
||||
|
||||
public static void directions(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
|
|
@ -10,14 +10,12 @@ import com.simibubi.create.foundation.ponder.PonderPalette;
|
|||
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.element.EntityElement;
|
||||
import com.simibubi.create.foundation.ponder.element.InputWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
@ -87,6 +85,7 @@ public class ChassisScenes {
|
|||
|
||||
scene.world.rotateBearing(bearingPos, 360, 80);
|
||||
scene.world.rotateSection(chassis, 0, 360, 0, 80);
|
||||
scene.idle(50);
|
||||
}
|
||||
|
||||
public static void linearAttachement(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
@ -253,7 +252,8 @@ public class ChassisScenes {
|
|||
scene.overlay.showControls(new InputWindowElement(glueSurface, Pointing.DOWN).rightClick()
|
||||
.withItem(AllItems.SUPER_GLUE.asStack()), 30);
|
||||
scene.idle(7);
|
||||
// ElementLink<EntityElement> glueEntity = scene.world.createGlueEntity(chassisPos.west(), Direction.NORTH);TODO
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.GREEN, glueSurface,
|
||||
new AABB(util.grid.at(1, 2, 2)).expandTowards(0, 0, -1), 40);
|
||||
scene.idle(20);
|
||||
ElementLink<WorldSectionElement> gluedPlank =
|
||||
scene.world.showIndependentSection(util.select.position(3, 3, 1), Direction.SOUTH);
|
||||
|
@ -262,7 +262,6 @@ public class ChassisScenes {
|
|||
scene.effects.superGlue(chassisPos.west(), Direction.NORTH, true);
|
||||
scene.idle(20);
|
||||
|
||||
// scene.world.modifyEntity(glueEntity, Entity::discard);
|
||||
scene.world.hideIndependentSection(glassSection, Direction.UP);
|
||||
scene.world.hideIndependentSection(gluedPlank, Direction.UP);
|
||||
scene.world.hideIndependentSection(topGlassSection, Direction.UP);
|
||||
|
@ -463,7 +462,7 @@ public class ChassisScenes {
|
|||
scene.world.rotateBearing(bearingPos, 360, 80);
|
||||
scene.world.rotateSection(contraption, 0, 360, 0, 80);
|
||||
scene.idle(90);
|
||||
|
||||
|
||||
scene.world.destroyBlock(util.grid.at(1, 2, 0));
|
||||
scene.idle(1);
|
||||
scene.world.destroyBlock(util.grid.at(1, 2, 1));
|
||||
|
|
|
@ -136,6 +136,7 @@ public class ChuteScenes {
|
|||
new InputWindowElement(util.vector.blockSurface(util.grid.at(2, 1, 1), Direction.NORTH), Pointing.RIGHT)
|
||||
.withItem(stack),
|
||||
50);
|
||||
scene.markAsFinished();
|
||||
}
|
||||
|
||||
public static void upward(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
|
|
@ -485,6 +485,7 @@ public class DeployerScenes {
|
|||
.text("Thus, a negative pulse can be used to trigger exactly one activation cycle");
|
||||
scene.idle(31);
|
||||
scene.world.moveDeployer(deployerPos, -1, 30);
|
||||
scene.idle(40);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.simibubi.create.foundation.ponder.content;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkTileEntity;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity;
|
||||
import com.simibubi.create.foundation.ponder.ElementLink;
|
||||
|
@ -16,10 +17,13 @@ import com.simibubi.create.foundation.utility.Pointing;
|
|||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.SignBlockEntity;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class DisplayScenes {
|
||||
|
||||
|
@ -44,18 +48,20 @@ public class DisplayScenes {
|
|||
scene.idle(10);
|
||||
scene.effects.indicateRedstone(invalidLinkPos);
|
||||
scene.overlay.showSelectionWithText(invalidLinkSel, 60)
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.RED)
|
||||
.text("Display Links should be assigned a target before they are placed")
|
||||
.pointAt(util.vector.blockSurface(invalidLinkPos, Direction.WEST))
|
||||
.placeNearTarget();
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.RED)
|
||||
.text("Display Links should be assigned a target before they are placed")
|
||||
.pointAt(util.vector.blockSurface(invalidLinkPos, Direction.WEST))
|
||||
.placeNearTarget();
|
||||
|
||||
scene.idle(60);
|
||||
|
||||
ElementLink<WorldSectionElement> signSection = scene.world.showIndependentSection(util.select.position(signPos), Direction.DOWN);
|
||||
ElementLink<WorldSectionElement> signSection =
|
||||
scene.world.showIndependentSection(util.select.position(signPos), Direction.DOWN);
|
||||
scene.world.moveSection(signSection, util.vector.of(0, 1, 0), 0);
|
||||
|
||||
ElementLink<WorldSectionElement> concreteSection = scene.world.showIndependentSection(util.select.position(signPos.below()), Direction.UP);
|
||||
ElementLink<WorldSectionElement> concreteSection =
|
||||
scene.world.showIndependentSection(util.select.position(signPos.below()), Direction.UP);
|
||||
scene.world.moveSection(concreteSection, util.vector.of(0, 1, 0), 0);
|
||||
|
||||
scene.world.hideSection(invalidLinkSel, Direction.UP);
|
||||
|
@ -63,20 +69,20 @@ public class DisplayScenes {
|
|||
scene.idle(20);
|
||||
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.blockSurface(signTarget, Direction.UP), Pointing.DOWN)
|
||||
.rightClick().withItem(linkItem),
|
||||
50
|
||||
);
|
||||
new InputWindowElement(util.vector.blockSurface(signTarget, Direction.UP), Pointing.DOWN).rightClick()
|
||||
.withItem(linkItem),
|
||||
50);
|
||||
|
||||
scene.idle(5);
|
||||
AABB signBounds = Block.box(4.0D, 0.0D, 4.0D, 12.0D, 16.0D, 12.0D).bounds();
|
||||
AABB signBounds = Block.box(4.0D, 0.0D, 4.0D, 12.0D, 16.0D, 12.0D)
|
||||
.bounds();
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.OUTPUT, new Object(), signBounds.move(signTarget), 60);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.colored(PonderPalette.OUTPUT)
|
||||
.text("First select a target by Right- Clicking while holding the Link ...")
|
||||
.pointAt(util.vector.topOf(signTarget))
|
||||
.placeNearTarget();
|
||||
.colored(PonderPalette.OUTPUT)
|
||||
.text("First select a target by Right- Clicking while holding the Link ...")
|
||||
.pointAt(util.vector.topOf(signTarget))
|
||||
.placeNearTarget();
|
||||
|
||||
scene.idle(50);
|
||||
|
||||
|
@ -87,16 +93,15 @@ public class DisplayScenes {
|
|||
scene.idle(10);
|
||||
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.blockSurface(observerPos, Direction.WEST), Pointing.RIGHT)
|
||||
.rightClick().withItem(linkItem),
|
||||
50
|
||||
);
|
||||
new InputWindowElement(util.vector.blockSurface(observerPos, Direction.WEST), Pointing.RIGHT).rightClick()
|
||||
.withItem(linkItem),
|
||||
50);
|
||||
scene.overlay.showText(60)
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.INPUT)
|
||||
.text("... then select the source by placing the Link against it")
|
||||
.pointAt(util.vector.blockSurface(observerPos, Direction.UP))
|
||||
.placeNearTarget();
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.INPUT)
|
||||
.text("... then select the source by placing the Link against it")
|
||||
.pointAt(util.vector.blockSurface(observerPos, Direction.UP))
|
||||
.placeNearTarget();
|
||||
|
||||
scene.idle(55);
|
||||
|
||||
|
@ -104,10 +109,9 @@ public class DisplayScenes {
|
|||
|
||||
scene.idle(20);
|
||||
|
||||
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile ->
|
||||
linkTile.glow.setValue(2));
|
||||
scene.world.modifyTileEntity(signPos, SignBlockEntity.class, signTile ->
|
||||
signTile.setMessage(1, new TextComponent("42 Cinder Flour")));
|
||||
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile -> linkTile.glow.setValue(2));
|
||||
scene.world.modifyTileEntity(signPos, SignBlockEntity.class,
|
||||
signTile -> signTile.setMessage(1, new TextComponent("42 Cinder Flour")));
|
||||
|
||||
scene.idle(60);
|
||||
|
||||
|
@ -116,33 +120,34 @@ public class DisplayScenes {
|
|||
scene.idle(25);
|
||||
|
||||
Selection boards = util.select.fromTo(4, 1, 4, 1, 2, 4)
|
||||
.substract(util.select.position(signPos));
|
||||
.substract(util.select.position(signPos));
|
||||
Selection cogs = util.select.position(5, 2, 4)
|
||||
.add(util.select.position(5, 2, 5))
|
||||
.add(util.select.position(5, 1, 5))
|
||||
.add(util.select.position(4, 0, 5));
|
||||
.add(util.select.position(5, 2, 5))
|
||||
.add(util.select.position(5, 1, 5))
|
||||
.add(util.select.position(4, 0, 5));
|
||||
|
||||
scene.world.showSection(boards, Direction.DOWN);
|
||||
scene.world.showSection(cogs, Direction.DOWN);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.WHITE)
|
||||
.text("Replacing Targets or Sources at a later time is possible as well")
|
||||
.placeNearTarget();
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.WHITE)
|
||||
.text("Replacing Targets or Sources at a later time is possible as well")
|
||||
.placeNearTarget();
|
||||
|
||||
scene.idle(7);
|
||||
|
||||
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile ->
|
||||
linkTile.glow.setValue(2));
|
||||
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile -> linkTile.glow.setValue(2));
|
||||
|
||||
scene.idle(43);
|
||||
|
||||
scene.world.hideSection(util.select.fromTo(observerPos, observerPos.relative(Direction.SOUTH)), Direction.SOUTH);
|
||||
scene.world.hideSection(util.select.fromTo(observerPos, observerPos.relative(Direction.SOUTH)),
|
||||
Direction.SOUTH);
|
||||
|
||||
scene.idle(15);
|
||||
|
||||
ElementLink<WorldSectionElement> seatSection = scene.world.showIndependentSection(util.select.position(3, 1, 0), Direction.SOUTH);
|
||||
ElementLink<WorldSectionElement> seatSection =
|
||||
scene.world.showIndependentSection(util.select.position(3, 1, 0), Direction.SOUTH);
|
||||
scene.world.moveSection(seatSection, util.vector.of(0, 0, 1), 0);
|
||||
|
||||
scene.world.modifyTileEntity(util.grid.at(4, 2, 4), FlapDisplayTileEntity.class, displayTile -> {
|
||||
|
@ -150,25 +155,172 @@ public class DisplayScenes {
|
|||
displayTile.applyTextManually(1, "");
|
||||
});
|
||||
|
||||
|
||||
scene.idle(30);
|
||||
scene.special.createBirb(util.vector.of(3.5, 1.4, 1.5), ParrotElement.DancePose::new);
|
||||
|
||||
scene.idle(10);
|
||||
|
||||
//scene.world.modifyTileEntity(util.grid.at(4, 2, 4), FlapDisplayTileEntity.class, displayTile -> {
|
||||
// displayTile.applyTextManually(0, "Sitting here:");
|
||||
// displayTile.applyTextManually(1, "Party Parrot");
|
||||
//});
|
||||
// scene.world.modifyTileEntity(util.grid.at(4, 2, 4),
|
||||
// FlapDisplayTileEntity.class, displayTile -> {
|
||||
// displayTile.applyTextManually(0, "Sitting here:");
|
||||
// displayTile.applyTextManually(1, "Party Parrot");
|
||||
// });
|
||||
|
||||
ElementLink<WorldSectionElement> replacementBoards = scene.world.showIndependentSectionImmediately(util.select.fromTo(4, 2, 3, 1, 2, 3));
|
||||
ElementLink<WorldSectionElement> replacementBoards =
|
||||
scene.world.showIndependentSectionImmediately(util.select.fromTo(4, 2, 3, 1, 2, 3));
|
||||
scene.world.moveSection(replacementBoards, util.vector.of(0, 0, 1), 0);
|
||||
|
||||
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile ->
|
||||
linkTile.glow.setValue(2));
|
||||
scene.world.modifyTileEntity(linkPos, DisplayLinkTileEntity.class, linkTile -> linkTile.glow.setValue(2));
|
||||
|
||||
scene.idle(10);
|
||||
|
||||
}
|
||||
|
||||
public static void board(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("display_board", "Using Display Boards");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
scene.showBasePlate();
|
||||
|
||||
Selection largeCog = util.select.position(5, 0, 1);
|
||||
Selection cogs = util.select.fromTo(4, 1, 1, 4, 1, 3);
|
||||
BlockPos depotPos = util.grid.at(3, 1, 1);
|
||||
Selection depot = util.select.position(3, 1, 1);
|
||||
BlockPos linkPos = util.grid.at(2, 1, 1);
|
||||
Selection link = util.select.position(linkPos);
|
||||
BlockPos board = util.grid.at(3, 2, 3);
|
||||
Selection fullBoard = util.select.fromTo(3, 2, 3, 1, 1, 3);
|
||||
|
||||
scene.world.setKineticSpeed(fullBoard, 0);
|
||||
scene.idle(15);
|
||||
|
||||
for (int y = 1; y <= 2; y++) {
|
||||
for (int x = 3; x >= 1; x--) {
|
||||
scene.world.showSection(util.select.position(x, y, 3), Direction.DOWN);
|
||||
scene.idle(2);
|
||||
}
|
||||
scene.idle(2);
|
||||
}
|
||||
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.attachKeyFrame()
|
||||
.text("Display Boards are a scalable alternative to the sign")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(1, 2, 3), Direction.WEST))
|
||||
.placeNearTarget();
|
||||
scene.idle(80);
|
||||
|
||||
scene.rotateCameraY(60);
|
||||
scene.idle(20);
|
||||
scene.world.showSection(cogs, Direction.DOWN);
|
||||
scene.world.showSection(largeCog, Direction.UP);
|
||||
scene.idle(10);
|
||||
scene.world.setKineticSpeed(fullBoard, 32);
|
||||
scene.world.multiplyKineticSpeed(util.select.position(3, 1, 3), -1);
|
||||
scene.world.multiplyKineticSpeed(util.select.position(2, 2, 3), -1);
|
||||
scene.world.multiplyKineticSpeed(util.select.position(1, 1, 3), -1);
|
||||
|
||||
scene.overlay.showText(50)
|
||||
.text("They require Rotational Force to operate")
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 1, 3), Direction.EAST))
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget();
|
||||
scene.idle(40);
|
||||
scene.rotateCameraY(-60);
|
||||
scene.idle(20);
|
||||
|
||||
scene.world.showSection(util.select.position(0, 1, 2), Direction.DOWN);
|
||||
scene.idle(15);
|
||||
|
||||
Vec3 target = util.vector.of(3.95, 2.75, 3.25);
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(target, Pointing.RIGHT).withItem(new ItemStack(Items.NAME_TAG))
|
||||
.rightClick(), 40);
|
||||
scene.idle(6);
|
||||
scene.world.setDisplayBoardText(board, 0, new TextComponent("Create"));
|
||||
scene.idle(25);
|
||||
|
||||
scene.overlay.showText(50)
|
||||
.text("Text can be displayed using Name Tags...")
|
||||
.pointAt(target.add(-2, 0, 0))
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget();
|
||||
scene.idle(40);
|
||||
scene.world.hideSection(util.select.position(0, 1, 2), Direction.WEST);
|
||||
scene.idle(20);
|
||||
|
||||
scene.world.showSection(depot, Direction.DOWN);
|
||||
scene.idle(10);
|
||||
scene.world.showSection(link, Direction.EAST);
|
||||
scene.idle(15);
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.INPUT, depot, new AABB(linkPos).contract(-.5f, 0, 0), 60);
|
||||
scene.idle(5);
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.OUTPUT, link, new AABB(board).expandTowards(-2, -1, 0)
|
||||
.deflate(0, 0, 3 / 16f), 60);
|
||||
scene.idle(20);
|
||||
|
||||
scene.overlay.showText(50)
|
||||
.text("...or through the use of Display Links")
|
||||
.pointAt(target.add(-2, 0, 0))
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.OUTPUT)
|
||||
.placeNearTarget();
|
||||
scene.idle(50);
|
||||
|
||||
ItemStack item = AllItems.PROPELLER.asStack();
|
||||
scene.world.createItemOnBeltLike(depotPos, Direction.SOUTH, item);
|
||||
scene.world.setDisplayBoardText(board, 1, item.getHoverName());
|
||||
scene.world.flashDisplayLink(linkPos);
|
||||
scene.idle(50);
|
||||
|
||||
scene.world.removeItemsFromBelt(depotPos);
|
||||
item = AllItems.BLAZE_CAKE.asStack();
|
||||
scene.world.createItemOnBeltLike(depotPos, Direction.SOUTH, item);
|
||||
scene.world.setDisplayBoardText(board, 1, item.getHoverName());
|
||||
scene.world.flashDisplayLink(linkPos);
|
||||
scene.idle(50);
|
||||
|
||||
scene.world.removeItemsFromBelt(depotPos);
|
||||
item = AllBlocks.DISPLAY_BOARD.asStack();
|
||||
scene.world.createItemOnBeltLike(depotPos, Direction.SOUTH, item);
|
||||
scene.world.setDisplayBoardText(board, 1, item.getHoverName());
|
||||
scene.world.flashDisplayLink(linkPos);
|
||||
scene.idle(50);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(target, Pointing.RIGHT).withItem(new ItemStack(Items.PINK_DYE))
|
||||
.rightClick(), 40);
|
||||
scene.idle(6);
|
||||
scene.world.dyeDisplayBoard(board, 0, DyeColor.PINK);
|
||||
scene.idle(25);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.text("Dyes can be applied to individual lines of the board")
|
||||
.pointAt(target.add(-2, 0, 0))
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget();
|
||||
scene.idle(25);
|
||||
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(target.add(0, -.5f, 0), Pointing.RIGHT).withItem(new ItemStack(Items.LIME_DYE))
|
||||
.rightClick(),
|
||||
40);
|
||||
scene.idle(6);
|
||||
scene.world.dyeDisplayBoard(board, 1, DyeColor.LIME);
|
||||
scene.idle(55);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(target, Pointing.RIGHT).rightClick(), 40);
|
||||
scene.idle(6);
|
||||
scene.world.setDisplayBoardText(board, 0, new TextComponent(""));
|
||||
scene.idle(25);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.text("Lines can be reset by clicking them with an empty hand")
|
||||
.pointAt(target.add(-2, 0, 0))
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget();
|
||||
scene.idle(40);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -209,6 +209,7 @@ public class EjectorScenes {
|
|||
.text("Other Entities will always trigger an Ejector when stepping on it")
|
||||
.pointAt(util.vector.topOf(targetPos))
|
||||
.placeNearTarget();
|
||||
scene.idle(50);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -345,6 +345,7 @@ public class FunnelScenes {
|
|||
}
|
||||
}
|
||||
|
||||
scene.idle(60);
|
||||
}
|
||||
|
||||
public static void brass(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
|
|
@ -20,7 +20,6 @@ import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
|
|||
import com.simibubi.create.foundation.ponder.Selection;
|
||||
import com.simibubi.create.foundation.ponder.element.InputWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.ponder.instruction.EmitParticlesInstruction.Emitter;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
import com.tterrag.registrate.util.entry.BlockEntry;
|
||||
|
||||
|
@ -28,12 +27,9 @@ import net.minecraft.core.BlockPos;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.Vec3i;
|
||||
import net.minecraft.core.particles.ParticleTypes;
|
||||
import net.minecraft.world.item.DyeColor;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.FurnaceBlock;
|
||||
import net.minecraft.world.level.block.RedStoneWireBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
@ -107,10 +103,11 @@ public class KineticsScenes {
|
|||
scene.world.setKineticSpeed(shaft, 32);
|
||||
|
||||
scene.idle(10);
|
||||
scene.overlay.showText(1000)
|
||||
scene.overlay.showText(100)
|
||||
.placeNearTarget()
|
||||
.text("Brass or Andesite Casing can be used to decorate Shafts")
|
||||
.pointAt(util.vector.topOf(1, 1, 2));
|
||||
scene.idle(70);
|
||||
}
|
||||
|
||||
public static void cogAsRelay(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
@ -148,7 +145,9 @@ public class KineticsScenes {
|
|||
scene.overlay.showText(100)
|
||||
.text("Neighbouring shafts connected like this will rotate in opposite directions")
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(1, 1, 2), Direction.NORTH));
|
||||
scene.idle(70);
|
||||
|
||||
}
|
||||
|
||||
|
@ -197,6 +196,7 @@ public class KineticsScenes {
|
|||
.pointAt(util.vector.blockSurface(util.grid.at(1, 2, 3), Direction.WEST));
|
||||
scene.effects.rotationSpeedIndicator(util.grid.at(3, 1, 3));
|
||||
scene.effects.rotationSpeedIndicator(util.grid.at(4, 2, 3));
|
||||
scene.idle(60);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -78,6 +78,7 @@ public class MechanicalDrillScenes {
|
|||
|
||||
scene.world.createItemEntity(util.vector.centerOf(breakingPos), util.vector.of(0, .1f, 0),
|
||||
new ItemStack(Items.OAK_PLANKS));
|
||||
scene.idle(50);
|
||||
}
|
||||
|
||||
public static void contraption(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
|
|
@ -328,6 +328,8 @@ public class PonderIndex {
|
|||
// Display Link
|
||||
HELPER.forComponents(AllBlocks.DISPLAY_LINK)
|
||||
.addStoryBoard("display/link", DisplayScenes::link);
|
||||
HELPER.forComponents(AllBlocks.DISPLAY_BOARD)
|
||||
.addStoryBoard("display_board", DisplayScenes::board);
|
||||
|
||||
// Debug scenes, can be found in game via the Brass Hand
|
||||
if (REGISTER_DEBUG_SCENES)
|
||||
|
@ -362,6 +364,17 @@ public class PonderIndex {
|
|||
.add(AllBlocks.STEAM_ENGINE)
|
||||
.add(AllBlocks.CREATIVE_MOTOR);
|
||||
|
||||
PonderRegistry.TAGS.forTag(PonderTag.TRAIN_RELATED)
|
||||
.add(AllBlocks.TRACK)
|
||||
.add(AllBlocks.TRACK_STATION)
|
||||
.add(AllBlocks.TRACK_SIGNAL)
|
||||
.add(AllBlocks.TRACK_OBSERVER)
|
||||
.add(AllBlocks.CONTROLS)
|
||||
.add(AllItems.SCHEDULE)
|
||||
.add(AllBlocks.TRAIN_DOOR)
|
||||
.add(AllBlocks.TRAIN_TRAPDOOR)
|
||||
.add(AllBlocks.RAILWAY_CASING);
|
||||
|
||||
PonderRegistry.TAGS.forTag(PonderTag.KINETIC_APPLIANCES)
|
||||
.add(AllBlocks.MILLSTONE)
|
||||
.add(AllBlocks.TURNTABLE)
|
||||
|
@ -381,6 +394,7 @@ public class PonderIndex {
|
|||
.add(AllBlocks.GANTRY_SHAFT)
|
||||
.add(AllBlocks.GANTRY_CARRIAGE)
|
||||
.add(AllBlocks.CLOCKWORK_BEARING)
|
||||
.add(AllBlocks.DISPLAY_BOARD)
|
||||
.add(AllBlocks.CRUSHING_WHEEL);
|
||||
|
||||
PonderRegistry.TAGS.forTag(PonderTag.FLUIDS)
|
||||
|
@ -410,6 +424,7 @@ public class PonderIndex {
|
|||
.add(AllBlocks.MECHANICAL_SAW)
|
||||
.add(AllBlocks.BLAZE_BURNER)
|
||||
.add(AllBlocks.CRUSHING_WHEEL)
|
||||
.add(AllBlocks.TRACK_STATION)
|
||||
.add(Blocks.COMPOSTER)
|
||||
.add(Blocks.JUKEBOX);
|
||||
|
||||
|
@ -434,12 +449,15 @@ public class PonderIndex {
|
|||
|
||||
PonderRegistry.TAGS.forTag(PonderTag.DECORATION)
|
||||
.add(AllBlocks.ORANGE_NIXIE_TUBE)
|
||||
.add(AllBlocks.DISPLAY_BOARD)
|
||||
.add(AllBlocks.CUCKOO_CLOCK)
|
||||
.add(AllBlocks.WOODEN_BRACKET)
|
||||
.add(AllBlocks.METAL_BRACKET)
|
||||
.add(AllBlocks.METAL_GIRDER)
|
||||
.add(AllBlocks.ANDESITE_CASING)
|
||||
.add(AllBlocks.BRASS_CASING)
|
||||
.add(AllBlocks.COPPER_CASING);
|
||||
.add(AllBlocks.COPPER_CASING)
|
||||
.add(AllBlocks.RAILWAY_CASING);
|
||||
|
||||
PonderRegistry.TAGS.forTag(PonderTag.CREATIVE)
|
||||
.add(AllBlocks.CREATIVE_CRATE)
|
||||
|
@ -459,7 +477,8 @@ public class PonderIndex {
|
|||
.add(AllBlocks.PULSE_EXTENDER)
|
||||
.add(AllBlocks.PULSE_REPEATER)
|
||||
.add(AllBlocks.POWERED_LATCH)
|
||||
.add(AllBlocks.POWERED_TOGGLE_LATCH);
|
||||
.add(AllBlocks.POWERED_TOGGLE_LATCH)
|
||||
.add(AllBlocks.ROSE_QUARTZ_LAMP);
|
||||
|
||||
PonderRegistry.TAGS.forTag(PonderTag.MOVEMENT_ANCHOR)
|
||||
.add(AllBlocks.MECHANICAL_PISTON)
|
||||
|
@ -468,7 +487,8 @@ public class PonderIndex {
|
|||
.add(AllBlocks.CLOCKWORK_BEARING)
|
||||
.add(AllBlocks.ROPE_PULLEY)
|
||||
.add(AllBlocks.GANTRY_CARRIAGE)
|
||||
.add(AllBlocks.CART_ASSEMBLER);
|
||||
.add(AllBlocks.CART_ASSEMBLER)
|
||||
.add(AllBlocks.TRACK_STATION);
|
||||
|
||||
PonderRegistry.TAGS.forTag(PonderTag.CONTRAPTION_ASSEMBLY)
|
||||
.add(AllBlocks.LINEAR_CHASSIS)
|
||||
|
@ -491,6 +511,7 @@ public class PonderIndex {
|
|||
.add(AllBlocks.ANDESITE_FUNNEL)
|
||||
.add(AllBlocks.BRASS_FUNNEL)
|
||||
.add(AllBlocks.SEATS.get(DyeColor.WHITE))
|
||||
.add(AllBlocks.CONTROLS)
|
||||
.add(AllBlocks.REDSTONE_CONTACT)
|
||||
.add(Blocks.BELL)
|
||||
.add(Blocks.DISPENSER)
|
||||
|
|
|
@ -451,12 +451,12 @@ public class ProcessingScenes {
|
|||
scene.idle(60);
|
||||
Vec3 filterPos = util.vector.of(1, 2.75f, 2.5f);
|
||||
scene.overlay.showFilterSlotInput(filterPos, 100);
|
||||
scene.overlay.showText(120)
|
||||
scene.overlay.showText(100)
|
||||
.pointAt(filterPos)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("The filter slot can be used in case two recipes are conflicting.");
|
||||
scene.idle(60);
|
||||
scene.idle(80);
|
||||
}
|
||||
|
||||
public static void compacting(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
@ -552,12 +552,12 @@ public class ProcessingScenes {
|
|||
scene.idle(60);
|
||||
Vec3 filterPos = util.vector.of(1, 2.75f, 2.5f);
|
||||
scene.overlay.showFilterSlotInput(filterPos, 100);
|
||||
scene.overlay.showText(120)
|
||||
scene.overlay.showText(100)
|
||||
.pointAt(filterPos)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("The filter slot can be used in case two recipes are conflicting.");
|
||||
scene.idle(60);
|
||||
scene.idle(80);
|
||||
}
|
||||
|
||||
public static void emptyBlazeBurner(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
|
|
@ -177,6 +177,7 @@ public class PulleyScenes {
|
|||
.pointAt(util.vector.blockSurface(flowerPos, Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.text("It can be configured never to revert to solid blocks, or only at the location it started at");
|
||||
scene.idle(90);
|
||||
}
|
||||
|
||||
public static void attachment(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
|
@ -229,6 +230,7 @@ public class PulleyScenes {
|
|||
.pointAt(util.vector.topOf(pulleyPos.west(2)))
|
||||
.placeNearTarget()
|
||||
.text("Mind that pulleys are only movable while stopped");
|
||||
scene.idle(50);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -191,9 +191,11 @@ public class FluidMovementActorScenes {
|
|||
scene.world.modifyTileNBT(both, psiClass, nbt -> nbt.putFloat("Timer", 9));
|
||||
|
||||
scene.idle(15);
|
||||
scene.markAsFinished();
|
||||
scene.world.rotateBearing(bearing, 270, 120);
|
||||
scene.world.rotateSection(contraption, 0, 270, 0, 120);
|
||||
|
||||
scene.idle(100);
|
||||
scene.markAsFinished();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -152,6 +152,7 @@ public class HosePulleyScenes {
|
|||
.attachKeyFrame()
|
||||
.pointAt(util.vector.centerOf(util.grid.at(3, 1, 1)));
|
||||
scene.idle(40);
|
||||
scene.markAsFinished();
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,7 @@ public class TrackObserverScenes {
|
|||
scene.setSceneOffsetY(-1);
|
||||
scene.showBasePlate();
|
||||
|
||||
scene.world.toggleControls(util.grid.at(5, 3, 7));
|
||||
scene.special.movePointOfInterest(util.grid.at(-10, 2, 7));
|
||||
|
||||
Selection observer = util.select.position(5, 1, 4);
|
||||
|
@ -79,6 +80,7 @@ public class TrackObserverScenes {
|
|||
ElementLink<WorldSectionElement> trainInstance1 = scene.world.showIndependentSection(train1, Direction.WEST);
|
||||
scene.world.moveSection(trainInstance1, util.vector.of(6, 0, 0), 0);
|
||||
scene.world.moveSection(trainInstance1, util.vector.of(-16, 0, 0), 80);
|
||||
scene.world.animateBogey(util.grid.at(5, 2, 7), 16, 80);
|
||||
ElementLink<ParrotElement> birb =
|
||||
scene.special.createBirb(util.vector.centerOf(12, 3, 7), FacePointOfInterestPose::new);
|
||||
scene.special.moveParrot(birb, util.vector.of(-16, 0, 0), 80);
|
||||
|
@ -87,6 +89,7 @@ public class TrackObserverScenes {
|
|||
ElementLink<WorldSectionElement> trainInstance2 = scene.world.showIndependentSection(train2, Direction.WEST);
|
||||
scene.world.moveSection(trainInstance2, util.vector.of(4, 0, 0), 0);
|
||||
scene.world.moveSection(trainInstance2, util.vector.of(-14, 0, 0), 70);
|
||||
scene.world.animateBogey(util.grid.at(9, 2, 7), 14, 70);
|
||||
|
||||
Selection add = redstone.add(observer);
|
||||
|
||||
|
@ -123,6 +126,7 @@ public class TrackObserverScenes {
|
|||
trainInstance1 = scene.world.showIndependentSection(train1, Direction.WEST);
|
||||
scene.world.moveSection(trainInstance1, util.vector.of(6, 0, 0), 0);
|
||||
scene.world.moveSection(trainInstance1, util.vector.of(-16, 0, 0), 80);
|
||||
scene.world.animateBogey(util.grid.at(5, 2, 7), 16, 80);
|
||||
birb = scene.special.createBirb(util.vector.centerOf(12, 3, 7), FacePointOfInterestPose::new);
|
||||
scene.special.moveParrot(birb, util.vector.of(-16, 0, 0), 80);
|
||||
scene.idle(10);
|
||||
|
@ -130,6 +134,7 @@ public class TrackObserverScenes {
|
|||
trainInstance2 = scene.world.showIndependentSection(train2b, Direction.WEST);
|
||||
scene.world.moveSection(trainInstance2, util.vector.of(4, 0, 6), 0);
|
||||
scene.world.moveSection(trainInstance2, util.vector.of(-14, 0, 0), 70);
|
||||
scene.world.animateBogey(util.grid.at(9, 2, 1), 14, 80);
|
||||
|
||||
scene.idle(33);
|
||||
scene.world.hideIndependentSection(trainInstance1, Direction.WEST);
|
||||
|
@ -141,6 +146,7 @@ public class TrackObserverScenes {
|
|||
trainInstance1 = scene.world.showIndependentSection(train1, Direction.WEST);
|
||||
scene.world.moveSection(trainInstance1, util.vector.of(6, 0, 0), 0);
|
||||
scene.world.moveSection(trainInstance1, util.vector.of(-16, 0, 0), 80);
|
||||
scene.world.animateBogey(util.grid.at(5, 2, 7), 16, 80);
|
||||
birb = scene.special.createBirb(util.vector.centerOf(12, 3, 7), FacePointOfInterestPose::new);
|
||||
scene.special.moveParrot(birb, util.vector.of(-16, 0, 0), 80);
|
||||
scene.idle(10);
|
||||
|
@ -148,6 +154,7 @@ public class TrackObserverScenes {
|
|||
trainInstance2 = scene.world.showIndependentSection(train2a, Direction.WEST);
|
||||
scene.world.moveSection(trainInstance2, util.vector.of(4, 0, 3), 0);
|
||||
scene.world.moveSection(trainInstance2, util.vector.of(-14, 0, 0), 70);
|
||||
scene.world.animateBogey(util.grid.at(9, 2, 4), 14, 70);
|
||||
|
||||
scene.idle(13);
|
||||
scene.world.toggleRedstonePower(add);
|
||||
|
|
|
@ -27,8 +27,6 @@ public class TrackScenes {
|
|||
scene.configureBasePlate(0, 0, 15);
|
||||
scene.scaleSceneView(.5f);
|
||||
scene.showBasePlate();
|
||||
// scene.debug.debugSchematic();
|
||||
|
||||
scene.idle(10);
|
||||
|
||||
ElementLink<WorldSectionElement> bgTrack =
|
||||
|
@ -265,7 +263,6 @@ public class TrackScenes {
|
|||
scene.setSceneOffsetY(-1);
|
||||
scene.showBasePlate();
|
||||
scene.world.showSection(util.select.fromTo(2, 1, 7, 6, 6, 7), Direction.UP);
|
||||
// scene.debug.debugSchematic();
|
||||
scene.idle(10);
|
||||
|
||||
for (int i = 1; i <= 5; i++) {
|
||||
|
@ -301,6 +298,7 @@ public class TrackScenes {
|
|||
|
||||
ElementLink<ParrotElement> birb =
|
||||
scene.special.createBirb(util.vector.centerOf(4, 3, 2), FacePointOfInterestPose::new);
|
||||
scene.special.conductorBirb(birb, true);
|
||||
scene.special.movePointOfInterest(util.grid.at(4, 4, 10));
|
||||
|
||||
scene.addKeyframe();
|
||||
|
@ -309,6 +307,7 @@ public class TrackScenes {
|
|||
for (ElementLink<WorldSectionElement> e : List.of(t1, t2, t3))
|
||||
scene.world.moveSection(e, util.vector.of(0, 0, 6), 30);
|
||||
scene.special.moveParrot(birb, util.vector.of(0, 0, 5.6), 28);
|
||||
scene.world.animateBogey(util.grid.at(4, 2, 3), -6, 30);
|
||||
|
||||
for (ElementLink<WorldSectionElement> e : List.of(t3, t2, t1)) {
|
||||
scene.idle(2);
|
||||
|
@ -331,6 +330,7 @@ public class TrackScenes {
|
|||
scene.world.moveSection(s1, util.vector.of(0, 0, 3.5f), 0);
|
||||
scene.world.moveSection(s1, util.vector.of(0, 0, -3.5f), 18);
|
||||
scene.special.moveParrot(birb, util.vector.of(0, 0, -3.5f), 18);
|
||||
scene.world.animateBogey(util.grid.at(4, 2, 3), -3.5f, 18);
|
||||
scene.idle(30);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
|
@ -395,6 +395,7 @@ public class TrackScenes {
|
|||
scene.world.moveSection(trackElement, util.vector.of(12, 0, 0), 120);
|
||||
scene.world.moveSection(stationElement, util.vector.of(12, 0, 0), 120);
|
||||
scene.world.moveSection(stationTrackElement, util.vector.of(12, 0, 0), 120);
|
||||
scene.world.animateBogey(util.grid.at(4, 2, 4), 12f, 120);
|
||||
scene.special.moveParrot(birb, util.vector.of(12, 0, 0), 120);
|
||||
scene.idle(15);
|
||||
scene.world.hideIndependentSection(stationElement, null);
|
||||
|
@ -424,6 +425,7 @@ public class TrackScenes {
|
|||
|
||||
scene.world.moveSection(trackElement, util.vector.of(19, 0, 0), 190);
|
||||
scene.world.moveSection(stationTrackElement, util.vector.of(19, 0, 0), 190);
|
||||
scene.world.animateBogey(util.grid.at(4, 2, 4), 19f, 190);
|
||||
|
||||
scene.idle(30);
|
||||
scene.overlay.showText(90)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.simibubi.create.foundation.ponder.content.trains;
|
||||
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.station.StationBlock;
|
||||
import com.simibubi.create.foundation.ponder.ElementLink;
|
||||
import com.simibubi.create.foundation.ponder.PonderPalette;
|
||||
|
@ -7,12 +8,17 @@ 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.element.InputWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.element.ParrotElement;
|
||||
import com.simibubi.create.foundation.ponder.element.ParrotElement.FacePointOfInterestPose;
|
||||
import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class TrainScenes {
|
||||
|
||||
|
@ -71,6 +77,7 @@ public class TrainScenes {
|
|||
scene.idle(60);
|
||||
|
||||
scene.world.moveSection(trainElement, util.vector.of(4, 0, 0), 20);
|
||||
scene.world.animateBogey(util.grid.at(3, 2, 4), -4f, 20);
|
||||
scene.world.animateTrainStation(stationPos, false);
|
||||
scene.idle(30);
|
||||
|
||||
|
@ -81,6 +88,7 @@ public class TrainScenes {
|
|||
scene.idle(60);
|
||||
|
||||
scene.world.moveSection(trainElement, util.vector.of(-4, 0, 0), 30);
|
||||
scene.world.animateBogey(util.grid.at(3, 2, 4), 4f, 30);
|
||||
scene.idle(40);
|
||||
|
||||
scene.overlay
|
||||
|
@ -94,9 +102,11 @@ public class TrainScenes {
|
|||
scene.idle(90);
|
||||
|
||||
scene.world.moveSection(trainElement, util.vector.of(2, 0, 0), 30);
|
||||
scene.world.animateBogey(util.grid.at(3, 2, 4), -2f, 30);
|
||||
scene.idle(40);
|
||||
|
||||
scene.world.moveSection(trainElement, util.vector.of(-3, 0, 0), 60);
|
||||
scene.world.animateBogey(util.grid.at(3, 2, 4), 3f, 60);
|
||||
scene.idle(70);
|
||||
|
||||
scene.overlay.showText(50)
|
||||
|
@ -107,6 +117,7 @@ public class TrainScenes {
|
|||
scene.idle(40);
|
||||
|
||||
scene.world.moveSection(trainElement, util.vector.of(1, 0, 0), 20);
|
||||
scene.world.animateBogey(util.grid.at(3, 2, 4), -1f, 20);
|
||||
scene.idle(20);
|
||||
scene.effects.indicateSuccess(stationPos);
|
||||
scene.world.animateTrainStation(stationPos, true);
|
||||
|
@ -153,14 +164,124 @@ public class TrainScenes {
|
|||
scene.scaleSceneView(.75f);
|
||||
scene.setSceneOffsetY(-1);
|
||||
scene.showBasePlate();
|
||||
scene.debug.debugSchematic();
|
||||
|
||||
for (int i = 10; i >= 0; i--) {
|
||||
scene.world.showSection(util.select.position(i, 1, 4), Direction.DOWN);
|
||||
scene.idle(1);
|
||||
}
|
||||
|
||||
scene.world.toggleControls(util.grid.at(4, 3, 4));
|
||||
scene.world.toggleControls(util.grid.at(4, 3, 7));
|
||||
|
||||
BlockPos stationPos = util.grid.at(5, 1, 1);
|
||||
Selection train1 = util.select.fromTo(6, 2, 3, 2, 3, 5);
|
||||
Selection train2 = util.select.fromTo(6, 2, 6, 2, 3, 8);
|
||||
|
||||
scene.idle(10);
|
||||
|
||||
scene.world.showSection(util.select.position(stationPos), Direction.DOWN);
|
||||
scene.idle(5);
|
||||
ElementLink<WorldSectionElement> trainElement1 = scene.world.showIndependentSection(train1, Direction.DOWN);
|
||||
scene.idle(10);
|
||||
scene.world.animateTrainStation(stationPos, true);
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 3, 4), Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Schedules allow Trains to be controlled by other Drivers");
|
||||
scene.idle(80);
|
||||
|
||||
Vec3 target = util.vector.topOf(util.grid.at(4, 0, 2));
|
||||
scene.overlay.showControls(new InputWindowElement(target, Pointing.RIGHT).rightClick()
|
||||
.withItem(AllItems.SCHEDULE.asStack()), 80);
|
||||
scene.overlay.showText(80)
|
||||
.pointAt(target)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.BLUE)
|
||||
.text("Right-click with the item in hand to open its Interface");
|
||||
scene.idle(100);
|
||||
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.topOf(util.grid.at(3, 3, 4)), Pointing.DOWN).rightClick()
|
||||
.withItem(AllItems.SCHEDULE.asStack()), 80);
|
||||
scene.idle(6);
|
||||
scene.world.conductorBlaze(util.grid.at(3, 3, 4), true);
|
||||
scene.overlay.showText(70)
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(3, 3, 4), Direction.WEST))
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Once programmed, the Schedule can be handed off to a Train Driver");
|
||||
scene.idle(80);
|
||||
|
||||
scene.world.moveSection(trainElement1, util.vector.of(12, 0, 0), 60);
|
||||
scene.world.animateBogey(util.grid.at(4, 2, 4), -12f, 60);
|
||||
scene.world.animateTrainStation(stationPos, false);
|
||||
scene.idle(20);
|
||||
scene.world.hideIndependentSection(trainElement1, null);
|
||||
scene.idle(25);
|
||||
|
||||
ElementLink<WorldSectionElement> trainElement2 = scene.world.showIndependentSection(train2, Direction.DOWN);
|
||||
scene.world.moveSection(trainElement2, util.vector.of(0, 0, -3), 0);
|
||||
scene.idle(10);
|
||||
Vec3 birbVec = util.vector.topOf(util.grid.at(3, 0, 7));
|
||||
ElementLink<ParrotElement> birb = scene.special.createBirb(birbVec, FacePointOfInterestPose::new);
|
||||
scene.world.animateTrainStation(stationPos, true);
|
||||
|
||||
scene.overlay.showText(110)
|
||||
.pointAt(birbVec)
|
||||
.placeNearTarget()
|
||||
.attachKeyFrame()
|
||||
.text("Any mob or blaze burner sitting in front of Train Controls is an eligible conductor");
|
||||
scene.idle(80);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.centerOf(util.grid.at(3, 1, 7)), Pointing.DOWN)
|
||||
.withItem(new ItemStack(Items.LEAD)), 30);
|
||||
scene.idle(40);
|
||||
target = util.vector.centerOf(util.grid.at(3, 3, 4));
|
||||
scene.overlay.showControls(new InputWindowElement(target.add(0.5, 0, 0), Pointing.RIGHT).rightClick()
|
||||
.withItem(new ItemStack(Items.LEAD)), 30);
|
||||
scene.idle(6);
|
||||
scene.special.moveParrot(birb, target.subtract(birbVec), 5);
|
||||
scene.effects.indicateSuccess(util.grid.at(3, 3, 4));
|
||||
scene.idle(15);
|
||||
|
||||
scene.overlay.showText(70)
|
||||
.pointAt(target)
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.BLUE)
|
||||
.attachKeyFrame()
|
||||
.text("Creatures on a lead can be given their seat more conveniently");
|
||||
scene.idle(80);
|
||||
|
||||
scene.overlay.showControls(new InputWindowElement(util.vector.topOf(util.grid.at(3, 3, 4)), Pointing.DOWN)
|
||||
.withItem(AllItems.SCHEDULE.asStack()), 15);
|
||||
scene.idle(6);
|
||||
scene.special.conductorBirb(birb, true);
|
||||
scene.special.movePointOfInterest(util.grid.at(16, 4, 4));
|
||||
scene.idle(14);
|
||||
|
||||
scene.world.moveSection(trainElement2, util.vector.of(3, 0, 0), 30);
|
||||
scene.world.animateBogey(util.grid.at(4, 2, 7), -3f, 30);
|
||||
scene.special.moveParrot(birb, util.vector.of(3, 0, 0), 30);
|
||||
scene.idle(40);
|
||||
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.topOf(util.grid.at(6, 3, 4)), Pointing.DOWN).rightClick(), 70);
|
||||
scene.idle(6);
|
||||
scene.special.conductorBirb(birb, false);
|
||||
scene.special.movePointOfInterest(util.grid.at(3, 4, 1));
|
||||
scene.idle(19);
|
||||
scene.overlay.showText(70)
|
||||
.pointAt(target.add(3, 0, 0))
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.BLUE)
|
||||
.attachKeyFrame()
|
||||
.text("Schedules can be retrieved from Drivers at any moment");
|
||||
scene.idle(80);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -48,6 +48,8 @@ public class TrainSignalScenes {
|
|||
Selection secondNixie = util.select.position(8, 2, 9);
|
||||
Selection thirdNixie = util.select.position(9, 4, 8);
|
||||
Selection train = util.select.fromTo(5, 2, 5, 1, 3, 7);
|
||||
|
||||
scene.world.toggleControls(util.grid.at(3, 3, 6));
|
||||
|
||||
Vec3 marker = util.vector.topOf(8, 0, 6)
|
||||
.add(0, 3 / 16f, 0);
|
||||
|
@ -172,6 +174,7 @@ public class TrainSignalScenes {
|
|||
scene.idle(20);
|
||||
|
||||
scene.world.moveSection(trainElement, util.vector.of(7, 0, 0), 25);
|
||||
scene.world.animateBogey(util.grid.at(3, 2, 6), -7f, 25);
|
||||
scene.special.moveParrot(birb, util.vector.of(7, 0, 0), 25);
|
||||
scene.idle(25);
|
||||
|
||||
|
@ -211,6 +214,10 @@ public class TrainSignalScenes {
|
|||
scene.world.showSection(util.select.position(i, 1, 15 - i), Direction.DOWN);
|
||||
scene.idle(1);
|
||||
}
|
||||
|
||||
scene.world.toggleControls(util.grid.at(13, 3, 7));
|
||||
scene.world.toggleControls(util.grid.at(13, 3, 1));
|
||||
scene.world.toggleControls(util.grid.at(13, 3, 4));
|
||||
|
||||
Selection train1 = util.select.fromTo(11, 2, 6, 15, 3, 8);
|
||||
Selection train2a = util.select.fromTo(15, 2, 3, 11, 3, 5);
|
||||
|
@ -283,6 +290,7 @@ public class TrainSignalScenes {
|
|||
scene.special.createBirb(util.vector.centerOf(18, 3, 7), FacePointOfInterestPose::new);
|
||||
scene.world.moveSection(trainElement, util.vector.of(4, 0, 0), 0);
|
||||
scene.world.moveSection(trainElement, util.vector.of(-9, 0, 0), 45);
|
||||
scene.world.animateBogey(util.grid.at(13, 2, 7), 9f, 45);
|
||||
scene.special.moveParrot(birb1, util.vector.of(-9, 0, 0), 45);
|
||||
scene.idle(20);
|
||||
|
||||
|
@ -307,6 +315,7 @@ public class TrainSignalScenes {
|
|||
scene.special.createBirb(util.vector.centerOf(18, 3, 7), FacePointOfInterestPose::new);
|
||||
scene.world.moveSection(trainElement2, util.vector.of(4, 0, 6), 0);
|
||||
scene.world.moveSection(trainElement2, util.vector.of(-4.5, 0, 0), 35);
|
||||
scene.world.animateBogey(util.grid.at(13, 2, 1), 4.5f, 35);
|
||||
scene.special.moveParrot(birb2, util.vector.of(-4.5, 0, 0), 35);
|
||||
scene.idle(40);
|
||||
scene.special.movePointOfInterest(s1Pos.above(2));
|
||||
|
@ -397,6 +406,7 @@ public class TrainSignalScenes {
|
|||
|
||||
scene.world.moveSection(trainElement2, util.vector.of(4, 0, 6), 0);
|
||||
scene.world.moveSection(trainElement2, util.vector.of(-4.5, 0, 0), 35);
|
||||
scene.world.animateBogey(util.grid.at(13, 2, 1), 4.5f, 35);
|
||||
scene.special.moveParrot(birb2, util.vector.of(-4.5, 0, 0), 35);
|
||||
|
||||
scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, bb, bb.inflate(.45f, 0, .45f), 140);
|
||||
|
@ -436,6 +446,7 @@ public class TrainSignalScenes {
|
|||
scene.world.rotateSection(trainElement3a, 0, 45, 0, 0);
|
||||
scene.world.moveSection(trainElement3a, util.vector.of(4, 0, -6), 0);
|
||||
scene.world.moveSection(trainElement3a, util.vector.of(-20, 0, 20), 40);
|
||||
scene.world.animateBogey(util.grid.at(13, 2, 4), -20f, 40);
|
||||
ElementLink<ParrotElement> birb3 =
|
||||
scene.special.createBirb(util.vector.of(18, 3.5, -2), FacePointOfInterestPose::new);
|
||||
scene.special.moveParrot(birb3, util.vector.of(-20, 0, 20), 40);
|
||||
|
@ -448,6 +459,7 @@ public class TrainSignalScenes {
|
|||
scene.world.rotateSection(trainElement3b, 0, 45, 0, 0);
|
||||
scene.world.moveSection(trainElement3b, util.vector.of(0.5, 0, -7), 0);
|
||||
scene.world.moveSection(trainElement3b, util.vector.of(-20, 0, 20), 40);
|
||||
scene.world.animateBogey(util.grid.at(17, 2, 4), -20f, 40);
|
||||
scene.idle(10);
|
||||
|
||||
scene.effects.indicateRedstone(s4Pos.west());
|
||||
|
@ -530,6 +542,7 @@ public class TrainSignalScenes {
|
|||
.text("Reversely, red signals emit a comparator output");
|
||||
scene.idle(40);
|
||||
|
||||
scene.world.toggleControls(util.grid.at(6, 3, 5));
|
||||
scene.world.showSection(train, Direction.DOWN);
|
||||
scene.special.createBirb(util.vector.centerOf(util.grid.at(6, 3, 4)), DancePose::new);
|
||||
scene.idle(10);
|
||||
|
|
|
@ -250,6 +250,9 @@ public class TrainStationScenes {
|
|||
scene.world.moveSection(controlsElement, util.vector.of(18, 0, 0), 70);
|
||||
scene.world.moveSection(trainElement1, util.vector.of(18, 0, 0), 70);
|
||||
scene.world.moveSection(trainElement2, util.vector.of(18, 0, 0), 70);
|
||||
scene.world.animateBogey(util.grid.at(10, 2, 6), -18f, 70);
|
||||
scene.world.animateBogey(util.grid.at(6, 2, 6), -18f, 70);
|
||||
scene.world.animateBogey(util.grid.at(3, 2, 6), -18f, 70);
|
||||
scene.special.moveParrot(birb, util.vector.of(18, 0, 0), 70);
|
||||
|
||||
scene.idle(10);
|
||||
|
@ -361,6 +364,7 @@ public class TrainStationScenes {
|
|||
scene.world.showSection(redstone, Direction.SOUTH);
|
||||
|
||||
scene.world.moveSection(trainElement, util.vector.of(4, 0, 0), 20);
|
||||
scene.world.animateBogey(util.grid.at(7, 2, 6), -4f, 20);
|
||||
scene.special.moveParrot(birb, util.vector.of(4, 0, 0), 20);
|
||||
scene.idle(20);
|
||||
|
||||
|
@ -443,6 +447,7 @@ public class TrainStationScenes {
|
|||
birb = scene.special.createBirb(target, FacePointOfInterestPose::new);
|
||||
scene.idle(10);
|
||||
scene.world.moveSection(trainElement, util.vector.of(4, 0, 0), 20);
|
||||
scene.world.animateBogey(util.grid.at(7, 2, 6), -4f, 20);
|
||||
scene.special.moveParrot(birb, util.vector.of(4, 0, 0), 20);
|
||||
scene.idle(10);
|
||||
|
||||
|
@ -461,6 +466,8 @@ public class TrainStationScenes {
|
|||
.add(0, -.125, .45), target.add(0, 0, -.5), 40);
|
||||
scene.idle(10);
|
||||
scene.effects.indicateSuccess(util.grid.at(6, 3, 6));
|
||||
scene.special.conductorBirb(birb, true);
|
||||
scene.special.movePointOfInterest(util.grid.at(18, 4, 6));
|
||||
scene.idle(25);
|
||||
|
||||
scene.overlay.showText(80)
|
||||
|
@ -472,6 +479,7 @@ public class TrainStationScenes {
|
|||
|
||||
scene.world.moveSection(trainElement, util.vector.of(8, 0, 0), 30);
|
||||
scene.special.moveParrot(birb, util.vector.of(8, 0, 0), 30);
|
||||
scene.world.animateBogey(util.grid.at(7, 2, 6), -8f, 30);
|
||||
scene.world.animateTrainStation(stationPos, false);
|
||||
scene.idle(10);
|
||||
scene.world.hideIndependentSection(trainElement, null);
|
||||
|
|
|
@ -16,6 +16,7 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.animal.Parrot;
|
||||
|
@ -27,6 +28,7 @@ public class ParrotElement extends AnimatedSceneElement {
|
|||
private Vec3 location;
|
||||
private Parrot entity;
|
||||
private ParrotPose pose;
|
||||
private boolean deferConductor = false;
|
||||
private Supplier<? extends ParrotPose> initialPose;
|
||||
|
||||
public static ParrotElement create(Vec3 location, Supplier<? extends ParrotPose> pose) {
|
||||
|
@ -52,6 +54,9 @@ public class ParrotElement extends AnimatedSceneElement {
|
|||
entity.zOld = 0;
|
||||
entity.setXRot(entity.xRotO = 0);
|
||||
entity.setYRot(entity.yRotO = 180);
|
||||
entity.getPersistentData()
|
||||
.remove("TrainHat");
|
||||
deferConductor = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -60,6 +65,9 @@ public class ParrotElement extends AnimatedSceneElement {
|
|||
if (entity == null) {
|
||||
entity = pose.create(scene.getWorld());
|
||||
entity.setYRot(entity.yRotO = 180);
|
||||
if (deferConductor)
|
||||
setConductor(deferConductor);
|
||||
deferConductor = false;
|
||||
}
|
||||
|
||||
entity.tickCount++;
|
||||
|
@ -102,6 +110,18 @@ public class ParrotElement extends AnimatedSceneElement {
|
|||
entity.xRotO = entity.getXRot();
|
||||
entity.yRotO = entity.getYRot();
|
||||
}
|
||||
|
||||
public void setConductor(boolean isConductor) {
|
||||
if (entity == null) {
|
||||
deferConductor = isConductor;
|
||||
return;
|
||||
}
|
||||
CompoundTag data = entity.getPersistentData();
|
||||
if (isConductor)
|
||||
data.putBoolean("TrainHat", true);
|
||||
else
|
||||
data.remove("TrainHat");
|
||||
}
|
||||
|
||||
public Vec3 getPositionOffset() {
|
||||
return entity != null ? entity.position() : Vec3.ZERO;
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
package com.simibubi.create.foundation.ponder.instruction;
|
||||
|
||||
public class AnimateBogeyInstruction {
|
||||
|
||||
}
|
|
@ -7,6 +7,7 @@ import java.util.function.Function;
|
|||
import com.simibubi.create.content.contraptions.components.deployer.DeployerTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.IBearingTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity;
|
||||
import com.simibubi.create.content.logistics.trains.track.StandardBogeyTileEntity;
|
||||
import com.simibubi.create.foundation.ponder.PonderScene;
|
||||
import com.simibubi.create.foundation.ponder.PonderWorld;
|
||||
|
||||
|
@ -30,6 +31,14 @@ public class AnimateTileEntityInstruction extends TickingInstruction {
|
|||
.orElse(0f));
|
||||
}
|
||||
|
||||
public static AnimateTileEntityInstruction bogey(BlockPos location, float totalDelta, int ticks) {
|
||||
float movedPerTick = totalDelta / ticks;
|
||||
return new AnimateTileEntityInstruction(location, totalDelta, ticks,
|
||||
(w, f) -> castIfPresent(w, location, StandardBogeyTileEntity.class)
|
||||
.ifPresent(bte -> bte.animate(f.equals(totalDelta) ? 0 : movedPerTick)),
|
||||
(w) -> 0f);
|
||||
}
|
||||
|
||||
public static AnimateTileEntityInstruction pulley(BlockPos location, float totalDelta, int ticks) {
|
||||
return new AnimateTileEntityInstruction(location, totalDelta, ticks,
|
||||
(w, f) -> castIfPresent(w, location, PulleyTileEntity.class).ifPresent(pulley -> pulley.animateOffset(f)),
|
||||
|
|
Binary file not shown.
BIN
src/main/resources/assets/create/ponder/display_board.nbt
Normal file
BIN
src/main/resources/assets/create/ponder/display_board.nbt
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue