From dfe13d4ad7389f55b1d26a9cf018a6ecab1db37e Mon Sep 17 00:00:00 2001 From: PepperCode1 <44146161+PepperCode1@users.noreply.github.com> Date: Wed, 7 Sep 2022 18:34:43 -0700 Subject: [PATCH 1/2] One mechanical arm's trash is another mechanical arm's treasure - Fix arms not being able to place more than one item into a composter - Add COMPOSTABLE item attribute - Tweak BLASTABLE attribute's descriptions --- src/generated/resources/.cache/cache | 34 +++++++++--------- .../resources/assets/create/lang/en_us.json | 6 ++-- .../assets/create/lang/unfinished/de_de.json | 4 ++- .../assets/create/lang/unfinished/es_cl.json | 4 ++- .../assets/create/lang/unfinished/es_es.json | 4 ++- .../assets/create/lang/unfinished/fr_fr.json | 4 ++- .../assets/create/lang/unfinished/it_it.json | 4 ++- .../assets/create/lang/unfinished/ja_jp.json | 4 ++- .../assets/create/lang/unfinished/ko_kr.json | 4 ++- .../assets/create/lang/unfinished/nl_nl.json | 8 +++-- .../assets/create/lang/unfinished/pl_pl.json | 4 ++- .../assets/create/lang/unfinished/pt_br.json | 4 ++- .../assets/create/lang/unfinished/pt_pt.json | 8 +++-- .../assets/create/lang/unfinished/ro_ro.json | 4 ++- .../assets/create/lang/unfinished/ru_ru.json | 4 ++- .../assets/create/lang/unfinished/uk_ua.json | 4 ++- .../assets/create/lang/unfinished/zh_cn.json | 4 ++- .../assets/create/lang/unfinished/zh_tw.json | 4 ++- .../AllArmInteractionPointTypes.java | 36 ++++++++++++------- .../logistics/item/filter/ItemAttribute.java | 4 ++- .../assets/create/lang/default/interface.json | 6 ++-- 21 files changed, 104 insertions(+), 54 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index bc6fa1798..0437edd08 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -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 -b093292a09f18cce236ddb4ab0461891c5a70fe6 assets/create/lang/en_us.json -603af7f8a80b09da7ef5765f2aa863bbef1fc8ea assets/create/lang/unfinished/de_de.json -48858781b80b77a0d00b6fab733482ae4a9115fc assets/create/lang/unfinished/es_cl.json -ee47168049448ffa0959210d8f06b8f4b7219c85 assets/create/lang/unfinished/es_es.json -8fd4488ce0579f7b71a7cf20fe5556cdbb515834 assets/create/lang/unfinished/fr_fr.json -d4266c22c1265a2ef0784a13b223e4bb17ec11d0 assets/create/lang/unfinished/it_it.json -6578c40b206d61ac0aad1311d02c9bdbcd5f9d45 assets/create/lang/unfinished/ja_jp.json -f642160ce3c6ffe0ded12c7e05a15cb6536c4def assets/create/lang/unfinished/ko_kr.json -fdc3bda8618e963b6023af13caa0050f48ba0c26 assets/create/lang/unfinished/nl_nl.json -c498bb7eb6f030b7b4934882e8bfc418dd8f6174 assets/create/lang/unfinished/pl_pl.json -b9e51c59ae50ae274d0c56f60803d8a397524547 assets/create/lang/unfinished/pt_br.json -2b1ecada0e99852d604fd718e6ef87dbaff180e6 assets/create/lang/unfinished/pt_pt.json -71d01c97da2fd3c15576fb183871833b272174bf assets/create/lang/unfinished/ro_ro.json -6be78dc74952189c50f70df3182c3614cd49fdec assets/create/lang/unfinished/ru_ru.json -573a499be537300fb93d254b45923de80978d434 assets/create/lang/unfinished/uk_ua.json -2e6e637071b2ea70de178c77fe8b85544cc89a6b assets/create/lang/unfinished/zh_cn.json -5ec18f7aee828e35dcf76d491b26d76fc81b010e assets/create/lang/unfinished/zh_tw.json +11fd391ac3015f4dace8138ab1ec423ee822c7b4 assets/create/lang/en_us.json +34ab109f0935b7d0a7dd306188e0bd3056a77f93 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 +d7b53a16d03be2f854dfba1e90e2a149c2abecbd 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 +c8c60fe2405f37cce7309326fb62cdb9aa1b49ff 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 +54a92b2d667b55675c694904752760b594ab1424 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 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 diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 2da1a5d09..9d201a099 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1257,8 +1257,10 @@ "create.item_attributes.smeltable.inverted": "cannot be Smelted", "create.item_attributes.smokable": "can be Smoked", "create.item_attributes.smokable.inverted": "cannot be Smoked", - "create.item_attributes.blastable": "is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace", + "create.item_attributes.blastable": "can be Smelted in a Blast Furnace", + "create.item_attributes.blastable.inverted": "cannot be Smelted in a Blast Furnace", + "create.item_attributes.compostable": "can be composted", + "create.item_attributes.compostable.inverted": "cannot be composted", "create.item_attributes.shulker_level": "is shulker %1$s", "create.item_attributes.shulker_level.inverted": "is shulker not %1$s", "create.item_attributes.shulker_level.full": "full", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 4cfa2ea3a..c1743a7fd 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 838", + "_": "Missing Localizations: 840", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "kann nicht geräuchert werden", "create.item_attributes.blastable": "ist im Schmelzofen schmelzbar", "create.item_attributes.blastable.inverted": "ist nicht im Schmelzofen schmelzbar", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "ist Shulker %1$s", "create.item_attributes.shulker_level.inverted": "ist Shulker nicht %1$s", "create.item_attributes.shulker_level.full": "voll", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_cl.json b/src/generated/resources/assets/create/lang/unfinished/es_cl.json index edf9286e0..19a6d4e3a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_cl.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_cl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 984", + "_": "Missing Localizations: 986", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "no puede ser Ahumado", "create.item_attributes.blastable": "puede ser cocinado en un Alto Horno", "create.item_attributes.blastable.inverted": "no puede ser cocinado en un Alto Horno", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "es un shulker %1$s", "create.item_attributes.shulker_level.inverted": "no es un shulker %1$s", "create.item_attributes.shulker_level.full": "lleno", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index cd7858cf6..408d3722f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 4", + "_": "Missing Localizations: 6", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "no puede ser ahumado", "create.item_attributes.blastable": "es fundible en el alto horno", "create.item_attributes.blastable.inverted": "no es fundible en el alto horno", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "es shulker %1$s", "create.item_attributes.shulker_level.inverted": "no es shulker %1$s", "create.item_attributes.shulker_level.full": "lleno", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index e0e717886..968ed3cff 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 2135", + "_": "Missing Localizations: 2137", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "ne peut pas être fumé", "create.item_attributes.blastable": "est fondable dans un Haut fourneau", "create.item_attributes.blastable.inverted": "n'est pas fondable dans un Haut fourneau", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 0f3874f03..bced0d3ec 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 4", + "_": "Missing Localizations: 6", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "non può essere affumicato", "create.item_attributes.blastable": "è fondibile in un forno fusorio", "create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "è uno shulker %1$s", "create.item_attributes.shulker_level.inverted": "non è uno shulker %1$s", "create.item_attributes.shulker_level.full": "pieno", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 931b1f96b..ab56d3d1d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 0", + "_": "Missing Localizations: 2", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "燻製器で調理できないか", "create.item_attributes.blastable": "溶鉱炉で精錬できるかか", "create.item_attributes.blastable.inverted": "溶鉱炉で精錬できないか", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "%1$sシュルカーか", "create.item_attributes.shulker_level.inverted": "%1$sシュルカーでないか", "create.item_attributes.shulker_level.full": "満杯の", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 0731039b0..448da4f33 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 4", + "_": "Missing Localizations: 6", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "훈연될 수 없음", "create.item_attributes.blastable": "용광로에 녹일 수 있음", "create.item_attributes.blastable.inverted": "용광로에 녹일 수 없음", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "셜커가 %1$s있음", "create.item_attributes.shulker_level.inverted": "셜커가 %1$s있지 않음", "create.item_attributes.shulker_level.full": "가득 차", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index c84094e49..d0da85c4b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 2483", + "_": "Missing Localizations: 2485", "_": "->------------------------] Game Elements [------------------------<-", @@ -1258,8 +1258,10 @@ "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", - "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", + "create.item_attributes.blastable": "UNLOCALIZED: can be Smelted in a Blast Furnace", + "create.item_attributes.blastable.inverted": "UNLOCALIZED: cannot be Smelted in a Blast Furnace", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 43ab34a65..18d89979d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 8", + "_": "Missing Localizations: 10", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "nie może być wędzony", "create.item_attributes.blastable": "może być stopiony w piecu hutniczym", "create.item_attributes.blastable.inverted": "nie może być stopiony w piecu hutniczym", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "jest %1$s", "create.item_attributes.shulker_level.inverted": "nie jest %1$s", "create.item_attributes.shulker_level.full": "pełna", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index 4a8761223..52acd0236 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1327", + "_": "Missing Localizations: 1329", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "Não pode ser defumado", "create.item_attributes.blastable": "È fundível no alto-forno", "create.item_attributes.blastable.inverted": "Não é fundível no alto-forno", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "O shulker é %1$s", "create.item_attributes.shulker_level.inverted": "O shulker não é %1$s", "create.item_attributes.shulker_level.full": "Cheio", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json index 29041f07f..f750b5a9f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 2192", + "_": "Missing Localizations: 2194", "_": "->------------------------] Game Elements [------------------------<-", @@ -1258,8 +1258,10 @@ "create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted", "create.item_attributes.smokable": "UNLOCALIZED: can be Smoked", "create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked", - "create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace", + "create.item_attributes.blastable": "UNLOCALIZED: can be Smelted in a Blast Furnace", + "create.item_attributes.blastable.inverted": "UNLOCALIZED: cannot be Smelted in a Blast Furnace", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s", "create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s", "create.item_attributes.shulker_level.full": "UNLOCALIZED: full", diff --git a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json index 26c30e017..2d85ce256 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json +++ b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 651", + "_": "Missing Localizations: 653", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "nu poate fi Afumat", "create.item_attributes.blastable": "poate fi topit în Furnal", "create.item_attributes.blastable.inverted": "nu poate fi topit în Furnal", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "este shulkerul %1$s", "create.item_attributes.shulker_level.inverted": "nu este shulkerul %1$s", "create.item_attributes.shulker_level.full": "plin", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index e4df406f7..830e8aafa 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 0", + "_": "Missing Localizations: 2", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "нельзя прокоптить", "create.item_attributes.blastable": "плавится в доменной печи", "create.item_attributes.blastable.inverted": "не плавится в доменной печи", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "шалкер %1$s", "create.item_attributes.shulker_level.inverted": "шалкер не %1$s", "create.item_attributes.shulker_level.full": "полный", diff --git a/src/generated/resources/assets/create/lang/unfinished/uk_ua.json b/src/generated/resources/assets/create/lang/unfinished/uk_ua.json index e0a1907e6..3bd7b8953 100644 --- a/src/generated/resources/assets/create/lang/unfinished/uk_ua.json +++ b/src/generated/resources/assets/create/lang/unfinished/uk_ua.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 982", + "_": "Missing Localizations: 984", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "не можна Коптити", "create.item_attributes.blastable": "плавиться в Плавильній печі", "create.item_attributes.blastable.inverted": "не плавиться в Плавильній печі", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "шалкер %1$s", "create.item_attributes.shulker_level.inverted": "шалкер не %1$s", "create.item_attributes.shulker_level.full": "повний", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 459b5f282..03c8d3828 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 0", + "_": "Missing Localizations: 2", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "不可被烟熏", "create.item_attributes.blastable": "可被高炉冶炼", "create.item_attributes.blastable.inverted": "不可被高炉冶炼", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "潜影盒是%1$s的", "create.item_attributes.shulker_level.inverted": "潜影盒不是%1$s的", "create.item_attributes.shulker_level.full": "满", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index 7c0ccee4b..2ee8e9a6c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 4", + "_": "Missing Localizations: 6", "_": "->------------------------] Game Elements [------------------------<-", @@ -1260,6 +1260,8 @@ "create.item_attributes.smokable.inverted": "不可被煙熏", "create.item_attributes.blastable": "可被高爐融煉", "create.item_attributes.blastable.inverted": "不可被高爐融煉", + "create.item_attributes.compostable": "UNLOCALIZED: can be composted", + "create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted", "create.item_attributes.shulker_level": "界伏盒是 %1$s", "create.item_attributes.shulker_level.inverted": "界伏盒不是 %1$s", "create.item_attributes.shulker_level.full": "滿的", diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/AllArmInteractionPointTypes.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/AllArmInteractionPointTypes.java index 5a47eda71..c72e81221 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/AllArmInteractionPointTypes.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/AllArmInteractionPointTypes.java @@ -55,9 +55,8 @@ import net.minecraft.world.level.block.entity.JukeboxBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.phys.Vec3; -import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.wrapper.CombinedInvWrapper; +import net.minecraftforge.items.ItemHandlerHelper; import net.minecraftforge.items.wrapper.SidedInvWrapper; public class AllArmInteractionPointTypes { @@ -605,16 +604,29 @@ public class AllArmInteractionPointTypes { @Nullable @Override protected IItemHandler getHandler() { - if (!cachedHandler.isPresent()) { - cachedHandler = LazyOptional.of(() -> { - ComposterBlock composterBlock = (ComposterBlock) Blocks.COMPOSTER; - WorldlyContainer container = composterBlock.getContainer(cachedState, level, pos); - SidedInvWrapper insertionHandler = new SidedInvWrapper(container, Direction.UP); - SidedInvWrapper extractionHandler = new SidedInvWrapper(container, Direction.DOWN); - return new CombinedInvWrapper(insertionHandler, extractionHandler); - }); - } - return cachedHandler.orElse(null); + return null; + } + + protected WorldlyContainer getContainer() { + ComposterBlock composterBlock = (ComposterBlock) Blocks.COMPOSTER; + return composterBlock.getContainer(cachedState, level, pos); + } + + @Override + public ItemStack insert(ItemStack stack, boolean simulate) { + IItemHandler handler = new SidedInvWrapper(getContainer(), Direction.UP); + return ItemHandlerHelper.insertItem(handler, stack, simulate); + } + + @Override + public ItemStack extract(int slot, int amount, boolean simulate) { + IItemHandler handler = new SidedInvWrapper(getContainer(), Direction.DOWN); + return handler.extractItem(slot, amount, simulate); + } + + @Override + public int getSlotCount() { + return 2; } } diff --git a/src/main/java/com/simibubi/create/content/logistics/item/filter/ItemAttribute.java b/src/main/java/com/simibubi/create/content/logistics/item/filter/ItemAttribute.java index 55cef5970..0dd9f81f8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/item/filter/ItemAttribute.java +++ b/src/main/java/com/simibubi/create/content/logistics/item/filter/ItemAttribute.java @@ -42,6 +42,7 @@ import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.ComposterBlock; import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -148,7 +149,8 @@ public interface ItemAttribute { || testRecipe(s, w, AllRecipeTypes.MILLING.getType())), SMELTABLE((s, w) -> testRecipe(s, w, RecipeType.SMELTING)), SMOKABLE((s, w) -> testRecipe(s, w, RecipeType.SMOKING)), - BLASTABLE((s, w) -> testRecipe(s, w, RecipeType.BLASTING)); + BLASTABLE((s, w) -> testRecipe(s, w, RecipeType.BLASTING)), + COMPOSTABLE(s -> ComposterBlock.COMPOSTABLES.containsKey(s.getItem())); private static final RecipeWrapper RECIPE_WRAPPER = new RecipeWrapper(new ItemStackHandler(1)); private Predicate test; diff --git a/src/main/resources/assets/create/lang/default/interface.json b/src/main/resources/assets/create/lang/default/interface.json index c8a052b74..0f57cb0aa 100644 --- a/src/main/resources/assets/create/lang/default/interface.json +++ b/src/main/resources/assets/create/lang/default/interface.json @@ -414,8 +414,10 @@ "create.item_attributes.smeltable.inverted": "cannot be Smelted", "create.item_attributes.smokable": "can be Smoked", "create.item_attributes.smokable.inverted": "cannot be Smoked", - "create.item_attributes.blastable": "is smeltable in Blast Furnace", - "create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace", + "create.item_attributes.blastable": "can be Smelted in a Blast Furnace", + "create.item_attributes.blastable.inverted": "cannot be Smelted in a Blast Furnace", + "create.item_attributes.compostable": "can be composted", + "create.item_attributes.compostable.inverted": "cannot be composted", "create.item_attributes.shulker_level": "is shulker %1$s", "create.item_attributes.shulker_level.inverted": "is shulker not %1$s", From 32b0b2a33484c3804c14cd3d11043286184afeb0 Mon Sep 17 00:00:00 2001 From: PepperCode1 <44146161+PepperCode1@users.noreply.github.com> Date: Fri, 9 Sep 2022 12:10:34 -0700 Subject: [PATCH 2/2] Ordered blaze transformations - Fix parts of blaze burners not rendering correctly on rotated contraptions - AbstractContraptionEntity#doLocalTransforms -> applyLocalTransforms and change PoseStack[] argument to PoseStack --- .../AbstractContraptionEntity.java | 2 +- .../ControlledContraptionEntity.java | 13 +- .../OrientedContraptionEntity.java | 36 +++-- .../gantry/GantryContraptionEntity.java | 2 +- .../render/ContraptionMatrices.java | 2 +- .../burner/BlazeBurnerRenderer.java | 136 +++++++++++------- .../renderer/SafeTileEntityRenderer.java | 7 +- 7 files changed, 113 insertions(+), 85 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java index eff5279e6..9853a7371 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java @@ -831,7 +831,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit } @OnlyIn(Dist.CLIENT) - public abstract void doLocalTransforms(float partialTicks, PoseStack[] matrixStacks); + public abstract void applyLocalTransforms(PoseStack matrixStack, float partialTicks); public static class ContraptionRotationState { public static final ContraptionRotationState NONE = new ContraptionRotationState(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java index c00fa8cad..46d7b8ac8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ControlledContraptionEntity.java @@ -226,15 +226,14 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity { @Override @OnlyIn(Dist.CLIENT) - public void doLocalTransforms(float partialTicks, PoseStack[] matrixStacks) { + public void applyLocalTransforms(PoseStack matrixStack, float partialTicks) { float angle = getAngle(partialTicks); Axis axis = getRotationAxis(); - for (PoseStack stack : matrixStacks) - TransformStack.cast(stack) - .nudge(getId()) - .centre() - .rotate(angle, axis) - .unCentre(); + TransformStack.cast(matrixStack) + .nudge(getId()) + .centre() + .rotate(angle, axis) + .unCentre(); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java index 6738e4769..9abd65cf4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java @@ -514,52 +514,48 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity { @Override @OnlyIn(Dist.CLIENT) - public void doLocalTransforms(float partialTicks, PoseStack[] matrixStacks) { + public void applyLocalTransforms(PoseStack matrixStack, float partialTicks) { float angleInitialYaw = getInitialYaw(); float angleYaw = getViewYRot(partialTicks); float anglePitch = getViewXRot(partialTicks); - for (PoseStack stack : matrixStacks) - stack.translate(-.5f, 0, -.5f); + matrixStack.translate(-.5f, 0, -.5f); Entity ridingEntity = getVehicle(); if (ridingEntity instanceof AbstractMinecart) - repositionOnCart(partialTicks, matrixStacks, ridingEntity); + repositionOnCart(matrixStack, partialTicks, ridingEntity); else if (ridingEntity instanceof AbstractContraptionEntity) { if (ridingEntity.getVehicle() instanceof AbstractMinecart) - repositionOnCart(partialTicks, matrixStacks, ridingEntity.getVehicle()); + repositionOnCart(matrixStack, partialTicks, ridingEntity.getVehicle()); else - repositionOnContraption(partialTicks, matrixStacks, ridingEntity); + repositionOnContraption(matrixStack, partialTicks, ridingEntity); } - for (PoseStack stack : matrixStacks) - TransformStack.cast(stack) - .nudge(getId()) - .centre() - .rotateY(angleYaw) - .rotateZ(anglePitch) - .rotateY(angleInitialYaw) - .unCentre(); + TransformStack.cast(matrixStack) + .nudge(getId()) + .centre() + .rotateY(angleYaw) + .rotateZ(anglePitch) + .rotateY(angleInitialYaw) + .unCentre(); } @OnlyIn(Dist.CLIENT) - private void repositionOnContraption(float partialTicks, PoseStack[] matrixStacks, Entity ridingEntity) { + private void repositionOnContraption(PoseStack matrixStack, float partialTicks, Entity ridingEntity) { Vec3 pos = getContraptionOffset(partialTicks, ridingEntity); - for (PoseStack stack : matrixStacks) - stack.translate(pos.x, pos.y, pos.z); + matrixStack.translate(pos.x, pos.y, pos.z); } // Minecarts do not always render at their exact location, so the contraption // has to adjust aswell @OnlyIn(Dist.CLIENT) - private void repositionOnCart(float partialTicks, PoseStack[] matrixStacks, Entity ridingEntity) { + private void repositionOnCart(PoseStack matrixStack, float partialTicks, Entity ridingEntity) { Vec3 cartPos = getCartOffset(partialTicks, ridingEntity); if (cartPos == Vec3.ZERO) return; - for (PoseStack stack : matrixStacks) - stack.translate(cartPos.x, cartPos.y, cartPos.z); + matrixStack.translate(cartPos.x, cartPos.y, cartPos.z); } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionEntity.java index f088e9236..845dc6caa 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryContraptionEntity.java @@ -176,7 +176,7 @@ public class GantryContraptionEntity extends AbstractContraptionEntity { } @Override - public void doLocalTransforms(float partialTicks, PoseStack[] matrixStacks) { } + public void applyLocalTransforms(PoseStack matrixStack, float partialTicks) { } public void updateClientMotion() { float modifier = movementAxis.getAxisDirection() diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java index a685a2553..1b6ab8520 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionMatrices.java @@ -34,7 +34,7 @@ public class ContraptionMatrices { this.viewProjection.pushPose(); transform(this.viewProjection, viewProjection); model.pushPose(); - entity.doLocalTransforms(partialTicks, new PoseStack[] { model }); + entity.applyLocalTransforms(model, partialTicks); modelViewProjection.pushPose(); transform(modelViewProjection, viewProjection); diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java index 8e9c113c8..8ee5ef9bb 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerRenderer.java @@ -33,52 +33,67 @@ public class BlazeBurnerRenderer extends SafeTileEntityRenderer 0.125f; - HeatLevel heatLevel = BlazeBurnerBlock.getHeatLevelOf(blockState); float time = AnimationTickHolder.getRenderTime(level); float renderTick = time + (hashCode % 13) * 16f; float offsetMult = heatLevel.isAtLeast(HeatLevel.FADING) ? 64 : 16; float offset = Mth.sin((float) ((renderTick / 16f) % (2 * Math.PI))) / offsetMult; float offset1 = Mth.sin((float) ((renderTick / 16f + Math.PI) % (2 * Math.PI))) / offsetMult; float offset2 = Mth.sin((float) ((renderTick / 16f + Math.PI / 2) % (2 * Math.PI))) / offsetMult; + float headY = offset - (animation * .75f); - VertexConsumer solid = buffer.getBuffer(RenderType.solid()); - VertexConsumer cutout = buffer.getBuffer(RenderType.cutoutMipped()); + VertexConsumer solid = bufferSource.getBuffer(RenderType.solid()); + VertexConsumer cutout = bufferSource.getBuffer(RenderType.cutoutMipped()); ms.pushPose(); - if (modelTransform == null && heatLevel.isAtLeast(HeatLevel.FADING) && blockAbove) { + if (canDrawFlame && blockAbove) { SpriteShiftEntry spriteShift = heatLevel == HeatLevel.SEETHING ? AllSpriteShifts.SUPER_BURNER_FLAME : AllSpriteShifts.BURNER_FLAME; @@ -102,68 +117,87 @@ public class BlazeBurnerRenderer extends SafeTileEntityRenderer implements BlockEntityRenderer { - @Override - public final void render(T te, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, + public final void render(T te, float partialTicks, PoseStack ms, MultiBufferSource bufferSource, int light, int overlay) { if (isInvalid(te)) return; - renderSafe(te, partialTicks, ms, buffer, light, overlay); + renderSafe(te, partialTicks, ms, bufferSource, light, overlay); } - protected abstract void renderSafe(T te, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, + protected abstract void renderSafe(T te, float partialTicks, PoseStack ms, MultiBufferSource bufferSource, int light, int overlay); public boolean isInvalid(T te) {