mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-26 11:54:39 +01:00
Approachable
- Station approach/arrival prompt is now more visible
This commit is contained in:
parent
513e7906cc
commit
141a4069dd
36 changed files with 232 additions and 149 deletions
|
@ -554,22 +554,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
|
||||||
50f7862ded2d9a955c259a12685906a9ec9ad97a assets/create/lang/en_ud.json
|
50f7862ded2d9a955c259a12685906a9ec9ad97a assets/create/lang/en_ud.json
|
||||||
e0e9ceb9e8fed94c6cd3d3c1066dbf3ca0853e88 assets/create/lang/en_us.json
|
a768ce262b1d113b915306b93805121e6d6f3934 assets/create/lang/en_us.json
|
||||||
84bbc4114d730451c9e675409074dba365e607c6 assets/create/lang/unfinished/de_de.json
|
c2f79787186fc4ac21c5b357c642e1ab04443411 assets/create/lang/unfinished/de_de.json
|
||||||
448116a990ffa8d3c592d119ea86bd9877a0026d assets/create/lang/unfinished/es_cl.json
|
abdf065efd476eea939956f2b7d59d9b10df1280 assets/create/lang/unfinished/es_cl.json
|
||||||
2b9281ea5066d5c4450cbbbe63dfca8b1f4d46ba assets/create/lang/unfinished/es_es.json
|
1971ba8276f31d0e8af81089a15888038197e858 assets/create/lang/unfinished/es_es.json
|
||||||
7eba8e0309dfa9ced561cb850e353386b47cd67b assets/create/lang/unfinished/fr_fr.json
|
ea67e13386220b980c0a0245410c2e3d2c845d35 assets/create/lang/unfinished/fr_fr.json
|
||||||
621e146bcfb9df8b85f1fa75d696f3a0aedcc5dc assets/create/lang/unfinished/it_it.json
|
38c181d840e33f6a277876b6cf4db95a2ef15262 assets/create/lang/unfinished/it_it.json
|
||||||
ca96955d0c41de07ac957b0ab39797968138ca74 assets/create/lang/unfinished/ja_jp.json
|
7e54413e3920b0f4ffc2363d5c521735a177e295 assets/create/lang/unfinished/ja_jp.json
|
||||||
7b9fea6577fb5c0cd8f7a7c6d6f6c4f81a16ea26 assets/create/lang/unfinished/ko_kr.json
|
4d3696fa3de235b23d1b29a05a56c495ff11930c assets/create/lang/unfinished/ko_kr.json
|
||||||
e03cde766aca575ebd98dab10616d99df7a0b104 assets/create/lang/unfinished/nl_nl.json
|
7f0e6420fc7685523795aca3c87a12df7029e0cc assets/create/lang/unfinished/nl_nl.json
|
||||||
35c9b916519c89b65c7fb259ccd949d44bcd9f7f assets/create/lang/unfinished/pl_pl.json
|
fb286ebb45b6e191c9357085df2fb21061bed70b assets/create/lang/unfinished/pl_pl.json
|
||||||
6e5c551c7d195c5e3ad7238de6b8827cbbcabeaf assets/create/lang/unfinished/pt_br.json
|
269439ab8d7277eb445f76f52342a3b7b72f812c assets/create/lang/unfinished/pt_br.json
|
||||||
4c5f43461b221af80e4877619f3142feea125ec0 assets/create/lang/unfinished/pt_pt.json
|
6bddc9fc7ae5186747521496d21d0226cc23b01b assets/create/lang/unfinished/pt_pt.json
|
||||||
528524de3e35ea7b063d9acbacea9b608d7766ea assets/create/lang/unfinished/ro_ro.json
|
f7704e9e3200b614c60410feca6c83742d42177d assets/create/lang/unfinished/ro_ro.json
|
||||||
fe42e45c945dd298bf09b7e90de1075a52d6210f assets/create/lang/unfinished/ru_ru.json
|
c445375f72f9205d119741c4784e9383020bde10 assets/create/lang/unfinished/ru_ru.json
|
||||||
03a4cfd0612beebf3842607cba2d898844478699 assets/create/lang/unfinished/zh_cn.json
|
8986740c8eec44cfe805f7cb242232105369f8fa assets/create/lang/unfinished/zh_cn.json
|
||||||
ea95d915b70139d73dc413af69d502759e882672 assets/create/lang/unfinished/zh_tw.json
|
5c4f08c71c49ab13e9b17e2c1106e5a575448cfc 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
|
||||||
|
|
|
@ -1436,7 +1436,6 @@
|
||||||
"create.schedule.loop2": "when completed",
|
"create.schedule.loop2": "when completed",
|
||||||
"create.schedule.reset": "Reset Progress",
|
"create.schedule.reset": "Reset Progress",
|
||||||
"create.schedule.skip": "Skip current Stop",
|
"create.schedule.skip": "Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "Train is now following this Schedule",
|
"create.schedule.applied_to_train": "Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1507,6 +1506,8 @@
|
||||||
"create.train.relocate.valid": "Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "Cannot relocate Train to here",
|
"create.train.relocate.invalid": "Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "-> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "-> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 981",
|
"_": "Missing Localizations: 982",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 631",
|
"_": "Missing Localizations: 632",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 295",
|
"_": "Missing Localizations: 296",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1869",
|
"_": "Missing Localizations: 1870",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1558",
|
"_": "Missing Localizations: 1559",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 297",
|
"_": "Missing Localizations: 298",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 297",
|
"_": "Missing Localizations: 298",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 2221",
|
"_": "Missing Localizations: 2222",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 670",
|
"_": "Missing Localizations: 671",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1165",
|
"_": "Missing Localizations: 1166",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1843",
|
"_": "Missing Localizations: 1844",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 298",
|
"_": "Missing Localizations: 299",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 675",
|
"_": "Missing Localizations: 676",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 295",
|
"_": "Missing Localizations: 296",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 689",
|
"_": "Missing Localizations: 690",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1437,7 +1437,6 @@
|
||||||
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
"create.schedule.loop2": "UNLOCALIZED: when completed",
|
||||||
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
|
||||||
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
"create.schedule.skip": "UNLOCALIZED: Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "UNLOCALIZED: Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
"create.schedule.applied_to_train": "UNLOCALIZED: Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "UNLOCALIZED: Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "UNLOCALIZED: Remove current Schedule with an Empty Hand",
|
||||||
|
@ -1508,6 +1507,8 @@
|
||||||
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "UNLOCALIZED: Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
"create.train.relocate.invalid": "UNLOCALIZED: Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "UNLOCALIZED: Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "UNLOCALIZED: Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "UNLOCALIZED: Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "UNLOCALIZED: Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",
|
||||||
|
|
|
@ -13,9 +13,11 @@ import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
|
||||||
import com.simibubi.create.foundation.utility.placement.PlacementHelpers;
|
import com.simibubi.create.foundation.utility.placement.PlacementHelpers;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.Font;
|
||||||
import net.minecraft.client.gui.GuiComponent;
|
import net.minecraft.client.gui.GuiComponent;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
|
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
|
||||||
|
@ -28,11 +30,25 @@ public class TrainHUD {
|
||||||
|
|
||||||
static LerpedFloat displayedSpeed = LerpedFloat.linear();
|
static LerpedFloat displayedSpeed = LerpedFloat.linear();
|
||||||
static LerpedFloat displayedThrottle = LerpedFloat.linear();
|
static LerpedFloat displayedThrottle = LerpedFloat.linear();
|
||||||
|
static LerpedFloat displayedPromptSize = LerpedFloat.linear();
|
||||||
|
|
||||||
static Double editedThrottle = null;
|
static Double editedThrottle = null;
|
||||||
static int hudPacketCooldown = 5;
|
static int hudPacketCooldown = 5;
|
||||||
|
|
||||||
|
public static Component currentPrompt;
|
||||||
|
public static boolean currentPromptShadow;
|
||||||
|
public static int promptKeepAlive = 0;
|
||||||
|
|
||||||
public static void tick() {
|
public static void tick() {
|
||||||
|
if (promptKeepAlive > 0)
|
||||||
|
promptKeepAlive--;
|
||||||
|
else
|
||||||
|
currentPrompt = null;
|
||||||
|
|
||||||
|
displayedPromptSize.chase(currentPrompt != null ? Minecraft.getInstance().font.width(currentPrompt) + 17 : 0,
|
||||||
|
.5f, Chaser.EXP);
|
||||||
|
displayedPromptSize.tickChaser();
|
||||||
|
|
||||||
Carriage carriage = getCarriage();
|
Carriage carriage = getCarriage();
|
||||||
if (carriage == null)
|
if (carriage == null)
|
||||||
return;
|
return;
|
||||||
|
@ -41,6 +57,7 @@ public class TrainHUD {
|
||||||
double value =
|
double value =
|
||||||
Math.abs(train.speed) / (train.maxSpeed() * AllConfigs.SERVER.trains.manualTrainSpeedModifier.getF());
|
Math.abs(train.speed) / (train.maxSpeed() * AllConfigs.SERVER.trains.manualTrainSpeedModifier.getF());
|
||||||
value = Mth.clamp(value + 0.05f, 0, 1);
|
value = Mth.clamp(value + 0.05f, 0, 1);
|
||||||
|
|
||||||
displayedSpeed.chase((int) (value * 18) / 18f, .5f, Chaser.EXP);
|
displayedSpeed.chase((int) (value * 18) / 18f, .5f, Chaser.EXP);
|
||||||
displayedSpeed.tickChaser();
|
displayedSpeed.tickChaser();
|
||||||
displayedThrottle.chase(editedThrottle != null ? editedThrottle : train.throttle, .75f, Chaser.EXP);
|
displayedThrottle.chase(editedThrottle != null ? editedThrottle : train.throttle, .75f, Chaser.EXP);
|
||||||
|
@ -96,6 +113,31 @@ public class TrainHUD {
|
||||||
GuiComponent.blit(poseStack, 0, 0, 0, AllGuiTextures.TRAIN_HUD_SPEED.startX,
|
GuiComponent.blit(poseStack, 0, 0, 0, AllGuiTextures.TRAIN_HUD_SPEED.startX,
|
||||||
AllGuiTextures.TRAIN_HUD_SPEED.startY, w, h, 256, 256);
|
AllGuiTextures.TRAIN_HUD_SPEED.startY, w, h, 256, 256);
|
||||||
|
|
||||||
|
int promptSize = (int) displayedPromptSize.getValue(partialTicks);
|
||||||
|
if (promptSize > 1) {
|
||||||
|
|
||||||
|
poseStack.pushPose();
|
||||||
|
poseStack.translate(promptSize / -2f + 91, -27, 100);
|
||||||
|
|
||||||
|
AllGuiTextures.TRAIN_PROMPT_L.render(poseStack, -3, 0);
|
||||||
|
AllGuiTextures.TRAIN_PROMPT_R.render(poseStack, promptSize, 0);
|
||||||
|
GuiComponent.blit(poseStack, 0, 0, 0, AllGuiTextures.TRAIN_PROMPT.startX + (128 - promptSize / 2f),
|
||||||
|
AllGuiTextures.TRAIN_PROMPT.startY, promptSize, AllGuiTextures.TRAIN_PROMPT.height, 256, 256);
|
||||||
|
|
||||||
|
poseStack.popPose();
|
||||||
|
|
||||||
|
Font font = Minecraft.getInstance().font;
|
||||||
|
if (currentPrompt != null && font.width(currentPrompt) < promptSize - 10) {
|
||||||
|
poseStack.pushPose();
|
||||||
|
poseStack.translate(font.width(currentPrompt) / -2f + 82, -27, 100);
|
||||||
|
if (currentPromptShadow)
|
||||||
|
font.drawShadow(poseStack, currentPrompt, 9, 4, 0x544D45);
|
||||||
|
else
|
||||||
|
font.draw(poseStack, currentPrompt, 9, 4, 0x544D45);
|
||||||
|
poseStack.popPose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
AllGuiTextures.TRAIN_HUD_DIRECTION.render(poseStack, 77, -20);
|
AllGuiTextures.TRAIN_HUD_DIRECTION.render(poseStack, 77, -20);
|
||||||
|
|
||||||
w = (int) (AllGuiTextures.TRAIN_HUD_THROTTLE.width * (1 - displayedThrottle.getValue(partialTicks)));
|
w = (int) (AllGuiTextures.TRAIN_HUD_THROTTLE.width * (1 - displayedThrottle.getValue(partialTicks)));
|
||||||
|
|
|
@ -82,11 +82,6 @@ public class BlazeBurnerInteractionBehaviour extends MovingInteractionBehaviour
|
||||||
Schedule schedule = ScheduleItem.getSchedule(itemInHand);
|
Schedule schedule = ScheduleItem.getSchedule(itemInHand);
|
||||||
if (schedule == null)
|
if (schedule == null)
|
||||||
return false;
|
return false;
|
||||||
if (train.heldForAssembly) {
|
|
||||||
AllSoundEvents.DENY.playOnServer(player.level, player.blockPosition(), 1, 1);
|
|
||||||
player.displayClientMessage(Lang.translate("schedule.train_still_assembling"), true);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (schedule.entries.isEmpty()) {
|
if (schedule.entries.isEmpty()) {
|
||||||
AllSoundEvents.DENY.playOnServer(player.level, player.blockPosition(), 1, 1);
|
AllSoundEvents.DENY.playOnServer(player.level, player.blockPosition(), 1, 1);
|
||||||
|
|
|
@ -25,7 +25,7 @@ public class RailwaySavedData extends SavedData {
|
||||||
@Override
|
@Override
|
||||||
public CompoundTag save(CompoundTag nbt) {
|
public CompoundTag save(CompoundTag nbt) {
|
||||||
GlobalRailwayManager railways = Create.RAILWAYS;
|
GlobalRailwayManager railways = Create.RAILWAYS;
|
||||||
Create.LOGGER.info("Saving Railway Information...");
|
// Create.LOGGER.info("Saving Railway Information...");
|
||||||
DimensionPalette dimensions = new DimensionPalette();
|
DimensionPalette dimensions = new DimensionPalette();
|
||||||
nbt.put("RailGraphs", NBTHelper.writeCompoundList(railways.trackNetworks.values(), tg -> tg.write(dimensions)));
|
nbt.put("RailGraphs", NBTHelper.writeCompoundList(railways.trackNetworks.values(), tg -> tg.write(dimensions)));
|
||||||
nbt.put("SignalBlocks", NBTHelper.writeCompoundList(railways.signalEdgeGroups.values(), seg -> {
|
nbt.put("SignalBlocks", NBTHelper.writeCompoundList(railways.signalEdgeGroups.values(), seg -> {
|
||||||
|
@ -43,7 +43,7 @@ public class RailwaySavedData extends SavedData {
|
||||||
sd.trackNetworks = new HashMap<>();
|
sd.trackNetworks = new HashMap<>();
|
||||||
sd.signalEdgeGroups = new HashMap<>();
|
sd.signalEdgeGroups = new HashMap<>();
|
||||||
sd.trains = new HashMap<>();
|
sd.trains = new HashMap<>();
|
||||||
Create.LOGGER.info("Loading Railway Information...");
|
// Create.LOGGER.info("Loading Railway Information...");
|
||||||
|
|
||||||
DimensionPalette dimensions = DimensionPalette.read(nbt);
|
DimensionPalette dimensions = DimensionPalette.read(nbt);
|
||||||
NBTHelper.iterateCompoundList(nbt.getList("RailGraphs", Tag.TAG_COMPOUND), c -> {
|
NBTHelper.iterateCompoundList(nbt.getList("RailGraphs", Tag.TAG_COMPOUND), c -> {
|
||||||
|
|
|
@ -41,6 +41,7 @@ import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.KeybindComponent;
|
import net.minecraft.network.chat.KeybindComponent;
|
||||||
|
import net.minecraft.network.chat.MutableComponent;
|
||||||
import net.minecraft.network.chat.TextComponent;
|
import net.minecraft.network.chat.TextComponent;
|
||||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||||
|
@ -482,10 +483,6 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
|
||||||
return false;
|
return false;
|
||||||
if (carriage.train.derailed)
|
if (carriage.train.derailed)
|
||||||
return false;
|
return false;
|
||||||
if (carriage.train.heldForAssembly) {
|
|
||||||
player.displayClientMessage(Lang.translate("schedule.train_still_assembling"), true);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
Train train = carriage.train;
|
Train train = carriage.train;
|
||||||
if (train.runtime.getSchedule() != null && !train.runtime.paused)
|
if (train.runtime.getSchedule() != null && !train.runtime.paused)
|
||||||
|
@ -558,8 +555,8 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
|
||||||
boolean spaceDown = heldControls.contains(4);
|
boolean spaceDown = heldControls.contains(4);
|
||||||
GlobalStation currentStation = carriage.train.getCurrentStation();
|
GlobalStation currentStation = carriage.train.getCurrentStation();
|
||||||
if (currentStation != null && spaceDown) {
|
if (currentStation != null && spaceDown) {
|
||||||
player.displayClientMessage(new TextComponent("<i> Arrived at ").withStyle(ChatFormatting.GREEN)
|
sendPrompt(player, Lang.translate("train.arrived_at",
|
||||||
.append(new TextComponent(currentStation.name).withStyle(ChatFormatting.WHITE)), true);
|
new TextComponent(currentStation.name).withStyle(ChatFormatting.DARK_GREEN)), false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -570,11 +567,12 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
|
||||||
|
|
||||||
if (currentStation != null && targetSpeed != 0) {
|
if (currentStation != null && targetSpeed != 0) {
|
||||||
stationMessage = false;
|
stationMessage = false;
|
||||||
player.displayClientMessage(new TextComponent("<i> Departing from ").withStyle(ChatFormatting.YELLOW)
|
sendPrompt(player, Lang.translate("train.departing_from",
|
||||||
.append(new TextComponent(currentStation.name).withStyle(ChatFormatting.WHITE)), true);
|
new TextComponent(currentStation.name).withStyle(ChatFormatting.DARK_GREEN)), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentStation == null) {
|
if (currentStation == null) {
|
||||||
|
|
||||||
Navigation nav = carriage.train.navigation;
|
Navigation nav = carriage.train.navigation;
|
||||||
if (nav.destination != null) {
|
if (nav.destination != null) {
|
||||||
if (!spaceDown)
|
if (!spaceDown)
|
||||||
|
@ -583,14 +581,18 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
|
||||||
double f = (nav.distanceToDestination / navDistanceTotal);
|
double f = (nav.distanceToDestination / navDistanceTotal);
|
||||||
int progress = (int) (Mth.clamp(1 - ((1 - f) * (1 - f)), 0, 1) * 30);
|
int progress = (int) (Mth.clamp(1 - ((1 - f) * (1 - f)), 0, 1) * 30);
|
||||||
boolean arrived = progress == 0;
|
boolean arrived = progress == 0;
|
||||||
TextComponent whiteComponent =
|
TextComponent whiteComponent = new TextComponent(Strings.repeat("|", progress));
|
||||||
new TextComponent(Strings.repeat("|", progress) + (arrived ? " ->" : " <-"));
|
TextComponent greenComponent = new TextComponent(Strings.repeat("|", 30 - progress));
|
||||||
TextComponent greenComponent =
|
|
||||||
new TextComponent((arrived ? "<- " : "-> ") + Strings.repeat("|", 30 - progress));
|
int fromColor = 0x00_FFC244;
|
||||||
int mixedColor = Color.mixColors(0x00_91EA44, 0x00_FFC244, progress / 30f);
|
int toColor = 0x00_529915;
|
||||||
int targetColor = arrived ? 0x00_91EA44 : 0x00_ffffff;
|
|
||||||
player.displayClientMessage(greenComponent.withStyle(st -> st.withColor(mixedColor))
|
int mixedColor = Color.mixColors(toColor, fromColor, progress / 30f);
|
||||||
.append(whiteComponent.withStyle(st -> st.withColor(targetColor))), true);
|
int targetColor = arrived ? toColor : 0x00_544D45;
|
||||||
|
|
||||||
|
MutableComponent component = greenComponent.withStyle(st -> st.withColor(mixedColor))
|
||||||
|
.append(whiteComponent.withStyle(st -> st.withColor(targetColor)));
|
||||||
|
sendPrompt(player, component, true);
|
||||||
carriage.train.manualTick = true;
|
carriage.train.manualTick = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -633,12 +635,17 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendPrompt(Player player, MutableComponent component, boolean shadow) {
|
||||||
|
if (player instanceof ServerPlayer sp)
|
||||||
|
AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> sp), new TrainPromptPacket(component, shadow));
|
||||||
|
}
|
||||||
|
|
||||||
boolean stationMessage = false;
|
boolean stationMessage = false;
|
||||||
|
|
||||||
private void displayApproachStationMessage(Player player, GlobalStation station) {
|
private void displayApproachStationMessage(Player player, GlobalStation station) {
|
||||||
player.displayClientMessage(
|
sendPrompt(player,
|
||||||
Lang.translate("contraption.controls.approach_station", new KeybindComponent("key.jump"), station.name),
|
Lang.translate("contraption.controls.approach_station", new KeybindComponent("key.jump"), station.name),
|
||||||
true);
|
false);
|
||||||
stationMessage = true;
|
stationMessage = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,10 +98,6 @@ public class Train {
|
||||||
public UUID currentStation;
|
public UUID currentStation;
|
||||||
public boolean currentlyBackwards;
|
public boolean currentlyBackwards;
|
||||||
|
|
||||||
// considered for removal
|
|
||||||
@Deprecated
|
|
||||||
public boolean heldForAssembly;
|
|
||||||
|
|
||||||
public boolean doubleEnded;
|
public boolean doubleEnded;
|
||||||
public List<Carriage> carriages;
|
public List<Carriage> carriages;
|
||||||
public List<Integer> carriageSpacing;
|
public List<Integer> carriageSpacing;
|
||||||
|
@ -140,7 +136,6 @@ public class Train {
|
||||||
|
|
||||||
navigation = new Navigation(this);
|
navigation = new Navigation(this);
|
||||||
runtime = new ScheduleRuntime(this);
|
runtime = new ScheduleRuntime(this);
|
||||||
heldForAssembly = false;
|
|
||||||
migratingPoints = new ArrayList<>();
|
migratingPoints = new ArrayList<>();
|
||||||
currentStation = null;
|
currentStation = null;
|
||||||
manualSteer = SteerDirection.NONE;
|
manualSteer = SteerDirection.NONE;
|
||||||
|
@ -1074,7 +1069,6 @@ public class Train {
|
||||||
if (currentStation != null)
|
if (currentStation != null)
|
||||||
tag.putUUID("Station", currentStation);
|
tag.putUUID("Station", currentStation);
|
||||||
tag.putBoolean("Backwards", currentlyBackwards);
|
tag.putBoolean("Backwards", currentlyBackwards);
|
||||||
tag.putBoolean("StillAssembling", heldForAssembly);
|
|
||||||
tag.putBoolean("Derailed", derailed);
|
tag.putBoolean("Derailed", derailed);
|
||||||
tag.putBoolean("UpdateSignals", updateSignalBlocks);
|
tag.putBoolean("UpdateSignals", updateSignalBlocks);
|
||||||
tag.put("SignalBlocks", NBTHelper.writeCompoundList(occupiedSignalBlocks.entrySet(), e -> {
|
tag.put("SignalBlocks", NBTHelper.writeCompoundList(occupiedSignalBlocks.entrySet(), e -> {
|
||||||
|
@ -1126,7 +1120,6 @@ public class Train {
|
||||||
train.name = Component.Serializer.fromJson(tag.getString("Name"));
|
train.name = Component.Serializer.fromJson(tag.getString("Name"));
|
||||||
train.currentStation = tag.contains("Station") ? tag.getUUID("Station") : null;
|
train.currentStation = tag.contains("Station") ? tag.getUUID("Station") : null;
|
||||||
train.currentlyBackwards = tag.getBoolean("Backwards");
|
train.currentlyBackwards = tag.getBoolean("Backwards");
|
||||||
train.heldForAssembly = tag.getBoolean("StillAssembling");
|
|
||||||
train.derailed = tag.getBoolean("Derailed");
|
train.derailed = tag.getBoolean("Derailed");
|
||||||
train.updateSignalBlocks = tag.getBoolean("UpdateSignals");
|
train.updateSignalBlocks = tag.getBoolean("UpdateSignals");
|
||||||
train.fuelTicks = tag.getInt("Fuel");
|
train.fuelTicks = tag.getInt("Fuel");
|
||||||
|
|
|
@ -60,7 +60,6 @@ public class TrainPacket extends SimplePacketBase {
|
||||||
boolean doubleEnded = buffer.readBoolean();
|
boolean doubleEnded = buffer.readBoolean();
|
||||||
train = new Train(trainId, owner, null, carriages, carriageSpacing, doubleEnded);
|
train = new Train(trainId, owner, null, carriages, carriageSpacing, doubleEnded);
|
||||||
|
|
||||||
train.heldForAssembly = buffer.readBoolean();
|
|
||||||
train.name = Component.Serializer.fromJson(buffer.readUtf());
|
train.name = Component.Serializer.fromJson(buffer.readUtf());
|
||||||
train.icon = TrainIconType.byId(buffer.readResourceLocation());
|
train.icon = TrainIconType.byId(buffer.readResourceLocation());
|
||||||
}
|
}
|
||||||
|
@ -94,7 +93,6 @@ public class TrainPacket extends SimplePacketBase {
|
||||||
train.carriageSpacing.forEach(buffer::writeVarInt);
|
train.carriageSpacing.forEach(buffer::writeVarInt);
|
||||||
|
|
||||||
buffer.writeBoolean(train.doubleEnded);
|
buffer.writeBoolean(train.doubleEnded);
|
||||||
buffer.writeBoolean(train.heldForAssembly);
|
|
||||||
buffer.writeUtf(Component.Serializer.toJson(train.name));
|
buffer.writeUtf(Component.Serializer.toJson(train.name));
|
||||||
buffer.writeResourceLocation(train.icon.id);
|
buffer.writeResourceLocation(train.icon.id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
package com.simibubi.create.content.logistics.trains.entity;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls.TrainHUD;
|
||||||
|
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||||
|
|
||||||
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
import net.minecraftforge.fml.DistExecutor;
|
||||||
|
import net.minecraftforge.network.NetworkEvent.Context;
|
||||||
|
|
||||||
|
public class TrainPromptPacket extends SimplePacketBase {
|
||||||
|
|
||||||
|
private Component text;
|
||||||
|
private boolean shadow;
|
||||||
|
|
||||||
|
public TrainPromptPacket(Component text, boolean shadow) {
|
||||||
|
this.text = text;
|
||||||
|
this.shadow = shadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TrainPromptPacket(FriendlyByteBuf buffer) {
|
||||||
|
text = buffer.readComponent();
|
||||||
|
shadow = buffer.readBoolean();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(FriendlyByteBuf buffer) {
|
||||||
|
buffer.writeComponent(text);
|
||||||
|
buffer.writeBoolean(shadow);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(Supplier<Context> context) {
|
||||||
|
context.get()
|
||||||
|
.enqueueWork(() -> DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> this::apply));
|
||||||
|
context.get()
|
||||||
|
.setPacketHandled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@OnlyIn(Dist.CLIENT)
|
||||||
|
public void apply() {
|
||||||
|
TrainHUD.currentPrompt = text;
|
||||||
|
TrainHUD.currentPromptShadow = shadow;
|
||||||
|
TrainHUD.promptKeepAlive = 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -234,7 +234,6 @@ public class TrainRelocator {
|
||||||
|
|
||||||
train.leaveStation();
|
train.leaveStation();
|
||||||
train.derailed = false;
|
train.derailed = false;
|
||||||
train.heldForAssembly = false;
|
|
||||||
train.navigation.waitingForSignal = null;
|
train.navigation.waitingForSignal = null;
|
||||||
train.occupiedSignalBlocks.clear();
|
train.occupiedSignalBlocks.clear();
|
||||||
train.graph = graph;
|
train.graph = graph;
|
||||||
|
|
|
@ -29,12 +29,10 @@ public class AssemblyScreen extends AbstractStationScreen {
|
||||||
|
|
||||||
private List<ResourceLocation> iconTypes;
|
private List<ResourceLocation> iconTypes;
|
||||||
private ScrollInput iconTypeScroll;
|
private ScrollInput iconTypeScroll;
|
||||||
private boolean assemblyCompleted;
|
|
||||||
|
|
||||||
public AssemblyScreen(StationTileEntity te, GlobalStation station) {
|
public AssemblyScreen(StationTileEntity te, GlobalStation station) {
|
||||||
super(te, station);
|
super(te, station);
|
||||||
background = AllGuiTextures.STATION_ASSEMBLING;
|
background = AllGuiTextures.STATION_ASSEMBLING;
|
||||||
assemblyCompleted = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -84,7 +82,6 @@ public class AssemblyScreen extends AbstractStationScreen {
|
||||||
completeAssembly.active = false;
|
completeAssembly.active = false;
|
||||||
completeAssembly.setToolTip(new TextComponent("Complete Assembly"));
|
completeAssembly.setToolTip(new TextComponent("Complete Assembly"));
|
||||||
completeAssembly.withCallback(() -> {
|
completeAssembly.withCallback(() -> {
|
||||||
assemblyCompleted = true;
|
|
||||||
AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name));
|
AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name));
|
||||||
minecraft.setScreen(new StationScreen(te, station));
|
minecraft.setScreen(new StationScreen(te, station));
|
||||||
});
|
});
|
||||||
|
@ -106,7 +103,6 @@ public class AssemblyScreen extends AbstractStationScreen {
|
||||||
toggleAssemblyButton.active = te.bogeyCount > 0 || train != null;
|
toggleAssemblyButton.active = te.bogeyCount > 0 || train != null;
|
||||||
|
|
||||||
if (train != null) {
|
if (train != null) {
|
||||||
assemblyCompleted = true;
|
|
||||||
AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name));
|
AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name));
|
||||||
minecraft.setScreen(new StationScreen(te, station));
|
minecraft.setScreen(new StationScreen(te, station));
|
||||||
for (Carriage carriage : train.carriages)
|
for (Carriage carriage : train.carriages)
|
||||||
|
@ -115,33 +111,19 @@ public class AssemblyScreen extends AbstractStationScreen {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tickTrainDisplay() {
|
private void tickTrainDisplay() {
|
||||||
Train train = displayedTrain.get();
|
if (getImminent() == null) {
|
||||||
Train imminentTrain = getImminent();
|
displayedTrain = new WeakReference<>(null);
|
||||||
|
completeAssembly.active = false;
|
||||||
if (train == null) {
|
quitAssembly.active = true;
|
||||||
if (imminentTrain != null && !imminentTrain.heldForAssembly) {
|
iconTypeScroll.active = iconTypeScroll.visible = false;
|
||||||
displayedTrain = new WeakReference<>(imminentTrain);
|
toggleAssemblyButton.setToolTip(new TextComponent("Assemble Train"));
|
||||||
completeAssembly.active = true;
|
toggleAssemblyButton.setIcon(AllGuiTextures.I_ASSEMBLE_TRAIN);
|
||||||
quitAssembly.active = false;
|
toggleAssemblyButton.withCallback(() -> {
|
||||||
iconTypeScroll.active = iconTypeScroll.visible = true;
|
AllPackets.channel.sendToServer(StationEditPacket.tryAssemble(te.getBlockPos()));
|
||||||
toggleAssemblyButton.setToolTip(new TextComponent("Disassemble Train"));
|
});
|
||||||
toggleAssemblyButton.setIcon(AllGuiTextures.I_DISASSEMBLE_TRAIN);
|
|
||||||
toggleAssemblyButton.withCallback(() -> {
|
|
||||||
AllPackets.channel.sendToServer(StationEditPacket.tryDisassemble(te.getBlockPos()));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (imminentTrain == null) {
|
AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name));
|
||||||
displayedTrain = new WeakReference<>(null);
|
minecraft.setScreen(new StationScreen(te, station));
|
||||||
completeAssembly.active = false;
|
|
||||||
quitAssembly.active = true;
|
|
||||||
iconTypeScroll.active = iconTypeScroll.visible = false;
|
|
||||||
toggleAssemblyButton.setToolTip(new TextComponent("Assemble Train"));
|
|
||||||
toggleAssemblyButton.setIcon(AllGuiTextures.I_ASSEMBLE_TRAIN);
|
|
||||||
toggleAssemblyButton.withCallback(() -> {
|
|
||||||
AllPackets.channel.sendToServer(StationEditPacket.tryAssemble(te.getBlockPos()));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,7 +224,7 @@ public class AssemblyScreen extends AbstractStationScreen {
|
||||||
if (train != null) {
|
if (train != null) {
|
||||||
ResourceLocation iconId = iconTypes.get(iconTypeScroll.getState());
|
ResourceLocation iconId = iconTypes.get(iconTypeScroll.getState());
|
||||||
train.icon = TrainIconType.byId(iconId);
|
train.icon = TrainIconType.byId(iconId);
|
||||||
AllPackets.channel.sendToServer(new TrainEditPacket(train.id, "", !assemblyCompleted, iconId));
|
AllPackets.channel.sendToServer(new TrainEditPacket(train.id, "", iconId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,9 +113,14 @@ public class StationEditPacket extends TileEntityConfigurationPacket<StationTile
|
||||||
if (tryAssemble != null) {
|
if (tryAssemble != null) {
|
||||||
if (!isAssemblyMode)
|
if (!isAssemblyMode)
|
||||||
return;
|
return;
|
||||||
if (tryAssemble)
|
if (tryAssemble) {
|
||||||
te.assemble(player.getUUID());
|
te.assemble(player.getUUID());
|
||||||
else {
|
if (te.getStation() != null && te.getStation()
|
||||||
|
.getPresentTrain() != null) {
|
||||||
|
level.setBlock(blockPos, blockState.setValue(StationBlock.ASSEMBLING, false), 3);
|
||||||
|
te.refreshBlockState();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (disassembleAndEnterMode(player, te))
|
if (disassembleAndEnterMode(player, te))
|
||||||
te.refreshAssemblyInfo();
|
te.refreshAssemblyInfo();
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,8 +330,7 @@ public class StationScreen extends AbstractStationScreen {
|
||||||
Train train = displayedTrain.get();
|
Train train = displayedTrain.get();
|
||||||
if (train != null && !trainNameBox.getValue()
|
if (train != null && !trainNameBox.getValue()
|
||||||
.equals(train.name.getString()))
|
.equals(train.name.getString()))
|
||||||
AllPackets.channel
|
AllPackets.channel.sendToServer(new TrainEditPacket(train.id, trainNameBox.getValue(), train.icon.getId()));
|
||||||
.sendToServer(new TrainEditPacket(train.id, trainNameBox.getValue(), false, train.icon.getId()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void syncStationName() {
|
private void syncStationName() {
|
||||||
|
@ -348,11 +347,10 @@ public class StationScreen extends AbstractStationScreen {
|
||||||
Train train = displayedTrain.get();
|
Train train = displayedTrain.get();
|
||||||
if (train == null)
|
if (train == null)
|
||||||
return;
|
return;
|
||||||
if (switchingToAssemblyMode)
|
|
||||||
train.heldForAssembly = true;
|
|
||||||
if (!switchingToAssemblyMode)
|
if (!switchingToAssemblyMode)
|
||||||
AllPackets.channel
|
AllPackets.channel.sendToServer(new TrainEditPacket(train.id, trainNameBox.getValue(), train.icon.getId()));
|
||||||
.sendToServer(new TrainEditPacket(train.id, trainNameBox.getValue(), false, train.icon.getId()));
|
else
|
||||||
|
te.imminentTrain = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -224,7 +224,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable
|
||||||
DisplayLinkBlock.notifyGatherers(level, worldPosition);
|
DisplayLinkBlock.notifyGatherers(level, worldPosition);
|
||||||
imminentTrain.runtime.displayLinkUpdateRequested = false;
|
imminentTrain.runtime.displayLinkUpdateRequested = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newlyArrived)
|
if (newlyArrived)
|
||||||
applyAutoSchedule();
|
applyAutoSchedule();
|
||||||
|
|
||||||
|
@ -279,7 +279,7 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable
|
||||||
.getDestroySpeed(level, targetPos) == -1) {
|
.getDestroySpeed(level, targetPos) == -1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
level.destroyBlock(targetPos, true);
|
level.destroyBlock(targetPos, true);
|
||||||
|
|
||||||
BlockState bogeyAnchor = ProperWaterloggedBlock.withWater(level, track.getBogeyAnchor(level, pos, state), pos);
|
BlockState bogeyAnchor = ProperWaterloggedBlock.withWater(level, track.getBogeyAnchor(level, pos, state), pos);
|
||||||
|
@ -430,6 +430,9 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable
|
||||||
public void assemble(UUID playerUUID) {
|
public void assemble(UUID playerUUID) {
|
||||||
refreshAssemblyInfo();
|
refreshAssemblyInfo();
|
||||||
|
|
||||||
|
if (bogeyLocations == null)
|
||||||
|
return;
|
||||||
|
|
||||||
if (bogeyLocations[0] != 0) {
|
if (bogeyLocations[0] != 0) {
|
||||||
exception(new AssemblyException(Lang.translate("train_assembly.frontmost_bogey_at_station")), -1);
|
exception(new AssemblyException(Lang.translate("train_assembly.frontmost_bogey_at_station")), -1);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -22,12 +22,10 @@ public class TrainEditPacket extends SimplePacketBase {
|
||||||
private String name;
|
private String name;
|
||||||
private UUID id;
|
private UUID id;
|
||||||
private ResourceLocation iconType;
|
private ResourceLocation iconType;
|
||||||
private boolean heldForAssembly;
|
|
||||||
|
|
||||||
public TrainEditPacket(UUID id, String name, boolean heldForAssembly, ResourceLocation iconType) {
|
public TrainEditPacket(UUID id, String name, ResourceLocation iconType) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.heldForAssembly = heldForAssembly;
|
|
||||||
this.iconType = iconType;
|
this.iconType = iconType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,7 +33,6 @@ public class TrainEditPacket extends SimplePacketBase {
|
||||||
id = buffer.readUUID();
|
id = buffer.readUUID();
|
||||||
name = buffer.readUtf(256);
|
name = buffer.readUtf(256);
|
||||||
iconType = buffer.readResourceLocation();
|
iconType = buffer.readResourceLocation();
|
||||||
heldForAssembly = buffer.readBoolean();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -43,7 +40,6 @@ public class TrainEditPacket extends SimplePacketBase {
|
||||||
buffer.writeUUID(id);
|
buffer.writeUUID(id);
|
||||||
buffer.writeUtf(name);
|
buffer.writeUtf(name);
|
||||||
buffer.writeResourceLocation(iconType);
|
buffer.writeResourceLocation(iconType);
|
||||||
buffer.writeBoolean(heldForAssembly);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -58,10 +54,8 @@ public class TrainEditPacket extends SimplePacketBase {
|
||||||
if (!name.isBlank())
|
if (!name.isBlank())
|
||||||
train.name = new TextComponent(name);
|
train.name = new TextComponent(name);
|
||||||
train.icon = TrainIconType.byId(iconType);
|
train.icon = TrainIconType.byId(iconType);
|
||||||
train.heldForAssembly = heldForAssembly;
|
|
||||||
if (sender != null)
|
if (sender != null)
|
||||||
AllPackets.channel.send(PacketDistributor.ALL.noArg(),
|
AllPackets.channel.send(PacketDistributor.ALL.noArg(), new TrainEditReturnPacket(id, name, iconType));
|
||||||
new TrainEditReturnPacket(id, name, heldForAssembly, iconType));
|
|
||||||
});
|
});
|
||||||
ctx.setPacketHandled(true);
|
ctx.setPacketHandled(true);
|
||||||
}
|
}
|
||||||
|
@ -72,8 +66,8 @@ public class TrainEditPacket extends SimplePacketBase {
|
||||||
super(buffer);
|
super(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
public TrainEditReturnPacket(UUID id, String name, boolean heldForAssembly, ResourceLocation iconType) {
|
public TrainEditReturnPacket(UUID id, String name, ResourceLocation iconType) {
|
||||||
super(id, name, heldForAssembly, iconType);
|
super(id, name, iconType);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,11 +89,6 @@ public class ScheduleItem extends Item implements MenuProvider {
|
||||||
Train train = entity.getCarriage().train;
|
Train train = entity.getCarriage().train;
|
||||||
if (train == null)
|
if (train == null)
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
if (train.heldForAssembly) {
|
|
||||||
pPlayer.displayClientMessage(Lang.translate("schedule.train_still_assembling"), true);
|
|
||||||
AllSoundEvents.DENY.playOnServer(pPlayer.level, pPlayer.blockPosition(), 1, 1);
|
|
||||||
return InteractionResult.SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
Integer seatIndex = contraption.getSeatMapping()
|
Integer seatIndex = contraption.getSeatMapping()
|
||||||
.get(pInteractionTarget.getUUID());
|
.get(pInteractionTarget.getUUID());
|
||||||
|
|
|
@ -432,18 +432,17 @@ public class ScheduleRuntime {
|
||||||
|
|
||||||
public MutableComponent getWaitingStatus(Level level) {
|
public MutableComponent getWaitingStatus(Level level) {
|
||||||
List<List<ScheduleWaitCondition>> conditions = schedule.entries.get(currentEntry).conditions;
|
List<List<ScheduleWaitCondition>> conditions = schedule.entries.get(currentEntry).conditions;
|
||||||
for (int i = 0; i < conditions.size(); i++) {
|
if (conditions.isEmpty() || conditionProgress.isEmpty() || conditionContext.isEmpty())
|
||||||
List<ScheduleWaitCondition> list = conditions.get(i);
|
return TextComponent.EMPTY.copy();
|
||||||
int progress = conditionProgress.get(i);
|
|
||||||
if (progress >= list.size())
|
|
||||||
return TextComponent.EMPTY.copy();
|
|
||||||
|
|
||||||
CompoundTag tag = conditionContext.get(i);
|
List<ScheduleWaitCondition> list = conditions.get(0);
|
||||||
ScheduleWaitCondition condition = list.get(progress);
|
int progress = conditionProgress.get(0);
|
||||||
return condition.getWaitingStatus(level, train, tag);
|
if (progress >= list.size())
|
||||||
}
|
return TextComponent.EMPTY.copy();
|
||||||
|
|
||||||
return TextComponent.EMPTY.copy();
|
CompoundTag tag = conditionContext.get(0);
|
||||||
|
ScheduleWaitCondition condition = list.get(progress);
|
||||||
|
return condition.getWaitingStatus(level, train, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,6 +168,9 @@ public enum AllGuiTextures implements ScreenElement {
|
||||||
TRAIN_HUD_THROTTLE_POINTER("widgets", 0, 209, 6, 9),
|
TRAIN_HUD_THROTTLE_POINTER("widgets", 0, 209, 6, 9),
|
||||||
TRAIN_HUD_FRAME("widgets", 0, 200, 186, 7),
|
TRAIN_HUD_FRAME("widgets", 0, 200, 186, 7),
|
||||||
TRAIN_HUD_DIRECTION("widgets", 77, 165, 28, 20),
|
TRAIN_HUD_DIRECTION("widgets", 77, 165, 28, 20),
|
||||||
|
TRAIN_PROMPT_L("widgets", 8, 209, 3, 16),
|
||||||
|
TRAIN_PROMPT_R("widgets", 11, 209, 3, 16),
|
||||||
|
TRAIN_PROMPT("widgets", 0, 230, 256, 16),
|
||||||
|
|
||||||
// PlacementIndicator
|
// PlacementIndicator
|
||||||
PLACEMENT_INDICATOR_SHEET("placement_indicator", 0, 0, 16, 256);
|
PLACEMENT_INDICATOR_SHEET("placement_indicator", 0, 0, 16, 256);
|
||||||
|
|
|
@ -53,6 +53,7 @@ import com.simibubi.create.content.logistics.packet.FunnelFlapPacket;
|
||||||
import com.simibubi.create.content.logistics.packet.TunnelFlapPacket;
|
import com.simibubi.create.content.logistics.packet.TunnelFlapPacket;
|
||||||
import com.simibubi.create.content.logistics.trains.TrackGraphSyncPacket;
|
import com.simibubi.create.content.logistics.trains.TrackGraphSyncPacket;
|
||||||
import com.simibubi.create.content.logistics.trains.entity.TrainPacket;
|
import com.simibubi.create.content.logistics.trains.entity.TrainPacket;
|
||||||
|
import com.simibubi.create.content.logistics.trains.entity.TrainPromptPacket;
|
||||||
import com.simibubi.create.content.logistics.trains.entity.TrainRelocationPacket;
|
import com.simibubi.create.content.logistics.trains.entity.TrainRelocationPacket;
|
||||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.CurvedTrackSelectionPacket;
|
import com.simibubi.create.content.logistics.trains.management.edgePoint.CurvedTrackSelectionPacket;
|
||||||
import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalEdgeGroupPacket;
|
import com.simibubi.create.content.logistics.trains.management.edgePoint.signal.SignalEdgeGroupPacket;
|
||||||
|
@ -171,6 +172,7 @@ public enum AllPackets {
|
||||||
S_CONFIGURE_TRAIN(TrainEditReturnPacket.class, TrainEditReturnPacket::new, PLAY_TO_CLIENT),
|
S_CONFIGURE_TRAIN(TrainEditReturnPacket.class, TrainEditReturnPacket::new, PLAY_TO_CLIENT),
|
||||||
CONTROLS_ABORT(ControlsStopControllingPacket.class, ControlsStopControllingPacket::new, PLAY_TO_CLIENT),
|
CONTROLS_ABORT(ControlsStopControllingPacket.class, ControlsStopControllingPacket::new, PLAY_TO_CLIENT),
|
||||||
S_TRAIN_HUD(TrainHUDUpdatePacket.class, TrainHUDUpdatePacket::new, PLAY_TO_CLIENT),
|
S_TRAIN_HUD(TrainHUDUpdatePacket.class, TrainHUDUpdatePacket::new, PLAY_TO_CLIENT),
|
||||||
|
S_TRAIN_PROMPT(TrainPromptPacket.class, TrainPromptPacket::new, PLAY_TO_CLIENT),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -647,7 +647,6 @@
|
||||||
"create.schedule.loop2": "when completed",
|
"create.schedule.loop2": "when completed",
|
||||||
"create.schedule.reset": "Reset Progress",
|
"create.schedule.reset": "Reset Progress",
|
||||||
"create.schedule.skip": "Skip current Stop",
|
"create.schedule.skip": "Skip current Stop",
|
||||||
"create.schedule.train_still_assembling": "Confirm Train Assembly in the Station UI first",
|
|
||||||
"create.schedule.applied_to_train": "Train is now following this Schedule",
|
"create.schedule.applied_to_train": "Train is now following this Schedule",
|
||||||
"create.schedule.non_controlling_seat": "Conductor needs to sit in front of a Controls block",
|
"create.schedule.non_controlling_seat": "Conductor needs to sit in front of a Controls block",
|
||||||
"create.schedule.remove_with_empty_hand": "Remove current Schedule with an Empty Hand",
|
"create.schedule.remove_with_empty_hand": "Remove current Schedule with an Empty Hand",
|
||||||
|
@ -718,6 +717,8 @@
|
||||||
"create.train.relocate.valid": "Can relocate to here, Click to Confirm",
|
"create.train.relocate.valid": "Can relocate to here, Click to Confirm",
|
||||||
"create.train.relocate.invalid": "Cannot relocate Train to here",
|
"create.train.relocate.invalid": "Cannot relocate Train to here",
|
||||||
"create.train.relocate.too_far": "Cannot relocate Train this far away",
|
"create.train.relocate.too_far": "Cannot relocate Train this far away",
|
||||||
|
"create.train.departing_from": "Departing from %1$s",
|
||||||
|
"create.train.arrived_at": "Arrived at %1$s",
|
||||||
|
|
||||||
"create.track_signal.cannot_change_mode": "Unable to switch mode of this Signal",
|
"create.track_signal.cannot_change_mode": "Unable to switch mode of this Signal",
|
||||||
"create.track_signal.mode_change.entry_signal": "-> Allow passage if section unoccupied",
|
"create.track_signal.mode_change.entry_signal": "-> Allow passage if section unoccupied",
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.8 KiB |
Loading…
Add table
Reference in a new issue