mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-18 07:53:07 +01:00
Merge branch 'mc1.18/global-railways' of https://github.com/Creators-of-Create/Create-Concealed into mc1.18/global-railways
This commit is contained in:
commit
9b3b0032fc
36 changed files with 973 additions and 134 deletions
|
@ -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
|
||||
8b387eecbadbf8ddf744422baabf223c84268de8 assets/create/lang/en_us.json
|
||||
f162f6cfe17b1fcbb1303b84545cd3d0c9ce25f5 assets/create/lang/unfinished/de_de.json
|
||||
b72060f9fc6cf1da5682ceed2ba69ab4c0c30184 assets/create/lang/unfinished/es_cl.json
|
||||
5ede822fae8b2189db97633c8303c96decd2091f assets/create/lang/unfinished/es_es.json
|
||||
60618a73865a24d2b8e2f3bfafd5411be725d1ce assets/create/lang/unfinished/fr_fr.json
|
||||
086ca3a74d4c5c129d83360b0acc8dbdf65e5bb2 assets/create/lang/unfinished/it_it.json
|
||||
9345b75ecfc27f4c2f25d0b5badbb2801bd1b88b assets/create/lang/unfinished/ja_jp.json
|
||||
6f4d78f63f63f9b870494c771bba36bd4bddfe38 assets/create/lang/unfinished/ko_kr.json
|
||||
7f271a3685fc8b100046cf87ceb21e569e356ea9 assets/create/lang/unfinished/nl_nl.json
|
||||
bba14b1077fe530c9f627792f7b16b104d00623d assets/create/lang/unfinished/pl_pl.json
|
||||
0ad3218fc001b8031578b4cafa4b1d931badd28f assets/create/lang/unfinished/pt_br.json
|
||||
285d85ae57a1d9225240a2761b0ac241b47f501c assets/create/lang/unfinished/pt_pt.json
|
||||
dda44f8eca5de56c4ccb14019c06b0e1c381801a assets/create/lang/unfinished/ro_ro.json
|
||||
351534ba02df3ce3688e48471981955ac662dce4 assets/create/lang/unfinished/ru_ru.json
|
||||
5391940638ecc6590d755663db05d138140db0b5 assets/create/lang/unfinished/zh_cn.json
|
||||
5ec6d587ead9ecf3cf4348422903d5926cf1c8ab assets/create/lang/unfinished/zh_tw.json
|
||||
bd11cec0a09bc17c36293f2318b3a55816ba7357 assets/create/lang/en_us.json
|
||||
43dceacc12846afb41841f8e6f89fbde373aee0c assets/create/lang/unfinished/de_de.json
|
||||
9c8452625f048b42cc44e92781854560fb0a31b6 assets/create/lang/unfinished/es_cl.json
|
||||
287eeafaa0c3d618b992b3da200b80c30d84b469 assets/create/lang/unfinished/es_es.json
|
||||
7fc00f821984d29d0f2e58a0cd9f54c107765a9d assets/create/lang/unfinished/fr_fr.json
|
||||
846428c03588dcf1166b77c92efd0196044b83f2 assets/create/lang/unfinished/it_it.json
|
||||
abdd740066a0152f3bce5d3368f788e4a949ec35 assets/create/lang/unfinished/ja_jp.json
|
||||
6a06c83079fdba01a2a565958af15330af7988f5 assets/create/lang/unfinished/ko_kr.json
|
||||
d2f791d81474467bab224cc1ed7d33209d4b533c assets/create/lang/unfinished/nl_nl.json
|
||||
b0a821a5b68e8863d76bf0c26881457c640f2db1 assets/create/lang/unfinished/pl_pl.json
|
||||
59826c6788b6eb792bb8180f7691296b3d16b755 assets/create/lang/unfinished/pt_br.json
|
||||
3ce46ee7790faf9b5e76159795675b636beee4b9 assets/create/lang/unfinished/pt_pt.json
|
||||
741cc70fc2aaedd6d79c570705d28343d76cfcf6 assets/create/lang/unfinished/ro_ro.json
|
||||
5bfbf61f079563cddabb1ac02e68395a8b5ab688 assets/create/lang/unfinished/ru_ru.json
|
||||
50952f6f40e77ae2ab0ac7fb0bea6a2776b14469 assets/create/lang/unfinished/zh_cn.json
|
||||
edccb3df1d94493485cfb451c1f7d6dfc4a2678d 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
|
||||
|
|
|
@ -906,7 +906,8 @@
|
|||
"create.generic.unit.rpm": "RPM",
|
||||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.millibuckets": "mB",
|
||||
"create.generic.unit.buckets": "B",
|
||||
"create.generic.clockwise": "Clockwise",
|
||||
"create.generic.counter_clockwise": "Counter-Clockwise",
|
||||
"create.generic.in_quotes": "\"%1$s\"",
|
||||
|
@ -1515,6 +1516,8 @@
|
|||
"create.display_source.combine_item_names": "Combine Item Names",
|
||||
"create.display_source.count_items": "Amount of matching Items",
|
||||
"create.display_source.list_items": "List matching Items",
|
||||
"create.display_source.fluid_amount": "Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "List matching Fluids",
|
||||
"create.display_source.nixie_tube": "Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "Container Fill Level",
|
||||
"create.display_source.fill_level.display": "Display Format",
|
||||
|
@ -1549,6 +1552,16 @@
|
|||
"create.display_source.station_summary.minutes": " min",
|
||||
"create.display_source.station_summary.seconds": "%1$ss",
|
||||
"create.display_source.observed_train_name": "Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "Boiler Status",
|
||||
"create.display_source.entity_name": "Entity Name",
|
||||
"create.display_source.kinetic_speed": "Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "Line %1$s",
|
||||
"create.display_target.page": "Page %1$s",
|
||||
|
@ -1558,8 +1571,9 @@
|
|||
"create.flap_display.cycles.numeric": " ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": " ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": " ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "mB;B ",
|
||||
"create.flap_display.cycles.instant": " ; ",
|
||||
"create.flap_display.cycles.pixel": "█;▒",
|
||||
"create.flap_display.cycles.pixel": "█;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 943",
|
||||
"_": "Missing Localizations: 957",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "Uhrzeigersinn",
|
||||
"create.generic.counter_clockwise": "Gegen-Uhrzeigersinn",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 593",
|
||||
"_": "Missing Localizations: 607",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "us",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "En sentido del Reloj",
|
||||
"create.generic.counter_clockwise": "Al contrario del Reloj",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 257",
|
||||
"_": "Missing Localizations: 271",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "SU(unidades de estrés)",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "En el sentido de las agujas del reloj",
|
||||
"create.generic.counter_clockwise": "En sentido contrario a las agujas del reloj",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1831",
|
||||
"_": "Missing Localizations: 1845",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "us",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smS",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "dans le sens horaire",
|
||||
"create.generic.counter_clockwise": "dans le sens anti-horaire",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1520",
|
||||
"_": "Missing Localizations: 1534",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$s mB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "Senso orario",
|
||||
"create.generic.counter_clockwise": "Senso anti-orario",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 259",
|
||||
"_": "Missing Localizations: 273",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "度",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "時計回り",
|
||||
"create.generic.counter_clockwise": "反時計回り",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 259",
|
||||
"_": "Missing Localizations: 273",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "시계 방향",
|
||||
"create.generic.counter_clockwise": "시계 반대 방향",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2183",
|
||||
"_": "Missing Localizations: 2197",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -907,7 +907,8 @@
|
|||
"create.generic.unit.rpm": "UNLOCALIZED: RPM",
|
||||
"create.generic.unit.stress": "UNLOCALIZED: su",
|
||||
"create.generic.unit.degrees": "UNLOCALIZED: °",
|
||||
"create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB",
|
||||
"create.generic.unit.millibuckets": "UNLOCALIZED: mB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "UNLOCALIZED: Clockwise",
|
||||
"create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 632",
|
||||
"_": "Missing Localizations: 646",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "JO",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smW",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "Zgodnie ze wskazówkami zegara",
|
||||
"create.generic.counter_clockwise": "Przeciwnie do wskazówek zegara",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1127",
|
||||
"_": "Missing Localizations: 1141",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "us",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "Sentido horário",
|
||||
"create.generic.counter_clockwise": "Sentido anti-horário",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1805",
|
||||
"_": "Missing Localizations: 1819",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "us",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "Sentido horário",
|
||||
"create.generic.counter_clockwise": "Sentido anti-horário",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 260",
|
||||
"_": "Missing Localizations: 274",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "În sensul acelor de ceasornic",
|
||||
"create.generic.counter_clockwise": "În sensul invers acelor de ceasornic",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 637",
|
||||
"_": "Missing Localizations: 651",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "ен",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "По часовой стрелке",
|
||||
"create.generic.counter_clockwise": "Против часовой стрелки",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 257",
|
||||
"_": "Missing Localizations: 271",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "°",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "顺时针方向",
|
||||
"create.generic.counter_clockwise": "逆时针方向",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 651",
|
||||
"_": "Missing Localizations: 665",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -908,6 +908,7 @@
|
|||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "度",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
||||
"create.generic.clockwise": "順時鐘方向",
|
||||
"create.generic.counter_clockwise": "逆時鐘方向",
|
||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
||||
|
@ -1516,6 +1517,8 @@
|
|||
"create.display_source.combine_item_names": "UNLOCALIZED: Combine Item Names",
|
||||
"create.display_source.count_items": "UNLOCALIZED: Amount of matching Items",
|
||||
"create.display_source.list_items": "UNLOCALIZED: List matching Items",
|
||||
"create.display_source.fluid_amount": "UNLOCALIZED: Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "UNLOCALIZED: List matching Fluids",
|
||||
"create.display_source.nixie_tube": "UNLOCALIZED: Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "UNLOCALIZED: Container Fill Level",
|
||||
"create.display_source.fill_level.display": "UNLOCALIZED: Display Format",
|
||||
|
@ -1550,6 +1553,16 @@
|
|||
"create.display_source.station_summary.minutes": "UNLOCALIZED: min",
|
||||
"create.display_source.station_summary.seconds": "UNLOCALIZED: %1$ss",
|
||||
"create.display_source.observed_train_name": "UNLOCALIZED: Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "UNLOCALIZED: Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "UNLOCALIZED: Boiler Status",
|
||||
"create.display_source.entity_name": "UNLOCALIZED: Entity Name",
|
||||
"create.display_source.kinetic_speed": "UNLOCALIZED: Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "UNLOCALIZED: Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "UNLOCALIZED: Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "UNLOCALIZED: Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "UNLOCALIZED: Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "UNLOCALIZED: Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "UNLOCALIZED: Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "UNLOCALIZED: Line %1$s",
|
||||
"create.display_target.page": "UNLOCALIZED: Page %1$s",
|
||||
|
@ -1559,8 +1572,9 @@
|
|||
"create.flap_display.cycles.numeric": "UNLOCALIZED: ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": "UNLOCALIZED: ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": "UNLOCALIZED: ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "UNLOCALIZED: mB;B ",
|
||||
"create.flap_display.cycles.instant": "UNLOCALIZED: ; ",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▒",
|
||||
"create.flap_display.cycles.pixel": "UNLOCALIZED: █;▓;▒",
|
||||
|
||||
"create.super_glue.too_far": "UNLOCALIZED: Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "UNLOCALIZED: Selected blocks must be connected",
|
||||
|
|
|
@ -163,11 +163,17 @@ import com.simibubi.create.content.logistics.block.diodes.ToggleLatchGenerator;
|
|||
import com.simibubi.create.content.logistics.block.display.DisplayLinkBlock;
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkBlockItem;
|
||||
import com.simibubi.create.content.logistics.block.display.source.AccumulatedItemCountDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.BoilerDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.EntityNameDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.FillLevelDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.FluidAmountDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.FluidListDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ItemCountDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ItemListDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ItemNameDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ItemThoughputDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.KineticSpeedDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.KineticStressDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ObservedTrainNameSource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.StationSummaryDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.StopWatchDisplaySource;
|
||||
|
@ -718,6 +724,7 @@ public class AllBlocks {
|
|||
.transform(axeOrPickaxe())
|
||||
.transform(BlockStressDefaults.setNoImpact())
|
||||
.blockstate(new GaugeGenerator()::generate)
|
||||
.onRegister(assignDataBehaviour(new KineticSpeedDisplaySource(), "kinetic_speed"))
|
||||
.item()
|
||||
.transform(ModelGen.customItemModel("gauge", "_", "item"))
|
||||
.register();
|
||||
|
@ -728,6 +735,10 @@ public class AllBlocks {
|
|||
.transform(axeOrPickaxe())
|
||||
.transform(BlockStressDefaults.setNoImpact())
|
||||
.blockstate(new GaugeGenerator()::generate)
|
||||
.onRegister(assignDataBehaviour(new KineticStressDisplaySource.Current(), "kinetic_stress_current"))
|
||||
.onRegister(assignDataBehaviour(new KineticStressDisplaySource.Percent(), "kinetic_stress_percent"))
|
||||
.onRegister(assignDataBehaviour(new KineticStressDisplaySource.Max(), "kinetic_stress_max"))
|
||||
.onRegister(assignDataBehaviour(new KineticStressDisplaySource.Remaining(), "kinetic_stress_remaining"))
|
||||
.item()
|
||||
.transform(ModelGen.customItemModel("gauge", "_", "item"))
|
||||
.register();
|
||||
|
@ -897,6 +908,7 @@ public class AllBlocks {
|
|||
.transform(pickaxeOnly())
|
||||
.blockstate(new FluidTankGenerator()::generate)
|
||||
.onRegister(CreateRegistrate.blockModel(() -> FluidTankModel::standard))
|
||||
.onRegister(assignDataBehaviour(new BoilerDisplaySource(), "boiler_status"))
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.item(FluidTankItem::new)
|
||||
.model(AssetLookup.<FluidTankItem>customBlockItemModel("_", "block_single_window"))
|
||||
|
@ -1297,6 +1309,7 @@ public class AllBlocks {
|
|||
.transform(axeOnly())
|
||||
.onRegister(addMovementBehaviour(movementBehaviour))
|
||||
.onRegister(addInteractionBehaviour(interactionBehaviour))
|
||||
.onRegister(assignDataBehaviour(new EntityNameDisplaySource(), "entity_name"))
|
||||
.blockstate((c, p) -> {
|
||||
p.simpleBlock(c.get(), p.models()
|
||||
.withExistingParent(colourName + "_seat", p.modLoc("block/seat"))
|
||||
|
@ -1689,6 +1702,8 @@ public class AllBlocks {
|
|||
.blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.forPowered(c, p)))
|
||||
.onRegister(assignDataBehaviour(new ItemCountDisplaySource(), "count_items"))
|
||||
.onRegister(assignDataBehaviour(new ItemListDisplaySource(), "list_items"))
|
||||
.onRegister(assignDataBehaviour(new FluidAmountDisplaySource(), "count_fluids"))
|
||||
.onRegister(assignDataBehaviour(new FluidListDisplaySource(), "list_fluids"))
|
||||
.item()
|
||||
.transform(customItemModel("_", "block"))
|
||||
.register();
|
||||
|
|
|
@ -168,7 +168,7 @@ public abstract class CreateRecipeCategory<T extends Recipe<?>> implements IReci
|
|||
}
|
||||
|
||||
int amount = amounts.get(index != -1 ? 0 : slotIndex);
|
||||
Component text = (Lang.translate("generic.unit.millibuckets", amount)).withStyle(ChatFormatting.GOLD);
|
||||
Component text = new TextComponent(String.valueOf(amount)).append(Lang.translate("generic.unit.millibuckets")).withStyle(ChatFormatting.GOLD);
|
||||
if (tooltip.isEmpty())
|
||||
tooltip.add(0, text);
|
||||
else {
|
||||
|
|
|
@ -3,6 +3,8 @@ package com.simibubi.create.content.contraptions.fluids.tank;
|
|||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.components.steam.SteamEngineBlock;
|
||||
|
@ -51,6 +53,12 @@ public class BoilerData {
|
|||
public int attachedEngines;
|
||||
public int attachedWhistles;
|
||||
|
||||
// display
|
||||
private int maxHeatForSize = 0;
|
||||
private int maxHeatForWater = 0;
|
||||
private int minValue = 0;
|
||||
private int maxValue = 0;
|
||||
|
||||
public LerpedFloat gauge = LerpedFloat.linear();
|
||||
|
||||
public void tick(FluidTankTileEntity controller) {
|
||||
|
@ -99,8 +107,13 @@ public class BoilerData {
|
|||
return (int) Math.min(18, Mth.ceil(waterSupply) / waterSupplyPerLevel);
|
||||
}
|
||||
|
||||
public boolean isPassive() {
|
||||
return passiveHeat && maxHeatForSize > 0 && maxHeatForWater > 0;
|
||||
}
|
||||
|
||||
public boolean isPassive(int boilerSize) {
|
||||
return passiveHeat && getMaxHeatLevelForBoilerSize(boilerSize) > 0 && getMaxHeatLevelForWaterSupply() > 0;
|
||||
calcMinMaxForSize(boilerSize);
|
||||
return isPassive();
|
||||
}
|
||||
|
||||
public float getEngineEfficiency(int boilerSize) {
|
||||
|
@ -119,44 +132,25 @@ public class BoilerData {
|
|||
return actualHeat;
|
||||
}
|
||||
|
||||
String spacing = " ";
|
||||
Component componentSpacing = new TextComponent(spacing);
|
||||
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking, int boilerSize) {
|
||||
if (!isActive())
|
||||
return false;
|
||||
|
||||
int forBoilerSize = getMaxHeatLevelForBoilerSize(boilerSize);
|
||||
int forWaterSupply = getMaxHeatLevelForWaterSupply();
|
||||
int boilerLevel = Math.min(activeHeat, Math.min(forWaterSupply, forBoilerSize));
|
||||
Component indent = new TextComponent(IHaveGoggleInformation.spacing);
|
||||
Component indent2 = new TextComponent(IHaveGoggleInformation.spacing + " ");
|
||||
|
||||
int minValue = Math.min(passiveHeat ? 1 : activeHeat, Math.min(forWaterSupply, forBoilerSize));
|
||||
int maxValue = Math.max(passiveHeat ? 1 : activeHeat, Math.max(forWaterSupply, forBoilerSize));
|
||||
calcMinMaxForSize(boilerSize);
|
||||
|
||||
TextComponent heatLevel = isPassive(boilerSize) ? new TextComponent("Passive")
|
||||
: (boilerLevel == 0 ? new TextComponent("Idle")
|
||||
: boilerLevel == 18 ? new TextComponent("Max")
|
||||
: new TextComponent("Lvl " + IHaveGoggleInformation.format(boilerLevel)));
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
.append(new TextComponent("Boiler Status: ").append(heatLevel.withStyle(ChatFormatting.GREEN))));
|
||||
|
||||
Component h = levelComponent("Heat ...... ", passiveHeat ? 1 : activeHeat, minValue, maxValue);
|
||||
Component w = levelComponent("Water ... ", forWaterSupply, minValue, maxValue);
|
||||
Component s = levelComponent("Size ....... ", forBoilerSize, minValue, maxValue);
|
||||
|
||||
Component indent = new TextComponent(spacing);
|
||||
Component indent2 = new TextComponent(spacing + " ");
|
||||
|
||||
tooltip.add(indent2.plainCopy()
|
||||
.append(s));
|
||||
tooltip.add(indent2.plainCopy()
|
||||
.append(w));
|
||||
tooltip.add(indent2.plainCopy()
|
||||
.append(h));
|
||||
tooltip.add(indent.plainCopy().append(new TextComponent("Boiler Status: ").append(getHeatLevelTextComponent().withStyle(ChatFormatting.GREEN))));
|
||||
tooltip.add(indent2.plainCopy().append(getSizeComponent(true, false)));
|
||||
tooltip.add(indent2.plainCopy().append(getWaterComponent(true, false)));
|
||||
tooltip.add(indent2.plainCopy().append(getHeatComponent(true, false)));
|
||||
|
||||
if (attachedEngines == 0)
|
||||
return true;
|
||||
|
||||
int boilerLevel = Math.min(activeHeat, Math.min(maxHeatForWater, maxHeatForSize));
|
||||
|
||||
double totalSU = getEngineEfficiency(boilerSize) * 16 * Math.max(boilerLevel, attachedEngines)
|
||||
* BlockStressValues.getCapacity(AllBlocks.STEAM_ENGINE.get());
|
||||
Component capacity =
|
||||
|
@ -176,20 +170,67 @@ public class BoilerData {
|
|||
return true;
|
||||
}
|
||||
|
||||
private MutableComponent levelComponent(String text, int level, int min, int max) {
|
||||
int indexOf = text.indexOf(".");
|
||||
String label = text.substring(0, indexOf);
|
||||
String dots = text.substring(indexOf);
|
||||
MutableComponent c = new TextComponent(label).withStyle(ChatFormatting.GRAY)
|
||||
.append(new TextComponent(dots).withStyle(ChatFormatting.DARK_GRAY));
|
||||
public void calcMinMaxForSize(int boilerSize) {
|
||||
maxHeatForSize = getMaxHeatLevelForBoilerSize(boilerSize);
|
||||
maxHeatForWater = getMaxHeatLevelForWaterSupply();
|
||||
|
||||
c.append(bars(Math.max(0, min - 1), ChatFormatting.DARK_GREEN));
|
||||
c.append(bars(min > 0 ? 1 : 0, ChatFormatting.GREEN));
|
||||
c.append(bars(Math.max(0, level - min), ChatFormatting.DARK_GREEN));
|
||||
c.append(bars(Math.max(0, max - level), ChatFormatting.DARK_RED));
|
||||
c.append(bars(Math.max(0, Math.min(18 - max, ((max / 5 + 1) * 5) - max)), ChatFormatting.DARK_GRAY));
|
||||
minValue = Math.min(passiveHeat ? 1 : activeHeat, Math.min(maxHeatForWater, maxHeatForSize));
|
||||
maxValue = Math.max(passiveHeat ? 1 : activeHeat, Math.max(maxHeatForWater, maxHeatForSize));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public TextComponent getHeatLevelTextComponent() {
|
||||
int boilerLevel = Math.min(activeHeat, Math.min(maxHeatForWater, maxHeatForSize));
|
||||
|
||||
return isPassive() ? new TextComponent("Passive")
|
||||
: (boilerLevel == 0 ? new TextComponent("Idle")
|
||||
: boilerLevel == 18 ? new TextComponent("Max")
|
||||
: new TextComponent("Lvl " + IHaveGoggleInformation.format(boilerLevel)));
|
||||
}
|
||||
|
||||
public MutableComponent getSizeComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) {
|
||||
return componentHelper("Size ", "....... ", maxHeatForSize, forGoggles, useBlocksAsBars, styles);
|
||||
}
|
||||
|
||||
public MutableComponent getWaterComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) {
|
||||
return componentHelper("Water ", "... ", maxHeatForWater, forGoggles, useBlocksAsBars, styles);
|
||||
}
|
||||
|
||||
public MutableComponent getHeatComponent(boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) {
|
||||
return componentHelper("Heat ", "...... ", passiveHeat ? 1 : activeHeat, forGoggles, useBlocksAsBars, styles);
|
||||
}
|
||||
|
||||
private MutableComponent componentHelper(String label, String dots, int level, boolean forGoggles, boolean useBlocksAsBars, ChatFormatting... styles) {
|
||||
MutableComponent base = useBlocksAsBars ? blockComponent(level) : barComponent(level);
|
||||
|
||||
if (!forGoggles)
|
||||
return base;
|
||||
|
||||
ChatFormatting style1 = styles.length >= 1 ? styles[0] : ChatFormatting.GRAY;
|
||||
ChatFormatting style2 = styles.length >= 2 ? styles[1] : ChatFormatting.DARK_GRAY;
|
||||
|
||||
return new TextComponent(label).withStyle(style1)
|
||||
.append(new TextComponent(dots).withStyle(style2))
|
||||
.append(base);
|
||||
}
|
||||
|
||||
|
||||
private MutableComponent blockComponent(int level) {
|
||||
return new TextComponent("" +
|
||||
"\u2588".repeat(minValue) +
|
||||
"\u2592".repeat(level - minValue) +
|
||||
"\u2591".repeat(maxValue - level)
|
||||
);
|
||||
}
|
||||
|
||||
private MutableComponent barComponent(int level) {
|
||||
return TextComponent.EMPTY.copy()
|
||||
.append(bars(Math.max(0, minValue - 1), ChatFormatting.DARK_GREEN))
|
||||
.append(bars(minValue > 0 ? 1 : 0, ChatFormatting.GREEN))
|
||||
.append(bars(Math.max(0, level - minValue), ChatFormatting.DARK_GREEN))
|
||||
.append(bars(Math.max(0, maxValue - level), ChatFormatting.DARK_RED))
|
||||
.append(bars(Math.max(0, Math.min(18 - maxValue, ((maxValue / 5 + 1) * 5) - maxValue)), ChatFormatting.DARK_GRAY));
|
||||
|
||||
return c;
|
||||
}
|
||||
|
||||
private MutableComponent bars(int level, ChatFormatting format) {
|
||||
|
|
|
@ -8,8 +8,9 @@ import java.util.List;
|
|||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.logistics.block.display.source.DeathCounterDataSource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.DeathCounterDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.DisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.EnchantPowerDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ScoreboardDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.target.DisplayTarget;
|
||||
import com.simibubi.create.content.logistics.block.display.target.LecternDisplayTarget;
|
||||
|
@ -177,9 +178,8 @@ public class AllDisplayBehaviours {
|
|||
public static void register() {
|
||||
assign(register(Create.asResource("sign_display_target"), new SignDisplayTarget()), BlockEntityType.SIGN);
|
||||
assign(register(Create.asResource("lectern_display_target"), new LecternDisplayTarget()), BlockEntityType.LECTERN);
|
||||
assign(register(Create.asResource("death_count_display_source"), new DeathCounterDataSource()),
|
||||
Blocks.RESPAWN_ANCHOR);
|
||||
assign(register(Create.asResource("scoreboard_display_source"), new ScoreboardDisplaySource()),
|
||||
BlockEntityType.COMMAND_BLOCK);
|
||||
assign(register(Create.asResource("death_count_display_source"), new DeathCounterDisplaySource()), Blocks.RESPAWN_ANCHOR);
|
||||
assign(register(Create.asResource("scoreboard_display_source"), new ScoreboardDisplaySource()), BlockEntityType.COMMAND_BLOCK);
|
||||
assign(register(Create.asResource("enchant_power_display_source"), new EnchantPowerDisplaySource()), BlockEntityType.ENCHANTING_TABLE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,22 +2,22 @@ package com.simibubi.create.content.logistics.block.display;
|
|||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.level.LevelAccessor;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
|
||||
public class DisplayLinkContext {
|
||||
|
||||
private LevelAccessor level;
|
||||
private Level level;
|
||||
private DisplayLinkTileEntity te;
|
||||
|
||||
public Object flapDisplayContext;
|
||||
|
||||
public DisplayLinkContext(LevelAccessor level, DisplayLinkTileEntity te) {
|
||||
public DisplayLinkContext(Level level, DisplayLinkTileEntity te) {
|
||||
this.level = level;
|
||||
this.te = te;
|
||||
}
|
||||
|
||||
public LevelAccessor level() {
|
||||
public Level level() {
|
||||
return level;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,129 @@
|
|||
package com.simibubi.create.content.logistics.block.display.source;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.simibubi.create.content.contraptions.fluids.tank.BoilerData;
|
||||
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayLayout;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplaySection;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity;
|
||||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.LecternBlockEntity;
|
||||
|
||||
public class BoilerDisplaySource extends DisplaySource {
|
||||
|
||||
public static final List<MutableComponent> notEnoughSpaceSingle = List.of(new TextComponent("Not enough space for Boiler Status!"));
|
||||
public static final List<MutableComponent> notEnoughSpaceDouble = List.of(new TextComponent("Not enough space"), new TextComponent("for Boiler Status!"));
|
||||
public static final List<List<MutableComponent>> notEnoughSpaceFlap = List.of(List.of(new TextComponent("Not enough space")), List.of(new TextComponent("for Boiler Status!")));
|
||||
|
||||
@Override
|
||||
public List<MutableComponent> provideText(DisplayLinkContext context, DisplayTargetStats stats) {
|
||||
if (stats.maxRows() < 2) {
|
||||
return notEnoughSpaceSingle;
|
||||
} else if (stats.maxRows() < 4) {
|
||||
return notEnoughSpaceDouble;
|
||||
}
|
||||
|
||||
boolean isBook = context.getTargetTE() instanceof LecternBlockEntity;
|
||||
|
||||
if (isBook) {
|
||||
Stream<MutableComponent> componentList = getComponents(context, false)
|
||||
.map(components -> {
|
||||
Optional<MutableComponent> reduce = components.stream().reduce(MutableComponent::append);
|
||||
return reduce.orElse(EMPTY_LINE);
|
||||
});
|
||||
|
||||
return List.of(componentList.reduce((comp1, comp2) -> comp1.append(new TextComponent("\n")).append(comp2)).orElse(EMPTY_LINE));
|
||||
}
|
||||
|
||||
return getComponents(context, false)
|
||||
.map(components -> {
|
||||
Optional<MutableComponent> reduce = components.stream().reduce(MutableComponent::append);
|
||||
return reduce.orElse(EMPTY_LINE);
|
||||
}).toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<List<MutableComponent>> provideFlapDisplayText(DisplayLinkContext context, DisplayTargetStats stats) {
|
||||
if (stats.maxRows() < 4) {
|
||||
context.flapDisplayContext = Boolean.FALSE;
|
||||
return notEnoughSpaceFlap;
|
||||
}
|
||||
|
||||
List<List<MutableComponent>> components = getComponents(context, true).toList();
|
||||
|
||||
if (stats.maxColumns() * FlapDisplaySection.MONOSPACE < 6 * FlapDisplaySection.MONOSPACE + components.get(1).get(1).getString().length() * FlapDisplaySection.WIDE_MONOSPACE) {
|
||||
context.flapDisplayContext = Boolean.FALSE;
|
||||
return notEnoughSpaceFlap;
|
||||
}
|
||||
|
||||
return components;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadFlapDisplayLayout(DisplayLinkContext context, FlapDisplayTileEntity flapDisplay, FlapDisplayLayout layout, int lineIndex) {
|
||||
if (lineIndex == 0 || context.flapDisplayContext instanceof Boolean b && !b) {
|
||||
if (layout.isLayout("Default"))
|
||||
return;
|
||||
|
||||
layout.loadDefault(flapDisplay.getMaxCharCount());
|
||||
return;
|
||||
}
|
||||
|
||||
String layoutKey = "Boiler";
|
||||
if (layout.isLayout(layoutKey))
|
||||
return;
|
||||
|
||||
int labelLength = (int) (5 * FlapDisplaySection.MONOSPACE);
|
||||
float maxSpace = flapDisplay.getMaxCharCount(1) * FlapDisplaySection.MONOSPACE;
|
||||
FlapDisplaySection label = new FlapDisplaySection(labelLength, "alphabet", false, true);
|
||||
FlapDisplaySection symbols = new FlapDisplaySection(maxSpace - labelLength, "pixel", false, false).wideFlaps();
|
||||
|
||||
layout.configure(layoutKey, List.of(label, symbols));
|
||||
}
|
||||
|
||||
private Stream<List<MutableComponent>> getComponents(DisplayLinkContext context, boolean forFlapDisplay) {
|
||||
BlockEntity sourceTE = context.getSourceTE();
|
||||
if (!(sourceTE instanceof FluidTankTileEntity tankTile))
|
||||
return Stream.of(EMPTY);
|
||||
|
||||
tankTile = tankTile.getControllerTE();
|
||||
if (tankTile == null)
|
||||
return Stream.of(EMPTY);
|
||||
|
||||
BoilerData boiler = tankTile.boiler;
|
||||
|
||||
int totalTankSize = tankTile.getTotalTankSize();
|
||||
|
||||
boiler.calcMinMaxForSize(totalTankSize);
|
||||
|
||||
String label = forFlapDisplay ? "Boiler Status: " : "Boiler:";
|
||||
String size = forFlapDisplay ? " Size" : "";
|
||||
String water = forFlapDisplay ? "Water" : "";
|
||||
String heat = forFlapDisplay ? " Heat" : "";
|
||||
|
||||
//String size = forFlapDisplay ? " Size" : "\u21d5";
|
||||
//String water = forFlapDisplay ? "Water" : "\ud83c\udf0a";
|
||||
//String heat = forFlapDisplay ? " Heat" : "\ud83d\udd25";
|
||||
|
||||
return Stream.of(
|
||||
List.of(new TextComponent(label).append(boiler.getHeatLevelTextComponent())),
|
||||
List.of(new TextComponent(size), boiler.getSizeComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK)),
|
||||
List.of(new TextComponent(water), boiler.getWaterComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK)),
|
||||
List.of(new TextComponent(heat), boiler.getHeatComponent(!forFlapDisplay, forFlapDisplay, ChatFormatting.BLACK))
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "boiler_status";
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ import net.minecraft.network.chat.Component;
|
|||
import net.minecraft.server.level.ServerPlayer;
|
||||
import net.minecraft.stats.Stats;
|
||||
|
||||
public class DeathCounterDataSource extends StatTrackingDisplaySource {
|
||||
public class DeathCounterDisplaySource extends StatTrackingDisplaySource {
|
||||
|
||||
@Override
|
||||
protected int updatedScoreOf(ServerPlayer player) {
|
|
@ -57,6 +57,10 @@ public abstract class DisplaySource extends DisplayBehaviour {
|
|||
return new TranslatableComponent(id.getNamespace() + ".display_source." + getTranslationKey());
|
||||
}
|
||||
|
||||
public void loadFlapDisplayLayout(DisplayLinkContext context, FlapDisplayTileEntity flapDisplay, FlapDisplayLayout layout, int lineIndex) {
|
||||
loadFlapDisplayLayout(context, flapDisplay, layout);
|
||||
}
|
||||
|
||||
public void loadFlapDisplayLayout(DisplayLinkContext context, FlapDisplayTileEntity flapDisplay,
|
||||
FlapDisplayLayout layout) {
|
||||
if (!layout.isLayout("Default"))
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
package com.simibubi.create.content.logistics.block.display.source;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.EnchantmentTableBlock;
|
||||
import net.minecraft.world.level.block.entity.EnchantmentTableBlockEntity;
|
||||
|
||||
public class EnchantPowerDisplaySource extends NumericSingleLineDisplaySource {
|
||||
|
||||
protected static final Random random = new Random();
|
||||
protected static final ItemStack stack = new ItemStack(Items.DIAMOND_PICKAXE);
|
||||
|
||||
@Override
|
||||
protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) {
|
||||
if (!(context.getSourceTE() instanceof EnchantmentTableBlockEntity enchantmentTile))
|
||||
return ZERO;
|
||||
|
||||
BlockPos pos = context.getSourcePos();
|
||||
Level level = context.level();
|
||||
float enchantPower = 0;
|
||||
|
||||
for(BlockPos offset : EnchantmentTableBlock.BOOKSHELF_OFFSETS) {
|
||||
if (!EnchantmentTableBlock.isValidBookShelf(level, pos, offset))
|
||||
continue;
|
||||
|
||||
enchantPower += level.getBlockState(pos.offset(offset)).getEnchantPowerBonus(level, pos.offset(offset));
|
||||
}
|
||||
|
||||
|
||||
int cost = EnchantmentHelper.getEnchantmentCost(random, 2, (int) enchantPower, stack);
|
||||
|
||||
return new TextComponent(String.valueOf(cost));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "max_enchant_level";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean allowsLabeling(DisplayLinkContext context) {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.simibubi.create.content.logistics.block.display.source;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.content.contraptions.components.actors.SeatEntity;
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
||||
public class EntityNameDisplaySource extends SingleLineDisplaySource {
|
||||
@Override
|
||||
protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) {
|
||||
List<SeatEntity> seats = context.level().getEntitiesOfClass(SeatEntity.class, new AABB(context.getSourcePos()));
|
||||
|
||||
if (seats.isEmpty())
|
||||
return EMPTY_LINE;
|
||||
|
||||
SeatEntity seatEntity = seats.get(0);
|
||||
List<Entity> passengers = seatEntity.getPassengers();
|
||||
|
||||
if (passengers.isEmpty())
|
||||
return EMPTY_LINE;
|
||||
|
||||
return passengers.get(0).getDisplayName().copy();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "entity_name";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean allowsLabeling(DisplayLinkContext context) {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
package com.simibubi.create.content.logistics.block.display.source;
|
||||
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats;
|
||||
import com.simibubi.create.content.logistics.block.redstone.ContentObserverTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.inventory.TankManipulationBehaviour;
|
||||
import com.simibubi.create.foundation.utility.FluidFormatter;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
|
||||
public class FluidAmountDisplaySource extends SingleLineDisplaySource {
|
||||
|
||||
@Override
|
||||
protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) {
|
||||
BlockEntity sourceTE = context.getSourceTE();
|
||||
if (!(sourceTE instanceof ContentObserverTileEntity cote))
|
||||
return EMPTY_LINE;
|
||||
|
||||
TankManipulationBehaviour tankManipulationBehaviour = cote.getBehaviour(TankManipulationBehaviour.OBSERVE);
|
||||
FilteringBehaviour filteringBehaviour = cote.getBehaviour(FilteringBehaviour.TYPE);
|
||||
IFluidHandler handler = tankManipulationBehaviour.getInventory();
|
||||
|
||||
if (handler == null)
|
||||
return EMPTY_LINE;
|
||||
|
||||
long collected = 0;
|
||||
for (int i = 0; i < handler.getTanks(); i++) {
|
||||
FluidStack stack = handler.getFluidInTank(i);
|
||||
if (stack.isEmpty())
|
||||
continue;
|
||||
if (!filteringBehaviour.test(stack))
|
||||
continue;
|
||||
collected += stack.getAmount();
|
||||
}
|
||||
|
||||
return new TextComponent(FluidFormatter.asString(collected, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "fluid_amount";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean allowsLabeling(DisplayLinkContext context) {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
package com.simibubi.create.content.logistics.block.display.source;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.apache.commons.lang3.mutable.MutableInt;
|
||||
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.redstone.ContentObserverTileEntity;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayLayout;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplaySection;
|
||||
import com.simibubi.create.content.logistics.trains.management.display.FlapDisplayTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.inventory.TankManipulationBehaviour;
|
||||
import com.simibubi.create.foundation.utility.Couple;
|
||||
import com.simibubi.create.foundation.utility.FluidFormatter;
|
||||
import com.simibubi.create.foundation.utility.IntAttached;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.material.Fluid;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
|
||||
public class FluidListDisplaySource extends ValueListDisplaySource {
|
||||
|
||||
|
||||
@Override
|
||||
protected Stream<IntAttached<MutableComponent>> provideEntries(DisplayLinkContext context, int maxRows) {
|
||||
BlockEntity sourceTE = context.getSourceTE();
|
||||
if (!(sourceTE instanceof ContentObserverTileEntity cote))
|
||||
return Stream.empty();
|
||||
|
||||
TankManipulationBehaviour tankManipulationBehaviour = cote.getBehaviour(TankManipulationBehaviour.OBSERVE);
|
||||
FilteringBehaviour filteringBehaviour = cote.getBehaviour(FilteringBehaviour.TYPE);
|
||||
IFluidHandler handler = tankManipulationBehaviour.getInventory();
|
||||
|
||||
if (handler == null)
|
||||
return Stream.empty();
|
||||
|
||||
|
||||
Map<Fluid, Integer> fluids = new HashMap<>();
|
||||
Map<Fluid, FluidStack> fluidNames = new HashMap<>();
|
||||
|
||||
for (int i = 0; i < handler.getTanks(); i++) {
|
||||
FluidStack stack = handler.getFluidInTank(i);
|
||||
if (stack.isEmpty())
|
||||
continue;
|
||||
if (!filteringBehaviour.test(stack))
|
||||
continue;
|
||||
|
||||
fluids.merge(stack.getFluid(), stack.getAmount(), Integer::sum);
|
||||
fluidNames.putIfAbsent(stack.getFluid(), stack);
|
||||
}
|
||||
|
||||
return fluids.entrySet()
|
||||
.stream()
|
||||
.sorted((Comparator.comparingInt(value -> ((Map.Entry<Fluid, Integer>) value).getValue()).reversed()))
|
||||
.limit(maxRows)
|
||||
.map(entry -> IntAttached.with(
|
||||
entry.getValue(),
|
||||
new TranslatableComponent(fluidNames.get(entry.getKey()).getTranslationKey()))
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<MutableComponent> createComponentsFromEntry(DisplayLinkContext context, IntAttached<MutableComponent> entry) {
|
||||
int amount = entry.getFirst();
|
||||
MutableComponent name = entry.getSecond().append(WHITESPACE);
|
||||
|
||||
Couple<MutableComponent> formatted = FluidFormatter.asComponents(amount, shortenNumbers(context));
|
||||
|
||||
return List.of(formatted.getFirst(), formatted.getSecond(), name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadFlapDisplayLayout(DisplayLinkContext context, FlapDisplayTileEntity flapDisplay, FlapDisplayLayout layout) {
|
||||
Integer max = ((MutableInt) context.flapDisplayContext).getValue();
|
||||
boolean shorten = shortenNumbers(context);
|
||||
int length = FluidFormatter.asString(max, shorten).length();
|
||||
String layoutKey = "FluidList_" + length;
|
||||
|
||||
if (layout.isLayout(layoutKey))
|
||||
return;
|
||||
|
||||
int maxCharCount = flapDisplay.getMaxCharCount(1);
|
||||
int numberLength = Math.min(maxCharCount, Math.max(3, length - 2));
|
||||
int nameLength = Math.max(maxCharCount - numberLength - 2, 0);
|
||||
|
||||
FlapDisplaySection value = new FlapDisplaySection(FlapDisplaySection.MONOSPACE * numberLength, "number", false, false).rightAligned();
|
||||
FlapDisplaySection unit = new FlapDisplaySection(FlapDisplaySection.MONOSPACE * 2, "fluid_units", true, true);
|
||||
FlapDisplaySection name = new FlapDisplaySection(FlapDisplaySection.MONOSPACE * nameLength, "alphabet", false, false);
|
||||
|
||||
layout.configure(layoutKey, List.of(value, unit, name));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "list_fluids";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean valueFirst() {
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
package com.simibubi.create.content.logistics.block.display.source;
|
||||
|
||||
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats;
|
||||
import com.simibubi.create.foundation.gui.ModularGuiLineBuilder;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class KineticSpeedDisplaySource extends NumericSingleLineDisplaySource {
|
||||
|
||||
@Override
|
||||
protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) {
|
||||
if (!(context.getSourceTE() instanceof SpeedGaugeTileEntity gaugeTile))
|
||||
return ZERO;
|
||||
|
||||
boolean absoluteValue = context.sourceConfig().getInt("Directional") == 0;
|
||||
float speed = absoluteValue ? Math.abs(gaugeTile.getSpeed()) : gaugeTile.getSpeed();
|
||||
|
||||
return new TextComponent(IHaveGoggleInformation.format(speed));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "kinetic_speed";
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void initConfigurationWidgets(DisplayLinkContext context, ModularGuiLineBuilder builder, boolean isFirstLine) {
|
||||
super.initConfigurationWidgets(context, builder, isFirstLine);
|
||||
if (isFirstLine)
|
||||
return;
|
||||
|
||||
builder.addSelectionScrollInput(0, 95, (selectionScrollInput, label) -> {
|
||||
selectionScrollInput.forOptions(Lang.translatedOptions("display_source.kinetic_speed", "absolute", "directional"));
|
||||
}, "Directional");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean allowsLabeling(DisplayLinkContext context) {
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
package com.simibubi.create.content.logistics.block.display.source;
|
||||
|
||||
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.display.DisplayLinkContext;
|
||||
import com.simibubi.create.content.logistics.block.display.target.DisplayTargetStats;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
|
||||
public abstract class KineticStressDisplaySource extends NumericSingleLineDisplaySource {
|
||||
|
||||
protected abstract double getValue(StressGaugeTileEntity gaugeTile);
|
||||
|
||||
@Override
|
||||
protected MutableComponent provideLine(DisplayLinkContext context, DisplayTargetStats stats) {
|
||||
if (!(context.getSourceTE() instanceof StressGaugeTileEntity gaugeTile))
|
||||
return ZERO;
|
||||
|
||||
return new TextComponent(IHaveGoggleInformation.format(getValue(gaugeTile)));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean allowsLabeling(DisplayLinkContext context) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static class Current extends KineticStressDisplaySource {
|
||||
|
||||
@Override
|
||||
protected double getValue(StressGaugeTileEntity gaugeTile) {
|
||||
return gaugeTile.getNetworkStress();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "kinetic_stress.current";
|
||||
}
|
||||
}
|
||||
|
||||
public static class Max extends KineticStressDisplaySource {
|
||||
|
||||
@Override
|
||||
protected double getValue(StressGaugeTileEntity gaugeTile) {
|
||||
return gaugeTile.getNetworkCapacity();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "kinetic_stress.max";
|
||||
}
|
||||
}
|
||||
|
||||
public static class Percent extends KineticStressDisplaySource {
|
||||
|
||||
@Override
|
||||
protected double getValue(StressGaugeTileEntity gaugeTile) {
|
||||
return gaugeTile.getNetworkStress() / gaugeTile.getNetworkCapacity() * 100;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "kinetic_stress.percent";
|
||||
}
|
||||
}
|
||||
|
||||
public static class Remaining extends KineticStressDisplaySource {
|
||||
|
||||
@Override
|
||||
protected double getValue(StressGaugeTileEntity gaugeTile) {
|
||||
return gaugeTile.getNetworkCapacity() - gaugeTile.getNetworkStress();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getTranslationKey() {
|
||||
return "kinetic_stress.remaining";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -47,7 +47,7 @@ public class DisplayBoardTarget extends DisplayTarget {
|
|||
continue;
|
||||
}
|
||||
|
||||
source.loadFlapDisplayLayout(context, controller, layout);
|
||||
source.loadFlapDisplayLayout(context, controller, layout, i);
|
||||
|
||||
for (int sectionIndex = 0; sectionIndex < layout.getSections()
|
||||
.size(); sectionIndex++) {
|
||||
|
|
|
@ -56,8 +56,8 @@ public class LecternDisplayTarget extends DisplayTarget {
|
|||
.put("pages", tag);
|
||||
lectern.setBook(book);
|
||||
|
||||
if (changed && context.level()instanceof Level level)
|
||||
level.sendBlockUpdated(context.getTargetPos(), lectern.getBlockState(), lectern.getBlockState(), 2);
|
||||
if (changed)
|
||||
context.level().sendBlockUpdated(context.getTargetPos(), lectern.getBlockState(), lectern.getBlockState(), 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -28,8 +28,8 @@ public class SignDisplayTarget extends DisplayTarget {
|
|||
changed = true;
|
||||
}
|
||||
|
||||
if (changed && context.level()instanceof Level level)
|
||||
level.sendBlockUpdated(context.getTargetPos(), sign.getBlockState(), sign.getBlockState(), 2);
|
||||
if (changed)
|
||||
context.level().sendBlockUpdated(context.getTargetPos(), sign.getBlockState(), sign.getBlockState(), 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package com.simibubi.create.foundation.utility;
|
||||
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
|
||||
public class FluidFormatter {
|
||||
|
||||
public static String asString(long amount, boolean shorten) {
|
||||
Couple<MutableComponent> couple = asComponents(amount, shorten);
|
||||
return couple.getFirst().getString() + " " + couple.getSecond().getString();
|
||||
}
|
||||
|
||||
public static Couple<MutableComponent> asComponents(long amount, boolean shorten) {
|
||||
if (shorten && amount >= 1000) {
|
||||
return Couple.create(
|
||||
new TextComponent(String.format("%.1f" , amount / 1000d)),
|
||||
Lang.translate("generic.unit.buckets")
|
||||
);
|
||||
}
|
||||
|
||||
return Couple.create(
|
||||
new TextComponent(String.valueOf(amount)),
|
||||
Lang.translate("generic.unit.millibuckets")
|
||||
);
|
||||
}
|
||||
|
||||
}
|
|
@ -95,7 +95,8 @@
|
|||
"create.generic.unit.rpm": "RPM",
|
||||
"create.generic.unit.stress": "su",
|
||||
"create.generic.unit.degrees": "\u00B0",
|
||||
"create.generic.unit.millibuckets": "%1$smB",
|
||||
"create.generic.unit.millibuckets": "mB",
|
||||
"create.generic.unit.buckets": "B",
|
||||
"create.generic.clockwise": "Clockwise",
|
||||
"create.generic.counter_clockwise": "Counter-Clockwise",
|
||||
"create.generic.in_quotes": "\"%1$s\"",
|
||||
|
@ -727,6 +728,8 @@
|
|||
"create.display_source.combine_item_names": "Combine Item Names",
|
||||
"create.display_source.count_items": "Amount of matching Items",
|
||||
"create.display_source.list_items": "List matching Items",
|
||||
"create.display_source.fluid_amount": "Amount of matching Fluids",
|
||||
"create.display_source.list_fluids": "List matching Fluids",
|
||||
"create.display_source.nixie_tube": "Copy Nixie Tubes",
|
||||
"create.display_source.fill_level": "Container Fill Level",
|
||||
"create.display_source.fill_level.display": "Display Format",
|
||||
|
@ -761,6 +764,16 @@
|
|||
"create.display_source.station_summary.minutes": " min",
|
||||
"create.display_source.station_summary.seconds": "%1$ss",
|
||||
"create.display_source.observed_train_name": "Detected Train Name",
|
||||
"create.display_source.max_enchant_level": "Max Enchanting Cost",
|
||||
"create.display_source.boiler_status": "Boiler Status",
|
||||
"create.display_source.entity_name": "Entity Name",
|
||||
"create.display_source.kinetic_speed": "Rotation Speed (RPM)",
|
||||
"create.display_source.kinetic_speed.absolute": "Ignore Direction",
|
||||
"create.display_source.kinetic_speed.directional": "Include Direction",
|
||||
"create.display_source.kinetic_stress.current": "Stress Impact (Amount)",
|
||||
"create.display_source.kinetic_stress.max": "Stress Capacity (Max)",
|
||||
"create.display_source.kinetic_stress.percent": "Stress Impact (Percent)",
|
||||
"create.display_source.kinetic_stress.remaining": "Stress Capacity (Remaining)",
|
||||
|
||||
"create.display_target.line": "Line %1$s",
|
||||
"create.display_target.page": "Page %1$s",
|
||||
|
@ -770,8 +783,9 @@
|
|||
"create.flap_display.cycles.numeric": " ;0;1;2;3;4;5;6;7;8;9",
|
||||
"create.flap_display.cycles.arrival_time": " ; min;now;15s;30s;45s",
|
||||
"create.flap_display.cycles.shortened_numbers": " ;K;M",
|
||||
"create.flap_display.cycles.fluid_units": "mB;B ",
|
||||
"create.flap_display.cycles.instant": " ; ",
|
||||
"create.flap_display.cycles.pixel": "\u2588;\u2592",
|
||||
"create.flap_display.cycles.pixel": "\u2588;\u2593;\u2592",
|
||||
|
||||
"create.super_glue.too_far": "Selected area is too big",
|
||||
"create.super_glue.cannot_reach": "Selected blocks must be connected",
|
||||
|
|
Loading…
Reference in a new issue