Merge remote-tracking branch 'origin/mc1.16/dev' into mc1.16/dev
This commit is contained in:
commit
51ebf2baec
33 changed files with 427 additions and 91 deletions
|
@ -426,20 +426,20 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
e1d3c02695cbd2ee7bbede97f72941835634a3a5 assets/create/lang/en_ud.json
|
||||
3e74ffe81510f420f5f1821808291c0539a14c13 assets/create/lang/en_us.json
|
||||
82571338ff8edf812ae01f0a5d45c58718374469 assets/create/lang/unfinished/de_de.json
|
||||
6cf3dd48a1708deedbb7ed1029616d932094aa93 assets/create/lang/unfinished/es_es.json
|
||||
a6a3d443ff8ef03952f3e1843a88c91349f52680 assets/create/lang/unfinished/es_mx.json
|
||||
c5fff5dee93fcb5eb5576bdf0598139e11b91e5c assets/create/lang/unfinished/fr_fr.json
|
||||
1647117134ac3fcda2110abe13504d3699135f9c assets/create/lang/unfinished/it_it.json
|
||||
ed0fd66cfa74b2390f127262242c8385fb699d72 assets/create/lang/unfinished/ja_jp.json
|
||||
f0b83a1f5377c07e6a3beaa40d13ffe34ae4a269 assets/create/lang/unfinished/ko_kr.json
|
||||
8e2ba058fa004c86d48c869232b85a6a1cdfa7f9 assets/create/lang/unfinished/nl_nl.json
|
||||
0d99e0a375d6d1cf5f00ab48e090f4472fff94ad assets/create/lang/unfinished/pl_pl.json
|
||||
2d1882cf35f0e09d9e820bd408183d902ed64b50 assets/create/lang/unfinished/pt_br.json
|
||||
295b171018e6f8c2c488f109f4b080d9019e2ae2 assets/create/lang/unfinished/ru_ru.json
|
||||
5f238e588fc997b23cb332fb9a0c3594d6cbfaaf assets/create/lang/unfinished/zh_cn.json
|
||||
274a919cbefb9e83213e579dbc8cc0c507f65df8 assets/create/lang/unfinished/zh_tw.json
|
||||
e45592394573a5e5bae6520976ef0760e27833b1 assets/create/lang/en_us.json
|
||||
3e80da8da3fd705c5a9abcef3bb88c848d694452 assets/create/lang/unfinished/de_de.json
|
||||
2957ff5031fce02979fe0029756705c80909160f assets/create/lang/unfinished/es_es.json
|
||||
58c0101a854c4a717058b593572707a035b2bd17 assets/create/lang/unfinished/es_mx.json
|
||||
2dca9cad484ec7991d4303f7b79b613da85aa213 assets/create/lang/unfinished/fr_fr.json
|
||||
93c30ea554df1b96d493f3c15660665342ea54e2 assets/create/lang/unfinished/it_it.json
|
||||
2d19c1bd0b16c7f4d3cab91566b10f8b20fd92b8 assets/create/lang/unfinished/ja_jp.json
|
||||
00a5e891f481ddbbd2e043f05d4c60c8519d30b4 assets/create/lang/unfinished/ko_kr.json
|
||||
3264c35ea11ad73c63b42d3c3e86b3e4a683e8a7 assets/create/lang/unfinished/nl_nl.json
|
||||
284b09bca2e8dafbf6c39d562a6bec7d6d9e277e assets/create/lang/unfinished/pl_pl.json
|
||||
ebabdc30b05702af5cc4b28e95fa5792035db73a assets/create/lang/unfinished/pt_br.json
|
||||
ab37de7ff2c14415e29782bba6382233e585fa6f assets/create/lang/unfinished/ru_ru.json
|
||||
f70cb0834d60693a62bef99c2b81b40fae37417a assets/create/lang/unfinished/zh_cn.json
|
||||
f78d0693929030d6ede68d4233407f6c832ea93e 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
|
||||
|
@ -1698,7 +1698,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear
|
|||
866fbb0ce2878a73e0440d1caf6534c8bd7c384f assets/create/models/item/zinc_ingot.json
|
||||
a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json
|
||||
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
|
||||
bbe7fc4aef29420319f59d02d4cd376a78244e70 assets/create/sounds.json
|
||||
58880e397902f8ca5b3b59ed4423e626109ddc4c assets/create/sounds.json
|
||||
5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json
|
||||
187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json
|
||||
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json
|
||||
|
|
|
@ -1064,6 +1064,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "is not in group '%1$s'",
|
||||
"create.item_attributes.added_by": "was added by %1$s",
|
||||
"create.item_attributes.added_by.inverted": "was not added by %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "empty",
|
||||
"create.item_attributes.shulker_level.partial": "partially filled",
|
||||
"create.item_attributes.has_enchant": "is enchanted with %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "is not enchanted with %1$s",
|
||||
"create.item_attributes.color": "is dyed %1$s",
|
||||
|
@ -1216,6 +1221,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "Crushing noises",
|
||||
"create.subtitle.depot_slide": "Item slides",
|
||||
"create.subtitle.saw_activate_stone": "Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "Blaze Burner munches",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1119",
|
||||
"_": "Missing Localizations: 1125",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
||||
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
||||
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "Lohe kaut glücklich",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 42",
|
||||
"_": "Missing Localizations: 48",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'",
|
||||
"create.item_attributes.added_by": "fue añadido por %1$s",
|
||||
"create.item_attributes.added_by.inverted": "no fue añadida por %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "está encantado con %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "no está encantado con %1$s",
|
||||
"create.item_attributes.color": "Está teñido %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "",
|
||||
"create.subtitle.fwoomp": "",
|
||||
"create.subtitle.worldshaper_place": "",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "",
|
||||
"create.subtitle.saw_activate_stone": "",
|
||||
"create.subtitle.blaze_munch": "",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1486",
|
||||
"_": "Missing Localizations: 1492",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
||||
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
||||
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1371",
|
||||
"_": "Missing Localizations: 1377",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "n'appartient pas à %1$s'",
|
||||
"create.item_attributes.added_by": "a été ajouté par %1$s",
|
||||
"create.item_attributes.added_by.inverted": "n'a pas été ajouté par %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "est enchanté %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "n'est pas enchenté %1$s",
|
||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 899",
|
||||
"_": "Missing Localizations: 905",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "non appartiene a '%1$s'",
|
||||
"create.item_attributes.added_by": "è stato aggiunto da %1$s",
|
||||
"create.item_attributes.added_by.inverted": "non è stato aggiunto da %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "è stato incantato con %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "non è stato incantato con %1$s",
|
||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "Il blaze lo gusta felicemente",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 31",
|
||||
"_": "Missing Localizations: 37",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "%1$sに属していないか",
|
||||
"create.item_attributes.added_by": "%1$sによって追加されたか",
|
||||
"create.item_attributes.added_by.inverted": "%1$sによって追加されていないか",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "エンチャントされているか%1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "エンチャントがされていないか",
|
||||
"create.item_attributes.color": "%1$sで染められているか",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "メカニカルプレスがボンと鳴る",
|
||||
"create.subtitle.fwoomp": "ポテトランチャーがバキューンと鳴る",
|
||||
"create.subtitle.worldshaper_place": "ワールドシェーパーが設置する",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "アイテムが滑る",
|
||||
"create.subtitle.saw_activate_stone": "メカニカルソーが動作する",
|
||||
"create.subtitle.blaze_munch": "ブレイズの咀嚼音",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 277",
|
||||
"_": "Missing Localizations: 283",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "'%1$s' 그룹에 속해 있지 않은",
|
||||
"create.item_attributes.added_by": "%1$s에 의해 추가된",
|
||||
"create.item_attributes.added_by.inverted": "%1$s에 의해 추가되지 않은",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "%1$s 마법이 부여된",
|
||||
"create.item_attributes.has_enchant.inverted": "%1$s 마법이 부여되지 않은",
|
||||
"create.item_attributes.color": "염색된 %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "기계식 압착기가 무언가를 압착함",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "블레이즈 가열기가 무언가를 먹어 치움",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1752",
|
||||
"_": "Missing Localizations: 1758",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
||||
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
||||
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 241",
|
||||
"_": "Missing Localizations: 247",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "nie jest w grupie \"%1$s\"",
|
||||
"create.item_attributes.added_by": "dodany przez %1$s",
|
||||
"create.item_attributes.added_by.inverted": "niedodany przez %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "posiada zaklęcie %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "nie posiada zaklęcia %1$s",
|
||||
"create.item_attributes.color": "jest zafarbowane, kolor %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "Mechaniczna prasa stuka",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "Kształter strzela",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "Przedmiot ślizga się",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "Płomyk szczęśliwie przeżuwa",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1793",
|
||||
"_": "Missing Localizations: 1799",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
||||
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
||||
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 272",
|
||||
"_": "Missing Localizations: 278",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "не принадлежит '%1$s'",
|
||||
"create.item_attributes.added_by": "был добавлен %1$s",
|
||||
"create.item_attributes.added_by.inverted": "не был добавлен %1$s",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "зачарован на %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "не зачарован на %1$s",
|
||||
"create.item_attributes.color": "Покрашено в %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "Всполох радостно жуёт",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 282",
|
||||
"_": "Missing Localizations: 288",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "不属于%1$s",
|
||||
"create.item_attributes.added_by": "由%1$s添加",
|
||||
"create.item_attributes.added_by.inverted": "不是由%1$s添加",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "有附魔效果%1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "没有附魔效果%1$s",
|
||||
"create.item_attributes.color": "染色为%1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "烈焰人:咀嚼",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 277",
|
||||
"_": "Missing Localizations: 283",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1065,6 +1065,11 @@
|
|||
"create.item_attributes.in_item_group.inverted": "不屬於%1$s",
|
||||
"create.item_attributes.added_by": "由%1$s添加",
|
||||
"create.item_attributes.added_by.inverted": "不是由%1$s添加",
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||
"create.item_attributes.has_enchant": "有附魔效果%1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "沒有附魔效果%1$s",
|
||||
"create.item_attributes.color": "已被染色成 %1$s",
|
||||
|
@ -1217,6 +1222,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "液壓機工作",
|
||||
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
|
||||
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
|
||||
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
|
||||
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
|
||||
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
|
||||
"create.subtitle.blaze_munch": "烈焰使者開心地吃著",
|
||||
|
|
|
@ -128,6 +128,31 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"crushing_1": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "minecraft:block.netherrack.hit",
|
||||
"type": "event"
|
||||
}
|
||||
],
|
||||
"subtitle": "create.subtitle.crushing_1"
|
||||
},
|
||||
"crushing_2": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "minecraft:block.gravel.place",
|
||||
"type": "event"
|
||||
}
|
||||
]
|
||||
},
|
||||
"crushing_3": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "minecraft:block.netherite_block.break",
|
||||
"type": "event"
|
||||
}
|
||||
]
|
||||
},
|
||||
"deny": {
|
||||
"sounds": [
|
||||
{
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import static com.simibubi.create.AllTags.forgeItemTag;
|
||||
import static com.simibubi.create.AllTags.AllItemTags.CREATE_INGOTS;
|
||||
import static com.simibubi.create.AllTags.AllItemTags.CRUSHED_ORES;
|
||||
import static com.simibubi.create.AllTags.AllItemTags.NUGGETS;
|
||||
import static com.simibubi.create.AllTags.AllItemTags.PLATES;
|
||||
import static com.simibubi.create.AllTags.forgeItemTag;
|
||||
import static com.simibubi.create.content.AllSections.CURIOSITIES;
|
||||
import static com.simibubi.create.content.AllSections.KINETICS;
|
||||
import static com.simibubi.create.content.AllSections.LOGISTICS;
|
||||
|
|
|
@ -199,6 +199,21 @@ public class AllSoundEvents {
|
|||
.category(SoundCategory.BLOCKS)
|
||||
.build(),
|
||||
|
||||
CRUSHING_1 = create("crushing_1").subtitle("Crushing noises")
|
||||
.playExisting(SoundEvents.BLOCK_NETHERRACK_HIT)
|
||||
.category(SoundCategory.BLOCKS)
|
||||
.build(),
|
||||
|
||||
CRUSHING_2 = create("crushing_2").noSubtitle()
|
||||
.playExisting(SoundEvents.BLOCK_GRAVEL_PLACE)
|
||||
.category(SoundCategory.BLOCKS)
|
||||
.build(),
|
||||
|
||||
CRUSHING_3 = create("crushing_3").noSubtitle()
|
||||
.playExisting(SoundEvents.BLOCK_NETHERITE_BLOCK_BREAK)
|
||||
.category(SoundCategory.BLOCKS)
|
||||
.build(),
|
||||
|
||||
PECULIAR_BELL_USE = create("peculiar_bell_use").subtitle("Peculiar Bell tolls")
|
||||
.playExisting(SoundEvents.BLOCK_BELL_USE)
|
||||
.category(SoundCategory.BLOCKS)
|
||||
|
@ -230,7 +245,8 @@ public class AllSoundEvents {
|
|||
public static JsonElement provideLangEntries() {
|
||||
JsonObject object = new JsonObject();
|
||||
for (SoundEntry entry : entries.values())
|
||||
object.addProperty(entry.getSubtitleKey(), entry.getSubtitle());
|
||||
if (entry.hasSubtitle())
|
||||
object.addProperty(entry.getSubtitleKey(), entry.getSubtitle());
|
||||
return object;
|
||||
}
|
||||
|
||||
|
@ -307,6 +323,11 @@ public class AllSoundEvents {
|
|||
return this;
|
||||
}
|
||||
|
||||
public SoundEntryBuilder noSubtitle() {
|
||||
this.subtitle = null;
|
||||
return this;
|
||||
}
|
||||
|
||||
public SoundEntryBuilder category(SoundCategory category) {
|
||||
this.category = category;
|
||||
return this;
|
||||
|
@ -362,6 +383,10 @@ public class AllSoundEvents {
|
|||
return Create.asResource(id);
|
||||
}
|
||||
|
||||
public boolean hasSubtitle() {
|
||||
return subtitle != null;
|
||||
}
|
||||
|
||||
public String getSubtitle() {
|
||||
return subtitle;
|
||||
}
|
||||
|
@ -460,7 +485,7 @@ public class AllSoundEvents {
|
|||
s.addProperty("type", "event");
|
||||
list.add(s);
|
||||
entry.add("sounds", list);
|
||||
if (i == 0)
|
||||
if (i == 0 && hasSubtitle())
|
||||
entry.addProperty("subtitle", getSubtitleKey());
|
||||
json.add(getIdOf(i), entry);
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package com.simibubi.create.compat;
|
||||
|
||||
import net.minecraftforge.fml.ModList;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import net.minecraftforge.fml.ModList;
|
||||
|
||||
/**
|
||||
* For compatibility with and without another mod present, we have to define load conditions of the specific code
|
||||
*/
|
||||
|
|
|
@ -4,6 +4,8 @@ import com.simibubi.create.foundation.tileEntity.SyncedTileEntity;
|
|||
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class HarvesterTileEntity extends SyncedTileEntity {
|
||||
|
||||
|
@ -17,6 +19,7 @@ public class HarvesterTileEntity extends SyncedTileEntity {
|
|||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
return RENDER_BOX.offset(pos);
|
||||
}
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
package com.simibubi.create.content.contraptions.components.actors;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
|
||||
import com.simibubi.create.content.contraptions.components.saw.SawRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.saw.SawTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.foundation.utility.AbstractBlockBreakQueue;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices;
|
||||
import com.simibubi.create.foundation.utility.AbstractBlockBreakQueue;
|
||||
import com.simibubi.create.foundation.utility.TreeCutter;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
@ -24,8 +26,6 @@ import net.minecraftforge.api.distmarker.Dist;
|
|||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.items.ItemHandlerHelper;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
public class SawMovementBehaviour extends BlockBreakingMovementBehaviour {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -9,6 +9,8 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class HandCrankTileEntity extends GeneratingKineticTileEntity {
|
||||
|
||||
|
@ -82,6 +84,7 @@ public class HandCrankTileEntity extends GeneratingKineticTileEntity {
|
|||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void tickAudio() {
|
||||
super.tickAudio();
|
||||
if (inUse > 0 && AnimationTickHolder.getTicks() % 10 == 0) {
|
||||
|
|
|
@ -13,6 +13,8 @@ import com.simibubi.create.content.contraptions.processing.ProcessingInventory;
|
|||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.item.ItemHelper;
|
||||
import com.simibubi.create.foundation.sound.SoundScapes;
|
||||
import com.simibubi.create.foundation.sound.SoundScapes.AmbienceGroup;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour;
|
||||
|
@ -38,8 +40,11 @@ import net.minecraft.util.math.AxisAlignedBB;
|
|||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.vector.Vector3d;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandlerModifiable;
|
||||
import net.minecraftforge.items.wrapper.RecipeWrapper;
|
||||
|
@ -87,37 +92,41 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
if (searchForEntity) {
|
||||
searchForEntity = false;
|
||||
List<Entity> search = world.getEntitiesInAABBexcluding(null, new AxisAlignedBB(getPos()),
|
||||
e -> entityUUID.equals(e.getUniqueID()));
|
||||
e -> entityUUID.equals(e.getUniqueID()));
|
||||
if (search.isEmpty())
|
||||
clear();
|
||||
else
|
||||
processingEntity = search.get(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (!isOccupied())
|
||||
return;
|
||||
if (crushingspeed == 0)
|
||||
return;
|
||||
|
||||
if (world.isRemote)
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> this.tickAudio());
|
||||
|
||||
float speed = crushingspeed * 4;
|
||||
|
||||
Vector3d centerPos = VecHelper.getCenterOf(pos);
|
||||
Direction facing = getBlockState().get(FACING);
|
||||
int offset = facing.getAxisDirection().getOffset();
|
||||
Vector3d outSpeed = new Vector3d((facing.getAxis() == Axis.X ? 0.25D : 0.0D) * offset
|
||||
, offset == 1 ? (facing.getAxis() == Axis.Y ? 0.5D : 0.0D) : 0.0D //Increased upwards speed so upwards crushing wheels shoot out the item properly.
|
||||
, (facing.getAxis() == Axis.Z ? 0.25D : 0.0D) * offset); //No downwards speed, so downwards crushing wheels drop the items as before.
|
||||
Vector3d outPos = centerPos.add((facing.getAxis() == Axis.X ? .55f * offset : 0f)
|
||||
, (facing.getAxis() == Axis.Y ? .55f * offset : 0f)
|
||||
, (facing.getAxis() == Axis.Z ? .55f * offset : 0f));
|
||||
int offset = facing.getAxisDirection()
|
||||
.getOffset();
|
||||
Vector3d outSpeed = new Vector3d((facing.getAxis() == Axis.X ? 0.25D : 0.0D) * offset,
|
||||
offset == 1 ? (facing.getAxis() == Axis.Y ? 0.5D : 0.0D) : 0.0D // Increased upwards speed so upwards
|
||||
// crushing wheels shoot out the item
|
||||
// properly.
|
||||
, (facing.getAxis() == Axis.Z ? 0.25D : 0.0D) * offset); // No downwards speed, so downwards crushing wheels
|
||||
// drop the items as before.
|
||||
Vector3d outPos = centerPos.add((facing.getAxis() == Axis.X ? .55f * offset : 0f),
|
||||
(facing.getAxis() == Axis.Y ? .55f * offset : 0f), (facing.getAxis() == Axis.Z ? .55f * offset : 0f));
|
||||
|
||||
if (!hasEntity()) {
|
||||
|
||||
float processingSpeed =
|
||||
MathHelper.clamp((speed) / (!inventory.appliedRecipe ? MathHelper.log2(inventory.getStackInSlot(0)
|
||||
.getCount()) : 1), .25f, 20);
|
||||
MathHelper.clamp((speed) / (!inventory.appliedRecipe ? MathHelper.log2(inventory.getStackInSlot(0)
|
||||
.getCount()) : 1), .25f, 20);
|
||||
inventory.remainingTime -= processingSpeed;
|
||||
spawnParticles(inventory.getStackInSlot(0));
|
||||
|
||||
|
@ -136,12 +145,13 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
}
|
||||
inventory.remainingTime = 0;
|
||||
|
||||
//Output Items
|
||||
if (facing.getAxis().isHorizontal() || facing == Direction.DOWN) {
|
||||
BlockPos nextPos = pos.add(facing.getAxis() == Axis.X ? 1f * offset : 0f
|
||||
, (-1f)
|
||||
, facing.getAxis() == Axis.Z ? 1f * offset : 0f);
|
||||
DirectBeltInputBehaviour behaviour = TileEntityBehaviour.get(world, nextPos, DirectBeltInputBehaviour.TYPE);
|
||||
// Output Items
|
||||
if (facing.getAxis()
|
||||
.isHorizontal() || facing == Direction.DOWN) {
|
||||
BlockPos nextPos = pos.add(facing.getAxis() == Axis.X ? 1f * offset : 0f, (-1f),
|
||||
facing.getAxis() == Axis.Z ? 1f * offset : 0f);
|
||||
DirectBeltInputBehaviour behaviour =
|
||||
TileEntityBehaviour.get(world, nextPos, DirectBeltInputBehaviour.TYPE);
|
||||
if (behaviour != null) {
|
||||
boolean changed = false;
|
||||
if (!behaviour.canInsertFromSide(facing))
|
||||
|
@ -164,7 +174,7 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
}
|
||||
}
|
||||
|
||||
//Eject Items
|
||||
// Eject Items
|
||||
for (int slot = 0; slot < inventory.getSlots(); slot++) {
|
||||
ItemStack stack = inventory.getStackInSlot(slot);
|
||||
if (stack.isEmpty())
|
||||
|
@ -172,18 +182,17 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
ItemEntity entityIn = new ItemEntity(world, outPos.x, outPos.y, outPos.z, stack);
|
||||
entityIn.setMotion(outSpeed);
|
||||
entityIn.getPersistentData()
|
||||
.put("BypassCrushingWheel", NBTUtil.writeBlockPos(pos));
|
||||
.put("BypassCrushingWheel", NBTUtil.writeBlockPos(pos));
|
||||
world.addEntity(entityIn);
|
||||
}
|
||||
inventory.clear();
|
||||
world.notifyBlockUpdate(pos, getBlockState(), getBlockState(), 2 | 16);
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (!processingEntity.isAlive() || !processingEntity.getBoundingBox()
|
||||
.intersects(new AxisAlignedBB(pos).grow(.5f))) {
|
||||
.intersects(new AxisAlignedBB(pos).grow(.5f))) {
|
||||
clear();
|
||||
return;
|
||||
}
|
||||
|
@ -193,33 +202,40 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
if (processingEntity.isSneaking())
|
||||
xMotion = zMotion = 0;
|
||||
double movement = Math.max(-speed / 4f, -.5f) * -offset;
|
||||
processingEntity.setMotion(new Vector3d(facing.getAxis() == Axis.X ? movement : xMotion
|
||||
, facing.getAxis() == Axis.Y ? movement : 0f //Do not move entities upwards or downwards for horizontal crushers,
|
||||
, facing.getAxis() == Axis.Z ? movement : zMotion)); //Or they'll only get their feet crushed.
|
||||
processingEntity.setMotion(
|
||||
new Vector3d(facing.getAxis() == Axis.X ? movement : xMotion, facing.getAxis() == Axis.Y ? movement : 0f // Do
|
||||
// not
|
||||
// move
|
||||
// entities
|
||||
// upwards
|
||||
// or
|
||||
// downwards
|
||||
// for
|
||||
// horizontal
|
||||
// crushers,
|
||||
, facing.getAxis() == Axis.Z ? movement : zMotion)); // Or they'll only get their feet crushed.
|
||||
|
||||
if (world.isRemote)
|
||||
return;
|
||||
|
||||
if (!(processingEntity instanceof ItemEntity)) {
|
||||
Vector3d entityOutPos = outPos.add(facing.getAxis() == Axis.X ? .5f * offset : 0f
|
||||
, facing.getAxis() == Axis.Y ? .5f * offset : 0f
|
||||
, facing.getAxis() == Axis.Z ? .5f * offset : 0f);
|
||||
Vector3d entityOutPos = outPos.add(facing.getAxis() == Axis.X ? .5f * offset : 0f,
|
||||
facing.getAxis() == Axis.Y ? .5f * offset : 0f, facing.getAxis() == Axis.Z ? .5f * offset : 0f);
|
||||
int crusherDamage = AllConfigs.SERVER.kinetics.crushingDamage.get();
|
||||
|
||||
if (processingEntity instanceof LivingEntity) {
|
||||
if ((((LivingEntity) processingEntity).getHealth() - crusherDamage <= 0) //Takes LivingEntity instances as exception, so it can move them before it would kill them.
|
||||
&& (((LivingEntity) processingEntity).hurtTime <= 0)) { //This way it can actually output the items to the right spot.
|
||||
processingEntity.setPosition(entityOutPos.x
|
||||
, entityOutPos.y
|
||||
, entityOutPos.z);
|
||||
if ((((LivingEntity) processingEntity).getHealth() - crusherDamage <= 0) // Takes LivingEntity instances
|
||||
// as exception, so it can
|
||||
// move them before it would
|
||||
// kill them.
|
||||
&& (((LivingEntity) processingEntity).hurtTime <= 0)) { // This way it can actually output the items
|
||||
// to the right spot.
|
||||
processingEntity.setPosition(entityOutPos.x, entityOutPos.y, entityOutPos.z);
|
||||
}
|
||||
}
|
||||
processingEntity.attackEntityFrom(CrushingWheelTileEntity.damageSource,
|
||||
crusherDamage);
|
||||
processingEntity.attackEntityFrom(CrushingWheelTileEntity.damageSource, crusherDamage);
|
||||
if (!processingEntity.isAlive()) {
|
||||
processingEntity.setPosition(entityOutPos.x
|
||||
, entityOutPos.y
|
||||
, entityOutPos.z);
|
||||
processingEntity.setPosition(entityOutPos.x, entityOutPos.y, entityOutPos.z);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -227,24 +243,33 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
ItemEntity itemEntity = (ItemEntity) processingEntity;
|
||||
itemEntity.setPickupDelay(20);
|
||||
if (facing.getAxis() == Axis.Y) {
|
||||
if (processingEntity.getY() * -offset < (centerPos.y - .25f) * -offset) {
|
||||
if (processingEntity.getY() * -offset < (centerPos.y - .25f) * -offset) {
|
||||
intakeItem(itemEntity);
|
||||
}
|
||||
} else if (facing.getAxis() == Axis.Z) {
|
||||
if (processingEntity.getZ() * -offset < (centerPos.z - .25f) * -offset) {
|
||||
if (processingEntity.getZ() * -offset < (centerPos.z - .25f) * -offset) {
|
||||
intakeItem(itemEntity);
|
||||
}
|
||||
} else {
|
||||
if (processingEntity.getX() * -offset < (centerPos.x - .25f) * -offset) {
|
||||
if (processingEntity.getX() * -offset < (centerPos.x - .25f) * -offset) {
|
||||
intakeItem(itemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void tickAudio() {
|
||||
float pitch = MathHelper.clamp((crushingspeed / 256f) + .45f, .85f, 1f);
|
||||
if (entityUUID == null && inventory.getStackInSlot(0)
|
||||
.isEmpty())
|
||||
return;
|
||||
SoundScapes.play(AmbienceGroup.CRUSHING, pos, pitch);
|
||||
}
|
||||
|
||||
private void intakeItem(ItemEntity itemEntity) {
|
||||
inventory.clear();
|
||||
inventory.setStackInSlot(0, itemEntity.getItem()
|
||||
.copy());
|
||||
.copy());
|
||||
itemInserted(inventory.getStackInSlot(0));
|
||||
itemEntity.remove();
|
||||
world.notifyBlockUpdate(pos, getBlockState(), getBlockState(), 2 | 16);
|
||||
|
@ -257,14 +282,14 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
IParticleData particleData = null;
|
||||
if (stack.getItem() instanceof BlockItem)
|
||||
particleData = new BlockParticleData(ParticleTypes.BLOCK, ((BlockItem) stack.getItem()).getBlock()
|
||||
.getDefaultState());
|
||||
.getDefaultState());
|
||||
else
|
||||
particleData = new ItemParticleData(ParticleTypes.ITEM, stack);
|
||||
|
||||
Random r = world.rand;
|
||||
for (int i = 0; i < 4; i++)
|
||||
world.addParticle(particleData, pos.getX() + r.nextFloat(), pos.getY() + r.nextFloat(),
|
||||
pos.getZ() + r.nextFloat(), 0, 0, 0);
|
||||
pos.getZ() + r.nextFloat(), 0, 0, 0);
|
||||
}
|
||||
|
||||
private void applyRecipe() {
|
||||
|
@ -273,11 +298,11 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
List<ItemStack> list = new ArrayList<>();
|
||||
if (recipe.isPresent()) {
|
||||
int rolls = inventory.getStackInSlot(0)
|
||||
.getCount();
|
||||
.getCount();
|
||||
inventory.clear();
|
||||
for (int roll = 0; roll < rolls; roll++) {
|
||||
List<ItemStack> rolledResults = recipe.get()
|
||||
.rollResults();
|
||||
.rollResults();
|
||||
for (int i = 0; i < rolledResults.size(); i++) {
|
||||
ItemStack stack = rolledResults.get(i);
|
||||
ItemHelper.addToList(stack, list);
|
||||
|
@ -326,7 +351,7 @@ public class CrushingWheelControllerTileEntity extends SmartTileEntity {
|
|||
private void itemInserted(ItemStack stack) {
|
||||
Optional<ProcessingRecipe<RecipeWrapper>> recipe = findRecipe();
|
||||
inventory.remainingTime = recipe.isPresent() ? recipe.get()
|
||||
.getProcessingDuration() : 100;
|
||||
.getProcessingDuration() : 100;
|
||||
inventory.appliedRecipe = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,8 @@ import java.util.Optional;
|
|||
|
||||
import com.simibubi.create.AllRecipeTypes;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.foundation.sound.SoundScapes;
|
||||
import com.simibubi.create.foundation.sound.SoundScapes.AmbienceGroup;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
@ -19,6 +21,8 @@ import net.minecraft.util.Direction;
|
|||
import net.minecraft.util.Direction.Axis;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.vector.Vector3d;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.common.capabilities.Capability;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
@ -48,6 +52,21 @@ public class MillstoneTileEntity extends KineticTileEntity {
|
|||
super.addBehaviours(behaviours);
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void tickAudio() {
|
||||
super.tickAudio();
|
||||
|
||||
if (getSpeed() == 0)
|
||||
return;
|
||||
if (inputInv.getStackInSlot(0)
|
||||
.isEmpty())
|
||||
return;
|
||||
|
||||
float pitch = MathHelper.clamp((Math.abs(getSpeed()) / 256f) + .45f, .85f, 1f);
|
||||
SoundScapes.play(AmbienceGroup.MILLING, pos, pitch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
|
|
|
@ -56,6 +56,7 @@ import net.minecraft.tileentity.TileEntityType;
|
|||
import net.minecraft.util.Direction;
|
||||
import net.minecraft.util.LazyValue;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.util.math.vector.Vector3d;
|
||||
|
@ -71,6 +72,8 @@ import net.minecraftforge.items.IItemHandler;
|
|||
@MethodsReturnNonnullByDefault
|
||||
public class SawTileEntity extends BlockBreakingKineticTileEntity {
|
||||
|
||||
private static final AxisAlignedBB RENDER_BOX = new AxisAlignedBB(0, 0, 0, 1, 1, 1);
|
||||
|
||||
private static final Object cuttingRecipesKey = new Object();
|
||||
public static final LazyValue<IRecipeType<?>> woodcuttingRecipeType =
|
||||
new LazyValue<>(() -> Registry.RECIPE_TYPE.getOrDefault(new ResourceLocation("druidcraft", "woodcutting")));
|
||||
|
@ -120,6 +123,13 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
|
|||
playEvent = ItemStack.read(compound.getCompound("PlayEvent"));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AxisAlignedBB makeRenderBoundingBox() {
|
||||
Direction facing = getBlockState().get(SawBlock.FACING);
|
||||
AxisAlignedBB box = RENDER_BOX.expand(facing.getXOffset() * 0.125f, facing.getYOffset() * 0.125f, facing.getZOffset() * 0.125f);
|
||||
return box.offset(pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void tickAudio() {
|
||||
|
|
|
@ -7,7 +7,6 @@ import java.util.function.Consumer;
|
|||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.simibubi.create.AllRecipeTypes;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.fluid.FluidHelper;
|
||||
import com.simibubi.create.foundation.fluid.FluidIngredient;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
|
|
@ -6,6 +6,9 @@ import com.simibubi.create.AllBlocks;
|
|||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
||||
import com.simibubi.create.content.schematics.ISpecialBlockItemRequirement;
|
||||
import com.simibubi.create.content.schematics.ItemRequirement;
|
||||
import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType;
|
||||
import com.simibubi.create.foundation.block.ITE;
|
||||
import com.simibubi.create.foundation.utility.DyeHelper;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
|
@ -35,7 +38,8 @@ import net.minecraft.world.IBlockReader;
|
|||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
|
||||
public class NixieTubeBlock extends HorizontalBlock implements ITE<NixieTubeTileEntity>, IWrenchable {
|
||||
public class NixieTubeBlock extends HorizontalBlock
|
||||
implements ITE<NixieTubeTileEntity>, IWrenchable, ISpecialBlockItemRequirement {
|
||||
|
||||
public static final BooleanProperty CEILING = BooleanProperty.create("ceiling");
|
||||
private DyeColor color;
|
||||
|
@ -122,6 +126,17 @@ public class NixieTubeBlock extends HorizontalBlock implements ITE<NixieTubeTile
|
|||
p_196243_2_.removeTileEntity(p_196243_3_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getItem(IBlockReader p_185473_1_, BlockPos p_185473_2_, BlockState p_185473_3_) {
|
||||
return AllBlocks.ORANGE_NIXIE_TUBE.asStack();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemRequirement getRequiredItems(BlockState state, TileEntity te) {
|
||||
return new ItemRequirement(ItemUseType.CONSUME, AllBlocks.ORANGE_NIXIE_TUBE.get()
|
||||
.asItem());
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_,
|
||||
ISelectionContext p_220053_4_) {
|
||||
|
|
|
@ -19,6 +19,7 @@ import com.simibubi.create.content.logistics.item.filter.attribute.ColorAttribut
|
|||
import com.simibubi.create.content.logistics.item.filter.attribute.EnchantAttribute;
|
||||
import com.simibubi.create.content.logistics.item.filter.attribute.FluidContentsAttribute;
|
||||
import com.simibubi.create.content.logistics.item.filter.attribute.ItemNameAttribute;
|
||||
import com.simibubi.create.content.logistics.item.filter.attribute.ShulkerFillLevelAttribute;
|
||||
import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryAmuletAttribute;
|
||||
import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryAttunementAttribute;
|
||||
import com.simibubi.create.content.logistics.item.filter.attribute.astralsorcery.AstralSorceryCrystalAttribute;
|
||||
|
@ -56,6 +57,7 @@ public interface ItemAttribute {
|
|||
static ItemAttribute inItemGroup = register(new InItemGroup(ItemGroup.MISC));
|
||||
static ItemAttribute addedBy = register(new InItemGroup.AddedBy("dummy"));
|
||||
static ItemAttribute hasEnchant = register(EnchantAttribute.EMPTY);
|
||||
static ItemAttribute shulkerFillLevel = register(ShulkerFillLevelAttribute.EMPTY);
|
||||
static ItemAttribute hasColor = register(ColorAttribute.EMPTY);
|
||||
static ItemAttribute hasFluid = register(FluidContentsAttribute.EMPTY);
|
||||
static ItemAttribute hasName = register(new ItemNameAttribute("dummy"));
|
||||
|
|
|
@ -0,0 +1,109 @@
|
|||
package com.simibubi.create.content.logistics.item.filter.attribute;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.content.logistics.item.filter.ItemAttribute;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.ShulkerBoxBlock;
|
||||
import net.minecraft.inventory.ItemStackHelper;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
import net.minecraft.util.NonNullList;
|
||||
|
||||
public class ShulkerFillLevelAttribute implements ItemAttribute {
|
||||
public static final ShulkerFillLevelAttribute EMPTY = new ShulkerFillLevelAttribute(null);
|
||||
|
||||
private final ShulkerLevels levels;
|
||||
|
||||
public ShulkerFillLevelAttribute(ShulkerLevels levels) {
|
||||
this.levels = levels;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean appliesTo(ItemStack stack) {
|
||||
return levels != null && levels.canApply(stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ItemAttribute> listAttributesOf(ItemStack stack) {
|
||||
return Arrays.stream(ShulkerLevels.values())
|
||||
.filter(shulkerLevels -> shulkerLevels.canApply(stack))
|
||||
.map(ShulkerFillLevelAttribute::new)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTranslationKey() {
|
||||
return "shulker_level";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object[] getTranslationParameters() {
|
||||
String parameter = "";
|
||||
if (levels != null)
|
||||
parameter = Lang.translate("item_attributes." + getTranslationKey() + "." + levels.key).getString();
|
||||
return new Object[]{parameter};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeNBT(CompoundNBT nbt) {
|
||||
if (levels != null)
|
||||
nbt.putString("id", levels.key);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemAttribute readNBT(CompoundNBT nbt) {
|
||||
return nbt.contains("id") ? new ShulkerFillLevelAttribute(ShulkerLevels.fromKey(nbt.getString("id"))) : EMPTY;
|
||||
}
|
||||
|
||||
enum ShulkerLevels {
|
||||
EMPTY("empty", amount -> amount == 0),
|
||||
PARTIAL("partial", amount -> amount > 0 && amount < Integer.MAX_VALUE),
|
||||
FULL("full", amount -> amount == Integer.MAX_VALUE);
|
||||
|
||||
private final Predicate<Integer> requiredSize;
|
||||
private final String key;
|
||||
|
||||
ShulkerLevels(String key, Predicate<Integer> requiredSize) {
|
||||
this.key = key;
|
||||
this.requiredSize = requiredSize;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ShulkerLevels fromKey(String key) {
|
||||
return Arrays.stream(values()).filter(shulkerLevels -> shulkerLevels.key.equals(key)).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
private static boolean isShulker(ItemStack stack) {
|
||||
return Block.getBlockFromItem(stack.getItem()) instanceof ShulkerBoxBlock;
|
||||
}
|
||||
|
||||
public boolean canApply(ItemStack testStack) {
|
||||
if (!isShulker(testStack))
|
||||
return false;
|
||||
CompoundNBT compoundnbt = testStack.getChildTag("BlockEntityTag");
|
||||
if (compoundnbt == null)
|
||||
return requiredSize.test(0);
|
||||
if (compoundnbt.contains("LootTable", 8))
|
||||
return false;
|
||||
if (compoundnbt.contains("Items", 9)) {
|
||||
int rawSize = compoundnbt.getList("Items", 10).size();
|
||||
if (rawSize < 27)
|
||||
return requiredSize.test(rawSize);
|
||||
|
||||
NonNullList<ItemStack> inventory = NonNullList.withSize(27, ItemStack.EMPTY);
|
||||
ItemStackHelper.loadAllItems(compoundnbt, inventory);
|
||||
boolean isFull = inventory.stream().allMatch(itemStack -> !itemStack.isEmpty() && itemStack.getCount() == itemStack.getMaxStackSize());
|
||||
return requiredSize.test(isFull ? Integer.MAX_VALUE : rawSize);
|
||||
}
|
||||
return requiredSize.test(0);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -30,6 +30,8 @@ public class SoundScapes {
|
|||
|
||||
KINETIC(SoundScapes::kinetic),
|
||||
COG(SoundScapes::cogwheel),
|
||||
CRUSHING(SoundScapes::crushing),
|
||||
MILLING(SoundScapes::milling),
|
||||
|
||||
;
|
||||
|
||||
|
@ -53,6 +55,17 @@ public class SoundScapes {
|
|||
return new SoundScape(pitch, group).continuous(AllSoundEvents.COGS.getMainEvent(), 1.5f, 1);
|
||||
}
|
||||
|
||||
private static SoundScape crushing(float pitch, AmbienceGroup group) {
|
||||
return new SoundScape(pitch, group).repeating(AllSoundEvents.CRUSHING_1.getMainEvent(), 1.545f, .75f, 1)
|
||||
.repeating(AllSoundEvents.CRUSHING_2.getMainEvent(), 0.425f, .75f, 2)
|
||||
.repeating(AllSoundEvents.CRUSHING_3.getMainEvent(), 2f, 1.75f, 2);
|
||||
}
|
||||
|
||||
private static SoundScape milling(float pitch, AmbienceGroup group) {
|
||||
return new SoundScape(pitch, group).repeating(AllSoundEvents.CRUSHING_1.getMainEvent(), 1.545f, .75f, 1)
|
||||
.repeating(AllSoundEvents.CRUSHING_2.getMainEvent(), 0.425f, .75f, 2);
|
||||
}
|
||||
|
||||
enum PitchGroup {
|
||||
VERY_LOW, LOW, NORMAL, HIGH, VERY_HIGH
|
||||
}
|
||||
|
|
|
@ -14,9 +14,7 @@ import javax.annotation.Nonnull;
|
|||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllTags;
|
||||
|
||||
import com.simibubi.create.compat.Mods;
|
||||
|
||||
import com.simibubi.create.compat.dynamictrees.DynamicTree;
|
||||
|
||||
import net.minecraft.block.BambooBlock;
|
||||
|
|
|
@ -391,6 +391,12 @@
|
|||
"create.item_attributes.added_by": "was added by %1$s",
|
||||
"create.item_attributes.added_by.inverted": "was not added by %1$s",
|
||||
|
||||
"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",
|
||||
"create.item_attributes.shulker_level.empty": "empty",
|
||||
"create.item_attributes.shulker_level.partial": "partially filled",
|
||||
|
||||
"create.item_attributes.has_enchant": "is enchanted with %1$s",
|
||||
"create.item_attributes.has_enchant.inverted": "is not enchanted with %1$s",
|
||||
"create.item_attributes.color": "is dyed %1$s",
|
||||
|
|
Loading…
Reference in a new issue