mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-11 04:54:28 +01:00
Mixing up a Storm
- Reduced tps impact of basin recipe lookups noticeable in larger modpacks - Fixed Brass tunnels distributing back into the side items get inserted from - Fixed Brass tunnels distributing into sides blocked by an inserting funnel - Cargo Conditions in schedules now match any cargo if no filter is specified
This commit is contained in:
parent
09124ea92b
commit
4d4a959cfa
@ -559,23 +559,23 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
||||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json
|
||||
11fd391ac3015f4dace8138ab1ec423ee822c7b4 assets/create/lang/en_us.json
|
||||
da8d1341de295391fbb917b5bd82ddb16e9f96da assets/create/lang/unfinished/de_de.json
|
||||
b5487949ee53302706c15051157316bb60dfa070 assets/create/lang/unfinished/es_cl.json
|
||||
6df40ff1c18bfb83a33bc17e4458feeeee058bf1 assets/create/lang/unfinished/es_es.json
|
||||
bca24c29adf91e0ee09db39783c59fac843acb46 assets/create/lang/unfinished/fr_fr.json
|
||||
c27d2ba08da3b2a326d57c8f4e92adfc431a5b13 assets/create/lang/unfinished/it_it.json
|
||||
42a6713a509ecd676e7eae6e6492da1e20e79102 assets/create/lang/unfinished/ja_jp.json
|
||||
38e01a060e0e468a51b1ca4f0bcbec203837ce04 assets/create/lang/unfinished/ko_kr.json
|
||||
83d812a1003fa3f25a3c28bbf54bf93f583c594a assets/create/lang/unfinished/nl_nl.json
|
||||
ca5cc394354887f89ecbc609f345eeb0dc41c20f assets/create/lang/unfinished/pl_pl.json
|
||||
11b3809e9c4c3c61687f7789979fdbf2332fd6a4 assets/create/lang/unfinished/pt_br.json
|
||||
dd52b8df6ea92c1218e398197a1cedae066b4e0e assets/create/lang/unfinished/pt_pt.json
|
||||
954a947034232204bd415e4bfb6c59a3a448b604 assets/create/lang/unfinished/ro_ro.json
|
||||
46d3024cd82c9a8dc74f670a1fa19f4fade6db97 assets/create/lang/unfinished/ru_ru.json
|
||||
2f084cc7b66fe4ea82f5ac3338a1245caf67c54d assets/create/lang/unfinished/uk_ua.json
|
||||
82490ac29a0c35c07cde11c340634bf8b416b6a3 assets/create/lang/unfinished/zh_cn.json
|
||||
426b06805f08ef3fed15f404e9637b2d7082d660 assets/create/lang/unfinished/zh_tw.json
|
||||
c219c77242e645f32704201dd80e279b3759b794 assets/create/lang/en_us.json
|
||||
cf37534c3f98098f42b181083fd7cc1063ac2bbb assets/create/lang/unfinished/de_de.json
|
||||
83d427726fdc38ec3c5b8c3c0f6f87f49d3e5ff3 assets/create/lang/unfinished/es_cl.json
|
||||
d21caeb0cbe871e38dc101c34ab89ece3cbe2127 assets/create/lang/unfinished/es_es.json
|
||||
2215688baa2b0beffe0c19f71a3238df1d01b0c1 assets/create/lang/unfinished/fr_fr.json
|
||||
79484f2c3eba2b40f5d82ffdc3abeb3d2e6962d2 assets/create/lang/unfinished/it_it.json
|
||||
d659570c9dc89653f03cd4cc82ed50db443638d8 assets/create/lang/unfinished/ja_jp.json
|
||||
03c30521d9b1bc7a6eb85d2a59a4c4676dca581e assets/create/lang/unfinished/ko_kr.json
|
||||
3a56d579d022cc1b20746e9d3a1483e6fa8fb4be assets/create/lang/unfinished/nl_nl.json
|
||||
d5bfeacb442236c8b075fddb41364f85c8cb7feb assets/create/lang/unfinished/pl_pl.json
|
||||
0f3f51d065d896a7e3b4abd8c2801fa3e8fbd8c3 assets/create/lang/unfinished/pt_br.json
|
||||
9f2ec0b2f8fa9b380c7edb56bfb806bcce621cce assets/create/lang/unfinished/pt_pt.json
|
||||
1f88f0d91bdf5c68224cb65249f77272771939c9 assets/create/lang/unfinished/ro_ro.json
|
||||
d815a8642f6b7de3142877bb2a0b642a4e65ad32 assets/create/lang/unfinished/ru_ru.json
|
||||
ed29ef4ae8f3633533485d56f7fa8cb77b790a0a assets/create/lang/unfinished/uk_ua.json
|
||||
fa36855229bf63e2c4c6c8ce07cc2a1ab3c67592 assets/create/lang/unfinished/zh_cn.json
|
||||
316dae07f95fb65c984fe7c424b566eb8ddba5f9 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
|
||||
|
@ -1484,6 +1484,7 @@
|
||||
"create.schedule.condition.threshold.equal": "exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "Item Measure",
|
||||
"create.schedule.condition.threshold.items": "Items",
|
||||
"create.schedule.condition.threshold.stacks": "Stacks",
|
||||
@ -1491,6 +1492,7 @@
|
||||
"create.schedule.condition.threshold.status": "Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "Redstone Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 840",
|
||||
"_": "Missing Localizations: 842",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "genau",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "passender Inhalt",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "Maßeinheit",
|
||||
"create.schedule.condition.threshold.items": "Items",
|
||||
"create.schedule.condition.threshold.stacks": "Stacks",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "Zugladestand: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "Referenz-Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "Filter können verwendet werden",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "Flüssigkeitsladestand",
|
||||
"create.schedule.condition.item_threshold": "Item-Ladestand",
|
||||
"create.schedule.condition.redstone_link": "Redstone-Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 986",
|
||||
"_": "Missing Localizations: 988",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
|
||||
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
|
||||
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 6",
|
||||
"_": "Missing Localizations: 8",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "exactamente",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s de %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "Contenido coincidente",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "Medición de objetos",
|
||||
"create.schedule.condition.threshold.items": "Objetos",
|
||||
"create.schedule.condition.threshold.stacks": "Pilas de objetos",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "Cargamento: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "Objeto de referencia",
|
||||
"create.schedule.condition.threshold.place_item_2": "Los filtros se pueden usar",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "Condición de cargamento de fluidos",
|
||||
"create.schedule.condition.item_threshold": "Condición de cargamento de objetos",
|
||||
"create.schedule.condition.redstone_link": "Enlace de redstone",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 2137",
|
||||
"_": "Missing Localizations: 2139",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
|
||||
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
|
||||
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 0",
|
||||
"_": "Missing Localizations: 2",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "esattamente",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s di %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "Contenuto corrispondente",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "Misura",
|
||||
"create.schedule.condition.threshold.items": "Oggetti",
|
||||
"create.schedule.condition.threshold.stacks": "Stack",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "Carico: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "Oggetto di riferimento",
|
||||
"create.schedule.condition.threshold.place_item_2": "È permesso usare Filtri",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "Carico di fluidi",
|
||||
"create.schedule.condition.item_threshold": "Carico di oggetti",
|
||||
"create.schedule.condition.redstone_link": "Connessione redstone",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 2",
|
||||
"_": "Missing Localizations: 4",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "ぴったり",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$sの%3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "一致する貨物",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "アイテム単位",
|
||||
"create.schedule.condition.threshold.items": "個",
|
||||
"create.schedule.condition.threshold.stacks": "スタック",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "貨物: %1$s/%2$s%3$s",
|
||||
"create.schedule.condition.threshold.place_item": "参照アイテム",
|
||||
"create.schedule.condition.threshold.place_item_2": "フィルターも使えます",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "液体貨物の状態",
|
||||
"create.schedule.condition.item_threshold": "アイテム貨物の状態",
|
||||
"create.schedule.condition.redstone_link": "レッドストーンリンク",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 6",
|
||||
"_": "Missing Localizations: 8",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "다음과 동일하면",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%3$s %1$s %2$s",
|
||||
"create.schedule.condition.threshold.matching_content": "내용물 일치",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "아이템 단위",
|
||||
"create.schedule.condition.threshold.items": "개",
|
||||
"create.schedule.condition.threshold.stacks": "스택",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "저장소: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "기준 아이템",
|
||||
"create.schedule.condition.threshold.place_item_2": "필터를 사용할 수 있음",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "액체 저장소 조건",
|
||||
"create.schedule.condition.item_threshold": "아이템 저장소 조건",
|
||||
"create.schedule.condition.redstone_link": "레드스톤 링크",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 2485",
|
||||
"_": "Missing Localizations: 2487",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
|
||||
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
|
||||
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 10",
|
||||
"_": "Missing Localizations: 12",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "dokładnie",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s: %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "Pasująca zawartość",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "Jednostka przedmiotów",
|
||||
"create.schedule.condition.threshold.items": "Przemioty",
|
||||
"create.schedule.condition.threshold.stacks": "Stosy",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "Ładunek: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "Przedmiot odniesienia",
|
||||
"create.schedule.condition.threshold.place_item_2": "Filtry mogą zostać użyte",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "Warunek ładunku płynów",
|
||||
"create.schedule.condition.item_threshold": "Warunek ładunku przedmiotów",
|
||||
"create.schedule.condition.redstone_link": "Emiter sygnału",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 1329",
|
||||
"_": "Missing Localizations: 1331",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
|
||||
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
|
||||
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 2194",
|
||||
"_": "Missing Localizations: 2196",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
|
||||
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
|
||||
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 653",
|
||||
"_": "Missing Localizations: 655",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
|
||||
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
|
||||
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 0",
|
||||
"_": "Missing Localizations: 2",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "точно",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s (%3$s)",
|
||||
"create.schedule.condition.threshold.matching_content": "Определённое содержимое",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "Количество предметов",
|
||||
"create.schedule.condition.threshold.items": "штук",
|
||||
"create.schedule.condition.threshold.stacks": "стаков",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "Груз: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "Основной предмет",
|
||||
"create.schedule.condition.threshold.place_item_2": "Можно использовать фильтры",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "Состояние жидкого груза",
|
||||
"create.schedule.condition.item_threshold": "Состояние груза",
|
||||
"create.schedule.condition.redstone_link": "Беспроводной сигнал",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 984",
|
||||
"_": "Missing Localizations: 986",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "UNLOCALIZED: exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "UNLOCALIZED: %1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "UNLOCALIZED: Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "UNLOCALIZED: Item Measure",
|
||||
"create.schedule.condition.threshold.items": "UNLOCALIZED: Items",
|
||||
"create.schedule.condition.threshold.stacks": "UNLOCALIZED: Stacks",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "UNLOCALIZED: Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "UNLOCALIZED: Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "UNLOCALIZED: Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "UNLOCALIZED: Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "UNLOCALIZED: Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "UNLOCALIZED: Redstone Link",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 2",
|
||||
"_": "Missing Localizations: 4",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "恰好",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s%2$s%3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "匹配内容",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "物品度量",
|
||||
"create.schedule.condition.threshold.items": "个",
|
||||
"create.schedule.condition.threshold.stacks": "组",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "货物:%1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "参考物品",
|
||||
"create.schedule.condition.threshold.place_item_2": "可以使用过滤器",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "流体货物条件",
|
||||
"create.schedule.condition.item_threshold": "物品货物条件",
|
||||
"create.schedule.condition.redstone_link": "无线红石",
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"_": "Missing Localizations: 6",
|
||||
"_": "Missing Localizations: 8",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
@ -1485,6 +1485,7 @@
|
||||
"create.schedule.condition.threshold.equal": "剛好",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s%2$s %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "比對內容",
|
||||
"create.schedule.condition.threshold.anything": "UNLOCALIZED: Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "物品單位",
|
||||
"create.schedule.condition.threshold.items": "個",
|
||||
"create.schedule.condition.threshold.stacks": "組",
|
||||
@ -1492,6 +1493,7 @@
|
||||
"create.schedule.condition.threshold.status": "貨物:%1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "參考物品",
|
||||
"create.schedule.condition.threshold.place_item_2": "可以使用過濾器",
|
||||
"create.schedule.condition.threshold.place_item_3": "UNLOCALIZED: Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "流體貨物條件",
|
||||
"create.schedule.condition.item_threshold": "物品貨物條件",
|
||||
"create.schedule.condition.redstone_link": "無線紅石連接",
|
||||
|
@ -218,14 +218,18 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity {
|
||||
protected List<Recipe<?>> getMatchingRecipes() {
|
||||
List<Recipe<?>> matchingRecipes = super.getMatchingRecipes();
|
||||
|
||||
if (!AllConfigs.SERVER.recipes.allowBrewingInMixer.get()) {
|
||||
if (!AllConfigs.SERVER.recipes.allowBrewingInMixer.get())
|
||||
return matchingRecipes;
|
||||
}
|
||||
|
||||
|
||||
Optional<BasinTileEntity> basin = getBasin();
|
||||
if (!basin.isPresent())
|
||||
return matchingRecipes;
|
||||
IItemHandler availableItems = basin.get()
|
||||
|
||||
BasinTileEntity basinTileEntity = basin.get();
|
||||
if (basin.isEmpty())
|
||||
return matchingRecipes;
|
||||
|
||||
IItemHandler availableItems = basinTileEntity
|
||||
.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||
.orElse(null);
|
||||
if (availableItems == null)
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.simibubi.create.content.contraptions.processing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
@ -64,7 +65,8 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity {
|
||||
return true;
|
||||
if (level == null || level.isClientSide)
|
||||
return true;
|
||||
if (!getBasin().filter(BasinTileEntity::canContinueProcessing)
|
||||
Optional<BasinTileEntity> basin = getBasin();
|
||||
if (!basin.filter(BasinTileEntity::canContinueProcessing)
|
||||
.isPresent())
|
||||
return true;
|
||||
|
||||
@ -118,6 +120,10 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity {
|
||||
}
|
||||
|
||||
protected List<Recipe<?>> getMatchingRecipes() {
|
||||
if (getBasin().map(BasinTileEntity::isEmpty)
|
||||
.orElse(true))
|
||||
return new ArrayList<>();
|
||||
|
||||
List<Recipe<?>> list = RecipeFinder.get(getRecipeCacheKey(), level, this::matchStaticFilters);
|
||||
return list.stream()
|
||||
.filter(this::matchBasinRecipe)
|
||||
|
@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.processing;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@ -78,7 +77,6 @@ public class BasinRecipe extends ProcessingRecipe<SmartInventory> {
|
||||
List<FluidStack> recipeOutputFluids = new ArrayList<>();
|
||||
|
||||
List<Ingredient> ingredients = new LinkedList<>(recipe.getIngredients());
|
||||
ingredients.sort(Comparator.comparingInt(i -> i.getItems().length));
|
||||
List<FluidIngredient> fluidIngredients =
|
||||
isBasinRecipe ? ((BasinRecipe) recipe).getFluidIngredients() : Collections.emptyList();
|
||||
|
||||
|
@ -88,6 +88,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
||||
Direction preferredSpoutput;
|
||||
protected List<ItemStack> spoutputBuffer;
|
||||
protected List<FluidStack> spoutputFluidBuffer;
|
||||
int recipeBackupCheck;
|
||||
|
||||
public static final int OUTPUT_ANIMATION_TIME = 10;
|
||||
List<IntAttached<ItemStack>> visualizedOutputItems;
|
||||
@ -115,6 +116,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
||||
preferredSpoutput = null;
|
||||
spoutputBuffer = new ArrayList<>();
|
||||
spoutputFluidBuffer = new ArrayList<>();
|
||||
recipeBackupCheck = 20;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -227,19 +229,32 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
updateSpoutput();
|
||||
if (!level.isClientSide)
|
||||
|
||||
if (!level.isClientSide) {
|
||||
updateSpoutput();
|
||||
if (recipeBackupCheck-- > 0)
|
||||
return;
|
||||
recipeBackupCheck = 20;
|
||||
if (isEmpty())
|
||||
return;
|
||||
notifyChangeOfContents();
|
||||
return;
|
||||
}
|
||||
|
||||
BlockEntity tileEntity = level.getBlockEntity(worldPosition.above(2));
|
||||
if (!(tileEntity instanceof MechanicalMixerTileEntity)) {
|
||||
setAreFluidsMoving(false);
|
||||
return;
|
||||
}
|
||||
|
||||
MechanicalMixerTileEntity mixer = (MechanicalMixerTileEntity) tileEntity;
|
||||
setAreFluidsMoving(mixer.running && mixer.runningTicks <= 20);
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return inputInventory.isEmpty() && outputInventory.isEmpty() && inputTank.isEmpty() && outputTank.isEmpty();
|
||||
}
|
||||
|
||||
public void onWrenched(Direction face) {
|
||||
BlockState blockState = getBlockState();
|
||||
Direction currentFacing = blockState.getValue(BasinBlock.FACING);
|
||||
@ -256,15 +271,8 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
||||
}
|
||||
|
||||
private void updateSpoutput() {
|
||||
if (level.isClientSide)
|
||||
return;
|
||||
|
||||
BlockState blockState = getBlockState();
|
||||
Direction currentFacing = blockState.getValue(BasinBlock.FACING);
|
||||
|
||||
if (currentFacing != Direction.DOWN)
|
||||
notifyChangeOfContents();
|
||||
|
||||
Direction newFacing = Direction.DOWN;
|
||||
for (Direction test : Iterate.horizontalDirections) {
|
||||
boolean canOutputTo = BasinBlock.canOutputTo(level, worldPosition, test);
|
||||
|
@ -465,7 +465,7 @@ public class BeltTileEntity extends KineticTileEntity {
|
||||
return inserted;
|
||||
if (!simulate) {
|
||||
BeltTunnelInteractionHandler.flapTunnel(nextInventory, index, side.getOpposite(), true);
|
||||
tunnelTE.setStackToDistribute(inserted);
|
||||
tunnelTE.setStackToDistribute(inserted, side.getOpposite());
|
||||
}
|
||||
return empty;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ public class BeltTunnelInteractionHandler {
|
||||
if (!brassTunnel.canTakeItems())
|
||||
return true;
|
||||
if (onServer) {
|
||||
brassTunnel.setStackToDistribute(current.stack);
|
||||
brassTunnel.setStackToDistribute(current.stack, movementFacing.getOpposite());
|
||||
current.stack = ItemStack.EMPTY;
|
||||
beltInventory.belt.sendData();
|
||||
beltInventory.belt.setChanged();
|
||||
|
@ -3,7 +3,6 @@ package com.simibubi.create.content.logistics.block.belts.tunnel;
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
||||
|
||||
@ -44,7 +43,7 @@ public class BrassTunnelBlock extends BeltTunnelBlock {
|
||||
for (ItemStack itemStack : stacksOfGroup)
|
||||
player.getInventory().placeItemBackInInventory(itemStack.copy());
|
||||
world.playSound(null, pos, SoundEvents.ITEM_PICKUP, SoundSource.PLAYERS, .2f,
|
||||
1f + Create.RANDOM.nextFloat());
|
||||
1f + world.random.nextFloat());
|
||||
return InteractionResult.SUCCESS;
|
||||
});
|
||||
}
|
||||
@ -61,16 +60,16 @@ public class BrassTunnelBlock extends BeltTunnelBlock {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRemove(BlockState p_196243_1_, Level p_196243_2_, BlockPos p_196243_3_, BlockState p_196243_4_,
|
||||
boolean p_196243_5_) {
|
||||
if (p_196243_1_.hasBlockEntity()
|
||||
&& (p_196243_1_.getBlock() != p_196243_4_.getBlock() || !p_196243_4_.hasBlockEntity())) {
|
||||
TileEntityBehaviour.destroy(p_196243_2_, p_196243_3_, FilteringBehaviour.TYPE);
|
||||
withTileEntityDo(p_196243_2_, p_196243_3_, te -> {
|
||||
if (te instanceof BrassTunnelTileEntity)
|
||||
Block.popResource(p_196243_2_, p_196243_3_, ((BrassTunnelTileEntity) te).stackToDistribute);
|
||||
public void onRemove(BlockState state, Level level, BlockPos pos, BlockState newState, boolean isMoving) {
|
||||
if (state.hasBlockEntity() && (state.getBlock() != newState.getBlock() || !newState.hasBlockEntity())) {
|
||||
TileEntityBehaviour.destroy(level, pos, FilteringBehaviour.TYPE);
|
||||
withTileEntityDo(level, pos, te -> {
|
||||
if (!(te instanceof BrassTunnelTileEntity btte))
|
||||
return;
|
||||
Block.popResource(level, pos, btte.stackToDistribute);
|
||||
btte.stackEnteredFrom = null;
|
||||
});
|
||||
p_196243_2_.removeBlockEntity(p_196243_3_);
|
||||
level.removeBlockEntity(pos);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ public class BrassTunnelItemHandler implements IItemHandler {
|
||||
if (!te.canTakeItems())
|
||||
return stack;
|
||||
if (!simulate)
|
||||
te.setStackToDistribute(stack);
|
||||
te.setStackToDistribute(stack, null);
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,9 @@ import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltHelper;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock;
|
||||
import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape;
|
||||
import com.simibubi.create.content.logistics.block.funnel.FunnelBlock;
|
||||
import com.simibubi.create.foundation.gui.AllIcons;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.CenteredSideValueBoxTransform;
|
||||
@ -61,6 +64,8 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
boolean connectedRight;
|
||||
|
||||
ItemStack stackToDistribute;
|
||||
Direction stackEnteredFrom;
|
||||
|
||||
float distributionProgress;
|
||||
int distributionDistanceLeft;
|
||||
int distributionDistanceRight;
|
||||
@ -81,6 +86,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
distributionTargets = Couple.create(ArrayList::new);
|
||||
syncSet = new HashSet<>();
|
||||
stackToDistribute = ItemStack.EMPTY;
|
||||
stackEnteredFrom = null;
|
||||
beltCapability = LazyOptional.empty();
|
||||
tunnelCapability = LazyOptional.of(() -> new BrassTunnelItemHandler(this));
|
||||
previousOutputIndex = 0;
|
||||
@ -183,6 +189,8 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
for (Pair<BlockPos, Direction> pair : list) {
|
||||
BlockPos tunnelPos = pair.getKey();
|
||||
Direction output = pair.getValue();
|
||||
if (tunnelPos.equals(worldPosition) && output == stackEnteredFrom)
|
||||
continue;
|
||||
BlockEntity te = level.getBlockEntity(tunnelPos);
|
||||
if (!(te instanceof BrassTunnelTileEntity))
|
||||
continue;
|
||||
@ -306,13 +314,16 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
|
||||
toDistribute.grow(failedTransferrals);
|
||||
stackToDistribute = ItemHandlerHelper.copyStackWithSize(stackToDistribute, toDistribute.getCount());
|
||||
if (stackToDistribute.isEmpty())
|
||||
stackEnteredFrom = null;
|
||||
previousOutputIndex++;
|
||||
previousOutputIndex %= amountTargets;
|
||||
notifyUpdate();
|
||||
}
|
||||
|
||||
public void setStackToDistribute(ItemStack stack) {
|
||||
public void setStackToDistribute(ItemStack stack, @Nullable Direction enteredFrom) {
|
||||
stackToDistribute = stack;
|
||||
stackEnteredFrom = enteredFrom;
|
||||
distributionProgress = -1;
|
||||
sendData();
|
||||
setChanged();
|
||||
@ -329,7 +340,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
if (!own.isEmpty()) {
|
||||
list.add(own);
|
||||
if (!simulate)
|
||||
setStackToDistribute(ItemStack.EMPTY);
|
||||
setStackToDistribute(ItemStack.EMPTY, null);
|
||||
}
|
||||
|
||||
for (boolean left : Iterate.trueAndFalse) {
|
||||
@ -345,7 +356,7 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
continue;
|
||||
list.add(other);
|
||||
if (!simulate)
|
||||
adjacent.setStackToDistribute(ItemStack.EMPTY);
|
||||
adjacent.setStackToDistribute(ItemStack.EMPTY, null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -514,22 +525,30 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
continue;
|
||||
if (direction == movementFacing.getOpposite())
|
||||
continue;
|
||||
if (tunnelTE.sides.contains(direction)) {
|
||||
BlockPos offset = tunnelTE.worldPosition.below()
|
||||
.relative(direction);
|
||||
DirectBeltInputBehaviour inputBehaviour =
|
||||
TileEntityBehaviour.get(level, offset, DirectBeltInputBehaviour.TYPE);
|
||||
if (inputBehaviour == null) {
|
||||
if (direction == movementFacing)
|
||||
if (!BlockHelper.hasBlockSolidSide(level.getBlockState(offset), level, offset,
|
||||
direction.getOpposite()))
|
||||
validOutputs.add(Pair.of(tunnelTE, direction));
|
||||
continue;
|
||||
}
|
||||
if (inputBehaviour.canInsertFromSide(direction))
|
||||
validOutputs.add(Pair.of(tunnelTE, direction));
|
||||
if (!tunnelTE.sides.contains(direction))
|
||||
continue;
|
||||
|
||||
BlockPos offset = tunnelTE.worldPosition.below()
|
||||
.relative(direction);
|
||||
|
||||
BlockState potentialFunnel = level.getBlockState(offset.above());
|
||||
if (potentialFunnel.getBlock() instanceof BeltFunnelBlock
|
||||
&& potentialFunnel.getValue(BeltFunnelBlock.SHAPE) == Shape.PULLING
|
||||
&& FunnelBlock.getFunnelFacing(potentialFunnel) == direction)
|
||||
continue;
|
||||
|
||||
DirectBeltInputBehaviour inputBehaviour =
|
||||
TileEntityBehaviour.get(level, offset, DirectBeltInputBehaviour.TYPE);
|
||||
if (inputBehaviour == null) {
|
||||
if (direction == movementFacing)
|
||||
if (!BlockHelper.hasBlockSolidSide(level.getBlockState(offset), level, offset,
|
||||
direction.getOpposite()))
|
||||
validOutputs.add(Pair.of(tunnelTE, direction));
|
||||
continue;
|
||||
}
|
||||
if (inputBehaviour.canInsertFromSide(direction))
|
||||
validOutputs.add(Pair.of(tunnelTE, direction));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -559,7 +578,11 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
compound.putBoolean("SyncedOutput", syncedOutputActive);
|
||||
compound.putBoolean("ConnectedLeft", connectedLeft);
|
||||
compound.putBoolean("ConnectedRight", connectedRight);
|
||||
|
||||
compound.put("StackToDistribute", stackToDistribute.serializeNBT());
|
||||
if (stackEnteredFrom != null)
|
||||
NBTHelper.writeEnum(compound, "StackEnteredFrom", stackEnteredFrom);
|
||||
|
||||
compound.putFloat("DistributionProgress", distributionProgress);
|
||||
compound.putInt("PreviousIndex", previousOutputIndex);
|
||||
compound.putInt("DistanceLeft", distributionDistanceLeft);
|
||||
@ -587,7 +610,12 @@ public class BrassTunnelTileEntity extends BeltTunnelTileEntity implements IHave
|
||||
syncedOutputActive = compound.getBoolean("SyncedOutput");
|
||||
connectedLeft = compound.getBoolean("ConnectedLeft");
|
||||
connectedRight = compound.getBoolean("ConnectedRight");
|
||||
|
||||
stackToDistribute = ItemStack.of(compound.getCompound("StackToDistribute"));
|
||||
stackEnteredFrom =
|
||||
compound.contains("StackEnteredFrom") ? NBTHelper.readEnum(compound, "StackEnteredFrom", Direction.class)
|
||||
: null;
|
||||
|
||||
distributionProgress = compound.getFloat("DistributionProgress");
|
||||
previousOutputIndex = compound.getInt("PreviousIndex");
|
||||
distributionDistanceLeft = compound.getInt("DistanceLeft");
|
||||
|
@ -110,6 +110,8 @@ public abstract class CargoThresholdCondition extends LazyTickedScheduleConditio
|
||||
public List<Component> getSecondLineTooltip(int slot) {
|
||||
return ImmutableList.of(Lang.translateDirect("schedule.condition.threshold.place_item"),
|
||||
Lang.translateDirect("schedule.condition.threshold.place_item_2")
|
||||
.withStyle(ChatFormatting.GRAY),
|
||||
Lang.translateDirect("schedule.condition.threshold.place_item_3")
|
||||
.withStyle(ChatFormatting.GRAY));
|
||||
}
|
||||
|
||||
|
@ -44,9 +44,6 @@ public class FluidThresholdCondition extends CargoThresholdCondition {
|
||||
Ops operator = getOperator();
|
||||
int target = getThreshold();
|
||||
|
||||
if (compareStack.isEmpty())
|
||||
return true;
|
||||
|
||||
int foundFluid = 0;
|
||||
for (Carriage carriage : train.carriages) {
|
||||
IFluidHandler fluids = carriage.storage.getFluids();
|
||||
@ -100,9 +97,10 @@ public class FluidThresholdCondition extends CargoThresholdCondition {
|
||||
Lang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))),
|
||||
Lang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(),
|
||||
Lang.translateDirect("schedule.condition.threshold.buckets"),
|
||||
compareStack.getItem() instanceof FilterItem
|
||||
? Lang.translateDirect("schedule.condition.threshold.matching_content")
|
||||
: loadFluid().getDisplayName())
|
||||
compareStack.isEmpty() ? Lang.translateDirect("schedule.condition.threshold.anything")
|
||||
: compareStack.getItem() instanceof FilterItem
|
||||
? Lang.translateDirect("schedule.condition.threshold.matching_content")
|
||||
: loadFluid().getDisplayName())
|
||||
.withStyle(ChatFormatting.DARK_AQUA));
|
||||
}
|
||||
|
||||
|
@ -41,9 +41,6 @@ public class ItemThresholdCondition extends CargoThresholdCondition {
|
||||
int target = getThreshold();
|
||||
boolean stacks = inStacks();
|
||||
|
||||
if (stack.isEmpty())
|
||||
return true;
|
||||
|
||||
int foundItems = 0;
|
||||
for (Carriage carriage : train.carriages) {
|
||||
IItemHandlerModifiable items = carriage.storage.getItems();
|
||||
@ -97,8 +94,10 @@ public class ItemThresholdCondition extends CargoThresholdCondition {
|
||||
Lang.translateDirect("schedule.condition.threshold." + Lang.asId(getOperator().name()))),
|
||||
Lang.translateDirect("schedule.condition.threshold.x_units_of_item", getThreshold(),
|
||||
Lang.translateDirect("schedule.condition.threshold." + (inStacks() ? "stacks" : "items")),
|
||||
stack.getItem() instanceof FilterItem ? Lang.translateDirect("schedule.condition.threshold.matching_content")
|
||||
: stack.getHoverName())
|
||||
stack.isEmpty() ? Lang.translateDirect("schedule.condition.threshold.anything")
|
||||
: stack.getItem() instanceof FilterItem
|
||||
? Lang.translateDirect("schedule.condition.threshold.matching_content")
|
||||
: stack.getHoverName())
|
||||
.withStyle(ChatFormatting.DARK_AQUA));
|
||||
}
|
||||
|
||||
|
@ -652,6 +652,7 @@
|
||||
"create.schedule.condition.threshold.equal": "exactly",
|
||||
"create.schedule.condition.threshold.x_units_of_item": "%1$s %2$s of %3$s",
|
||||
"create.schedule.condition.threshold.matching_content": "Matching Content",
|
||||
"create.schedule.condition.threshold.anything": "Anything",
|
||||
"create.schedule.condition.threshold.item_measure": "Item Measure",
|
||||
"create.schedule.condition.threshold.items": "Items",
|
||||
"create.schedule.condition.threshold.stacks": "Stacks",
|
||||
@ -659,6 +660,7 @@
|
||||
"create.schedule.condition.threshold.status": "Cargo: %1$s/%2$s %3$s",
|
||||
"create.schedule.condition.threshold.place_item": "Reference Item",
|
||||
"create.schedule.condition.threshold.place_item_2": "Filters can be used",
|
||||
"create.schedule.condition.threshold.place_item_3": "Leave empty to match any",
|
||||
"create.schedule.condition.fluid_threshold": "Fluid Cargo Condition",
|
||||
"create.schedule.condition.item_threshold": "Item Cargo Condition",
|
||||
"create.schedule.condition.redstone_link": "Redstone Link",
|
||||
|
Loading…
Reference in New Issue
Block a user