Train route Titles
- Schedules now display stops in their tooltip - Schedules can now be given a name through one of their instructions - Fixed Display boards rendering cogs on the wrong axis
This commit is contained in:
parent
f2850183f5
commit
0c6a23db83
41 changed files with 719 additions and 516 deletions
|
@ -543,22 +543,22 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
||||||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||||
7fbb25c577025ff61388c54c43401d8bb80723dd assets/create/lang/en_ud.json
|
7fbb25c577025ff61388c54c43401d8bb80723dd assets/create/lang/en_ud.json
|
||||||
d19d6fb4534f1a3cdc05d98e2368cb622cb0b35c assets/create/lang/en_us.json
|
0a3b09db8a3bd71570afc1452d62a1fa6bd22baa assets/create/lang/en_us.json
|
||||||
b23660c03917a455183094b16eee6574790856cd assets/create/lang/unfinished/de_de.json
|
7ac6b939d4d1b574806ac3fa3ec495498c9c00a6 assets/create/lang/unfinished/de_de.json
|
||||||
6afa96843a684ce21a1d86b1f92741a9683ee4b9 assets/create/lang/unfinished/es_cl.json
|
58a1b86058fcebf323e2208ba26df584d42f9f97 assets/create/lang/unfinished/es_cl.json
|
||||||
9d8088da986e4d2a16cd68f29db9a72170868053 assets/create/lang/unfinished/es_es.json
|
1419151466490bfa42b84a99e0e296b54e1aeec5 assets/create/lang/unfinished/es_es.json
|
||||||
0b4738efc913fdee63681abe73b2eb0f30b7248b assets/create/lang/unfinished/fr_fr.json
|
a366bd2c9b80079b9c42572623165497b6d49531 assets/create/lang/unfinished/fr_fr.json
|
||||||
b42daac1a01bfcbdc1b029f343175211cc6efdbd assets/create/lang/unfinished/it_it.json
|
b21c2d0a7cdf713492ab1eb85061df8c73a9d9b9 assets/create/lang/unfinished/it_it.json
|
||||||
0b73ce20763075102b6a034dd261796a47bbaf11 assets/create/lang/unfinished/ja_jp.json
|
9874ddfacd2effec2eb852ea9cc009923e372ae5 assets/create/lang/unfinished/ja_jp.json
|
||||||
973bfaaaffbfc6a1577073262faf3960e4b0e81d assets/create/lang/unfinished/ko_kr.json
|
0334b52e3e84870e84fce1e485c6153456dc84e9 assets/create/lang/unfinished/ko_kr.json
|
||||||
18491774d2545653fba5471e166136e8662d8c7f assets/create/lang/unfinished/nl_nl.json
|
7f0bd618c72b9743832a7133db0359f546b48f5e assets/create/lang/unfinished/nl_nl.json
|
||||||
ff022ea6d4d89f0f156bebbe9305f8a114bccf0f assets/create/lang/unfinished/pl_pl.json
|
f6826d25ea7aca1db76e806a44434f64fb11e6b2 assets/create/lang/unfinished/pl_pl.json
|
||||||
df3767bf9e308e77597d173fb88c6c3f113a00af assets/create/lang/unfinished/pt_br.json
|
5ff6c067e106418b32dbb97b3bce56a6990eaf67 assets/create/lang/unfinished/pt_br.json
|
||||||
ff50da076781c6545bb7dc35898d6ff91bec8952 assets/create/lang/unfinished/pt_pt.json
|
8e639a6e5337e7723c454b3d01dd70e9715318fe assets/create/lang/unfinished/pt_pt.json
|
||||||
ed7386a57b1758cda9d43ddf12236e56f3394649 assets/create/lang/unfinished/ro_ro.json
|
763413532441a056bd88bbcea394fcf9e50e8c29 assets/create/lang/unfinished/ro_ro.json
|
||||||
3a3e94e9a8ef33a7d75e60404e4a3cd0356ee86c assets/create/lang/unfinished/ru_ru.json
|
24430fe32f666e6df5fa9185dabedbe9746155d2 assets/create/lang/unfinished/ru_ru.json
|
||||||
ca9cdfbe87c61b3d0773aaa2360d6ee0a91cff60 assets/create/lang/unfinished/zh_cn.json
|
9955890700831881c15b3df9d720448c09ae341e assets/create/lang/unfinished/zh_cn.json
|
||||||
8f6fefc6d5aeb0bc180b80dc8229e2c4361bc036 assets/create/lang/unfinished/zh_tw.json
|
7294335fc11c054fb761a251493b17866f01f0c2 assets/create/lang/unfinished/zh_tw.json
|
||||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||||
|
|
|
@ -893,6 +893,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "Clockwise",
|
"create.generic.clockwise": "Clockwise",
|
||||||
"create.generic.counter_clockwise": "Counter-Clockwise",
|
"create.generic.counter_clockwise": "Counter-Clockwise",
|
||||||
|
"create.generic.in_quotes": "\"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Scroll",
|
"create.action.scroll": "Scroll",
|
||||||
"create.action.confirm": "Confirm",
|
"create.action.confirm": "Confirm",
|
||||||
|
@ -1336,24 +1337,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "Duplicate",
|
"create.gui.schedule.duplicate": "Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "Remove Stop",
|
"create.gui.schedule.remove_entry": "Remove Action",
|
||||||
"create.gui.schedule.add_entry": "Add Stop",
|
"create.gui.schedule.add_entry": "Add Action",
|
||||||
"create.gui.schedule.move_up": "Move up",
|
"create.gui.schedule.move_up": "Move up",
|
||||||
"create.gui.schedule.move_down": "Move down",
|
"create.gui.schedule.move_down": "Move down",
|
||||||
"create.gui.schedule.add_condition": "Add Condition",
|
"create.gui.schedule.add_condition": "Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "Alternative Condition",
|
"create.gui.schedule.alternative_condition": "Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "Next Stop:",
|
"create.schedule.instruction_type": "Next Action:",
|
||||||
"create.schedule.destination.editor": "Destination Editor",
|
"create.schedule.instruction.editor": "Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "Specific Station",
|
"create.schedule.instruction.destination": "Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "Station: %1$s",
|
"create.schedule.instruction.destination.summary": "Next Stop:",
|
||||||
"create.schedule.destination.filter": "Station Name",
|
"create.schedule.instruction.filter_edit_box": "Station Name",
|
||||||
"create.schedule.destination.filter_2": "Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "Nearest Station",
|
"create.schedule.instruction.rename": "Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "New Title:",
|
||||||
"create.schedule.condition_type": "Continue when:",
|
"create.schedule.instruction.name_edit_box": "Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "Continue if/after:",
|
||||||
"create.schedule.condition.editor": "Condition Editor",
|
"create.schedule.condition.editor": "Condition Editor",
|
||||||
"create.schedule.condition.delay": "Scheduled Delay",
|
"create.schedule.condition.delay": "Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "Wait: %1$s",
|
"create.schedule.condition.delay_short": "Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1514",
|
"_": "Missing Localizations: 1518",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "Uhrzeigersinn",
|
"create.generic.clockwise": "Uhrzeigersinn",
|
||||||
"create.generic.counter_clockwise": "Gegen-Uhrzeigersinn",
|
"create.generic.counter_clockwise": "Gegen-Uhrzeigersinn",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Wechseln",
|
"create.action.scroll": "Wechseln",
|
||||||
"create.action.confirm": "Bestätigen",
|
"create.action.confirm": "Bestätigen",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 525",
|
"_": "Missing Localizations: 529",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "En sentido del Reloj",
|
"create.generic.clockwise": "En sentido del Reloj",
|
||||||
"create.generic.counter_clockwise": "Al contrario del Reloj",
|
"create.generic.counter_clockwise": "Al contrario del Reloj",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Rueda",
|
"create.action.scroll": "Rueda",
|
||||||
"create.action.confirm": "Confirmar",
|
"create.action.confirm": "Confirmar",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 196",
|
"_": "Missing Localizations: 200",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "En el sentido de las agujas del reloj",
|
"create.generic.clockwise": "En el sentido de las agujas del reloj",
|
||||||
"create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj",
|
"create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Desplazar",
|
"create.action.scroll": "Desplazar",
|
||||||
"create.action.confirm": "Confirmar",
|
"create.action.confirm": "Confirmar",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1776",
|
"_": "Missing Localizations: 1780",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smS",
|
"create.generic.unit.millibuckets": "%1$smS",
|
||||||
"create.generic.clockwise": "dans le sens horaire",
|
"create.generic.clockwise": "dans le sens horaire",
|
||||||
"create.generic.counter_clockwise": "dans le sens anti-horaire",
|
"create.generic.counter_clockwise": "dans le sens anti-horaire",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Faire défiler",
|
"create.action.scroll": "Faire défiler",
|
||||||
"create.action.confirm": "Confirmer",
|
"create.action.confirm": "Confirmer",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1465",
|
"_": "Missing Localizations: 1469",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$s mB",
|
"create.generic.unit.millibuckets": "%1$s mB",
|
||||||
"create.generic.clockwise": "Senso orario",
|
"create.generic.clockwise": "Senso orario",
|
||||||
"create.generic.counter_clockwise": "Senso anti-orario",
|
"create.generic.counter_clockwise": "Senso anti-orario",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Scorri",
|
"create.action.scroll": "Scorri",
|
||||||
"create.action.confirm": "Conferma",
|
"create.action.confirm": "Conferma",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 191",
|
"_": "Missing Localizations: 195",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "時計回り",
|
"create.generic.clockwise": "時計回り",
|
||||||
"create.generic.counter_clockwise": "反時計回り",
|
"create.generic.counter_clockwise": "反時計回り",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "スクロール",
|
"create.action.scroll": "スクロール",
|
||||||
"create.action.confirm": "確認",
|
"create.action.confirm": "確認",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 191",
|
"_": "Missing Localizations: 195",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "시계 방향",
|
"create.generic.clockwise": "시계 방향",
|
||||||
"create.generic.counter_clockwise": "시계 반대 방향",
|
"create.generic.counter_clockwise": "시계 반대 방향",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "스크롤하세요",
|
"create.action.scroll": "스크롤하세요",
|
||||||
"create.action.confirm": "확인",
|
"create.action.confirm": "확인",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 2129",
|
"_": "Missing Localizations: 2133",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
|
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
|
||||||
"create.generic.clockwise": "UNLOCALIZED: Clockwise",
|
"create.generic.clockwise": "UNLOCALIZED: Clockwise",
|
||||||
"create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise",
|
"create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Scroll",
|
"create.action.scroll": "Scroll",
|
||||||
"create.action.confirm": "Bevestigen",
|
"create.action.confirm": "Bevestigen",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 564",
|
"_": "Missing Localizations: 568",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smW",
|
"create.generic.unit.millibuckets": "%1$smW",
|
||||||
"create.generic.clockwise": "Zgodnie ze wskazówkami zegara",
|
"create.generic.clockwise": "Zgodnie ze wskazówkami zegara",
|
||||||
"create.generic.counter_clockwise": "Przeciwnie do wskazówek zegara",
|
"create.generic.counter_clockwise": "Przeciwnie do wskazówek zegara",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Przewiń",
|
"create.action.scroll": "Przewiń",
|
||||||
"create.action.confirm": "Potwierdź",
|
"create.action.confirm": "Potwierdź",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1376",
|
"_": "Missing Localizations: 1380",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "Sentido horário",
|
"create.generic.clockwise": "Sentido horário",
|
||||||
"create.generic.counter_clockwise": "Sentido anti-horário",
|
"create.generic.counter_clockwise": "Sentido anti-horário",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Rolar",
|
"create.action.scroll": "Rolar",
|
||||||
"create.action.confirm": "Confirmar",
|
"create.action.confirm": "Confirmar",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1748",
|
"_": "Missing Localizations: 1752",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "Sentido horário",
|
"create.generic.clockwise": "Sentido horário",
|
||||||
"create.generic.counter_clockwise": "Sentido anti-horário",
|
"create.generic.counter_clockwise": "Sentido anti-horário",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Rolar",
|
"create.action.scroll": "Rolar",
|
||||||
"create.action.confirm": "Confirmar",
|
"create.action.confirm": "Confirmar",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 192",
|
"_": "Missing Localizations: 196",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "În sensul acelor de ceasornic",
|
"create.generic.clockwise": "În sensul acelor de ceasornic",
|
||||||
"create.generic.counter_clockwise": "În sensul invers acelor de ceasornic",
|
"create.generic.counter_clockwise": "În sensul invers acelor de ceasornic",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Derulează",
|
"create.action.scroll": "Derulează",
|
||||||
"create.action.confirm": "Confirmă",
|
"create.action.confirm": "Confirmă",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 569",
|
"_": "Missing Localizations: 573",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "По часовой стрелке",
|
"create.generic.clockwise": "По часовой стрелке",
|
||||||
"create.generic.counter_clockwise": "Против часовой стрелки",
|
"create.generic.counter_clockwise": "Против часовой стрелки",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Прокрутка",
|
"create.action.scroll": "Прокрутка",
|
||||||
"create.action.confirm": "Подтвердить",
|
"create.action.confirm": "Подтвердить",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 191",
|
"_": "Missing Localizations: 195",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "顺时针方向",
|
"create.generic.clockwise": "顺时针方向",
|
||||||
"create.generic.counter_clockwise": "逆时针方向",
|
"create.generic.counter_clockwise": "逆时针方向",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "滚轮",
|
"create.action.scroll": "滚轮",
|
||||||
"create.action.confirm": "确认",
|
"create.action.confirm": "确认",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 583",
|
"_": "Missing Localizations: 587",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -894,6 +894,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "順時鐘方向",
|
"create.generic.clockwise": "順時鐘方向",
|
||||||
"create.generic.counter_clockwise": "逆時鐘方向",
|
"create.generic.counter_clockwise": "逆時鐘方向",
|
||||||
|
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "滾輪",
|
"create.action.scroll": "滾輪",
|
||||||
"create.action.confirm": "確認",
|
"create.action.confirm": "確認",
|
||||||
|
@ -1337,24 +1338,27 @@
|
||||||
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "UNLOCALIZED: Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "UNLOCALIZED: Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
"create.gui.schedule.duplicate": "UNLOCALIZED: Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Stop",
|
"create.gui.schedule.remove_entry": "UNLOCALIZED: Remove Action",
|
||||||
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Stop",
|
"create.gui.schedule.add_entry": "UNLOCALIZED: Add Action",
|
||||||
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
"create.gui.schedule.move_up": "UNLOCALIZED: Move up",
|
||||||
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
"create.gui.schedule.move_down": "UNLOCALIZED: Move down",
|
||||||
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
"create.gui.schedule.add_condition": "UNLOCALIZED: Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
"create.gui.schedule.alternative_condition": "UNLOCALIZED: Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "UNLOCALIZED: Next Stop:",
|
"create.schedule.instruction_type": "UNLOCALIZED: Next Action:",
|
||||||
"create.schedule.destination.editor": "UNLOCALIZED: Destination Editor",
|
"create.schedule.instruction.editor": "UNLOCALIZED: Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "UNLOCALIZED: Specific Station",
|
"create.schedule.instruction.destination": "UNLOCALIZED: Travel to Station",
|
||||||
"create.schedule.destination.filtered_matching": "UNLOCALIZED: Station: %1$s",
|
"create.schedule.instruction.destination.summary": "UNLOCALIZED: Next Stop:",
|
||||||
"create.schedule.destination.filter": "UNLOCALIZED: Station Name",
|
"create.schedule.instruction.filter_edit_box": "UNLOCALIZED: Station Name",
|
||||||
"create.schedule.destination.filter_2": "UNLOCALIZED: Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box_1": "UNLOCALIZED: Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_3": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_2": "UNLOCALIZED: Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.filter_4": "UNLOCALIZED: Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_3": "UNLOCALIZED: Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.nearest": "UNLOCALIZED: Nearest Station",
|
"create.schedule.instruction.rename": "UNLOCALIZED: Update Schedule Title",
|
||||||
"create.schedule.destination.redstone": "UNLOCALIZED: Station with Redstone Pulse",
|
"create.schedule.instruction.rename.summary": "UNLOCALIZED: New Title:",
|
||||||
"create.schedule.condition_type": "UNLOCALIZED: Continue when:",
|
"create.schedule.instruction.name_edit_box": "UNLOCALIZED: Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "UNLOCALIZED: Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "UNLOCALIZED: Defaults to next destination's name",
|
||||||
|
"create.schedule.condition_type": "UNLOCALIZED: Continue if/after:",
|
||||||
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
"create.schedule.condition.editor": "UNLOCALIZED: Condition Editor",
|
||||||
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
"create.schedule.condition.delay": "UNLOCALIZED: Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
"create.schedule.condition.delay_short": "UNLOCALIZED: Wait: %1$s",
|
||||||
|
|
|
@ -321,7 +321,9 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
|
||||||
return;
|
return;
|
||||||
if (!(passenger instanceof LivingEntity living))
|
if (!(passenger instanceof LivingEntity living))
|
||||||
return;
|
return;
|
||||||
|
float prevAngle = living.getYRot();
|
||||||
float angle = AngleHelper.deg(-Mth.atan2(motion.x, motion.z));
|
float angle = AngleHelper.deg(-Mth.atan2(motion.x, motion.z));
|
||||||
|
angle = AngleHelper.angleLerp(0.4f, prevAngle, angle);
|
||||||
if (level.isClientSide) {
|
if (level.isClientSide) {
|
||||||
living.lerpTo(0, 0, 0, 0, 0, 0, false);
|
living.lerpTo(0, 0, 0, 0, 0, 0, false);
|
||||||
living.lerpHeadTo(0, 0);
|
living.lerpHeadTo(0, 0);
|
||||||
|
|
|
@ -331,7 +331,7 @@ public class Train {
|
||||||
|
|
||||||
GlobalStation destination = navigation.destination;
|
GlobalStation destination = navigation.destination;
|
||||||
if (!navigatingManually && fullRefresh) {
|
if (!navigatingManually && fullRefresh) {
|
||||||
GlobalStation preferredDestination = runtime.findNextStation();
|
GlobalStation preferredDestination = runtime.startCurrentInstruction();
|
||||||
if (preferredDestination != null)
|
if (preferredDestination != null)
|
||||||
destination = preferredDestination;
|
destination = preferredDestination;
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,7 +234,8 @@ public class FlapDisplayRenderer extends KineticTileEntityRenderer {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected SuperByteBuffer getRotatedModel(KineticTileEntity te, BlockState state) {
|
protected SuperByteBuffer getRotatedModel(KineticTileEntity te, BlockState state) {
|
||||||
return CachedBufferer.partial(AllBlockPartials.SHAFTLESS_COGWHEEL, state);
|
return CachedBufferer.partialFacingVertical(AllBlockPartials.SHAFTLESS_COGWHEEL, state,
|
||||||
|
state.getValue(FlapDisplayBlock.HORIZONTAL_FACING));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
package com.simibubi.create.content.logistics.trains.management.schedule;
|
|
||||||
|
|
||||||
public class RunningScheduleScreen {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* use the same rendering and mouse handling from schedule screen but add
|
|
||||||
* progress of train based on ScheduleRuntime
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
|
|
@ -13,10 +13,9 @@ import com.simibubi.create.content.logistics.trains.management.schedule.conditio
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.StationPoweredCondition;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.StationPoweredCondition;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.StationUnloadedCondition;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.StationUnloadedCondition;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.TimeOfDayCondition;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.TimeOfDayCondition;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.FilteredDestination;
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ChangeTitleInstruction;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.NearestDestination;
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.DestinationInstruction;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.RedstoneDestination;
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleInstruction;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleDestination;
|
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
import com.simibubi.create.foundation.utility.Pair;
|
import com.simibubi.create.foundation.utility.Pair;
|
||||||
|
|
||||||
|
@ -29,15 +28,14 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
public class Schedule {
|
public class Schedule {
|
||||||
|
|
||||||
public static List<Pair<ResourceLocation, Supplier<? extends ScheduleDestination>>> DESTINATION_TYPES =
|
public static List<Pair<ResourceLocation, Supplier<? extends ScheduleInstruction>>> INSTRUCTION_TYPES =
|
||||||
new ArrayList<>();
|
new ArrayList<>();
|
||||||
public static List<Pair<ResourceLocation, Supplier<? extends ScheduleWaitCondition>>> CONDITION_TYPES =
|
public static List<Pair<ResourceLocation, Supplier<? extends ScheduleWaitCondition>>> CONDITION_TYPES =
|
||||||
new ArrayList<>();
|
new ArrayList<>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
registerDestination("filtered", FilteredDestination::new);
|
registerInstruction("destination", DestinationInstruction::new);
|
||||||
registerDestination("nearest", NearestDestination::new);
|
registerInstruction("rename", ChangeTitleInstruction::new);
|
||||||
registerDestination("redstone", RedstoneDestination::new);
|
|
||||||
registerCondition("delay", ScheduledDelay::new);
|
registerCondition("delay", ScheduledDelay::new);
|
||||||
registerCondition("time_of_day", TimeOfDayCondition::new);
|
registerCondition("time_of_day", TimeOfDayCondition::new);
|
||||||
registerCondition("fluid_threshold", FluidThresholdCondition::new);
|
registerCondition("fluid_threshold", FluidThresholdCondition::new);
|
||||||
|
@ -47,8 +45,8 @@ public class Schedule {
|
||||||
registerCondition("powered", StationPoweredCondition::new);
|
registerCondition("powered", StationPoweredCondition::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerDestination(String name, Supplier<? extends ScheduleDestination> factory) {
|
private static void registerInstruction(String name, Supplier<? extends ScheduleInstruction> factory) {
|
||||||
DESTINATION_TYPES.add(Pair.of(Create.asResource(name), factory));
|
INSTRUCTION_TYPES.add(Pair.of(Create.asResource(name), factory));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void registerCondition(String name, Supplier<? extends ScheduleWaitCondition> factory) {
|
private static void registerCondition(String name, Supplier<? extends ScheduleWaitCondition> factory) {
|
||||||
|
@ -56,7 +54,7 @@ public class Schedule {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> List<? extends Component> getTypeOptions(List<Pair<ResourceLocation, T>> list) {
|
public static <T> List<? extends Component> getTypeOptions(List<Pair<ResourceLocation, T>> list) {
|
||||||
String langSection = list.equals(DESTINATION_TYPES) ? "destination." : "condition.";
|
String langSection = list.equals(INSTRUCTION_TYPES) ? "instruction." : "condition.";
|
||||||
return list.stream()
|
return list.stream()
|
||||||
.map(Pair::getFirst)
|
.map(Pair::getFirst)
|
||||||
.map(rl -> rl.getNamespace() + ".schedule." + langSection + rl.getPath())
|
.map(rl -> rl.getNamespace() + ".schedule." + langSection + rl.getPath())
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduleWaitCondition;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduleWaitCondition;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleDestination;
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleInstruction;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
@ -12,7 +12,7 @@ import net.minecraft.nbt.ListTag;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
|
|
||||||
public class ScheduleEntry {
|
public class ScheduleEntry {
|
||||||
public ScheduleDestination destination;
|
public ScheduleInstruction instruction;
|
||||||
public List<List<ScheduleWaitCondition>> conditions;
|
public List<List<ScheduleWaitCondition>> conditions;
|
||||||
|
|
||||||
public ScheduleEntry() {
|
public ScheduleEntry() {
|
||||||
|
@ -26,20 +26,23 @@ public class ScheduleEntry {
|
||||||
public CompoundTag write() {
|
public CompoundTag write() {
|
||||||
CompoundTag tag = new CompoundTag();
|
CompoundTag tag = new CompoundTag();
|
||||||
ListTag outer = new ListTag();
|
ListTag outer = new ListTag();
|
||||||
tag.put("Destination", destination.write());
|
tag.put("Instruction", instruction.write());
|
||||||
|
if (!instruction.supportsConditions())
|
||||||
|
return tag;
|
||||||
for (List<ScheduleWaitCondition> column : conditions)
|
for (List<ScheduleWaitCondition> column : conditions)
|
||||||
outer.add(NBTHelper.writeCompoundList(column, ScheduleWaitCondition::write));
|
outer.add(NBTHelper.writeCompoundList(column, ScheduleWaitCondition::write));
|
||||||
tag.put("WaitConditions", outer);
|
tag.put("Conditions", outer);
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ScheduleEntry fromTag(CompoundTag tag) {
|
public static ScheduleEntry fromTag(CompoundTag tag) {
|
||||||
ScheduleEntry entry = new ScheduleEntry();
|
ScheduleEntry entry = new ScheduleEntry();
|
||||||
entry.destination = ScheduleDestination.fromTag(tag.getCompound("Destination"));
|
entry.instruction = ScheduleInstruction.fromTag(tag.getCompound("Instruction"));
|
||||||
entry.conditions = new ArrayList<>();
|
entry.conditions = new ArrayList<>();
|
||||||
for (Tag t : tag.getList("WaitConditions", Tag.TAG_LIST))
|
if (entry.instruction.supportsConditions())
|
||||||
if (t instanceof ListTag list)
|
for (Tag t : tag.getList("Conditions", Tag.TAG_LIST))
|
||||||
entry.conditions.add(NBTHelper.readCompoundList(list, ScheduleWaitCondition::fromTag));
|
if (t instanceof ListTag list)
|
||||||
|
entry.conditions.add(NBTHelper.readCompoundList(list, ScheduleWaitCondition::fromTag));
|
||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
package com.simibubi.create.content.logistics.trains.management.schedule;
|
package com.simibubi.create.content.logistics.trains.management.schedule;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.simibubi.create.AllContainerTypes;
|
import com.simibubi.create.AllContainerTypes;
|
||||||
import com.simibubi.create.AllSoundEvents;
|
import com.simibubi.create.AllSoundEvents;
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
||||||
import com.simibubi.create.content.logistics.trains.entity.CarriageContraption;
|
import com.simibubi.create.content.logistics.trains.entity.CarriageContraption;
|
||||||
import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity;
|
import com.simibubi.create.content.logistics.trains.entity.CarriageContraptionEntity;
|
||||||
import com.simibubi.create.content.logistics.trains.entity.Train;
|
import com.simibubi.create.content.logistics.trains.entity.Train;
|
||||||
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.DestinationInstruction;
|
||||||
import com.simibubi.create.foundation.utility.Couple;
|
import com.simibubi.create.foundation.utility.Couple;
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
|
||||||
|
@ -13,6 +16,8 @@ import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.NonNullList;
|
import net.minecraft.core.NonNullList;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.network.chat.MutableComponent;
|
||||||
|
import net.minecraft.network.chat.TextComponent;
|
||||||
import net.minecraft.network.chat.TranslatableComponent;
|
import net.minecraft.network.chat.TranslatableComponent;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
|
@ -27,8 +32,11 @@ import net.minecraft.world.inventory.AbstractContainerMenu;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
import net.minecraft.world.item.CreativeModeTab;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.TooltipFlag;
|
||||||
import net.minecraft.world.item.context.UseOnContext;
|
import net.minecraft.world.item.context.UseOnContext;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.network.NetworkHooks;
|
import net.minecraftforge.network.NetworkHooks;
|
||||||
|
|
||||||
public class ScheduleItem extends Item implements MenuProvider {
|
public class ScheduleItem extends Item implements MenuProvider {
|
||||||
|
@ -122,6 +130,29 @@ public class ScheduleItem extends Item implements MenuProvider {
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
public void appendHoverText(ItemStack stack, Level worldIn, List<Component> tooltip, TooltipFlag flagIn) {
|
||||||
|
Schedule schedule = getSchedule(stack);
|
||||||
|
if (schedule == null || schedule.entries.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
MutableComponent caret = new TextComponent("> ").withStyle(ChatFormatting.GRAY);
|
||||||
|
MutableComponent arrow = new TextComponent("-> ").withStyle(ChatFormatting.GRAY);
|
||||||
|
|
||||||
|
List<ScheduleEntry> entries = schedule.entries;
|
||||||
|
for (int i = 0; i < entries.size(); i++) {
|
||||||
|
boolean current = i == schedule.savedProgress && schedule.entries.size() > 1;
|
||||||
|
ScheduleEntry entry = entries.get(i);
|
||||||
|
if (!(entry.instruction instanceof DestinationInstruction destination))
|
||||||
|
continue;
|
||||||
|
ChatFormatting format = current ? ChatFormatting.YELLOW : ChatFormatting.GOLD;
|
||||||
|
MutableComponent prefix = current ? arrow : caret;
|
||||||
|
tooltip.add(prefix.copy()
|
||||||
|
.append(new TextComponent(destination.getFilter()).withStyle(format)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static Schedule getSchedule(ItemStack pStack) {
|
public static Schedule getSchedule(ItemStack pStack) {
|
||||||
if (!pStack.hasTag())
|
if (!pStack.hasTag())
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.simibubi.create.content.logistics.trains.management.schedule;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
import com.simibubi.create.content.logistics.trains.entity.Train;
|
import com.simibubi.create.content.logistics.trains.entity.Train;
|
||||||
|
@ -11,8 +12,9 @@ import com.simibubi.create.content.logistics.trains.management.edgePoint.EdgePoi
|
||||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.station.GlobalStation;
|
import com.simibubi.create.content.logistics.trains.management.edgePoint.station.GlobalStation;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduleWaitCondition;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduleWaitCondition;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.TimedWaitCondition;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.TimedWaitCondition;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.FilteredDestination;
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ChangeTitleInstruction;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleDestination;
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.DestinationInstruction;
|
||||||
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleInstruction;
|
||||||
import com.simibubi.create.foundation.config.AllConfigs;
|
import com.simibubi.create.foundation.config.AllConfigs;
|
||||||
import com.simibubi.create.foundation.config.CTrains;
|
import com.simibubi.create.foundation.config.CTrains;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
@ -42,6 +44,7 @@ public class ScheduleRuntime {
|
||||||
int cooldown;
|
int cooldown;
|
||||||
List<Integer> conditionProgress;
|
List<Integer> conditionProgress;
|
||||||
List<CompoundTag> conditionContext;
|
List<CompoundTag> conditionContext;
|
||||||
|
String currentTitle;
|
||||||
|
|
||||||
int ticksInTransit;
|
int ticksInTransit;
|
||||||
List<Integer> predictionTicks;
|
List<Integer> predictionTicks;
|
||||||
|
@ -107,12 +110,10 @@ public class ScheduleRuntime {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalStation nextStation = findNextStation();
|
GlobalStation nextStation = startCurrentInstruction();
|
||||||
if (nextStation == null) {
|
if (nextStation == null)
|
||||||
train.status.failedNavigation();
|
|
||||||
cooldown = INTERVAL;
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
train.status.successfulNavigation();
|
train.status.successfulNavigation();
|
||||||
if (nextStation == train.getCurrentStation()) {
|
if (nextStation == train.getCurrentStation()) {
|
||||||
state = State.IN_TRANSIT;
|
state = State.IN_TRANSIT;
|
||||||
|
@ -146,14 +147,16 @@ public class ScheduleRuntime {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public GlobalStation findNextStation() {
|
public GlobalStation startCurrentInstruction() {
|
||||||
ScheduleEntry entry = schedule.entries.get(currentEntry);
|
ScheduleEntry entry = schedule.entries.get(currentEntry);
|
||||||
ScheduleDestination destination = entry.destination;
|
ScheduleInstruction instruction = entry.instruction;
|
||||||
|
|
||||||
if (destination instanceof FilteredDestination filtered) {
|
if (instruction instanceof DestinationInstruction destination) {
|
||||||
String regex = filtered.nameFilter.replace("*", ".*");
|
String regex = destination.getFilter()
|
||||||
|
.replace("*", ".*");
|
||||||
GlobalStation best = null;
|
GlobalStation best = null;
|
||||||
double bestCost = Double.MAX_VALUE;
|
double bestCost = Double.MAX_VALUE;
|
||||||
|
|
||||||
for (GlobalStation globalStation : train.graph.getPoints(EdgePointType.STATION)) {
|
for (GlobalStation globalStation : train.graph.getPoints(EdgePointType.STATION)) {
|
||||||
if (!globalStation.name.matches(regex))
|
if (!globalStation.name.matches(regex))
|
||||||
continue;
|
continue;
|
||||||
|
@ -166,9 +169,23 @@ public class ScheduleRuntime {
|
||||||
best = globalStation;
|
best = globalStation;
|
||||||
bestCost = cost;
|
bestCost = cost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (best == null) {
|
||||||
|
train.status.failedNavigation();
|
||||||
|
cooldown = INTERVAL;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return best;
|
return best;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (instruction instanceof ChangeTitleInstruction title) {
|
||||||
|
currentTitle = title.getScheduleTitle();
|
||||||
|
state = State.PRE_TRANSIT;
|
||||||
|
currentEntry++;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -196,6 +213,7 @@ public class ScheduleRuntime {
|
||||||
paused = true;
|
paused = true;
|
||||||
isAutoSchedule = false;
|
isAutoSchedule = false;
|
||||||
currentEntry = 0;
|
currentEntry = 0;
|
||||||
|
currentTitle = "";
|
||||||
schedule = null;
|
schedule = null;
|
||||||
state = State.PRE_TRANSIT;
|
state = State.PRE_TRANSIT;
|
||||||
conditionProgress = new ArrayList<>();
|
conditionProgress = new ArrayList<>();
|
||||||
|
@ -213,56 +231,68 @@ public class ScheduleRuntime {
|
||||||
if (state == State.POST_TRANSIT || current >= entryCount) {
|
if (state == State.POST_TRANSIT || current >= entryCount) {
|
||||||
GlobalStation currentStation = train.getCurrentStation();
|
GlobalStation currentStation = train.getCurrentStation();
|
||||||
if (currentStation != null)
|
if (currentStation != null)
|
||||||
predictions.add(createPrediction(current, currentStation.name, 0));
|
predictions.add(createPrediction(current, currentStation.name, currentTitle, 0));
|
||||||
int departureTime = estimateStayDuration(current);
|
int departureTime = estimateStayDuration(current);
|
||||||
if (departureTime == -1)
|
if (departureTime == -1)
|
||||||
accumulatedTime = -1;
|
accumulatedTime = -1;
|
||||||
|
|
||||||
} else if (train.navigation.destination != null) {
|
} else {
|
||||||
CTrains conf = AllConfigs.SERVER.trains;
|
GlobalStation destination = train.navigation.destination;
|
||||||
double speed = (conf.getTopSpeedMPT() + conf.getTurningTopSpeedMPT()) / 2;
|
if (destination != null) {
|
||||||
int timeRemaining = (int) (train.navigation.distanceToDestination / speed) * 2;
|
CTrains conf = AllConfigs.SERVER.trains;
|
||||||
|
double speed = (conf.getTopSpeedMPT() + conf.getTurningTopSpeedMPT()) / 2;
|
||||||
|
int timeRemaining = (int) (train.navigation.distanceToDestination / speed) * 2;
|
||||||
|
|
||||||
if (predictionTicks.size() > current && train.navigation.distanceStartedAt != 0) {
|
if (predictionTicks.size() > current && train.navigation.distanceStartedAt != 0) {
|
||||||
float predictedTime = predictionTicks.get(current);
|
float predictedTime = predictionTicks.get(current);
|
||||||
if (predictedTime > 0) {
|
if (predictedTime > 0) {
|
||||||
predictedTime *=
|
predictedTime *= Mth
|
||||||
Mth.clamp(train.navigation.distanceToDestination / train.navigation.distanceStartedAt, 0, 1);
|
.clamp(train.navigation.distanceToDestination / train.navigation.distanceStartedAt, 0, 1);
|
||||||
timeRemaining = (timeRemaining + (int) predictedTime) / 2;
|
timeRemaining = (timeRemaining + (int) predictedTime) / 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
accumulatedTime += timeRemaining;
|
accumulatedTime += timeRemaining;
|
||||||
predictions.add(createPrediction(current, train.navigation.destination.name, accumulatedTime));
|
predictions.add(createPrediction(current, destination.name, currentTitle, accumulatedTime));
|
||||||
|
|
||||||
int departureTime = estimateStayDuration(current);
|
int departureTime = estimateStayDuration(current);
|
||||||
if (departureTime != -1)
|
if (departureTime != -1)
|
||||||
accumulatedTime += departureTime;
|
accumulatedTime += departureTime;
|
||||||
if (departureTime == -1)
|
if (departureTime == -1)
|
||||||
accumulatedTime = -1;
|
accumulatedTime = -1;
|
||||||
|
|
||||||
} else
|
} else
|
||||||
predictForEntry(current, accumulatedTime, predictions);
|
predictForEntry(current, currentTitle, accumulatedTime, predictions);
|
||||||
|
}
|
||||||
|
|
||||||
// Upcoming
|
// Upcoming
|
||||||
|
String currentTitle = this.currentTitle;
|
||||||
for (int i = 1; i < entryCount; i++) {
|
for (int i = 1; i < entryCount; i++) {
|
||||||
int index = (i + current) % entryCount;
|
int index = (i + current) % entryCount;
|
||||||
if (index == 0 && !schedule.cyclic)
|
if (index == 0 && !schedule.cyclic)
|
||||||
break;
|
break;
|
||||||
accumulatedTime = predictForEntry(index, accumulatedTime, predictions);
|
|
||||||
|
if (schedule.entries.get(index).instruction instanceof ChangeTitleInstruction title) {
|
||||||
|
currentTitle = title.getScheduleTitle();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
accumulatedTime = predictForEntry(index, currentTitle, accumulatedTime, predictions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
predictions.removeIf(Objects::isNull);
|
||||||
return predictions;
|
return predictions;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int predictForEntry(int index, int accumulatedTime, Collection<TrainDeparturePrediction> predictions) {
|
private int predictForEntry(int index, String currentTitle, int accumulatedTime,
|
||||||
|
Collection<TrainDeparturePrediction> predictions) {
|
||||||
ScheduleEntry entry = schedule.entries.get(index);
|
ScheduleEntry entry = schedule.entries.get(index);
|
||||||
if (!(entry.destination instanceof FilteredDestination filter))
|
if (!(entry.instruction instanceof DestinationInstruction filter))
|
||||||
return accumulatedTime;
|
return accumulatedTime;
|
||||||
if (predictionTicks.size() <= currentEntry)
|
if (predictionTicks.size() <= currentEntry)
|
||||||
return accumulatedTime;
|
return accumulatedTime;
|
||||||
if (accumulatedTime == -1) {
|
if (accumulatedTime == -1) {
|
||||||
predictions.add(createPrediction(index, filter.nameFilter, accumulatedTime));
|
predictions.add(createPrediction(index, filter.getFilter(), currentTitle, accumulatedTime));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -277,7 +307,7 @@ public class ScheduleRuntime {
|
||||||
accumulatedTime += departureTime;
|
accumulatedTime += departureTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
predictions.add(createPrediction(index, filter.nameFilter, accumulatedTime));
|
predictions.add(createPrediction(index, filter.getFilter(), currentTitle, accumulatedTime));
|
||||||
|
|
||||||
if (departureTime == -1)
|
if (departureTime == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -301,20 +331,22 @@ public class ScheduleRuntime {
|
||||||
return 5; // TODO properly ask conditions for time prediction
|
return 5; // TODO properly ask conditions for time prediction
|
||||||
}
|
}
|
||||||
|
|
||||||
private TrainDeparturePrediction createPrediction(int index, String destination, int time) {
|
private TrainDeparturePrediction createPrediction(int index, String destination, String currentTitle, int time) {
|
||||||
if (++index >= schedule.entries.size()) {
|
if (index >= schedule.entries.size()) {
|
||||||
if (!schedule.cyclic)
|
if (!schedule.cyclic)
|
||||||
return new TrainDeparturePrediction(train, time, new TextComponent(" "), destination);
|
return new TrainDeparturePrediction(train, time, new TextComponent(" "), destination);
|
||||||
index %= schedule.entries.size();
|
index %= schedule.entries.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
ScheduleEntry scheduleEntry = schedule.entries.get(index);
|
ScheduleEntry scheduleEntry = schedule.entries.get(index);
|
||||||
if (!(scheduleEntry.destination instanceof FilteredDestination fd))
|
if (!(scheduleEntry.instruction instanceof DestinationInstruction instruction))
|
||||||
return new TrainDeparturePrediction(train, time, new TextComponent(" "), destination);
|
return null;
|
||||||
|
|
||||||
String station = fd.nameFilter.replaceAll("\\*", "")
|
return new TrainDeparturePrediction(train, time,
|
||||||
.trim();
|
new TextComponent(currentTitle.isBlank() ? instruction.getFilter()
|
||||||
return new TrainDeparturePrediction(train, time, new TextComponent(station), destination);
|
.replaceAll("\\*", "")
|
||||||
|
.trim() : currentTitle),
|
||||||
|
destination);
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompoundTag write() {
|
public CompoundTag write() {
|
||||||
|
@ -363,7 +395,7 @@ public class ScheduleRuntime {
|
||||||
discardSchedule();
|
discardSchedule();
|
||||||
return stack;
|
return stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSchedulePresentClientside(boolean present) {
|
public void setSchedulePresentClientside(boolean present) {
|
||||||
schedule = present ? new Schedule() : null;
|
schedule = present ? new Schedule() : null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,8 @@ import com.mojang.math.Matrix4f;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduleWaitCondition;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduleWaitCondition;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduledDelay;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduledDelay;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.condition.TimedWaitCondition.TimeUnit;
|
import com.simibubi.create.content.logistics.trains.management.schedule.condition.TimedWaitCondition.TimeUnit;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.FilteredDestination;
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.DestinationInstruction;
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleDestination;
|
import com.simibubi.create.content.logistics.trains.management.schedule.destination.ScheduleInstruction;
|
||||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||||
import com.simibubi.create.foundation.gui.AllIcons;
|
import com.simibubi.create.foundation.gui.AllIcons;
|
||||||
import com.simibubi.create.foundation.gui.UIRenderHelper;
|
import com.simibubi.create.foundation.gui.UIRenderHelper;
|
||||||
|
@ -66,7 +66,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
private LerpedFloat scroll = LerpedFloat.linear()
|
private LerpedFloat scroll = LerpedFloat.linear()
|
||||||
.startWithValue(0);
|
.startWithValue(0);
|
||||||
|
|
||||||
Schedule schedule;
|
private Schedule schedule;
|
||||||
|
|
||||||
private IconButton confirmButton;
|
private IconButton confirmButton;
|
||||||
private IconButton cyclicButton;
|
private IconButton cyclicButton;
|
||||||
|
@ -75,7 +75,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
private IconButton resetProgress;
|
private IconButton resetProgress;
|
||||||
private IconButton skipProgress;
|
private IconButton skipProgress;
|
||||||
|
|
||||||
private ScheduleDestination editingDestination;
|
private ScheduleInstruction editingDestination;
|
||||||
private ScheduleWaitCondition editingCondition;
|
private ScheduleWaitCondition editingCondition;
|
||||||
private SelectionScrollInput scrollInput;
|
private SelectionScrollInput scrollInput;
|
||||||
private Label scrollInputLabel;
|
private Label scrollInputLabel;
|
||||||
|
@ -159,6 +159,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
cyclicIndicator.visible = false;
|
cyclicIndicator.visible = false;
|
||||||
skipProgress.visible = false;
|
skipProgress.visible = false;
|
||||||
resetProgress.visible = false;
|
resetProgress.visible = false;
|
||||||
|
|
||||||
scrollInput = new SelectionScrollInput(leftPos + 56, topPos + 65, 143, 16);
|
scrollInput = new SelectionScrollInput(leftPos + 56, topPos + 65, 143, 16);
|
||||||
scrollInputLabel = new Label(leftPos + 59, topPos + 69, new TextComponent("")).withShadow();
|
scrollInputLabel = new Label(leftPos + 59, topPos + 69, new TextComponent("")).withShadow();
|
||||||
editorConfirm = new IconButton(leftPos + 56 + 168, topPos + 65 + 22, AllIcons.I_CONFIRM);
|
editorConfirm = new IconButton(leftPos + 56 + 168, topPos + 65 + 22, AllIcons.I_CONFIRM);
|
||||||
|
@ -167,20 +168,20 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
menu.slotsActive = true;
|
menu.slotsActive = true;
|
||||||
menu.targetSlotActive = field.needsSlot();
|
menu.targetSlotActive = field.needsSlot();
|
||||||
|
|
||||||
if (field instanceof ScheduleDestination dest) {
|
if (field instanceof ScheduleInstruction instruction) {
|
||||||
int startIndex = 0;
|
int startIndex = 0;
|
||||||
for (int i = 0; i < Schedule.DESTINATION_TYPES.size(); i++)
|
for (int i = 0; i < Schedule.INSTRUCTION_TYPES.size(); i++)
|
||||||
if (Schedule.DESTINATION_TYPES.get(i)
|
if (Schedule.INSTRUCTION_TYPES.get(i)
|
||||||
.getFirst()
|
.getFirst()
|
||||||
.equals(dest.getId()))
|
.equals(instruction.getId()))
|
||||||
startIndex = i;
|
startIndex = i;
|
||||||
editingDestination = dest;
|
editingDestination = instruction;
|
||||||
updateEditorSubwidgets(editingDestination);
|
updateEditorSubwidgets(editingDestination);
|
||||||
scrollInput.forOptions(Schedule.getTypeOptions(Schedule.DESTINATION_TYPES))
|
scrollInput.forOptions(Schedule.getTypeOptions(Schedule.INSTRUCTION_TYPES))
|
||||||
.titled(Lang.translate("schedule.destination_type"))
|
.titled(Lang.translate("schedule.instruction_type"))
|
||||||
.writingTo(scrollInputLabel)
|
.writingTo(scrollInputLabel)
|
||||||
.calling(index -> {
|
.calling(index -> {
|
||||||
ScheduleDestination newlyCreated = Schedule.DESTINATION_TYPES.get(index)
|
ScheduleInstruction newlyCreated = Schedule.INSTRUCTION_TYPES.get(index)
|
||||||
.getSecond()
|
.getSecond()
|
||||||
.get();
|
.get();
|
||||||
if (editingDestination.getId()
|
if (editingDestination.getId()
|
||||||
|
@ -230,19 +231,24 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
cyclicIndicator.visible = true;
|
cyclicIndicator.visible = true;
|
||||||
skipProgress.visible = true;
|
skipProgress.visible = true;
|
||||||
resetProgress.visible = true;
|
resetProgress.visible = true;
|
||||||
|
|
||||||
if (editingCondition == null && editingDestination == null)
|
if (editingCondition == null && editingDestination == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
removeWidget(scrollInput);
|
removeWidget(scrollInput);
|
||||||
removeWidget(scrollInputLabel);
|
removeWidget(scrollInputLabel);
|
||||||
removeWidget(editorConfirm);
|
removeWidget(editorConfirm);
|
||||||
removeWidget(editorDelete);
|
removeWidget(editorDelete);
|
||||||
|
|
||||||
IScheduleInput editing = editingCondition == null ? editingDestination : editingCondition;
|
IScheduleInput editing = editingCondition == null ? editingDestination : editingCondition;
|
||||||
editing.setItem(menu.getSlot(36)
|
editing.setItem(menu.getSlot(36)
|
||||||
.getItem());
|
.getItem());
|
||||||
|
|
||||||
editorSubWidgets.forEach(p -> p.getSecond()
|
editorSubWidgets.forEach(p -> p.getSecond()
|
||||||
.accept(editing, p.getFirst()));
|
.accept(editing, p.getFirst()));
|
||||||
editorSubWidgets.forEach(p -> removeWidget(p.getFirst()));
|
editorSubWidgets.forEach(p -> removeWidget(p.getFirst()));
|
||||||
editorSubWidgets.clear();
|
editorSubWidgets.clear();
|
||||||
|
|
||||||
editorDividers = null;
|
editorDividers = null;
|
||||||
editingCondition = null;
|
editingCondition = null;
|
||||||
editingDestination = null;
|
editingDestination = null;
|
||||||
|
@ -257,7 +263,9 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
editorSubWidgets.forEach(p -> removeWidget(p.getFirst()));
|
editorSubWidgets.forEach(p -> removeWidget(p.getFirst()));
|
||||||
editorSubWidgets.clear();
|
editorSubWidgets.clear();
|
||||||
editorDividers = new ArrayList<>();
|
editorDividers = new ArrayList<>();
|
||||||
|
|
||||||
field.createWidgets(this, editorSubWidgets, editorDividers, leftPos - 2, topPos + 40);
|
field.createWidgets(this, editorSubWidgets, editorDividers, leftPos - 2, topPos + 40);
|
||||||
|
|
||||||
if (editorSubWidgets.isEmpty())
|
if (editorSubWidgets.isEmpty())
|
||||||
editorDividers = null;
|
editorDividers = null;
|
||||||
editorSubWidgets.forEach(pair -> {
|
editorSubWidgets.forEach(pair -> {
|
||||||
|
@ -307,7 +315,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
float scrollOffset = -scroll.getValue(partialTicks);
|
float scrollOffset = -scroll.getValue(partialTicks);
|
||||||
|
|
||||||
for (int i = 0; i <= entries.size(); i++) {
|
for (int i = 0; i <= entries.size(); i++) {
|
||||||
|
|
||||||
if (schedule.savedProgress == i && !schedule.entries.isEmpty()) {
|
if (schedule.savedProgress == i && !schedule.entries.isEmpty()) {
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
float expectedY = scrollOffset + topPos + yOffset + 4;
|
float expectedY = scrollOffset + topPos + yOffset + 4;
|
||||||
|
@ -348,6 +356,9 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
matrixStack.popPose();
|
matrixStack.popPose();
|
||||||
endStencil();
|
endStencil();
|
||||||
|
|
||||||
|
if (!scheduleEntry.instruction.supportsConditions())
|
||||||
|
continue;
|
||||||
|
|
||||||
float h = cardHeight - 26;
|
float h = cardHeight - 26;
|
||||||
float y1 = cardY + 24 + scrollOffset;
|
float y1 = cardY + 24 + scrollOffset;
|
||||||
float y2 = y1 + h;
|
float y2 = y1 + h;
|
||||||
|
@ -363,7 +374,6 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
startStencil(matrixStack, leftPos + 43, topPos + y1, 161, h);
|
startStencil(matrixStack, leftPos + 43, topPos + y1, 161, h);
|
||||||
|
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(0, scrollOffset, 0);
|
matrixStack.translate(0, scrollOffset, 0);
|
||||||
renderScheduleConditions(matrixStack, scheduleEntry, cardY, mouseX, mouseY, partialTicks, cardHeight, i);
|
renderScheduleConditions(matrixStack, scheduleEntry, cardY, mouseX, mouseY, partialTicks, cardHeight, i);
|
||||||
|
@ -409,7 +419,8 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
int maxRows = 0;
|
int maxRows = 0;
|
||||||
for (List<ScheduleWaitCondition> list : entry.conditions)
|
for (List<ScheduleWaitCondition> list : entry.conditions)
|
||||||
maxRows = Math.max(maxRows, list.size());
|
maxRows = Math.max(maxRows, list.size());
|
||||||
int cardHeight = cardHeader + 24 + maxRows * 18;
|
boolean supportsConditions = entry.instruction.supportsConditions();
|
||||||
|
int cardHeight = cardHeader + (supportsConditions ? 24 + maxRows * 18 : 4);
|
||||||
|
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
matrixStack.translate(leftPos + 25, topPos + yOffset, 0);
|
matrixStack.translate(leftPos + 25, topPos + yOffset, 0);
|
||||||
|
@ -418,7 +429,8 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
UIRenderHelper.drawStretched(matrixStack, 1, 0, cardWidth - 2, cardHeight, zLevel, light);
|
UIRenderHelper.drawStretched(matrixStack, 1, 0, cardWidth - 2, cardHeight, zLevel, light);
|
||||||
UIRenderHelper.drawStretched(matrixStack, 1, 1, cardWidth - 2, cardHeight - 2, zLevel, dark);
|
UIRenderHelper.drawStretched(matrixStack, 1, 1, cardWidth - 2, cardHeight - 2, zLevel, dark);
|
||||||
UIRenderHelper.drawStretched(matrixStack, 2, 2, cardWidth - 4, cardHeight - 4, zLevel, medium);
|
UIRenderHelper.drawStretched(matrixStack, 2, 2, cardWidth - 4, cardHeight - 4, zLevel, medium);
|
||||||
UIRenderHelper.drawStretched(matrixStack, 2, 2, cardWidth - 4, cardHeader, zLevel, light);
|
UIRenderHelper.drawStretched(matrixStack, 2, 2, cardWidth - 4, cardHeader, zLevel,
|
||||||
|
supportsConditions ? light : medium);
|
||||||
|
|
||||||
AllGuiTextures.SCHEDULE_CARD_REMOVE.render(matrixStack, cardWidth - 14, 2);
|
AllGuiTextures.SCHEDULE_CARD_REMOVE.render(matrixStack, cardWidth - 14, 2);
|
||||||
AllGuiTextures.SCHEDULE_CARD_DUPLICATE.render(matrixStack, cardWidth - 14, cardHeight - 14);
|
AllGuiTextures.SCHEDULE_CARD_DUPLICATE.render(matrixStack, cardWidth - 14, cardHeight - 14);
|
||||||
|
@ -431,12 +443,15 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
|
|
||||||
UIRenderHelper.drawStretched(matrixStack, 8, 0, 3, cardHeight + 10, zLevel,
|
UIRenderHelper.drawStretched(matrixStack, 8, 0, 3, cardHeight + 10, zLevel,
|
||||||
AllGuiTextures.SCHEDULE_STRIP_LIGHT);
|
AllGuiTextures.SCHEDULE_STRIP_LIGHT);
|
||||||
AllGuiTextures.SCHEDULE_STRIP_TRAVEL.render(matrixStack, 4, 6);
|
(supportsConditions ? AllGuiTextures.SCHEDULE_STRIP_TRAVEL : AllGuiTextures.SCHEDULE_STRIP_ACTION)
|
||||||
AllGuiTextures.SCHEDULE_STRIP_WAIT.render(matrixStack, 4, 28);
|
.render(matrixStack, 4, 6);
|
||||||
|
|
||||||
Pair<ItemStack, Component> destination = entry.destination.getSummary();
|
if (supportsConditions)
|
||||||
|
AllGuiTextures.SCHEDULE_STRIP_WAIT.render(matrixStack, 4, 28);
|
||||||
|
|
||||||
|
Pair<ItemStack, Component> destination = entry.instruction.getSummary();
|
||||||
renderInput(matrixStack, destination, 26, 5, false, 100);
|
renderInput(matrixStack, destination, 26, 5, false, 100);
|
||||||
entry.destination.renderSpecialIcon(matrixStack, 30, 5);
|
entry.instruction.renderSpecialIcon(matrixStack, 30, 5);
|
||||||
|
|
||||||
matrixStack.popPose();
|
matrixStack.popPose();
|
||||||
|
|
||||||
|
@ -518,7 +533,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
ItemStack stack = pair.getFirst();
|
ItemStack stack = pair.getFirst();
|
||||||
Component text = pair.getSecond();
|
Component text = pair.getSecond();
|
||||||
boolean hasItem = !stack.isEmpty();
|
boolean hasItem = !stack.isEmpty();
|
||||||
int fieldSize = getFieldSize(minSize, pair);
|
int fieldSize = Math.min(getFieldSize(minSize, pair), 150);
|
||||||
matrixStack.pushPose();
|
matrixStack.pushPose();
|
||||||
|
|
||||||
AllGuiTextures left =
|
AllGuiTextures left =
|
||||||
|
@ -542,7 +557,8 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
}
|
}
|
||||||
|
|
||||||
if (text != null)
|
if (text != null)
|
||||||
font.drawShadow(matrixStack, text, hasItem ? 28 : 8, 4, 0xff_f2f2ee);
|
font.drawShadow(matrixStack, font.substrByWidth(text, 120)
|
||||||
|
.getString(), hasItem ? 28 : 8, 4, 0xff_f2f2ee);
|
||||||
|
|
||||||
matrixStack.popPose();
|
matrixStack.popPose();
|
||||||
return fieldSize;
|
return fieldSize;
|
||||||
|
@ -575,28 +591,26 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
int maxRows = 0;
|
int maxRows = 0;
|
||||||
for (List<ScheduleWaitCondition> list : entry.conditions)
|
for (List<ScheduleWaitCondition> list : entry.conditions)
|
||||||
maxRows = Math.max(maxRows, list.size());
|
maxRows = Math.max(maxRows, list.size());
|
||||||
int cardHeight = CARD_HEADER + 24 + maxRows * 18;
|
int cardHeight = CARD_HEADER + (entry.instruction.supportsConditions() ? 24 + maxRows * 18 : 4);
|
||||||
|
|
||||||
if (y >= cardHeight) {
|
if (y >= cardHeight + 5) {
|
||||||
y -= cardHeight + 10;
|
y -= cardHeight + 10;
|
||||||
if (y < 0)
|
if (y < 0)
|
||||||
return false;
|
return false;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int fieldSize = getFieldSize(100, entry.destination.getSummary());
|
int fieldSize = getFieldSize(100, entry.instruction.getSummary());
|
||||||
if (x > 25 && x <= 25 + fieldSize && y > 4 && y <= 20) {
|
if (x > 25 && x <= 25 + fieldSize && y > 4 && y <= 20) {
|
||||||
List<Component> components = new ArrayList<>();
|
List<Component> components = new ArrayList<>();
|
||||||
components.add(Lang.translate("schedule.destination_type")
|
components.addAll(entry.instruction.getTitleAs("instruction"));
|
||||||
.withStyle(ChatFormatting.GOLD));
|
|
||||||
components.addAll(entry.destination.getTitleAs("destination"));
|
|
||||||
components.add(empty);
|
components.add(empty);
|
||||||
components.add(clickToEdit);
|
components.add(clickToEdit);
|
||||||
renderTooltip(ms, components, Optional.empty(), mx, my);
|
renderTooltip(ms, components, Optional.empty(), mx, my);
|
||||||
if (click == 0)
|
if (click == 0)
|
||||||
startEditing(entry.destination, confirmed -> {
|
startEditing(entry.instruction, confirmed -> {
|
||||||
if (confirmed)
|
if (confirmed)
|
||||||
entry.destination = editingDestination;
|
entry.instruction = editingDestination;
|
||||||
}, false);
|
}, false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -746,7 +760,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
|
|
||||||
renderTooltip(ms, ImmutableList.of(Lang.translate("gui.schedule.add_entry")), Optional.empty(), mx, my);
|
renderTooltip(ms, ImmutableList.of(Lang.translate("gui.schedule.add_entry")), Optional.empty(), mx, my);
|
||||||
if (click == 0)
|
if (click == 0)
|
||||||
startEditing(new FilteredDestination(), confirmed -> {
|
startEditing(new DestinationInstruction(), confirmed -> {
|
||||||
if (!confirmed)
|
if (!confirmed)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -754,7 +768,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
ScheduledDelay delay = new ScheduledDelay();
|
ScheduledDelay delay = new ScheduledDelay();
|
||||||
ArrayList<ScheduleWaitCondition> initialConditions = new ArrayList<>();
|
ArrayList<ScheduleWaitCondition> initialConditions = new ArrayList<>();
|
||||||
initialConditions.add(delay);
|
initialConditions.add(delay);
|
||||||
entry.destination = editingDestination;
|
entry.instruction = editingDestination;
|
||||||
delay.value = 5;
|
delay.value = 5;
|
||||||
delay.timeUnit = TimeUnit.SECONDS;
|
delay.timeUnit = TimeUnit.SECONDS;
|
||||||
entry.conditions.add(initialConditions);
|
entry.conditions.add(initialConditions);
|
||||||
|
@ -935,7 +949,7 @@ public class ScheduleScreen extends AbstractSimiContainerScreen<ScheduleContaine
|
||||||
AllGuiTextures.PLAYER_INVENTORY.render(pPoseStack, leftPos + 38, topPos + 122);
|
AllGuiTextures.PLAYER_INVENTORY.render(pPoseStack, leftPos + 38, topPos + 122);
|
||||||
font.draw(pPoseStack, playerInventoryTitle, leftPos + 46, topPos + 128, 0x505050);
|
font.draw(pPoseStack, playerInventoryTitle, leftPos + 46, topPos + 128, 0x505050);
|
||||||
|
|
||||||
formattedcharsequence = editingCondition == null ? Lang.translate("schedule.destination.editor")
|
formattedcharsequence = editingCondition == null ? Lang.translate("schedule.instruction.editor")
|
||||||
.getVisualOrderText()
|
.getVisualOrderText()
|
||||||
: Lang.translate("schedule.condition.editor")
|
: Lang.translate("schedule.condition.editor")
|
||||||
.getVisualOrderText();
|
.getVisualOrderText();
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
package com.simibubi.create.content.logistics.trains.management.schedule.destination;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.simibubi.create.Create;
|
||||||
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
import com.simibubi.create.foundation.utility.Pair;
|
||||||
|
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.network.chat.TextComponent;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
|
|
||||||
|
public class ChangeTitleInstruction extends ScheduleInstructionWithEditBox {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Pair<ItemStack, Component> getSummary() {
|
||||||
|
return Pair.of(icon(), new TextComponent(getLabelText()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getId() {
|
||||||
|
return Create.asResource("rename");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getSecondLineIcon() {
|
||||||
|
return icon();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsConditions() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getScheduleTitle() {
|
||||||
|
return getLabelText();
|
||||||
|
}
|
||||||
|
|
||||||
|
private ItemStack icon() {
|
||||||
|
return new ItemStack(Items.NAME_TAG);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Component> getSecondLineTooltip() {
|
||||||
|
return ImmutableList.of(Lang.translate("schedule.instruction.name_edit_box"),
|
||||||
|
Lang.translate("schedule.instruction.name_edit_box_1")
|
||||||
|
.withStyle(ChatFormatting.GRAY),
|
||||||
|
Lang.translate("schedule.instruction.name_edit_box_2")
|
||||||
|
.withStyle(ChatFormatting.DARK_GRAY));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
package com.simibubi.create.content.logistics.trains.management.schedule.destination;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.simibubi.create.AllBlocks;
|
||||||
|
import com.simibubi.create.Create;
|
||||||
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
import com.simibubi.create.foundation.utility.Pair;
|
||||||
|
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
|
import net.minecraft.client.gui.components.EditBox;
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.network.chat.TextComponent;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
|
public class DestinationInstruction extends ScheduleInstructionWithEditBox {
|
||||||
|
|
||||||
|
public boolean isWaypoint;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Pair<ItemStack, Component> getSummary() {
|
||||||
|
return Pair.of(AllBlocks.TRACK_STATION.asStack(), new TextComponent(getLabelText()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean supportsConditions() {
|
||||||
|
return !isWaypoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void write(CompoundTag tag) {
|
||||||
|
tag.putBoolean("Waypoint", isWaypoint);
|
||||||
|
super.write(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void read(CompoundTag tag) {
|
||||||
|
isWaypoint = tag.getBoolean("Waypoint");
|
||||||
|
super.read(tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getId() {
|
||||||
|
return Create.asResource("destination");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getSecondLineIcon() {
|
||||||
|
return AllBlocks.TRACK_STATION.asStack();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFilter() {
|
||||||
|
return getLabelText();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Component> getSecondLineTooltip() {
|
||||||
|
return ImmutableList.of(Lang.translate("schedule.instruction.filter_edit_box"),
|
||||||
|
Lang.translate("schedule.instruction.filter_edit_box_1")
|
||||||
|
.withStyle(ChatFormatting.GRAY),
|
||||||
|
Lang.translate("schedule.instruction.filter_edit_box_2")
|
||||||
|
.withStyle(ChatFormatting.DARK_GRAY),
|
||||||
|
Lang.translate("schedule.instruction.filter_edit_box_3")
|
||||||
|
.withStyle(ChatFormatting.DARK_GRAY));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
protected void modifyEditBox(EditBox box) {
|
||||||
|
box.setFilter(s -> StringUtils.countMatches(s, '*') <= 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,89 +0,0 @@
|
||||||
package com.simibubi.create.content.logistics.trains.management.schedule.destination;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.function.BiConsumer;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
|
||||||
import com.simibubi.create.AllBlocks;
|
|
||||||
import com.simibubi.create.Create;
|
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.IScheduleInput;
|
|
||||||
import com.simibubi.create.content.logistics.trains.management.schedule.ScheduleScreen;
|
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
|
||||||
import com.simibubi.create.foundation.utility.Pair;
|
|
||||||
|
|
||||||
import net.minecraft.ChatFormatting;
|
|
||||||
import net.minecraft.client.gui.components.EditBox;
|
|
||||||
import net.minecraft.client.gui.components.events.GuiEventListener;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.network.chat.TextComponent;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
||||||
|
|
||||||
public class FilteredDestination extends ScheduleDestination {
|
|
||||||
public String nameFilter = "";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Pair<ItemStack, Component> getSummary() {
|
|
||||||
return Pair.of(AllBlocks.TRACK_STATION.asStack(), new TextComponent(nameFilter));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void read(CompoundTag tag) {
|
|
||||||
nameFilter = tag.getString("Filter");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void write(CompoundTag tag) {
|
|
||||||
tag.putString("Filter", nameFilter);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourceLocation getId() {
|
|
||||||
return Create.asResource("filtered");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack getSecondLineIcon() {
|
|
||||||
return AllBlocks.TRACK_STATION.asStack();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Component> getTitleAs(String type) {
|
|
||||||
return ImmutableList.of(Lang.translate("schedule.destination.filtered_matching",
|
|
||||||
new TextComponent(nameFilter).withStyle(ChatFormatting.YELLOW)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<Component> getSecondLineTooltip() {
|
|
||||||
return ImmutableList.of(Lang.translate("schedule.destination.filter"),
|
|
||||||
Lang.translate("schedule.destination.filter_2")
|
|
||||||
.withStyle(ChatFormatting.GRAY),
|
|
||||||
Lang.translate("schedule.destination.filter_3")
|
|
||||||
.withStyle(ChatFormatting.DARK_GRAY),
|
|
||||||
Lang.translate("schedule.destination.filter_4")
|
|
||||||
.withStyle(ChatFormatting.DARK_GRAY));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
|
||||||
public void createWidgets(ScheduleScreen screen,
|
|
||||||
List<Pair<GuiEventListener, BiConsumer<IScheduleInput, GuiEventListener>>> editorSubWidgets,
|
|
||||||
List<Integer> dividers, int x, int y) {
|
|
||||||
super.createWidgets(screen, editorSubWidgets, dividers, x, y);
|
|
||||||
EditBox editBox = new EditBox(screen.getFont(), x + 84, y + 52, 112, 10, new TextComponent(nameFilter));
|
|
||||||
editBox.setBordered(false);
|
|
||||||
editBox.setTextColor(0xFFFFFF);
|
|
||||||
editBox.setValue(nameFilter);
|
|
||||||
editBox.setFilter(s -> StringUtils.countMatches(s, '*') <= 3);
|
|
||||||
editBox.changeFocus(false);
|
|
||||||
editBox.mouseClicked(0, 0, 0);
|
|
||||||
editorSubWidgets
|
|
||||||
.add(Pair.of(editBox, (dest, box) -> ((FilteredDestination) dest).nameFilter = ((EditBox) box).getValue()));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package com.simibubi.create.content.logistics.trains.management.schedule.destination;
|
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
|
||||||
import com.simibubi.create.Create;
|
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
|
||||||
import com.simibubi.create.foundation.utility.Pair;
|
|
||||||
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
|
||||||
|
|
||||||
public class NearestDestination extends ScheduleDestination {
|
|
||||||
@Override
|
|
||||||
public Pair<ItemStack, Component> getSummary() {
|
|
||||||
return Pair.of(AllBlocks.TRACK_STATION.asStack(), Lang.translate("schedule.destination.nearest"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void write(CompoundTag tag) {}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void read(CompoundTag tag) {}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourceLocation getId() {
|
|
||||||
return Create.asResource("nearest");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
package com.simibubi.create.content.logistics.trains.management.schedule.destination;
|
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
|
||||||
import com.simibubi.create.Create;
|
|
||||||
import com.simibubi.create.foundation.utility.Pair;
|
|
||||||
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.network.chat.Component;
|
|
||||||
import net.minecraft.network.chat.TextComponent;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
|
||||||
|
|
||||||
public class RedstoneDestination extends ScheduleDestination {
|
|
||||||
@Override
|
|
||||||
public Pair<ItemStack, Component> getSummary() {
|
|
||||||
return Pair.of(AllBlocks.TRACK_STATION.asStack(), new TextComponent("Redstone Pulse"));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void write(CompoundTag tag) {}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void read(CompoundTag tag) {}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourceLocation getId() {
|
|
||||||
return Create.asResource("redstone");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -10,11 +10,13 @@ import com.simibubi.create.foundation.utility.Pair;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
||||||
public abstract class ScheduleDestination implements IScheduleInput {
|
public abstract class ScheduleInstruction implements IScheduleInput {
|
||||||
|
|
||||||
protected abstract void write(CompoundTag tag);
|
protected abstract void write(CompoundTag tag);
|
||||||
|
|
||||||
protected abstract void read(CompoundTag tag);
|
protected abstract void read(CompoundTag tag);
|
||||||
|
|
||||||
|
public abstract boolean supportsConditions();
|
||||||
|
|
||||||
public final CompoundTag write() {
|
public final CompoundTag write() {
|
||||||
CompoundTag tag = new CompoundTag();
|
CompoundTag tag = new CompoundTag();
|
||||||
|
@ -23,20 +25,20 @@ public abstract class ScheduleDestination implements IScheduleInput {
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ScheduleDestination fromTag(CompoundTag tag) {
|
public static ScheduleInstruction fromTag(CompoundTag tag) {
|
||||||
ResourceLocation location = new ResourceLocation(tag.getString("Id"));
|
ResourceLocation location = new ResourceLocation(tag.getString("Id"));
|
||||||
Supplier<? extends ScheduleDestination> supplier = null;
|
Supplier<? extends ScheduleInstruction> supplier = null;
|
||||||
for (Pair<ResourceLocation, Supplier<? extends ScheduleDestination>> pair : Schedule.DESTINATION_TYPES)
|
for (Pair<ResourceLocation, Supplier<? extends ScheduleInstruction>> pair : Schedule.INSTRUCTION_TYPES)
|
||||||
if (pair.getFirst()
|
if (pair.getFirst()
|
||||||
.equals(location))
|
.equals(location))
|
||||||
supplier = pair.getSecond();
|
supplier = pair.getSecond();
|
||||||
|
|
||||||
if (supplier == null) {
|
if (supplier == null) {
|
||||||
Create.LOGGER.warn("Could not parse schedule destination type: " + location);
|
Create.LOGGER.warn("Could not parse schedule instruction type: " + location);
|
||||||
return null;
|
return new DestinationInstruction();
|
||||||
}
|
}
|
||||||
|
|
||||||
ScheduleDestination scheduleDestination = supplier.get();
|
ScheduleInstruction scheduleDestination = supplier.get();
|
||||||
scheduleDestination.read(tag);
|
scheduleDestination.read(tag);
|
||||||
return scheduleDestination;
|
return scheduleDestination;
|
||||||
}
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
package com.simibubi.create.content.logistics.trains.management.schedule.destination;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.BiConsumer;
|
||||||
|
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.simibubi.create.content.logistics.trains.management.schedule.IScheduleInput;
|
||||||
|
import com.simibubi.create.content.logistics.trains.management.schedule.ScheduleScreen;
|
||||||
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
import com.simibubi.create.foundation.utility.Pair;
|
||||||
|
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
|
import net.minecraft.client.gui.components.EditBox;
|
||||||
|
import net.minecraft.client.gui.components.events.GuiEventListener;
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.network.chat.TextComponent;
|
||||||
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
|
public abstract class ScheduleInstructionWithEditBox extends ScheduleInstruction {
|
||||||
|
|
||||||
|
private String labelText = "";
|
||||||
|
|
||||||
|
protected String getLabelText() {
|
||||||
|
return labelText;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void setLabelText(String labelText) {
|
||||||
|
this.labelText = labelText;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void read(CompoundTag tag) {
|
||||||
|
labelText = tag.getString("Text");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void write(CompoundTag tag) {
|
||||||
|
tag.putString("Text", labelText);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Component> getTitleAs(String type) {
|
||||||
|
return ImmutableList.of(Lang.translate("schedule." + type + "." + getId().getPath() + ".summary")
|
||||||
|
.withStyle(ChatFormatting.GOLD), Lang.translate("generic.in_quotes", new TextComponent(getLabelText())));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
public void createWidgets(ScheduleScreen screen,
|
||||||
|
List<Pair<GuiEventListener, BiConsumer<IScheduleInput, GuiEventListener>>> editorSubWidgets,
|
||||||
|
List<Integer> dividers, int x, int y) {
|
||||||
|
super.createWidgets(screen, editorSubWidgets, dividers, x, y);
|
||||||
|
|
||||||
|
EditBox editBox = new EditBox(screen.getFont(), x + 84, y + 52, 112, 10, new TextComponent(labelText));
|
||||||
|
editBox.setBordered(false);
|
||||||
|
editBox.setTextColor(0xFFFFFF);
|
||||||
|
editBox.setValue(labelText);
|
||||||
|
editBox.changeFocus(false);
|
||||||
|
editBox.mouseClicked(0, 0, 0);
|
||||||
|
editorSubWidgets.add(Pair.of(editBox,
|
||||||
|
(dest, box) -> ((ScheduleInstructionWithEditBox) dest).labelText = ((EditBox) box).getValue()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
protected void modifyEditBox(EditBox box) {}
|
||||||
|
|
||||||
|
}
|
|
@ -112,7 +112,7 @@ public class DumpRailwaysCommand {
|
||||||
.replaceAll("_", " ")),
|
.replaceAll("_", " ")),
|
||||||
runtime.paused ? darkBlue : blue);
|
runtime.paused ? darkBlue : blue);
|
||||||
if (!runtime.paused && runtime.state != State.POST_TRANSIT) {
|
if (!runtime.paused && runtime.state != State.POST_TRANSIT) {
|
||||||
for (Component component : runtime.getSchedule().entries.get(runtime.currentEntry).destination
|
for (Component component : runtime.getSchedule().entries.get(runtime.currentEntry).instruction
|
||||||
.getTitleAs("destination")) {
|
.getTitleAs("destination")) {
|
||||||
chat.accept(" - " + component.getString(), blue);
|
chat.accept(" - " + component.getString(), blue);
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,6 +110,7 @@ public enum AllGuiTextures implements ScreenElement {
|
||||||
SCHEDULE_STRIP_TRAVEL("schedule", 12, 239, 11, 16),
|
SCHEDULE_STRIP_TRAVEL("schedule", 12, 239, 11, 16),
|
||||||
SCHEDULE_STRIP_DOTTED("schedule", 23, 239, 11, 16),
|
SCHEDULE_STRIP_DOTTED("schedule", 23, 239, 11, 16),
|
||||||
SCHEDULE_STRIP_END("schedule", 34, 239, 11, 16),
|
SCHEDULE_STRIP_END("schedule", 34, 239, 11, 16),
|
||||||
|
SCHEDULE_STRIP_ACTION("schedule", 209, 239, 11, 16),
|
||||||
SCHEDULE_EDITOR("schedule_2", 256, 89),
|
SCHEDULE_EDITOR("schedule_2", 256, 89),
|
||||||
SCHEDULE_EDITOR_INACTIVE_SLOT("schedule_2", 0, 91, 18, 18),
|
SCHEDULE_EDITOR_INACTIVE_SLOT("schedule_2", 0, 91, 18, 18),
|
||||||
SCHEDULE_EDITOR_SECOND_LINE("schedule_2", 20, 91, 124, 18),
|
SCHEDULE_EDITOR_SECOND_LINE("schedule_2", 20, 91, 124, 18),
|
||||||
|
|
|
@ -94,6 +94,7 @@
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.clockwise": "Clockwise",
|
"create.generic.clockwise": "Clockwise",
|
||||||
"create.generic.counter_clockwise": "Counter-Clockwise",
|
"create.generic.counter_clockwise": "Counter-Clockwise",
|
||||||
|
"create.generic.in_quotes": "\"%1$s\"",
|
||||||
|
|
||||||
"create.action.scroll": "Scroll",
|
"create.action.scroll": "Scroll",
|
||||||
"create.action.confirm": "Confirm",
|
"create.action.confirm": "Confirm",
|
||||||
|
@ -557,25 +558,31 @@
|
||||||
"create.gui.schedule.lmb_edit": "Left-Click to Edit",
|
"create.gui.schedule.lmb_edit": "Left-Click to Edit",
|
||||||
"create.gui.schedule.rmb_remove": "Right-Click to Remove",
|
"create.gui.schedule.rmb_remove": "Right-Click to Remove",
|
||||||
"create.gui.schedule.duplicate": "Duplicate",
|
"create.gui.schedule.duplicate": "Duplicate",
|
||||||
"create.gui.schedule.remove_entry": "Remove Stop",
|
"create.gui.schedule.remove_entry": "Remove Action",
|
||||||
"create.gui.schedule.add_entry": "Add Stop",
|
"create.gui.schedule.add_entry": "Add Action",
|
||||||
"create.gui.schedule.move_up": "Move up",
|
"create.gui.schedule.move_up": "Move up",
|
||||||
"create.gui.schedule.move_down": "Move down",
|
"create.gui.schedule.move_down": "Move down",
|
||||||
"create.gui.schedule.add_condition": "Add Condition",
|
"create.gui.schedule.add_condition": "Add Condition",
|
||||||
"create.gui.schedule.alternative_condition": "Alternative Condition",
|
"create.gui.schedule.alternative_condition": "Alternative Condition",
|
||||||
|
|
||||||
"create.schedule.destination_type": "Next Stop:",
|
"create.schedule.instruction_type": "Next Action:",
|
||||||
"create.schedule.destination.editor": "Destination Editor",
|
"create.schedule.instruction.editor": "Instruction Editor",
|
||||||
"create.schedule.destination.filtered": "Specific Station",
|
|
||||||
"create.schedule.destination.filtered_matching": "Station: %1$s",
|
"create.schedule.instruction.destination": "Travel to Station",
|
||||||
"create.schedule.destination.filter": "Station Name",
|
"create.schedule.instruction.destination.summary": "Next Stop:",
|
||||||
"create.schedule.destination.filter_2": "Use * as a text wildcard",
|
"create.schedule.instruction.filter_edit_box": "Station Name",
|
||||||
"create.schedule.destination.filter_3": "Example: 'My Station, Platform *'",
|
"create.schedule.instruction.filter_edit_box_1": "Use * as a text wildcard",
|
||||||
"create.schedule.destination.filter_4": "Train picks nearest unoccupied match",
|
"create.schedule.instruction.filter_edit_box_2": "Example: 'My Station, Platform *'",
|
||||||
"create.schedule.destination.nearest": "Nearest Station",
|
"create.schedule.instruction.filter_edit_box_3": "Train picks nearest unoccupied match",
|
||||||
"create.schedule.destination.redstone": "Station with Redstone Pulse",
|
"create.schedule.instruction.rename": "Update Schedule Title",
|
||||||
"create.schedule.condition_type": "Continue when:",
|
"create.schedule.instruction.rename.summary": "New Title:",
|
||||||
|
"create.schedule.instruction.name_edit_box": "Schedule Title",
|
||||||
|
"create.schedule.instruction.name_edit_box_1": "Affects text shown on displays",
|
||||||
|
"create.schedule.instruction.name_edit_box_2": "Defaults to next destination's name",
|
||||||
|
|
||||||
|
"create.schedule.condition_type": "Continue if/after:",
|
||||||
"create.schedule.condition.editor": "Condition Editor",
|
"create.schedule.condition.editor": "Condition Editor",
|
||||||
|
|
||||||
"create.schedule.condition.delay": "Scheduled Delay",
|
"create.schedule.condition.delay": "Scheduled Delay",
|
||||||
"create.schedule.condition.delay_short": "Wait: %1$s",
|
"create.schedule.condition.delay_short": "Wait: %1$s",
|
||||||
"create.schedule.condition.idle": "Cargo Inactivity",
|
"create.schedule.condition.idle": "Cargo Inactivity",
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.3 KiB |
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue