Getting seated

- Fixed non-player passengers endlessly kicking each other from seats
- Added the "Seated Players" schedule condition
This commit is contained in:
simibubi 2022-06-11 23:37:13 +02:00
parent 6192da2809
commit 3517f04a70
22 changed files with 291 additions and 33 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
8781f68634fbabc8b16488bc9ab5e8c7b9f95194 assets/create/lang/en_us.json
b2cc029708321d9ab6090a4d933860bb4cb7b9f8 assets/create/lang/unfinished/de_de.json
65eeef03fa6735e9abbdb8c6cc2a69cd230a4bae assets/create/lang/unfinished/es_cl.json
b7480756a55d376d4e6a8e60f75789a426fc7f0b assets/create/lang/unfinished/es_es.json
5aa1154bc42ef79c5540223ce4eed19970b37d1e assets/create/lang/unfinished/fr_fr.json
e92b1d5555aacd0d6d12e3d1d10da6dd639e271a assets/create/lang/unfinished/it_it.json
94248494016943eb7f03438221c17fee36defd2c assets/create/lang/unfinished/ja_jp.json
16f4bad7bbaeeab54fa70fbcaaa7e98fc1c0e8e7 assets/create/lang/unfinished/ko_kr.json
5431e9d8417e0a066c5506864046161724e0ae1a assets/create/lang/unfinished/nl_nl.json
eedae972227343a05fdfaafb48bddc6ce5628096 assets/create/lang/unfinished/pl_pl.json
6930870015be01fd5d6b006d048b54d229735dcb assets/create/lang/unfinished/pt_br.json
611a886f8e9bdd8e0f217524c699bd4c2c0b6e3c assets/create/lang/unfinished/pt_pt.json
4d2c08851e80892498b979152302338a5b772766 assets/create/lang/unfinished/ro_ro.json
174b95e8c244fe79c5567fb00cd121dc113a7ede assets/create/lang/unfinished/ru_ru.json
619673460cf89e46cb8d58703ee58212f519fb91 assets/create/lang/unfinished/zh_cn.json
a1e1bb7a55ddd9bbef58c7cef4058ea9b8aba5b8 assets/create/lang/unfinished/zh_tw.json
07cad74a9c4a99912638e7ef5e0fa8ea80934037 assets/create/lang/en_us.json
f943200bc8e641bf2a6046486ba81a656b2e55c5 assets/create/lang/unfinished/de_de.json
313362453cf604ac0f850e7ec4e6f5cd88a7e0ea assets/create/lang/unfinished/es_cl.json
98068c626233401f25795ec2d7e18f93e94509b8 assets/create/lang/unfinished/es_es.json
2350cba1c57aee6dc5e8d5012f27009112613fae assets/create/lang/unfinished/fr_fr.json
4bf3468d332616611e677c9a7b28058a52adb331 assets/create/lang/unfinished/it_it.json
4fc445d51505ce8082bec4d0c4de5a050f57e2e5 assets/create/lang/unfinished/ja_jp.json
d56027e3424d100d37dd838d2159060790c991fc assets/create/lang/unfinished/ko_kr.json
d8ed5de7b2bac2f2b8e8d8a677e32baa59a5fe62 assets/create/lang/unfinished/nl_nl.json
66d5880ccbc6e244e34a84cc12926abf81a927d8 assets/create/lang/unfinished/pl_pl.json
2e397277e9a0c1f97e978364709bc6a90fda1bfb assets/create/lang/unfinished/pt_br.json
b35062a17491ad7d94c4daa6fc55c686324dd424 assets/create/lang/unfinished/pt_pt.json
f9b60bbce38d9b8479f67f76cc63b6bba58423c1 assets/create/lang/unfinished/ro_ro.json
04737b38ab9a6e64f5a87e2539d0b3ae830bd48f assets/create/lang/unfinished/ru_ru.json
f40689ab4d03cbb2ebb3be33d7b5179d2ea846a0 assets/create/lang/unfinished/zh_cn.json
942299e2534a1c88b0ea5e215c4118e55f6a8e86 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

@ -1431,6 +1431,15 @@
"create.schedule.condition.redstone_link.frequency_state": "Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "Frequency not powered:",
"create.schedule.condition.player_count": "Players Seated",
"create.schedule.condition.player_count.summary": "%1$s Player",
"create.schedule.condition.player_count.summary_plural": "%1$s Players",
"create.schedule.condition.player_count.seated": "%1$s seated",
"create.schedule.condition.player_count.players": "Players",
"create.schedule.condition.player_count.condition": "Conditional",
"create.schedule.condition.player_count.exactly": "Exactly",
"create.schedule.condition.player_count.or_above": "Or above",
"create.schedule.condition.player_count.status": "Passengers: %1$s/%2$s",
"create.schedule.loop": "Loop Forever",
"create.schedule.loop1": "Schedule starts over",
"create.schedule.loop2": "when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 982",
"_": "Missing Localizations: 991",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 632",
"_": "Missing Localizations: 641",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 296",
"_": "Missing Localizations: 305",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1870",
"_": "Missing Localizations: 1879",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1559",
"_": "Missing Localizations: 1568",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 298",
"_": "Missing Localizations: 307",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 298",
"_": "Missing Localizations: 307",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 2222",
"_": "Missing Localizations: 2231",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 671",
"_": "Missing Localizations: 680",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1166",
"_": "Missing Localizations: 1175",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1844",
"_": "Missing Localizations: 1853",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 299",
"_": "Missing Localizations: 308",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 676",
"_": "Missing Localizations: 685",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 296",
"_": "Missing Localizations: 305",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 690",
"_": "Missing Localizations: 699",
"_": "->------------------------] Game Elements [------------------------<-",
@ -1432,6 +1432,15 @@
"create.schedule.condition.redstone_link.frequency_state": "UNLOCALIZED: Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "UNLOCALIZED: Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "UNLOCALIZED: Frequency not powered:",
"create.schedule.condition.player_count": "UNLOCALIZED: Players Seated",
"create.schedule.condition.player_count.summary": "UNLOCALIZED: %1$s Player",
"create.schedule.condition.player_count.summary_plural": "UNLOCALIZED: %1$s Players",
"create.schedule.condition.player_count.seated": "UNLOCALIZED: %1$s seated",
"create.schedule.condition.player_count.players": "UNLOCALIZED: Players",
"create.schedule.condition.player_count.condition": "UNLOCALIZED: Conditional",
"create.schedule.condition.player_count.exactly": "UNLOCALIZED: Exactly",
"create.schedule.condition.player_count.or_above": "UNLOCALIZED: Or above",
"create.schedule.condition.player_count.status": "UNLOCALIZED: Passengers: %1$s/%2$s",
"create.schedule.loop": "UNLOCALIZED: Loop Forever",
"create.schedule.loop1": "UNLOCALIZED: Schedule starts over",
"create.schedule.loop2": "UNLOCALIZED: when completed",

View File

@ -125,6 +125,8 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
.get(seatIndex))) {
if (entity instanceof Player)
return;
if (!(passenger instanceof Player))
return;
entity.stopRiding();
}
}

View File

@ -10,6 +10,7 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
@ -61,6 +62,7 @@ import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Explosion.BlockInteraction;
import net.minecraft.world.level.Level;
@ -681,7 +683,7 @@ public class Train {
int offset = 1;
boolean backwards = currentlyBackwards;
Level level = null;
for (int i = 0; i < carriages.size(); i++) {
Carriage carriage = carriages.get(backwards ? carriages.size() - i - 1 : i);
@ -1155,6 +1157,17 @@ public class Train {
return train;
}
public int countPlayerPassengers() {
AtomicInteger count = new AtomicInteger();
for (Carriage carriage : carriages)
carriage.forEachPresentEntity(e -> e.getIndirectPassengers()
.forEach(p -> {
if (p instanceof Player)
count.incrementAndGet();
}));
return count.intValue();
}
public void determineHonk(Level level) {
if (lowHonk != null)
return;
@ -1166,7 +1179,7 @@ public class Train {
CarriageContraptionEntity entity = dimensional.entity.get();
if (entity == null || !(entity.getContraption() instanceof CarriageContraption otherCC))
break;
Pair<Boolean,Integer> first = otherCC.soundQueue.getFirstWhistle(entity);
Pair<Boolean, Integer> first = otherCC.soundQueue.getFirstWhistle(entity);
if (first != null) {
lowHonk = first.getFirst();
honkPitch = first.getSecond();

View File

@ -8,6 +8,7 @@ import com.simibubi.create.Create;
import com.simibubi.create.content.logistics.trains.management.schedule.condition.FluidThresholdCondition;
import com.simibubi.create.content.logistics.trains.management.schedule.condition.IdleCargoCondition;
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ItemThresholdCondition;
import com.simibubi.create.content.logistics.trains.management.schedule.condition.PlayerPassengerCondition;
import com.simibubi.create.content.logistics.trains.management.schedule.condition.RedstoneLinkCondition;
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduleWaitCondition;
import com.simibubi.create.content.logistics.trains.management.schedule.condition.ScheduledDelay;
@ -42,6 +43,7 @@ public class Schedule {
registerCondition("fluid_threshold", FluidThresholdCondition::new);
registerCondition("item_threshold", ItemThresholdCondition::new);
registerCondition("redstone_link", RedstoneLinkCondition::new);
registerCondition("player_count", PlayerPassengerCondition::new);
registerCondition("idle", IdleCargoCondition::new);
registerCondition("unloaded", StationUnloadedCondition::new);
registerCondition("powered", StationPoweredCondition::new);

View File

@ -0,0 +1,87 @@
package com.simibubi.create.content.logistics.trains.management.schedule.condition;
import java.util.List;
import com.google.common.collect.ImmutableList;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.Create;
import com.simibubi.create.content.logistics.trains.entity.Train;
import com.simibubi.create.foundation.gui.ModularGuiLineBuilder;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.Pair;
import net.minecraft.ChatFormatting;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.TextComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public class PlayerPassengerCondition extends ScheduleWaitCondition {
@Override
public Pair<ItemStack, Component> getSummary() {
int target = getTarget();
return Pair.of(AllBlocks.SEATS.get(DyeColor.YELLOW)
.asStack(),
Lang.translate("schedule.condition.player_count." + (target == 1 ? "summary" : "summary_plural"), target));
}
@Override
public ResourceLocation getId() {
return Create.asResource("player_count");
}
public int getTarget() {
return intData("Count");
}
public boolean canOvershoot() {
return intData("Exact") != 0;
}
@Override
public List<Component> getTitleAs(String type) {
int target = getTarget();
return ImmutableList.of(Lang.translate("schedule.condition.player_count.seated",
Lang.translate("schedule.condition.player_count." + (target == 1 ? "summary" : "summary_plural"),
new TextComponent("" + target).withStyle(ChatFormatting.DARK_AQUA))));
}
@Override
@OnlyIn(Dist.CLIENT)
public void initConfigurationWidgets(ModularGuiLineBuilder builder) {
builder.addScrollInput(0, 31, (i, l) -> {
i.titled(Lang.translate("schedule.condition.player_count.players"))
.withShiftStep(5)
.withRange(0, 21);
}, "Count");
builder.addSelectionScrollInput(36, 85, (i, l) -> {
i.forOptions(Lang.translatedOptions("schedule.condition.player_count", "exactly", "or_above"))
.titled(Lang.translate("schedule.condition.player_count.condition"));
}, "Exact");
}
@Override
public boolean tickCompletion(Level level, Train train, CompoundTag context) {
int prev = context.getInt("PrevPlayerCount");
int present = train.countPlayerPassengers();
int target = getTarget();
context.putInt("PrevPlayerCount", present);
if (prev != present)
requestStatusToUpdate(context);
return canOvershoot() ? present >= target : present == target;
}
@Override
public MutableComponent getWaitingStatus(Level level, Train train, CompoundTag tag) {
return Lang.translate("schedule.condition.player_count.status", train.countPlayerPassengers(), getTarget());
}
}

View File

@ -642,6 +642,16 @@
"create.schedule.condition.redstone_link.frequency_state": "Frequency state:",
"create.schedule.condition.redstone_link.frequency_powered": "Frequency powered:",
"create.schedule.condition.redstone_link.frequency_unpowered": "Frequency not powered:",
"create.schedule.condition.player_count": "Players Seated",
"create.schedule.condition.player_count.summary": "%1$s Player",
"create.schedule.condition.player_count.summary_plural": "%1$s Players",
"create.schedule.condition.player_count.seated": "%1$s seated",
"create.schedule.condition.player_count.players": "Players",
"create.schedule.condition.player_count.condition": "Conditional",
"create.schedule.condition.player_count.exactly": "Exactly",
"create.schedule.condition.player_count.or_above": "Or above",
"create.schedule.condition.player_count.status": "Passengers: %1$s/%2$s",
"create.schedule.loop": "Loop Forever",
"create.schedule.loop1": "Schedule starts over",
"create.schedule.loop2": "when completed",