Approachable

- Station approach/arrival prompt is now more visible
This commit is contained in:
simibubi 2022-06-11 18:54:10 +02:00
parent 513e7906cc
commit 141a4069dd
36 changed files with 232 additions and 149 deletions

View file

@ -554,22 +554,22 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
50f7862ded2d9a955c259a12685906a9ec9ad97a assets/create/lang/en_ud.json
e0e9ceb9e8fed94c6cd3d3c1066dbf3ca0853e88 assets/create/lang/en_us.json
84bbc4114d730451c9e675409074dba365e607c6 assets/create/lang/unfinished/de_de.json
448116a990ffa8d3c592d119ea86bd9877a0026d assets/create/lang/unfinished/es_cl.json
2b9281ea5066d5c4450cbbbe63dfca8b1f4d46ba assets/create/lang/unfinished/es_es.json
7eba8e0309dfa9ced561cb850e353386b47cd67b assets/create/lang/unfinished/fr_fr.json
621e146bcfb9df8b85f1fa75d696f3a0aedcc5dc assets/create/lang/unfinished/it_it.json
ca96955d0c41de07ac957b0ab39797968138ca74 assets/create/lang/unfinished/ja_jp.json
7b9fea6577fb5c0cd8f7a7c6d6f6c4f81a16ea26 assets/create/lang/unfinished/ko_kr.json
e03cde766aca575ebd98dab10616d99df7a0b104 assets/create/lang/unfinished/nl_nl.json
35c9b916519c89b65c7fb259ccd949d44bcd9f7f assets/create/lang/unfinished/pl_pl.json
6e5c551c7d195c5e3ad7238de6b8827cbbcabeaf assets/create/lang/unfinished/pt_br.json
4c5f43461b221af80e4877619f3142feea125ec0 assets/create/lang/unfinished/pt_pt.json
528524de3e35ea7b063d9acbacea9b608d7766ea assets/create/lang/unfinished/ro_ro.json
fe42e45c945dd298bf09b7e90de1075a52d6210f assets/create/lang/unfinished/ru_ru.json
03a4cfd0612beebf3842607cba2d898844478699 assets/create/lang/unfinished/zh_cn.json
ea95d915b70139d73dc413af69d502759e882672 assets/create/lang/unfinished/zh_tw.json
a768ce262b1d113b915306b93805121e6d6f3934 assets/create/lang/en_us.json
c2f79787186fc4ac21c5b357c642e1ab04443411 assets/create/lang/unfinished/de_de.json
abdf065efd476eea939956f2b7d59d9b10df1280 assets/create/lang/unfinished/es_cl.json
1971ba8276f31d0e8af81089a15888038197e858 assets/create/lang/unfinished/es_es.json
ea67e13386220b980c0a0245410c2e3d2c845d35 assets/create/lang/unfinished/fr_fr.json
38c181d840e33f6a277876b6cf4db95a2ef15262 assets/create/lang/unfinished/it_it.json
7e54413e3920b0f4ffc2363d5c521735a177e295 assets/create/lang/unfinished/ja_jp.json
4d3696fa3de235b23d1b29a05a56c495ff11930c assets/create/lang/unfinished/ko_kr.json
7f0e6420fc7685523795aca3c87a12df7029e0cc assets/create/lang/unfinished/nl_nl.json
fb286ebb45b6e191c9357085df2fb21061bed70b assets/create/lang/unfinished/pl_pl.json
269439ab8d7277eb445f76f52342a3b7b72f812c assets/create/lang/unfinished/pt_br.json
6bddc9fc7ae5186747521496d21d0226cc23b01b assets/create/lang/unfinished/pt_pt.json
f7704e9e3200b614c60410feca6c83742d42177d assets/create/lang/unfinished/ro_ro.json
c445375f72f9205d119741c4784e9383020bde10 assets/create/lang/unfinished/ru_ru.json
8986740c8eec44cfe805f7cb242232105369f8fa assets/create/lang/unfinished/zh_cn.json
5c4f08c71c49ab13e9b17e2c1106e5a575448cfc assets/create/lang/unfinished/zh_tw.json
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json

View file

@ -1436,7 +1436,6 @@
"create.schedule.loop2": "when completed",
"create.schedule.reset": "Reset Progress",
"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.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",
@ -1507,6 +1506,8 @@
"create.train.relocate.valid": "Can relocate to here, Click to Confirm",
"create.train.relocate.invalid": "Cannot relocate Train to here",
"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.mode_change.entry_signal": "-> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 981",
"_": "Missing Localizations: 982",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 631",
"_": "Missing Localizations: 632",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 295",
"_": "Missing Localizations: 296",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1869",
"_": "Missing Localizations: 1870",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1558",
"_": "Missing Localizations: 1559",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 297",
"_": "Missing Localizations: 298",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 297",
"_": "Missing Localizations: 298",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 2221",
"_": "Missing Localizations: 2222",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 670",
"_": "Missing Localizations: 671",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1165",
"_": "Missing Localizations: 1166",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1843",
"_": "Missing Localizations: 1844",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 298",
"_": "Missing Localizations: 299",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 675",
"_": "Missing Localizations: 676",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 295",
"_": "Missing Localizations: 296",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 689",
"_": "Missing Localizations: 690",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1437,7 +1437,6 @@
"create.schedule.loop2": "UNLOCALIZED: when completed",
"create.schedule.reset": "UNLOCALIZED: Reset Progress",
"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.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",
@ -1508,6 +1507,8 @@
"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.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.mode_change.entry_signal": "UNLOCALIZED: -> Allow passage if section unoccupied",

View file

@ -13,9 +13,11 @@ import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
import com.simibubi.create.foundation.utility.placement.PlacementHelpers;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Font;
import net.minecraft.client.gui.GuiComponent;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo;
@ -28,11 +30,25 @@ public class TrainHUD {
static LerpedFloat displayedSpeed = LerpedFloat.linear();
static LerpedFloat displayedThrottle = LerpedFloat.linear();
static LerpedFloat displayedPromptSize = LerpedFloat.linear();
static Double editedThrottle = null;
static int hudPacketCooldown = 5;
public static Component currentPrompt;
public static boolean currentPromptShadow;
public static int promptKeepAlive = 0;
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();
if (carriage == null)
return;
@ -41,6 +57,7 @@ public class TrainHUD {
double value =
Math.abs(train.speed) / (train.maxSpeed() * AllConfigs.SERVER.trains.manualTrainSpeedModifier.getF());
value = Mth.clamp(value + 0.05f, 0, 1);
displayedSpeed.chase((int) (value * 18) / 18f, .5f, Chaser.EXP);
displayedSpeed.tickChaser();
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,
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);
w = (int) (AllGuiTextures.TRAIN_HUD_THROTTLE.width * (1 - displayedThrottle.getValue(partialTicks)));

View file

@ -82,11 +82,6 @@ public class BlazeBurnerInteractionBehaviour extends MovingInteractionBehaviour
Schedule schedule = ScheduleItem.getSchedule(itemInHand);
if (schedule == null)
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()) {
AllSoundEvents.DENY.playOnServer(player.level, player.blockPosition(), 1, 1);

View file

@ -25,7 +25,7 @@ public class RailwaySavedData extends SavedData {
@Override
public CompoundTag save(CompoundTag nbt) {
GlobalRailwayManager railways = Create.RAILWAYS;
Create.LOGGER.info("Saving Railway Information...");
// Create.LOGGER.info("Saving Railway Information...");
DimensionPalette dimensions = new DimensionPalette();
nbt.put("RailGraphs", NBTHelper.writeCompoundList(railways.trackNetworks.values(), tg -> tg.write(dimensions)));
nbt.put("SignalBlocks", NBTHelper.writeCompoundList(railways.signalEdgeGroups.values(), seg -> {
@ -43,7 +43,7 @@ public class RailwaySavedData extends SavedData {
sd.trackNetworks = new HashMap<>();
sd.signalEdgeGroups = new HashMap<>();
sd.trains = new HashMap<>();
Create.LOGGER.info("Loading Railway Information...");
// Create.LOGGER.info("Loading Railway Information...");
DimensionPalette dimensions = DimensionPalette.read(nbt);
NBTHelper.iterateCompoundList(nbt.getList("RailGraphs", Tag.TAG_COMPOUND), c -> {

View file

@ -41,6 +41,7 @@ import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.KeybindComponent;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.network.syncher.EntityDataAccessor;
import net.minecraft.network.syncher.EntityDataSerializers;
@ -482,10 +483,6 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
return false;
if (carriage.train.derailed)
return false;
if (carriage.train.heldForAssembly) {
player.displayClientMessage(Lang.translate("schedule.train_still_assembling"), true);
return false;
}
Train train = carriage.train;
if (train.runtime.getSchedule() != null && !train.runtime.paused)
@ -558,8 +555,8 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
boolean spaceDown = heldControls.contains(4);
GlobalStation currentStation = carriage.train.getCurrentStation();
if (currentStation != null && spaceDown) {
player.displayClientMessage(new TextComponent("<i> Arrived at ").withStyle(ChatFormatting.GREEN)
.append(new TextComponent(currentStation.name).withStyle(ChatFormatting.WHITE)), true);
sendPrompt(player, Lang.translate("train.arrived_at",
new TextComponent(currentStation.name).withStyle(ChatFormatting.DARK_GREEN)), false);
return true;
}
@ -570,11 +567,12 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
if (currentStation != null && targetSpeed != 0) {
stationMessage = false;
player.displayClientMessage(new TextComponent("<i> Departing from ").withStyle(ChatFormatting.YELLOW)
.append(new TextComponent(currentStation.name).withStyle(ChatFormatting.WHITE)), true);
sendPrompt(player, Lang.translate("train.departing_from",
new TextComponent(currentStation.name).withStyle(ChatFormatting.DARK_GREEN)), false);
}
if (currentStation == null) {
Navigation nav = carriage.train.navigation;
if (nav.destination != null) {
if (!spaceDown)
@ -583,14 +581,18 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
double f = (nav.distanceToDestination / navDistanceTotal);
int progress = (int) (Mth.clamp(1 - ((1 - f) * (1 - f)), 0, 1) * 30);
boolean arrived = progress == 0;
TextComponent whiteComponent =
new TextComponent(Strings.repeat("|", progress) + (arrived ? " ->" : " <-"));
TextComponent greenComponent =
new TextComponent((arrived ? "<- " : "-> ") + Strings.repeat("|", 30 - progress));
int mixedColor = Color.mixColors(0x00_91EA44, 0x00_FFC244, progress / 30f);
int targetColor = arrived ? 0x00_91EA44 : 0x00_ffffff;
player.displayClientMessage(greenComponent.withStyle(st -> st.withColor(mixedColor))
.append(whiteComponent.withStyle(st -> st.withColor(targetColor))), true);
TextComponent whiteComponent = new TextComponent(Strings.repeat("|", progress));
TextComponent greenComponent = new TextComponent(Strings.repeat("|", 30 - progress));
int fromColor = 0x00_FFC244;
int toColor = 0x00_529915;
int mixedColor = Color.mixColors(toColor, fromColor, progress / 30f);
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;
return true;
}
@ -633,12 +635,17 @@ public class CarriageContraptionEntity extends OrientedContraptionEntity {
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;
private void displayApproachStationMessage(Player player, GlobalStation station) {
player.displayClientMessage(
sendPrompt(player,
Lang.translate("contraption.controls.approach_station", new KeybindComponent("key.jump"), station.name),
true);
false);
stationMessage = true;
}

View file

@ -98,10 +98,6 @@ public class Train {
public UUID currentStation;
public boolean currentlyBackwards;
// considered for removal
@Deprecated
public boolean heldForAssembly;
public boolean doubleEnded;
public List<Carriage> carriages;
public List<Integer> carriageSpacing;
@ -140,7 +136,6 @@ public class Train {
navigation = new Navigation(this);
runtime = new ScheduleRuntime(this);
heldForAssembly = false;
migratingPoints = new ArrayList<>();
currentStation = null;
manualSteer = SteerDirection.NONE;
@ -1074,7 +1069,6 @@ public class Train {
if (currentStation != null)
tag.putUUID("Station", currentStation);
tag.putBoolean("Backwards", currentlyBackwards);
tag.putBoolean("StillAssembling", heldForAssembly);
tag.putBoolean("Derailed", derailed);
tag.putBoolean("UpdateSignals", updateSignalBlocks);
tag.put("SignalBlocks", NBTHelper.writeCompoundList(occupiedSignalBlocks.entrySet(), e -> {
@ -1126,7 +1120,6 @@ public class Train {
train.name = Component.Serializer.fromJson(tag.getString("Name"));
train.currentStation = tag.contains("Station") ? tag.getUUID("Station") : null;
train.currentlyBackwards = tag.getBoolean("Backwards");
train.heldForAssembly = tag.getBoolean("StillAssembling");
train.derailed = tag.getBoolean("Derailed");
train.updateSignalBlocks = tag.getBoolean("UpdateSignals");
train.fuelTicks = tag.getInt("Fuel");

View file

@ -60,7 +60,6 @@ public class TrainPacket extends SimplePacketBase {
boolean doubleEnded = buffer.readBoolean();
train = new Train(trainId, owner, null, carriages, carriageSpacing, doubleEnded);
train.heldForAssembly = buffer.readBoolean();
train.name = Component.Serializer.fromJson(buffer.readUtf());
train.icon = TrainIconType.byId(buffer.readResourceLocation());
}
@ -94,7 +93,6 @@ public class TrainPacket extends SimplePacketBase {
train.carriageSpacing.forEach(buffer::writeVarInt);
buffer.writeBoolean(train.doubleEnded);
buffer.writeBoolean(train.heldForAssembly);
buffer.writeUtf(Component.Serializer.toJson(train.name));
buffer.writeResourceLocation(train.icon.id);
}

View file

@ -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;
}
}

View file

@ -234,7 +234,6 @@ public class TrainRelocator {
train.leaveStation();
train.derailed = false;
train.heldForAssembly = false;
train.navigation.waitingForSignal = null;
train.occupiedSignalBlocks.clear();
train.graph = graph;

View file

@ -29,12 +29,10 @@ public class AssemblyScreen extends AbstractStationScreen {
private List<ResourceLocation> iconTypes;
private ScrollInput iconTypeScroll;
private boolean assemblyCompleted;
public AssemblyScreen(StationTileEntity te, GlobalStation station) {
super(te, station);
background = AllGuiTextures.STATION_ASSEMBLING;
assemblyCompleted = false;
}
@Override
@ -84,7 +82,6 @@ public class AssemblyScreen extends AbstractStationScreen {
completeAssembly.active = false;
completeAssembly.setToolTip(new TextComponent("Complete Assembly"));
completeAssembly.withCallback(() -> {
assemblyCompleted = true;
AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name));
minecraft.setScreen(new StationScreen(te, station));
});
@ -106,7 +103,6 @@ public class AssemblyScreen extends AbstractStationScreen {
toggleAssemblyButton.active = te.bogeyCount > 0 || train != null;
if (train != null) {
assemblyCompleted = true;
AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name));
minecraft.setScreen(new StationScreen(te, station));
for (Carriage carriage : train.carriages)
@ -115,23 +111,7 @@ public class AssemblyScreen extends AbstractStationScreen {
}
private void tickTrainDisplay() {
Train train = displayedTrain.get();
Train imminentTrain = getImminent();
if (train == null) {
if (imminentTrain != null && !imminentTrain.heldForAssembly) {
displayedTrain = new WeakReference<>(imminentTrain);
completeAssembly.active = true;
quitAssembly.active = false;
iconTypeScroll.active = iconTypeScroll.visible = true;
toggleAssemblyButton.setToolTip(new TextComponent("Disassemble Train"));
toggleAssemblyButton.setIcon(AllGuiTextures.I_DISASSEMBLE_TRAIN);
toggleAssemblyButton.withCallback(() -> {
AllPackets.channel.sendToServer(StationEditPacket.tryDisassemble(te.getBlockPos()));
});
}
} else {
if (imminentTrain == null) {
if (getImminent() == null) {
displayedTrain = new WeakReference<>(null);
completeAssembly.active = false;
quitAssembly.active = true;
@ -141,7 +121,9 @@ public class AssemblyScreen extends AbstractStationScreen {
toggleAssemblyButton.withCallback(() -> {
AllPackets.channel.sendToServer(StationEditPacket.tryAssemble(te.getBlockPos()));
});
}
} else {
AllPackets.channel.sendToServer(StationEditPacket.configure(te.getBlockPos(), false, station.name));
minecraft.setScreen(new StationScreen(te, station));
}
}
@ -242,7 +224,7 @@ public class AssemblyScreen extends AbstractStationScreen {
if (train != null) {
ResourceLocation iconId = iconTypes.get(iconTypeScroll.getState());
train.icon = TrainIconType.byId(iconId);
AllPackets.channel.sendToServer(new TrainEditPacket(train.id, "", !assemblyCompleted, iconId));
AllPackets.channel.sendToServer(new TrainEditPacket(train.id, "", iconId));
}
}

View file

@ -113,9 +113,14 @@ public class StationEditPacket extends TileEntityConfigurationPacket<StationTile
if (tryAssemble != null) {
if (!isAssemblyMode)
return;
if (tryAssemble)
if (tryAssemble) {
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))
te.refreshAssemblyInfo();
}

View file

@ -330,8 +330,7 @@ public class StationScreen extends AbstractStationScreen {
Train train = displayedTrain.get();
if (train != null && !trainNameBox.getValue()
.equals(train.name.getString()))
AllPackets.channel
.sendToServer(new TrainEditPacket(train.id, trainNameBox.getValue(), false, train.icon.getId()));
AllPackets.channel.sendToServer(new TrainEditPacket(train.id, trainNameBox.getValue(), train.icon.getId()));
}
private void syncStationName() {
@ -348,11 +347,10 @@ public class StationScreen extends AbstractStationScreen {
Train train = displayedTrain.get();
if (train == null)
return;
if (switchingToAssemblyMode)
train.heldForAssembly = true;
if (!switchingToAssemblyMode)
AllPackets.channel
.sendToServer(new TrainEditPacket(train.id, trainNameBox.getValue(), false, train.icon.getId()));
AllPackets.channel.sendToServer(new TrainEditPacket(train.id, trainNameBox.getValue(), train.icon.getId()));
else
te.imminentTrain = null;
}
@Override

View file

@ -430,6 +430,9 @@ public class StationTileEntity extends SmartTileEntity implements ITransformable
public void assemble(UUID playerUUID) {
refreshAssemblyInfo();
if (bogeyLocations == null)
return;
if (bogeyLocations[0] != 0) {
exception(new AssemblyException(Lang.translate("train_assembly.frontmost_bogey_at_station")), -1);
return;

View file

@ -22,12 +22,10 @@ public class TrainEditPacket extends SimplePacketBase {
private String name;
private UUID id;
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.id = id;
this.heldForAssembly = heldForAssembly;
this.iconType = iconType;
}
@ -35,7 +33,6 @@ public class TrainEditPacket extends SimplePacketBase {
id = buffer.readUUID();
name = buffer.readUtf(256);
iconType = buffer.readResourceLocation();
heldForAssembly = buffer.readBoolean();
}
@Override
@ -43,7 +40,6 @@ public class TrainEditPacket extends SimplePacketBase {
buffer.writeUUID(id);
buffer.writeUtf(name);
buffer.writeResourceLocation(iconType);
buffer.writeBoolean(heldForAssembly);
}
@Override
@ -58,10 +54,8 @@ public class TrainEditPacket extends SimplePacketBase {
if (!name.isBlank())
train.name = new TextComponent(name);
train.icon = TrainIconType.byId(iconType);
train.heldForAssembly = heldForAssembly;
if (sender != null)
AllPackets.channel.send(PacketDistributor.ALL.noArg(),
new TrainEditReturnPacket(id, name, heldForAssembly, iconType));
AllPackets.channel.send(PacketDistributor.ALL.noArg(), new TrainEditReturnPacket(id, name, iconType));
});
ctx.setPacketHandled(true);
}
@ -72,8 +66,8 @@ public class TrainEditPacket extends SimplePacketBase {
super(buffer);
}
public TrainEditReturnPacket(UUID id, String name, boolean heldForAssembly, ResourceLocation iconType) {
super(id, name, heldForAssembly, iconType);
public TrainEditReturnPacket(UUID id, String name, ResourceLocation iconType) {
super(id, name, iconType);
}
}

View file

@ -89,11 +89,6 @@ public class ScheduleItem extends Item implements MenuProvider {
Train train = entity.getCarriage().train;
if (train == null)
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()
.get(pInteractionTarget.getUUID());

View file

@ -432,18 +432,17 @@ public class ScheduleRuntime {
public MutableComponent getWaitingStatus(Level level) {
List<List<ScheduleWaitCondition>> conditions = schedule.entries.get(currentEntry).conditions;
for (int i = 0; i < conditions.size(); i++) {
List<ScheduleWaitCondition> list = conditions.get(i);
int progress = conditionProgress.get(i);
if (conditions.isEmpty() || conditionProgress.isEmpty() || conditionContext.isEmpty())
return TextComponent.EMPTY.copy();
List<ScheduleWaitCondition> list = conditions.get(0);
int progress = conditionProgress.get(0);
if (progress >= list.size())
return TextComponent.EMPTY.copy();
CompoundTag tag = conditionContext.get(i);
CompoundTag tag = conditionContext.get(0);
ScheduleWaitCondition condition = list.get(progress);
return condition.getWaitingStatus(level, train, tag);
}
return TextComponent.EMPTY.copy();
}
}

View file

@ -168,6 +168,9 @@ public enum AllGuiTextures implements ScreenElement {
TRAIN_HUD_THROTTLE_POINTER("widgets", 0, 209, 6, 9),
TRAIN_HUD_FRAME("widgets", 0, 200, 186, 7),
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
PLACEMENT_INDICATOR_SHEET("placement_indicator", 0, 0, 16, 256);

View file

@ -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.trains.TrackGraphSyncPacket;
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.management.edgePoint.CurvedTrackSelectionPacket;
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),
CONTROLS_ABORT(ControlsStopControllingPacket.class, ControlsStopControllingPacket::new, PLAY_TO_CLIENT),
S_TRAIN_HUD(TrainHUDUpdatePacket.class, TrainHUDUpdatePacket::new, PLAY_TO_CLIENT),
S_TRAIN_PROMPT(TrainPromptPacket.class, TrainPromptPacket::new, PLAY_TO_CLIENT),
;

View file

@ -647,7 +647,6 @@
"create.schedule.loop2": "when completed",
"create.schedule.reset": "Reset Progress",
"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.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",
@ -718,6 +717,8 @@
"create.train.relocate.valid": "Can relocate to here, Click to Confirm",
"create.train.relocate.invalid": "Cannot relocate Train to here",
"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.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