Adjustments

This commit is contained in:
simibubi 2022-01-08 15:34:03 +01:00
parent 8a99a08d7c
commit 6dceee2478
38 changed files with 241 additions and 330 deletions

View file

@ -531,20 +531,20 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
f33899d90db924319a1b99065bf1faff1aa40d6a assets/create/lang/en_ud.json f33899d90db924319a1b99065bf1faff1aa40d6a assets/create/lang/en_ud.json
6be350b9d57fa573e464b8ed250b66234d767631 assets/create/lang/en_us.json 748d2635a4f8c97cee2392c1c08c4716f7424202 assets/create/lang/en_us.json
f7b78c385c001eccef20718886ec62aebb49920b assets/create/lang/unfinished/de_de.json d5eed56ff394835dae0f514f9317b83f7fd3954c assets/create/lang/unfinished/de_de.json
9a13b14a41fabc846638b5aa1557ab3be915e24f assets/create/lang/unfinished/es_cl.json b44cb66962677538209a02fdafc2e62541542d64 assets/create/lang/unfinished/es_cl.json
a8cc635c26b070336407991f068e7b42b476aed7 assets/create/lang/unfinished/es_es.json 617f9f1a37b46066b8f6a14f22cbeec8179ce0cd assets/create/lang/unfinished/es_es.json
ce38f5577b7b96460025372563ee88cef2318e7c assets/create/lang/unfinished/fr_fr.json 91d391799b6579914ef35cf8ebe917684b25b9df assets/create/lang/unfinished/fr_fr.json
2c85e6efd817348d94c55292e20fadf6b704209c assets/create/lang/unfinished/it_it.json 787470a30ca417e8cf1da6b47ac40879bb274237 assets/create/lang/unfinished/it_it.json
f6ed2a6f0f241e73f1e6a88b8500043ef0668b1d assets/create/lang/unfinished/ja_jp.json 00f079aaebfe906b84b71903f80b0be4127e8cc7 assets/create/lang/unfinished/ja_jp.json
133188f5196da148f9dd8aa122d9b008daf36685 assets/create/lang/unfinished/ko_kr.json 75a8b1e3ead980456ff4a4607b1e28197d9de2e8 assets/create/lang/unfinished/ko_kr.json
983b53cab576e43b0e61f899590b6488d220cd36 assets/create/lang/unfinished/nl_nl.json 6c7f81042ee0cc25e0ababea6cc254b72557aac9 assets/create/lang/unfinished/nl_nl.json
0d4aa18fa90d8620d4761ce2fbe900ef8f407a50 assets/create/lang/unfinished/pl_pl.json 7a3670aa1d488f637a4787c37419a25ace4813bc assets/create/lang/unfinished/pl_pl.json
2c765f1b8ea570d837212a7e86aec653fe155477 assets/create/lang/unfinished/pt_br.json 2c30f012946ab67f44514e987e9be87535eb5c5d assets/create/lang/unfinished/pt_br.json
9a1d7bbd01321fae009c00bbf5b2bc091ef38e13 assets/create/lang/unfinished/ru_ru.json 516e0f0149f814ceec3b15cfb2d46c3c4c8a877c assets/create/lang/unfinished/ru_ru.json
ecc1c5d0b5434804db76a5b6d4a589b16fa490be assets/create/lang/unfinished/zh_cn.json d9b421597a5b0b3ae662a12a94c833d853b24fe5 assets/create/lang/unfinished/zh_cn.json
b316488ca9891c2444a6df03bc5ddfbcd1f84de0 assets/create/lang/unfinished/zh_tw.json 68b91bb8f3822d2b0798a6ec8a85d7d188c5c4d1 assets/create/lang/unfinished/zh_tw.json
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
@ -4567,6 +4567,14 @@ fb8e4378cd2240644a4b5c0d06e27ad772ec7695 data/create/recipes/filling/sweet_roll.
d697de0c9b706ca4e18da7a2d769e7e5fe8d769d data/create/recipes/framed_glass_pane.json d697de0c9b706ca4e18da7a2d769e7e5fe8d769d data/create/recipes/framed_glass_pane.json
d0c541bbefb9f3f861ae5751645493c8e1687b5c data/create/recipes/granite_pillar_from_granite_stonecutting.json d0c541bbefb9f3f861ae5751645493c8e1687b5c data/create/recipes/granite_pillar_from_granite_stonecutting.json
dc3a5cc1a91cd35051b9e0f701e9fb44600a7dfb data/create/recipes/granite_pillar_from_stone_types_granite_stonecutting.json dc3a5cc1a91cd35051b9e0f701e9fb44600a7dfb data/create/recipes/granite_pillar_from_stone_types_granite_stonecutting.json
4e6283794e3b99043e92465d55440ad607d30965 data/create/recipes/haunting/blackstone.json
b0ebe3a1a7f2b9f3fd446f9639a7b6b20b9f726d data/create/recipes/haunting/crimson_fungus.json
60be487d3fef64e3457f5a95bd3d0aac4574e24c data/create/recipes/haunting/crimson_nylium.json
f1a2b5d5bd8dfd9c6ab4c40dc4e99cbabba06e84 data/create/recipes/haunting/haunted_bell.json
d34fe1f6d1eccc9f40ede3bd11e879140014401e data/create/recipes/haunting/soul_sand.json
c0aab10c6c323b92931e8b59bf9902a47165b263 data/create/recipes/haunting/soul_soil.json
a6c387d19c357d7c89aa44a10b9deb9e93b6c614 data/create/recipes/haunting/warped_fungus.json
80e2ae7d41c3a75423112e67b11718194de722cb data/create/recipes/haunting/warped_nylium.json
05908d48b6ac0c117da0b4b9ae4ae5e933ed900e data/create/recipes/horizontal_framed_glass_from_glass_colorless_stonecutting.json 05908d48b6ac0c117da0b4b9ae4ae5e933ed900e data/create/recipes/horizontal_framed_glass_from_glass_colorless_stonecutting.json
4e8d49934f9899f788d45d4347bfc085b2836699 data/create/recipes/horizontal_framed_glass_pane.json 4e8d49934f9899f788d45d4347bfc085b2836699 data/create/recipes/horizontal_framed_glass_pane.json
c3ccd16b7fe9878cc734d699b4c8b219ad556f46 data/create/recipes/jungle_window.json c3ccd16b7fe9878cc734d699b4c8b219ad556f46 data/create/recipes/jungle_window.json
@ -4855,7 +4863,6 @@ f6e2fb5725f3730d01fae4a2b1a04d11095eab5f data/create/recipes/scorchia_pillar_fro
d6e16599de7424513e1457b07acb6370815d2bd7 data/create/recipes/scoria_pillar_from_stone_types_scoria_stonecutting.json d6e16599de7424513e1457b07acb6370815d2bd7 data/create/recipes/scoria_pillar_from_stone_types_scoria_stonecutting.json
1b6bec69b00c44e74951973d69caae53d85383cb data/create/recipes/sequenced_assembly/cogwheel.json 1b6bec69b00c44e74951973d69caae53d85383cb data/create/recipes/sequenced_assembly/cogwheel.json
3bc3d13856f9ab8ccc47c3188cfd839f6db2359b data/create/recipes/sequenced_assembly/large_cogwheel.json 3bc3d13856f9ab8ccc47c3188cfd839f6db2359b data/create/recipes/sequenced_assembly/large_cogwheel.json
60bcef06c4fe292c3e90441aed49f5773b8934e6 data/create/recipes/sequenced_assembly/netherrack.json
b49a0da57a179edc087eee224221ded22fd1be01 data/create/recipes/sequenced_assembly/precision_mechanism.json b49a0da57a179edc087eee224221ded22fd1be01 data/create/recipes/sequenced_assembly/precision_mechanism.json
5e7648d55555c263539a2696b8d1f8d352a71dc9 data/create/recipes/small_andesite_brick_slab.json 5e7648d55555c263539a2696b8d1f8d352a71dc9 data/create/recipes/small_andesite_brick_slab.json
180c1ca843163ef4ed3701ac93e3eac060ad2cc4 data/create/recipes/small_andesite_brick_slab_from_andesite_stonecutting.json 180c1ca843163ef4ed3701ac93e3eac060ad2cc4 data/create/recipes/small_andesite_brick_slab_from_andesite_stonecutting.json
@ -5068,13 +5075,6 @@ a5d23be4cc959eb47d84b210190abaafcf41f022 data/create/recipes/smelting/zinc_ingot
4e622fc77e2a630af1b4115e0c60d55682baff72 data/create/recipes/smelting/zinc_ingot_from_ore.json 4e622fc77e2a630af1b4115e0c60d55682baff72 data/create/recipes/smelting/zinc_ingot_from_ore.json
4060cc921ea26b36cf5a505048f4a812f0569ae0 data/create/recipes/smelting/zinc_ingot_from_raw_ore.json 4060cc921ea26b36cf5a505048f4a812f0569ae0 data/create/recipes/smelting/zinc_ingot_from_raw_ore.json
ce7c3c6e1da9d6684c9537d1a558423925d89f33 data/create/recipes/smoking/bread.json ce7c3c6e1da9d6684c9537d1a558423925d89f33 data/create/recipes/smoking/bread.json
48e174e7f7347661985f4a488e939a785d7b9d2a data/create/recipes/soul_smoking/blackstone.json
bcb8362ef040fef36809a3980eb61ced8874aa5a data/create/recipes/soul_smoking/crimson_fungus.json
8070b6b69fb709e82a335873a0bddf67937069ba data/create/recipes/soul_smoking/crimson_nylium.json
4edd9fee0f61498209d0fd47701fd14a7188b2f9 data/create/recipes/soul_smoking/soul_sand.json
36e1d970622843713789f8fa25c7de09236bc39f data/create/recipes/soul_smoking/soul_soil.json
a7f50385d27c6c8ecdb813eb32f0ceb5336ba972 data/create/recipes/soul_smoking/warped_fungus.json
979bfbb98af35cfe7a8129e2c4cffa95923ce4b9 data/create/recipes/soul_smoking/warped_nylium.json
6b1d2483fe717657f7188f6490eab2da715609e8 data/create/recipes/splashing/black_concrete_powder.json 6b1d2483fe717657f7188f6490eab2da715609e8 data/create/recipes/splashing/black_concrete_powder.json
1aedfde11712827604bbef34e992c411c0b02876 data/create/recipes/splashing/blue_concrete_powder.json 1aedfde11712827604bbef34e992c411c0b02876 data/create/recipes/splashing/blue_concrete_powder.json
6e11d592dc9b19c4cd9bf2df2aa46b7ec4d9a331 data/create/recipes/splashing/brown_concrete_powder.json 6e11d592dc9b19c4cd9bf2df2aa46b7ec4d9a331 data/create/recipes/splashing/brown_concrete_powder.json

View file

@ -821,8 +821,8 @@
"create.recipe.fan_washing.fan": "Fan behind Flowing Water", "create.recipe.fan_washing.fan": "Fan behind Flowing Water",
"create.recipe.fan_smoking": "Bulk Smoking", "create.recipe.fan_smoking": "Bulk Smoking",
"create.recipe.fan_smoking.fan": "Fan behind Fire", "create.recipe.fan_smoking.fan": "Fan behind Fire",
"create.recipe.fan_soul_smoking": "Bulk Soul Smoking", "create.recipe.fan_haunting": "Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "Fan behind Soul Fire",
"create.recipe.fan_blasting": "Bulk Blasting", "create.recipe.fan_blasting": "Bulk Blasting",
"create.recipe.fan_blasting.fan": "Fan behind Lava", "create.recipe.fan_blasting.fan": "Fan behind Lava",
"create.recipe.pressing": "Pressing", "create.recipe.pressing": "Pressing",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "Propeller hinter fließendem Wasser", "create.recipe.fan_washing.fan": "Propeller hinter fließendem Wasser",
"create.recipe.fan_smoking": "Sammelräuchern", "create.recipe.fan_smoking": "Sammelräuchern",
"create.recipe.fan_smoking.fan": "Propeller hinter Feuer", "create.recipe.fan_smoking.fan": "Propeller hinter Feuer",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "Sammelschmelzen", "create.recipe.fan_blasting": "Sammelschmelzen",
"create.recipe.fan_blasting.fan": "Propeller hinter Lava", "create.recipe.fan_blasting.fan": "Propeller hinter Lava",
"create.recipe.pressing": "Mechanische Presse", "create.recipe.pressing": "Mechanische Presse",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "Ventilador detrás de una Corriente de Agua", "create.recipe.fan_washing.fan": "Ventilador detrás de una Corriente de Agua",
"create.recipe.fan_smoking": "Ahumado", "create.recipe.fan_smoking": "Ahumado",
"create.recipe.fan_smoking.fan": "Ventilador tras Fuego", "create.recipe.fan_smoking.fan": "Ventilador tras Fuego",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "Fundición", "create.recipe.fan_blasting": "Fundición",
"create.recipe.fan_blasting.fan": "Ventilador tras Lava", "create.recipe.fan_blasting.fan": "Ventilador tras Lava",
"create.recipe.pressing": "Prensando", "create.recipe.pressing": "Prensando",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente", "create.recipe.fan_washing.fan": "Ventilador detrás del agua fluyente",
"create.recipe.fan_smoking": "Ahumador a granel", "create.recipe.fan_smoking": "Ahumador a granel",
"create.recipe.fan_smoking.fan": "Ventilador detrás del fuego", "create.recipe.fan_smoking.fan": "Ventilador detrás del fuego",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "Voladuras a granel", "create.recipe.fan_blasting": "Voladuras a granel",
"create.recipe.fan_blasting.fan": "Ventilador detrás de la lava", "create.recipe.fan_blasting.fan": "Ventilador detrás de la lava",
"create.recipe.pressing": "Prensando", "create.recipe.pressing": "Prensando",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "Ventilateur derrière de l'eau", "create.recipe.fan_washing.fan": "Ventilateur derrière de l'eau",
"create.recipe.fan_smoking": "Fumage", "create.recipe.fan_smoking": "Fumage",
"create.recipe.fan_smoking.fan": "Ventilateur derrière du feu", "create.recipe.fan_smoking.fan": "Ventilateur derrière du feu",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "Fonte", "create.recipe.fan_blasting": "Fonte",
"create.recipe.fan_blasting.fan": "Ventilateur derrière de la lave", "create.recipe.fan_blasting.fan": "Ventilateur derrière de la lave",
"create.recipe.pressing": "Pressage", "create.recipe.pressing": "Pressage",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "Ventilatore dietro l'acqua corrente", "create.recipe.fan_washing.fan": "Ventilatore dietro l'acqua corrente",
"create.recipe.fan_smoking": "Fumo volumetrico", "create.recipe.fan_smoking": "Fumo volumetrico",
"create.recipe.fan_smoking.fan": "Ventilatore dietro il fuoco", "create.recipe.fan_smoking.fan": "Ventilatore dietro il fuoco",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "Esplosione volumetrica", "create.recipe.fan_blasting": "Esplosione volumetrica",
"create.recipe.fan_blasting.fan": "Ventilatore dietro la lava", "create.recipe.fan_blasting.fan": "Ventilatore dietro la lava",
"create.recipe.pressing": "Pressatura", "create.recipe.pressing": "Pressatura",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "水の奥のケース入りファン", "create.recipe.fan_washing.fan": "水の奥のケース入りファン",
"create.recipe.fan_smoking": "一括燻製", "create.recipe.fan_smoking": "一括燻製",
"create.recipe.fan_smoking.fan": "炎の奥のケース入りファン", "create.recipe.fan_smoking.fan": "炎の奥のケース入りファン",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "一括精錬", "create.recipe.fan_blasting": "一括精錬",
"create.recipe.fan_blasting.fan": "溶岩の奥のケース入りファン", "create.recipe.fan_blasting.fan": "溶岩の奥のケース入りファン",
"create.recipe.pressing": "プレス", "create.recipe.pressing": "プレス",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "물과 선풍기", "create.recipe.fan_washing.fan": "물과 선풍기",
"create.recipe.fan_smoking": "훈연", "create.recipe.fan_smoking": "훈연",
"create.recipe.fan_smoking.fan": "불과 선풍기", "create.recipe.fan_smoking.fan": "불과 선풍기",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "제련", "create.recipe.fan_blasting": "제련",
"create.recipe.fan_blasting.fan": "용암과 선풍기", "create.recipe.fan_blasting.fan": "용암과 선풍기",
"create.recipe.pressing": "압착", "create.recipe.pressing": "압착",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "UNLOCALIZED: Fan behind Flowing Water", "create.recipe.fan_washing.fan": "UNLOCALIZED: Fan behind Flowing Water",
"create.recipe.fan_smoking": "UNLOCALIZED: Bulk Smoking", "create.recipe.fan_smoking": "UNLOCALIZED: Bulk Smoking",
"create.recipe.fan_smoking.fan": "UNLOCALIZED: Fan behind Fire", "create.recipe.fan_smoking.fan": "UNLOCALIZED: Fan behind Fire",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "UNLOCALIZED: Bulk Blasting", "create.recipe.fan_blasting": "UNLOCALIZED: Bulk Blasting",
"create.recipe.fan_blasting.fan": "UNLOCALIZED: Fan behind Lava", "create.recipe.fan_blasting.fan": "UNLOCALIZED: Fan behind Lava",
"create.recipe.pressing": "Persen", "create.recipe.pressing": "Persen",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "Wiatrak za płynącą wodą", "create.recipe.fan_washing.fan": "Wiatrak za płynącą wodą",
"create.recipe.fan_smoking": "Hurtowe wędzenie", "create.recipe.fan_smoking": "Hurtowe wędzenie",
"create.recipe.fan_smoking.fan": "Wiatrak za ogniem", "create.recipe.fan_smoking.fan": "Wiatrak za ogniem",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "Hurtowe topienie", "create.recipe.fan_blasting": "Hurtowe topienie",
"create.recipe.fan_blasting.fan": "Wiatrak za lawą", "create.recipe.fan_blasting.fan": "Wiatrak za lawą",
"create.recipe.pressing": "Tłoczenie", "create.recipe.pressing": "Tłoczenie",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "Ventilador atrás de água", "create.recipe.fan_washing.fan": "Ventilador atrás de água",
"create.recipe.fan_smoking": "Defumação em massa", "create.recipe.fan_smoking": "Defumação em massa",
"create.recipe.fan_smoking.fan": "Ventilador atrás de fogo", "create.recipe.fan_smoking.fan": "Ventilador atrás de fogo",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "Fundição em massa", "create.recipe.fan_blasting": "Fundição em massa",
"create.recipe.fan_blasting.fan": "entilador atrás de lava", "create.recipe.fan_blasting.fan": "entilador atrás de lava",
"create.recipe.pressing": "Prensa Mecânica", "create.recipe.pressing": "Prensa Mecânica",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "Вентилятор за текущей водой", "create.recipe.fan_washing.fan": "Вентилятор за текущей водой",
"create.recipe.fan_smoking": "Массовое копчение", "create.recipe.fan_smoking": "Массовое копчение",
"create.recipe.fan_smoking.fan": "Вентилятор за горящим огнём", "create.recipe.fan_smoking.fan": "Вентилятор за горящим огнём",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "Массовое плавление", "create.recipe.fan_blasting": "Массовое плавление",
"create.recipe.fan_blasting.fan": "Вентилятор за текущей лавой", "create.recipe.fan_blasting.fan": "Вентилятор за текущей лавой",
"create.recipe.pressing": "Прессование", "create.recipe.pressing": "Прессование",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "在水后放置鼓风机", "create.recipe.fan_washing.fan": "在水后放置鼓风机",
"create.recipe.fan_smoking": "批量烟熏", "create.recipe.fan_smoking": "批量烟熏",
"create.recipe.fan_smoking.fan": "在火焰后放置鼓风机", "create.recipe.fan_smoking.fan": "在火焰后放置鼓风机",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "批量熔炼", "create.recipe.fan_blasting": "批量熔炼",
"create.recipe.fan_blasting.fan": "在熔岩后放置鼓风机", "create.recipe.fan_blasting.fan": "在熔岩后放置鼓风机",
"create.recipe.pressing": "金属压片", "create.recipe.pressing": "金属压片",

View file

@ -822,8 +822,8 @@
"create.recipe.fan_washing.fan": "在水後放置鼓風機", "create.recipe.fan_washing.fan": "在水後放置鼓風機",
"create.recipe.fan_smoking": "批次煙燻", "create.recipe.fan_smoking": "批次煙燻",
"create.recipe.fan_smoking.fan": "在火焰後放置鼓風機", "create.recipe.fan_smoking.fan": "在火焰後放置鼓風機",
"create.recipe.fan_soul_smoking": "UNLOCALIZED: Bulk Soul Smoking", "create.recipe.fan_haunting": "UNLOCALIZED: Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "UNLOCALIZED: Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "UNLOCALIZED: Fan behind Soul Fire",
"create.recipe.fan_blasting": "批次融煉", "create.recipe.fan_blasting": "批次融煉",
"create.recipe.fan_blasting.fan": "在熔岩後放置鼓風機", "create.recipe.fan_blasting.fan": "在熔岩後放置鼓風機",
"create.recipe.pressing": "金屬壓片", "create.recipe.pressing": "金屬壓片",

View file

@ -1,8 +1,8 @@
{ {
"type": "create:soul_smoking", "type": "create:haunting",
"ingredients": [ "ingredients": [
{ {
"item": "minecraft:cobblestone" "tag": "forge:cobblestone"
} }
], ],
"results": [ "results": [

View file

@ -1,5 +1,5 @@
{ {
"type": "create:soul_smoking", "type": "create:haunting",
"ingredients": [ "ingredients": [
{ {
"item": "minecraft:red_mushroom" "item": "minecraft:red_mushroom"

View file

@ -1,5 +1,5 @@
{ {
"type": "create:soul_smoking", "type": "create:haunting",
"ingredients": [ "ingredients": [
{ {
"item": "minecraft:mycelium" "item": "minecraft:mycelium"

View file

@ -0,0 +1,13 @@
{
"type": "create:haunting",
"ingredients": [
{
"item": "create:peculiar_bell"
}
],
"results": [
{
"item": "create:haunted_bell"
}
]
}

View file

@ -0,0 +1,13 @@
{
"type": "create:haunting",
"ingredients": [
{
"tag": "minecraft:sand"
}
],
"results": [
{
"item": "minecraft:soul_sand"
}
]
}

View file

@ -0,0 +1,13 @@
{
"type": "create:haunting",
"ingredients": [
{
"tag": "minecraft:dirt"
}
],
"results": [
{
"item": "minecraft:soul_soil"
}
]
}

View file

@ -1,5 +1,5 @@
{ {
"type": "create:soul_smoking", "type": "create:haunting",
"ingredients": [ "ingredients": [
{ {
"item": "minecraft:brown_mushroom" "item": "minecraft:brown_mushroom"

View file

@ -1,5 +1,5 @@
{ {
"type": "create:soul_smoking", "type": "create:haunting",
"ingredients": [ "ingredients": [
{ {
"item": "minecraft:podzol" "item": "minecraft:podzol"

View file

@ -1,86 +0,0 @@
{
"type": "create:sequenced_assembly",
"ingredient": {
"item": "minecraft:blackstone"
},
"transitionalItem": {
"item": "create:incomplete_netherrack"
},
"sequence": [
{
"type": "create:deploying",
"ingredients": [
{
"item": "create:incomplete_netherrack"
},
{
"item": "create:cinder_flour"
}
],
"results": [
{
"item": "create:incomplete_netherrack"
}
]
},
{
"type": "create:filling",
"ingredients": [
{
"item": "create:incomplete_netherrack"
},
{
"fluid": "minecraft:lava",
"nbt": {},
"amount": 50
}
],
"results": [
{
"item": "create:incomplete_netherrack"
}
]
},
{
"type": "create:cutting",
"ingredients": [
{
"item": "create:incomplete_netherrack"
}
],
"results": [
{
"item": "create:incomplete_netherrack"
}
],
"processingTime": 50
}
],
"results": [
{
"item": "minecraft:netherrack",
"count": 2,
"chance": 35.0
},
{
"item": "minecraft:blackstone",
"chance": 5.0
},
{
"item": "minecraft:basalt",
"chance": 4.0
},
{
"item": "minecraft:deepslate",
"chance": 3.0
},
{
"item": "minecraft:magma_block",
"chance": 2.0
},
{
"item": "minecraft:obsidian"
}
],
"loops": 2
}

View file

@ -1,18 +0,0 @@
{
"type": "create:soul_smoking",
"ingredients": [
[
{
"item": "minecraft:sand"
},
{
"item": "minecraft:red_sand"
}
]
],
"results": [
{
"item": "minecraft:soul_sand"
}
]
}

View file

@ -1,21 +0,0 @@
{
"type": "create:soul_smoking",
"ingredients": [
[
{
"item": "minecraft:dirt"
},
{
"item": "minecraft:coarse_dirt"
},
{
"item": "minecraft:rooted_dirt"
}
]
],
"results": [
{
"item": "minecraft:soul_soil"
}
]
}

View file

@ -7,7 +7,7 @@ import com.simibubi.create.compat.jei.ConversionRecipe;
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCraftingRecipe; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCraftingRecipe;
import com.simibubi.create.content.contraptions.components.crusher.CrushingRecipe; import com.simibubi.create.content.contraptions.components.crusher.CrushingRecipe;
import com.simibubi.create.content.contraptions.components.deployer.DeployerApplicationRecipe; import com.simibubi.create.content.contraptions.components.deployer.DeployerApplicationRecipe;
import com.simibubi.create.content.contraptions.components.fan.SoulSmokingRecipe; import com.simibubi.create.content.contraptions.components.fan.HauntingRecipe;
import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe; import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe;
import com.simibubi.create.content.contraptions.components.millstone.MillingRecipe; import com.simibubi.create.content.contraptions.components.millstone.MillingRecipe;
import com.simibubi.create.content.contraptions.components.mixer.CompactingRecipe; import com.simibubi.create.content.contraptions.components.mixer.CompactingRecipe;
@ -48,7 +48,7 @@ public enum AllRecipeTypes implements IRecipeTypeInfo {
PRESSING(PressingRecipe::new), PRESSING(PressingRecipe::new),
SANDPAPER_POLISHING(SandPaperPolishingRecipe::new), SANDPAPER_POLISHING(SandPaperPolishingRecipe::new),
SPLASHING(SplashingRecipe::new), SPLASHING(SplashingRecipe::new),
SOUL_SMOKING(SoulSmokingRecipe::new), HAUNTING(HauntingRecipe::new),
DEPLOYING(DeployerApplicationRecipe::new), DEPLOYING(DeployerApplicationRecipe::new),
FILLING(FillingRecipe::new), FILLING(FillingRecipe::new),
EMPTYING(EmptyingRecipe::new), EMPTYING(EmptyingRecipe::new),

View file

@ -74,8 +74,8 @@ public class CreateJEI implements IModPlugin {
.catalystStack(ProcessingViaFanCategory.getFan("fan_smoking")) .catalystStack(ProcessingViaFanCategory.getFan("fan_smoking"))
.build(), .build(),
soul_smoking = register("fan_soul_smoking", FanSoulSmokingCategory::new).recipes(AllRecipeTypes.SOUL_SMOKING) soul_smoking = register("fan_haunting", FanHauntingCategory::new).recipes(AllRecipeTypes.HAUNTING)
.catalystStack(ProcessingViaFanCategory.getFan("fan_soul_smoking")).build(), .catalystStack(ProcessingViaFanCategory.getFan("fan_haunting")).build(),
blasting = register("fan_blasting", FanBlastingCategory::new) blasting = register("fan_blasting", FanBlastingCategory::new)
.recipesExcluding(() -> RecipeType.SMELTING, () -> RecipeType.BLASTING) .recipesExcluding(() -> RecipeType.SMELTING, () -> RecipeType.BLASTING)

View file

@ -1,10 +1,12 @@
package com.simibubi.create.compat.jei.category; package com.simibubi.create.compat.jei.category;
import java.util.Arrays;
import java.util.List;
import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItems;
import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics; import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics;
import com.simibubi.create.content.contraptions.components.fan.SoulSmokingRecipe; import com.simibubi.create.content.contraptions.components.fan.HauntingRecipe;
import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput; import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
import com.simibubi.create.foundation.gui.AllGuiTextures; import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.gui.element.GuiGameElement;
@ -15,30 +17,26 @@ import mezz.jei.api.gui.ingredient.IGuiItemStackGroup;
import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.ingredients.IIngredients;
import net.minecraft.world.item.Items; import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.Fluids;
import java.util.Arrays; public class FanHauntingCategory extends ProcessingViaFanCategory<HauntingRecipe> {
import java.util.List;
public class FanSoulSmokingCategory extends ProcessingViaFanCategory<SoulSmokingRecipe> { public FanHauntingCategory() {
public FanSoulSmokingCategory() {
super(185, doubleItemIcon(AllItems.PROPELLER.get(), Items.SOUL_CAMPFIRE)); super(185, doubleItemIcon(AllItems.PROPELLER.get(), Items.SOUL_CAMPFIRE));
} }
@Override @Override
public Class<? extends SoulSmokingRecipe> getRecipeClass() { public Class<? extends HauntingRecipe> getRecipeClass() {
return SoulSmokingRecipe.class; return HauntingRecipe.class;
} }
@Override @Override
public void setIngredients(SoulSmokingRecipe recipe, IIngredients ingredients) { public void setIngredients(HauntingRecipe recipe, IIngredients ingredients) {
ingredients.setInputIngredients(recipe.getIngredients()); ingredients.setInputIngredients(recipe.getIngredients());
ingredients.setOutputs(VanillaTypes.ITEM, recipe.getRollableResultsAsItemStacks()); ingredients.setOutputs(VanillaTypes.ITEM, recipe.getRollableResultsAsItemStacks());
} }
@Override @Override
public void setRecipe(IRecipeLayout recipeLayout, SoulSmokingRecipe recipe, IIngredients ingredients) { public void setRecipe(IRecipeLayout recipeLayout, HauntingRecipe recipe, IIngredients ingredients) {
IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks(); IGuiItemStackGroup itemStacks = recipeLayout.getItemStacks();
List<ProcessingOutput> results = recipe.getRollableResults(); List<ProcessingOutput> results = recipe.getRollableResults();
int xOffsetGlobal = 8 * (3 - Math.min(3, results.size())); int xOffsetGlobal = 8 * (3 - Math.min(3, results.size()));
@ -64,7 +62,7 @@ public class FanSoulSmokingCategory extends ProcessingViaFanCategory<SoulSmoking
} }
@Override @Override
protected void renderWidgets(PoseStack matrixStack, SoulSmokingRecipe recipe, double mouseX, double mouseY) { protected void renderWidgets(PoseStack matrixStack, HauntingRecipe recipe, double mouseX, double mouseY) {
int size = recipe.getRollableResultsAsItemStacks() int size = recipe.getRollableResultsAsItemStacks()
.size(); .size();
int xOffsetGlobal = 8 * (3 - Math.min(3, size)); int xOffsetGlobal = 8 * (3 - Math.min(3, size));

View file

@ -159,13 +159,10 @@ public class AirCurrent {
entity.hurt(damageSourceFire, 2); entity.hurt(damageSourceFire, 2);
} }
break; break;
case SOUL_SMOKING: //TODO maybe I should use new damage source instead of the regular smoke one? case HAUNTING:
if (entity instanceof LivingEntity livingEntity) { if (entity instanceof LivingEntity livingEntity) {
livingEntity.addEffect(new MobEffectInstance(MobEffects.GLOWING, 400)); livingEntity.addEffect(new MobEffectInstance(MobEffects.BLINDNESS, 30, 0, false, false));
} livingEntity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 20, 1, false, false));
if (!entity.fireImmune()) {
entity.setSecondsOnFire(10);
entity.hurt(damageSourceFire, 4);
} }
break; break;
case SPLASHING: case SPLASHING:

View file

@ -1,24 +1,23 @@
package com.simibubi.create.content.contraptions.components.fan; package com.simibubi.create.content.contraptions.components.fan;
import javax.annotation.ParametersAreNonnullByDefault;
import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.content.contraptions.processing.InWorldProcessing; import com.simibubi.create.content.contraptions.processing.InWorldProcessing;
import com.simibubi.create.content.contraptions.processing.InWorldProcessing.SplashingWrapper;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams;
import net.minecraft.world.level.Level; import net.minecraft.world.level.Level;
import javax.annotation.ParametersAreNonnullByDefault;
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
public class SoulSmokingRecipe extends ProcessingRecipe<InWorldProcessing.SoulSmokingWrapper> { public class HauntingRecipe extends ProcessingRecipe<InWorldProcessing.HauntingWrapper> {
public SoulSmokingRecipe(ProcessingRecipeParams params) { public HauntingRecipe(ProcessingRecipeParams params) {
super(AllRecipeTypes.SOUL_SMOKING, params); super(AllRecipeTypes.HAUNTING, params);
} }
@Override @Override
public boolean matches(InWorldProcessing.SoulSmokingWrapper inv, Level worldIn) { public boolean matches(InWorldProcessing.HauntingWrapper inv, Level worldIn) {
if (inv.isEmpty()) if (inv.isEmpty())
return false; return false;
return ingredients.get(0) return ingredients.get(0)

View file

@ -121,15 +121,15 @@ public class AirFlowParticle extends SimpleAnimatedParticle {
zd * .125f); zd * .125f);
} }
if (type == InWorldProcessing.Type.SOUL_SMOKING) {//TODO soul smoking special particle? if (type == InWorldProcessing.Type.HAUNTING) {
setColor(Color.mixColors(0x0, 0x555555, level.random.nextFloat())); setColor(Color.mixColors(0x0, 0x126568, level.random.nextFloat()));
setAlpha(1f); setAlpha(1f);
selectSprite(level.random.nextInt(3)); selectSprite(level.random.nextInt(3));
if (level.random.nextFloat() < 1 / 32f) if (level.random.nextFloat() < 1 / 128f)
level.addParticle(ParticleTypes.SMOKE, x, y, z, xd * .125f, yd * .125f, level.addParticle(ParticleTypes.SOUL_FIRE_FLAME, x, y, z, xd * .125f, yd * .125f,
zd * .125f); zd * .125f);
if (level.random.nextFloat() < 1 / 32f) if (level.random.nextFloat() < 1 / 32f)
level.addParticle(ParticleTypes.LARGE_SMOKE, x, y, z, xd * .125f, yd * .125f, level.addParticle(ParticleTypes.SMOKE, x, y, z, xd * .125f, yd * .125f,
zd * .125f); zd * .125f);
} }

View file

@ -3,7 +3,7 @@ package com.simibubi.create.content.contraptions.processing;
import com.mojang.math.Vector3f; import com.mojang.math.Vector3f;
import com.simibubi.create.AllBlocks; import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.content.contraptions.components.fan.SoulSmokingRecipe; import com.simibubi.create.content.contraptions.components.fan.HauntingRecipe;
import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe; import com.simibubi.create.content.contraptions.components.fan.SplashingRecipe;
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack;
@ -11,6 +11,7 @@ import com.simibubi.create.foundation.config.AllConfigs;
import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.item.ItemHelper;
import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult;
import com.simibubi.create.foundation.utility.Color; import com.simibubi.create.foundation.utility.Color;
import com.simibubi.create.foundation.utility.VecHelper;
import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos;
import net.minecraft.core.particles.DustParticleOptions; import net.minecraft.core.particles.DustParticleOptions;
@ -46,10 +47,10 @@ public class InWorldProcessing {
private static final RecipeWrapper WRAPPER = new RecipeWrapper(new ItemStackHandler(1)); private static final RecipeWrapper WRAPPER = new RecipeWrapper(new ItemStackHandler(1));
private static final SplashingWrapper SPLASHING_WRAPPER = new SplashingWrapper(); private static final SplashingWrapper SPLASHING_WRAPPER = new SplashingWrapper();
private static final SoulSmokingWrapper SOUL_SMOKING_WRAPPER = new SoulSmokingWrapper(); private static final HauntingWrapper SOUL_SMOKING_WRAPPER = new HauntingWrapper();
public enum Type { public enum Type {
SMOKING, BLASTING, SPLASHING, SOUL_SMOKING, NONE; SMOKING, BLASTING, SPLASHING, HAUNTING, NONE;
public static Type byBlock(BlockGetter reader, BlockPos pos) { public static Type byBlock(BlockGetter reader, BlockPos pos) {
BlockState blockState = reader.getBlockState(pos); BlockState blockState = reader.getBlockState(pos);
@ -57,12 +58,14 @@ public class InWorldProcessing {
if (fluidState.getType() == Fluids.WATER || fluidState.getType() == Fluids.FLOWING_WATER) if (fluidState.getType() == Fluids.WATER || fluidState.getType() == Fluids.FLOWING_WATER)
return Type.SPLASHING; return Type.SPLASHING;
Block block = blockState.getBlock(); Block block = blockState.getBlock();
if (block == Blocks.SOUL_FIRE || block == Blocks.SOUL_CAMPFIRE && blockState.getOptionalValue(CampfireBlock.LIT).orElse(false)) if (block == Blocks.SOUL_FIRE
return Type.SOUL_SMOKING; || block == Blocks.SOUL_CAMPFIRE && blockState.getOptionalValue(CampfireBlock.LIT)
if (block == Blocks.FIRE || AllBlocks.LIT_BLAZE_BURNER.has(blockState)
|| (BlockTags.CAMPFIRES.contains(block) && blockState.getOptionalValue(CampfireBlock.LIT)
.orElse(false)) .orElse(false))
|| getHeatLevelOf(blockState) == BlazeBurnerBlock.HeatLevel.SMOULDERING) return Type.HAUNTING;
if (block == Blocks.FIRE || AllBlocks.LIT_BLAZE_BURNER.has(blockState)
|| (BlockTags.CAMPFIRES.contains(block) && blockState.getOptionalValue(CampfireBlock.LIT)
.orElse(false))
|| getHeatLevelOf(blockState) == BlazeBurnerBlock.HeatLevel.SMOULDERING)
return Type.SMOKING; return Type.SMOKING;
if (block == Blocks.LAVA || getHeatLevelOf(blockState).isAtLeast(BlazeBurnerBlock.HeatLevel.FADING)) if (block == Blocks.LAVA || getHeatLevelOf(blockState).isAtLeast(BlazeBurnerBlock.HeatLevel.FADING))
return Type.BLASTING; return Type.BLASTING;
@ -72,9 +75,9 @@ public class InWorldProcessing {
public static boolean canProcess(ItemEntity entity, Type type) { public static boolean canProcess(ItemEntity entity, Type type) {
if (entity.getPersistentData() if (entity.getPersistentData()
.contains("CreateData")) { .contains("CreateData")) {
CompoundTag compound = entity.getPersistentData() CompoundTag compound = entity.getPersistentData()
.getCompound("CreateData"); .getCompound("CreateData");
if (compound.contains("Processing")) { if (compound.contains("Processing")) {
CompoundTag processing = compound.getCompound("Processing"); CompoundTag processing = compound.getCompound("Processing");
@ -97,33 +100,33 @@ public class InWorldProcessing {
if (type == Type.BLASTING) { if (type == Type.BLASTING) {
WRAPPER.setItem(0, stack); WRAPPER.setItem(0, stack);
Optional<SmeltingRecipe> smeltingRecipe = world.getRecipeManager() Optional<SmeltingRecipe> smeltingRecipe = world.getRecipeManager()
.getRecipeFor(RecipeType.SMELTING, WRAPPER, world); .getRecipeFor(RecipeType.SMELTING, WRAPPER, world);
if (smeltingRecipe.isPresent()) if (smeltingRecipe.isPresent())
return true; return true;
WRAPPER.setItem(0, stack); WRAPPER.setItem(0, stack);
Optional<BlastingRecipe> blastingRecipe = world.getRecipeManager() Optional<BlastingRecipe> blastingRecipe = world.getRecipeManager()
.getRecipeFor(RecipeType.BLASTING, WRAPPER, world); .getRecipeFor(RecipeType.BLASTING, WRAPPER, world);
if (blastingRecipe.isPresent()) if (blastingRecipe.isPresent())
return true; return true;
return !stack.getItem() return !stack.getItem()
.isFireResistant(); .isFireResistant();
} }
if (type == Type.SMOKING) { if (type == Type.SMOKING) {
WRAPPER.setItem(0, stack); WRAPPER.setItem(0, stack);
Optional<SmokingRecipe> recipe = world.getRecipeManager() Optional<SmokingRecipe> recipe = world.getRecipeManager()
.getRecipeFor(RecipeType.SMOKING, WRAPPER, world); .getRecipeFor(RecipeType.SMOKING, WRAPPER, world);
return recipe.isPresent(); return recipe.isPresent();
} }
if (type == Type.SPLASHING) if (type == Type.SPLASHING)
return isWashable(stack, world); return isWashable(stack, world);
if (type == Type.SOUL_SMOKING) if (type == Type.HAUNTING)
return isSoulSmokeable(stack, world); return isSoulSmokeable(stack, world);
return false; return false;
@ -137,7 +140,7 @@ public class InWorldProcessing {
public static boolean isSoulSmokeable(ItemStack stack, Level world) { public static boolean isSoulSmokeable(ItemStack stack, Level world) {
SOUL_SMOKING_WRAPPER.setItem(0, stack); SOUL_SMOKING_WRAPPER.setItem(0, stack);
Optional<SoulSmokingRecipe> recipe = AllRecipeTypes.SOUL_SMOKING.find(SOUL_SMOKING_WRAPPER, world); Optional<HauntingRecipe> recipe = AllRecipeTypes.HAUNTING.find(SOUL_SMOKING_WRAPPER, world);
return recipe.isPresent(); return recipe.isPresent();
} }
@ -165,7 +168,7 @@ public class InWorldProcessing {
transported.processedBy = type; transported.processedBy = type;
int timeModifierForStackSize = ((transported.stack.getCount() - 1) / 16) + 1; int timeModifierForStackSize = ((transported.stack.getCount() - 1) / 16) + 1;
int processingTime = int processingTime =
(int) (AllConfigs.SERVER.kinetics.inWorldProcessingTime.get() * timeModifierForStackSize) + 1; (int) (AllConfigs.SERVER.kinetics.inWorldProcessingTime.get() * timeModifierForStackSize) + 1;
transported.processingTime = processingTime; transported.processingTime = processingTime;
if (!canProcess(transported.stack, type, world)) if (!canProcess(transported.stack, type, world))
transported.processingTime = -1; transported.processingTime = -1;
@ -197,9 +200,9 @@ public class InWorldProcessing {
return applyRecipeOn(stack, recipe.get()); return applyRecipeOn(stack, recipe.get());
return null; return null;
} }
if (type == Type.SOUL_SMOKING){ if (type == Type.HAUNTING) {
SOUL_SMOKING_WRAPPER.setItem(0, stack); SOUL_SMOKING_WRAPPER.setItem(0, stack);
Optional<SoulSmokingRecipe> recipe = AllRecipeTypes.SOUL_SMOKING.find(SOUL_SMOKING_WRAPPER, world); Optional<HauntingRecipe> recipe = AllRecipeTypes.HAUNTING.find(SOUL_SMOKING_WRAPPER, world);
if (recipe.isPresent()) if (recipe.isPresent())
return applyRecipeOn(stack, recipe.get()); return applyRecipeOn(stack, recipe.get());
return null; return null;
@ -207,20 +210,20 @@ public class InWorldProcessing {
WRAPPER.setItem(0, stack); WRAPPER.setItem(0, stack);
Optional<SmokingRecipe> smokingRecipe = world.getRecipeManager() Optional<SmokingRecipe> smokingRecipe = world.getRecipeManager()
.getRecipeFor(RecipeType.SMOKING, WRAPPER, world); .getRecipeFor(RecipeType.SMOKING, WRAPPER, world);
if (type == Type.BLASTING) { if (type == Type.BLASTING) {
if (!smokingRecipe.isPresent()) { if (!smokingRecipe.isPresent()) {
WRAPPER.setItem(0, stack); WRAPPER.setItem(0, stack);
Optional<SmeltingRecipe> smeltingRecipe = world.getRecipeManager() Optional<SmeltingRecipe> smeltingRecipe = world.getRecipeManager()
.getRecipeFor(RecipeType.SMELTING, WRAPPER, world); .getRecipeFor(RecipeType.SMELTING, WRAPPER, world);
if (smeltingRecipe.isPresent()) if (smeltingRecipe.isPresent())
return applyRecipeOn(stack, smeltingRecipe.get()); return applyRecipeOn(stack, smeltingRecipe.get());
WRAPPER.setItem(0, stack); WRAPPER.setItem(0, stack);
Optional<BlastingRecipe> blastingRecipe = world.getRecipeManager() Optional<BlastingRecipe> blastingRecipe = world.getRecipeManager()
.getRecipeFor(RecipeType.BLASTING, WRAPPER, world); .getRecipeFor(RecipeType.BLASTING, WRAPPER, world);
if (blastingRecipe.isPresent()) if (blastingRecipe.isPresent())
return applyRecipeOn(stack, blastingRecipe.get()); return applyRecipeOn(stack, blastingRecipe.get());
@ -249,9 +252,9 @@ public class InWorldProcessing {
if (!processing.contains("Type") || Type.valueOf(processing.getString("Type")) != type) { if (!processing.contains("Type") || Type.valueOf(processing.getString("Type")) != type) {
processing.putString("Type", type.name()); processing.putString("Type", type.name());
int timeModifierForStackSize = ((entity.getItem() int timeModifierForStackSize = ((entity.getItem()
.getCount() - 1) / 16) + 1; .getCount() - 1) / 16) + 1;
int processingTime = int processingTime =
(int) (AllConfigs.SERVER.kinetics.inWorldProcessingTime.get() * timeModifierForStackSize) + 1; (int) (AllConfigs.SERVER.kinetics.inWorldProcessingTime.get() * timeModifierForStackSize) + 1;
processing.putInt("Time", processingTime); processing.putInt("Time", processingTime);
} }
@ -290,7 +293,7 @@ public class InWorldProcessing {
if (!ItemHandlerHelper.canItemStacksStack(stack, previouslyRolled)) if (!ItemHandlerHelper.canItemStacksStack(stack, previouslyRolled))
continue; continue;
int amount = Math.min(previouslyRolled.getMaxStackSize() - previouslyRolled.getCount(), int amount = Math.min(previouslyRolled.getMaxStackSize() - previouslyRolled.getCount(),
stack.getCount()); stack.getCount());
previouslyRolled.grow(amount); previouslyRolled.grow(amount);
stack.shrink(amount); stack.shrink(amount);
} }
@ -303,7 +306,7 @@ public class InWorldProcessing {
} }
} else { } else {
ItemStack out = recipe.getResultItem() ItemStack out = recipe.getResultItem()
.copy(); .copy();
stacks = ItemHelper.multipliedOutput(stackIn, out); stacks = ItemHelper.multipliedOutput(stackIn, out);
} }
@ -317,22 +320,28 @@ public class InWorldProcessing {
return; return;
switch (type) { switch (type) {
case BLASTING: case BLASTING:
world.addParticle(ParticleTypes.LARGE_SMOKE, vec.x, vec.y + .25f, vec.z, 0, 1 / 16f, 0); world.addParticle(ParticleTypes.LARGE_SMOKE, vec.x, vec.y + .25f, vec.z, 0, 1 / 16f, 0);
break; break;
case SMOKING: case SMOKING:
case SOUL_SMOKING: // TODO add special soul smoking particle case HAUNTING:
world.addParticle(ParticleTypes.POOF, vec.x, vec.y + .25f, vec.z, 0, 1 / 16f, 0); vec = vec.add(VecHelper.offsetRandomly(Vec3.ZERO, world.random, 1)
break; .multiply(1, 0.05f, 1)
case SPLASHING: .normalize()
Vector3f color = new Color(0x0055FF).asVectorF(); .scale(0.15f));
world.addParticle(new DustParticleOptions(color, 1), vec.x + (world.random.nextFloat() - .5f) * .5f, world.addParticle(ParticleTypes.SOUL_FIRE_FLAME, vec.x, vec.y + .45f, vec.z, 0, 0, 0);
vec.y + .5f, vec.z + (world.random.nextFloat() - .5f) * .5f, 0, 1 / 8f, 0); if (world.random.nextInt(2) == 0)
world.addParticle(ParticleTypes.SPIT, vec.x + (world.random.nextFloat() - .5f) * .5f, vec.y + .5f, world.addParticle(ParticleTypes.SMOKE, vec.x, vec.y + .25f, vec.z, 0, 0, 0);
vec.z + (world.random.nextFloat() - .5f) * .5f, 0, 1 / 8f, 0); break;
break; case SPLASHING:
default: Vector3f color = new Color(0x0055FF).asVectorF();
break; world.addParticle(new DustParticleOptions(color, 1), vec.x + (world.random.nextFloat() - .5f) * .5f,
vec.y + .5f, vec.z + (world.random.nextFloat() - .5f) * .5f, 0, 1 / 8f, 0);
world.addParticle(ParticleTypes.SPIT, vec.x + (world.random.nextFloat() - .5f) * .5f, vec.y + .5f,
vec.z + (world.random.nextFloat() - .5f) * .5f, 0, 1 / 8f, 0);
break;
default:
break;
} }
} }
@ -342,8 +351,8 @@ public class InWorldProcessing {
} }
} }
public static class SoulSmokingWrapper extends RecipeWrapper { public static class HauntingWrapper extends RecipeWrapper {
public SoulSmokingWrapper() { public HauntingWrapper() {
super(new ItemStackHandler(1)); super(new ItemStackHandler(1));
} }
} }

View file

@ -0,0 +1,60 @@
package com.simibubi.create.foundation.data.recipe;
import java.util.function.Supplier;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.Create;
import com.simibubi.create.content.contraptions.components.fan.HauntingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer;
import net.minecraft.data.DataGenerator;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.tags.ItemTags;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.block.Blocks;
import net.minecraftforge.common.Tags;
public class HauntingRecipeGen extends ProcessingRecipeGen {
GeneratedRecipe
BRASS_BELL = convert(AllBlocks.HAUNTED_BELL::get, () -> Ingredient.of(AllBlocks.PECULIAR_BELL.get())),
SOUL_SAND = convert(() -> Blocks.SOUL_SAND, () -> Ingredient.of(ItemTags.SAND)),
SOUL_DIRT = convert(() -> Blocks.SOUL_SOIL, () -> Ingredient.of(ItemTags.DIRT)),
BLACK_STONE = convert(() -> Blocks.BLACKSTONE, () -> Ingredient.of(Tags.Items.COBBLESTONE)),
CRIMSON_FUNGUS = convert(Items.CRIMSON_FUNGUS, Items.RED_MUSHROOM),
WARPED_FUNGUS = convert(Items.WARPED_FUNGUS, Items.BROWN_MUSHROOM),
CRIMSON_NYLIUM = convert(Blocks.CRIMSON_NYLIUM, Blocks.MYCELIUM),
WARPED_NYLIUM = convert(Blocks.WARPED_NYLIUM, Blocks.PODZOL);
public GeneratedRecipe convert(ItemLike result, ItemLike input) {
return convert(() -> result, () -> Ingredient.of(input));
}
public GeneratedRecipe convert(Supplier<ItemLike> result, Supplier<Ingredient> input) {
ProcessingRecipeSerializer<HauntingRecipe> serializer = getSerializer();
GeneratedRecipe generatedRecipe = c -> new ProcessingRecipeBuilder<>(serializer.getFactory(),
new ResourceLocation(Create.ID, result.get()
.asItem()
.getRegistryName()
.getPath())).withItemIngredients(input.get())
.output(result.get())
.build(c);
all.add(generatedRecipe);
return generatedRecipe;
}
public HauntingRecipeGen(DataGenerator p_i48262_1_) {
super(p_i48262_1_);
}
@Override
protected AllRecipeTypes getRecipeType() {
return AllRecipeTypes.HAUNTING;
}
}

View file

@ -38,7 +38,7 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider {
GENERATORS.add(new PressingRecipeGen(gen)); GENERATORS.add(new PressingRecipeGen(gen));
GENERATORS.add(new FillingRecipeGen(gen)); GENERATORS.add(new FillingRecipeGen(gen));
GENERATORS.add(new EmptyingRecipeGen(gen)); GENERATORS.add(new EmptyingRecipeGen(gen));
GENERATORS.add(new SoulSmokingRecipeGen(gen)); GENERATORS.add(new HauntingRecipeGen(gen));
gen.addProvider(new DataProvider() { gen.addProvider(new DataProvider() {

View file

@ -6,10 +6,7 @@ import com.simibubi.create.AllBlocks;
import com.simibubi.create.AllItems; import com.simibubi.create.AllItems;
import com.simibubi.create.Create; import com.simibubi.create.Create;
import com.simibubi.create.content.contraptions.components.deployer.DeployerApplicationRecipe; import com.simibubi.create.content.contraptions.components.deployer.DeployerApplicationRecipe;
import com.simibubi.create.content.contraptions.components.fan.SoulSmokingRecipe;
import com.simibubi.create.content.contraptions.components.press.PressingRecipe;
import com.simibubi.create.content.contraptions.components.saw.CuttingRecipe; import com.simibubi.create.content.contraptions.components.saw.CuttingRecipe;
import com.simibubi.create.content.contraptions.fluids.actors.FillingRecipe;
import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRecipeBuilder; import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRecipeBuilder;
import net.minecraft.data.DataGenerator; import net.minecraft.data.DataGenerator;
@ -17,7 +14,6 @@ import net.minecraft.tags.ItemTags;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items; import net.minecraft.world.item.Items;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.Fluids;
public class SequencedAssemblyRecipeGen extends CreateRecipeProvider { public class SequencedAssemblyRecipeGen extends CreateRecipeProvider {
@ -79,21 +75,7 @@ public class SequencedAssemblyRecipeGen extends CreateRecipeProvider {
.addStep(DeployerApplicationRecipe::new, rb -> rb.require(I.planks())) .addStep(DeployerApplicationRecipe::new, rb -> rb.require(I.planks()))
.addStep(DeployerApplicationRecipe::new, rb -> rb.require(ItemTags.WOODEN_BUTTONS)) .addStep(DeployerApplicationRecipe::new, rb -> rb.require(ItemTags.WOODEN_BUTTONS))
.addStep(CuttingRecipe::new, rb -> rb.duration(50)) .addStep(CuttingRecipe::new, rb -> rb.duration(50))
), )
NETHERRACK = create("netherrack", b->b.require(Items.BLACKSTONE)
.transitionTo(AllItems.INCOMPLETE_NETHERRACK.get())
.addOutput(new ItemStack(Blocks.NETHERRACK,2),35)
.addOutput(new ItemStack(Blocks.BLACKSTONE, 1), 5)
.addOutput(new ItemStack(Blocks.BASALT, 1), 4)
.addOutput(new ItemStack(Blocks.DEEPSLATE, 1), 3)
.addOutput(new ItemStack(Blocks.MAGMA_BLOCK, 1), 2)
.addOutput(new ItemStack(Blocks.OBSIDIAN, 1), 1)
.loops(2)
.addStep(DeployerApplicationRecipe::new, rb -> rb.require(AllItems.CINDER_FLOUR.get()))
.addStep(FillingRecipe::new, rb -> rb.require(Fluids.LAVA,50))
.addStep(CuttingRecipe::new, rb -> rb.duration(50))
)
; ;
public SequencedAssemblyRecipeGen(DataGenerator p_i48262_1_) { public SequencedAssemblyRecipeGen(DataGenerator p_i48262_1_) {

View file

@ -1,48 +0,0 @@
package com.simibubi.create.foundation.data.recipe;
import com.simibubi.create.AllItems;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.Create;
import com.simibubi.create.content.contraptions.components.fan.SoulSmokingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer;
import net.minecraft.data.DataGenerator;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
public class SoulSmokingRecipeGen extends ProcessingRecipeGen {
GeneratedRecipe
SOUL_SAND = convert(Blocks.SOUL_SAND, Blocks.SAND, Blocks.RED_SAND),
SOUL_DIRT = convert(Blocks.SOUL_SOIL, Blocks.DIRT, Blocks.COARSE_DIRT, Blocks.ROOTED_DIRT),
BLACK_STONE = convert(Blocks.BLACKSTONE, Blocks.COBBLESTONE),
CRIMSON_FUNGUS = convert(Items.CRIMSON_FUNGUS, Items.RED_MUSHROOM),
WARPED_FUNGUS = convert(Items.WARPED_FUNGUS, Items.BROWN_MUSHROOM),
CRIMSON_NYLIUM = convert(Blocks.CRIMSON_NYLIUM, Blocks.MYCELIUM),
WARPED_NYLIUM = convert(Blocks.WARPED_NYLIUM, Blocks.PODZOL);
public GeneratedRecipe convert(ItemLike result, ItemLike... input) {
ProcessingRecipeSerializer<SoulSmokingRecipe> serializer = getSerializer();
GeneratedRecipe generatedRecipe = c -> new ProcessingRecipeBuilder<>(serializer.getFactory(),
new ResourceLocation(Create.ID, result.asItem().getRegistryName().getPath()))
.withItemIngredients(Ingredient.of(input)).output(result).build(c);
all.add(generatedRecipe);
return generatedRecipe;
}
public SoulSmokingRecipeGen(DataGenerator p_i48262_1_) {
super(p_i48262_1_);
}
@Override
protected AllRecipeTypes getRecipeType() {
return AllRecipeTypes.SOUL_SMOKING;
}
}

View file

@ -34,8 +34,8 @@
"create.recipe.fan_washing.fan": "Fan behind Flowing Water", "create.recipe.fan_washing.fan": "Fan behind Flowing Water",
"create.recipe.fan_smoking": "Bulk Smoking", "create.recipe.fan_smoking": "Bulk Smoking",
"create.recipe.fan_smoking.fan": "Fan behind Fire", "create.recipe.fan_smoking.fan": "Fan behind Fire",
"create.recipe.fan_soul_smoking": "Bulk Soul Smoking", "create.recipe.fan_haunting": "Bulk Haunting",
"create.recipe.fan_soul_smoking.fan": "Fan behind Soul Fire", "create.recipe.fan_haunting.fan": "Fan behind Soul Fire",
"create.recipe.fan_blasting": "Bulk Blasting", "create.recipe.fan_blasting": "Bulk Blasting",
"create.recipe.fan_blasting.fan": "Fan behind Lava", "create.recipe.fan_blasting.fan": "Fan behind Lava",
"create.recipe.pressing": "Pressing", "create.recipe.pressing": "Pressing",