diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index caddde5bb..51b585e1e 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -337,7 +337,7 @@ e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggl d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json 61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json -ab2a1bf8f37f1c64d00538867f4c3a97195bd3c4 assets/create/blockstates/radial_chassis.json +4439fc83a8c7370ab44b211a3fd48abde20a4728 assets/create/blockstates/radial_chassis.json 45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json @@ -401,17 +401,17 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -c251c089fa897c0e94af6e123118ae9cde30d1ba assets/create/lang/en_ud.json -f4f0e774c4e87f2c23658ddcc4be8bdfb257fee3 assets/create/lang/en_us.json -89f2b0ba6b40babc2f542b6b380f30ed97e280bf assets/create/lang/unfinished/de_de.json -dcd0d558f6f7ef8038ee8056f5294b57dfd3c3ed assets/create/lang/unfinished/fr_fr.json -24573cb127eecfe5c5fc910e277555c10d0b5eaf assets/create/lang/unfinished/it_it.json -423a280d20cdef98143d0f2223adda5299f42864 assets/create/lang/unfinished/ja_jp.json -ce9431b5601069d691b3103cec1f66d05125e32e assets/create/lang/unfinished/ko_kr.json -86b9574166f5382a9cd925e92587eb2f478b7776 assets/create/lang/unfinished/nl_nl.json -9fff9175ee887ddca7a6d901e9d945c92d901d6a assets/create/lang/unfinished/pt_br.json -ce9b299b52640c23c18ffa6e65bdb1d140776564 assets/create/lang/unfinished/ru_ru.json -9c794a6c071bfcb9c58ede3b4c83983c2badc37f assets/create/lang/unfinished/zh_cn.json +7f40117f3618fe7b3e793f4095edf5a4c78a732f assets/create/lang/en_ud.json +b524d5a2ce8ed801128fb7e0f94546b2c2b08d5d assets/create/lang/en_us.json +068b778ba9170dbb5511e35523f2686cf5708c40 assets/create/lang/unfinished/de_de.json +a3cc8f8d8582d1c496135dba4c49afc8248ea2ae assets/create/lang/unfinished/fr_fr.json +9f55d7629760b7cd6297f14ad686d69f267eb1f3 assets/create/lang/unfinished/it_it.json +43d038757ad718b900730f3dc9d2464fee42dbaa assets/create/lang/unfinished/ja_jp.json +17e4fec1cafe0f4fbe660d76aa7f209d7c83341a assets/create/lang/unfinished/ko_kr.json +e31b7cb71bffd2e9e980ab59868ee1353e43df9f assets/create/lang/unfinished/nl_nl.json +c6ec72b0f1300595f9006051ab80bcdcd533a0c2 assets/create/lang/unfinished/pt_br.json +4e75e0ee7f34ac88eaf2f532be6c4037ba8de036 assets/create/lang/unfinished/ru_ru.json +cffcf52cb2be6c2be28a7d6d825eace652071921 assets/create/lang/unfinished/zh_cn.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 @@ -1195,6 +1195,7 @@ d537fffaede521efa525fb2a7f9863fe6a80054e assets/create/models/item/birch_window_ 56a6baedc608792cd6ab72a1c4fd53046cbda070 assets/create/models/item/black_valve_handle.json 80a6e8b00709fe0521aca5b789ae17485ed9c56d assets/create/models/item/blaze_burner.json 6e350231e9f217019883096b4f0bb95ab0af4728 assets/create/models/item/blaze_cake.json +5d4e5c22295f9b5cc62cf6e74fe1384fbbb319f9 assets/create/models/item/blaze_cake_base.json 0e1977585128fc0ecef640f72e5fc5e9fb47ef92 assets/create/models/item/blue_seat.json bec96ebf3369d3cffa9bb1b8bf9f2a5cd5d0ef96 assets/create/models/item/blue_valve_handle.json 17d340c3678bd24cb085ba49490b2b4cb341a9e7 assets/create/models/item/brass_block.json @@ -2738,7 +2739,10 @@ dd44cf0e09b1b34b4d2c254ab3d10d05a02717aa data/create/recipes/blasting/tin_ingot_ c323b106e88b7de77fea71ff12494abdbb818d15 data/create/recipes/chiseled_limestone_from_limestone_stonecutting.json da9a919b476954c1de34826aa7706bf6056a8f12 data/create/recipes/chiseled_scoria_from_scoria_stonecutting.json 09faa4ddcf9f3907dcdb3ab3e8b68c1deb2486e5 data/create/recipes/chiseled_weathered_limestone_from_weathered_limestone_stonecutting.json -eec156ec99d323dbc187f07e67d4449934c3e3e1 data/create/recipes/compacting/blaze_cake.json +ca137d5bce3b5f10069041657fdf630529d06bda data/create/recipes/compacting/andesite_from_flint.json +f7879d404d7a848d818278b4e788f285a9087e63 data/create/recipes/compacting/blaze_cake.json +7b2ef15dd28d1d8a450ea49a82dfb361d1adde4c data/create/recipes/compacting/diorite_from_flint.json +7657603e95ccf83dd0d4b104635db66e531d092a data/create/recipes/compacting/granite_from_flint.json 19526da3a59fc136654ff1bc93c0251581f397a9 data/create/recipes/crafting/appliances/dough.json 7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json b159ba84428eee6ef6e23df1766f2a18f2c8a63e data/create/recipes/crafting/appliances/tree_fertilizer.json @@ -2777,7 +2781,7 @@ dc62d932f6a3723e050cb043fea233efd685f775 data/create/recipes/crafting/kinetics/c ad1c3ce1e98b8483512bdd754f2e5930c7b3ae85 data/create/recipes/crafting/kinetics/deployer.json be86df1c4d7af14bc5dcfe044d07c03b6c6d2a75 data/create/recipes/crafting/kinetics/depot.json 9c5d30f25a130d591b924c50e5c83e3b787c2758 data/create/recipes/crafting/kinetics/empty_blaze_burner.json -b23bb0141d2890a971481a9aaea057abf4387341 data/create/recipes/crafting/kinetics/encased_chain_drive.json +f5386d34e6d041f637575d461df6ca5d43b4f464 data/create/recipes/crafting/kinetics/encased_chain_drive.json b07496e4ba5bc56a2c5a395b612c68ba21328867 data/create/recipes/crafting/kinetics/encased_fan.json 0dd0cc11eaa6789fc612af3231ed247893852178 data/create/recipes/crafting/kinetics/filter.json 30ae02825e54c0cc07be8f4decf9d432e7d61ba2 data/create/recipes/crafting/kinetics/fluid_pipe.json @@ -3094,8 +3098,13 @@ bd355332d17adcb0460b1d43146ca288efb78395 data/create/recipes/fancy_weathered_lim d2ab9ce73636773165564506580f2ec13bd1fc50 data/create/recipes/fancy_weathered_limestone_bricks_stairs_from_fancy_weathered_limestone_bricks_stonecutting.json 36947f27d2b2e57b00440fd5acd06a7554e5a387 data/create/recipes/fancy_weathered_limestone_bricks_wall.json 1d0e41ca98e48073c72adf4077610c96e592f9a5 data/create/recipes/fancy_weathered_limestone_bricks_wall_from_fancy_weathered_limestone_bricks_stonecutting.json +133e79f78a7f2c2f63ac7695d2be57d56e8955f4 data/create/recipes/filling/blaze_cake.json +790a63246268173350530d61ac824eff093724b2 data/create/recipes/filling/glowstone.json +5eb6227ccb6fa940b662d3ec029c3bd61fe61c8d data/create/recipes/filling/grass_block.json +244f27eadefefbc966ac384ac087c57d19484321 data/create/recipes/filling/gunpowder.json c8ca74a6cd071308a1750a2ad1153e79422598a0 data/create/recipes/filling/honey_bottle.json c83e77a9799b6ca34dd73aa76b56159f2103c48c data/create/recipes/filling/milk_bucket.json +08ce1420d1551ecfef5988977436c087123851a6 data/create/recipes/filling/redstone.json 5b8bbde7f8b270ab75fac18d6858f2fadbc0efa3 data/create/recipes/framed_glass_from_glass_colorless_stonecutting.json d697de0c9b706ca4e18da7a2d769e7e5fe8d769d data/create/recipes/framed_glass_pane.json a0dae50faaa1b7142bb4309675e3084c68daa547 data/create/recipes/gabbro_bricks_from_gabbro_stonecutting.json @@ -3226,10 +3235,8 @@ ce9dc7dacb85cb23a7187c19a115b40e597ad36b data/create/recipes/mixing/andesite_all ab602a53a5d8d057aad910dd1c5529cde2d587ab data/create/recipes/mixing/chocolate.json 0e29b4ce13750aab5a60ae54cbec8776569b35e0 data/create/recipes/mixing/chromatic_compound.json d9a3dff1288d675ab812eef1eb73cb27dcc71bd2 data/create/recipes/mixing/crushed_brass.json -00b165ea38d834c7955440e87062004a8182c3f8 data/create/recipes/mixing/gunpowder.json +cd9a78454bce20cf3557f5c44febae77ebd43e54 data/create/recipes/mixing/lava_from_cobble.json 0f89b3f2d81585591513619b8d1e8694eb874316 data/create/recipes/mixing/tea.json -3279bd1a34217a19bc9992a2ad87629390dd003f data/create/recipes/mixing/temp_cobble.json -3295a2195707f952a83deb3bed10b43570b215e5 data/create/recipes/mixing/temp_lava.json 1998c6f84f871d6da58ec29d729401d18f8f1aa1 data/create/recipes/mossy_andesite_from_andesite_stonecutting.json 89929d9cb11b5c589b2ecfa821c61add1ef7b62b data/create/recipes/mossy_dark_scoria_from_dark_scoria_stonecutting.json 4b8b1191dd3a21294293dc5ad237af89b849df28 data/create/recipes/mossy_diorite_from_diorite_stonecutting.json @@ -3368,6 +3375,7 @@ eae06580a0a5f486cde35426716d50fcb3ba5bb3 data/create/recipes/polished_weathered_ 0fa8386648398724f6fd373178b706c6b11ddefc data/create/recipes/pressing/gold_ingot.json a104ef6eb8872a40ea7b2ef67ae54cec943162f0 data/create/recipes/pressing/iron_ingot.json 7f9e72ec02a9926656744a95066f8aa304514565 data/create/recipes/pressing/lapis_block.json +654e274b07af172c22838d47e0974367c20101d4 data/create/recipes/pressing/path.json bd57ccc8eb4357b4a5af021db7b806b514cd2558 data/create/recipes/pressing/sugar_cane.json 141173778757d87e7f2e9466bdab6ff1263c8e98 data/create/recipes/sandpaper_polishing/rose_quartz.json d59c68621c78ff5d2c51be4440dea603480efed8 data/create/recipes/scoria_bricks_from_scoria_stonecutting.json @@ -3525,7 +3533,7 @@ eac71740fb12bdb38b5dfaa2268613d7ba82b809 data/create/tags/blocks/windmill_sails. 081f5aa35602fc27af2ca01ea9f2fd5e7eb284dc data/create/tags/items/create_ingots.json 94c62bf22678ef55b2b8a5398a7960e5b00682dc data/create/tags/items/crushed_ores.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json -abbe5d7cc9d1705509257888154ed7ca23292586 data/create/tags/items/upright_on_belt.json +3d5cdbbf58f23e9aa0bf15c200905254b93a14ed data/create/tags/items/upright_on_belt.json 50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json 16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json 81d3eb40b048160fcc2d6bb7ff12b49276297efd data/forge/tags/blocks/glass_panes.json diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index 23097eeeb..68ba6563a 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -415,6 +415,7 @@ "item.create.attribute_filter": "\u0279\u01DD\u0287\u05DF\u0131\u2132 \u01DD\u0287nq\u0131\u0279\u0287\u0287\u2C6F", "item.create.belt_connector": "\u0287\u05DF\u01DD\u15FA \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", "item.create.blaze_cake": "\u01DD\u029E\u0250\u0186 \u01DDz\u0250\u05DF\u15FA", + "item.create.blaze_cake_base": "\u01DDs\u0250\u15FA \u01DD\u029E\u0250\u0186 \u01DDz\u0250\u05DF\u15FA", "item.create.brass_hand": "pu\u0250H ss\u0250\u0279\u15FA", "item.create.brass_ingot": "\u0287obuI ss\u0250\u0279\u15FA", "item.create.brass_nugget": "\u0287\u01DDbbnN ss\u0250\u0279\u15FA", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 08eeb8c04..30683b397 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -421,6 +421,7 @@ "item.create.attribute_filter": "Attribute Filter", "item.create.belt_connector": "Mechanical Belt", "item.create.blaze_cake": "Blaze Cake", + "item.create.blaze_cake_base": "Blaze Cake Base", "item.create.brass_hand": "Brass Hand", "item.create.brass_ingot": "Brass Ingot", "item.create.brass_nugget": "Brass Nugget", @@ -879,6 +880,9 @@ "create.schematicannon.status.schematicNotPlaced": "Schematic Not Deployed", "create.schematicannon.status.schematicExpired": "Schematic File Expired", + "create.materialChecklist": "Material Checklist", + "create.materialChecklist.blocksNotLoaded": "* Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Deny-List", "create.gui.filter.deny_list.description": "Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "Allow-List", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 606eab935..1a8e6615b 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1132", + "_": "Missing Localizations: 1135", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", "item.create.belt_connector": "Mechanischer Riemen", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "UNLOCALIZED: Brass Hand", "item.create.brass_ingot": "UNLOCALIZED: Brass Ingot", "item.create.brass_nugget": "UNLOCALIZED: Brass Nugget", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "Bauplan nicht positioniert", "create.schematicannon.status.schematicExpired": "Bauplandatei abgelaufen", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "UNLOCALIZED: Deny-List", "create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "UNLOCALIZED: Allow-List", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 60a42c26b..838565083 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 783", + "_": "Missing Localizations: 786", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "Filtre d'attribut", "item.create.belt_connector": "Tapis roulant", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "Main", "item.create.brass_ingot": "Lingot de laiton", "item.create.brass_nugget": "Pépite de laiton", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "Schéma non déployé", "create.schematicannon.status.schematicExpired": "Fichier de schéma arrivé à expiration", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Liste noire", "create.gui.filter.deny_list.description": "Les articles réussissent s'ils ne correspondent à AUCUN des éléments ci-dessus. Une liste noire vide accepte tout.", "create.gui.filter.allow_list": "Liste blanche", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 87dffd54d..78594721d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 767", + "_": "Missing Localizations: 770", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "Filtro Attributi", "item.create.belt_connector": "Nastro Meccanico", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "Mano", "item.create.brass_ingot": "Lingotto di Ottone", "item.create.brass_nugget": "Pepita di Ottone", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "Schematica Non Implementata", "create.schematicannon.status.schematicExpired": "File Schematica Scaduto", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Lista Nera", "create.gui.filter.deny_list.description": "Gli oggetti passano se NON corrispondono a nessuno dei precedenti. Una Lista Nera vuota accetta tutto.", "create.gui.filter.allow_list": "Lista Bianca", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 0966c1dd5..563058a29 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 766", + "_": "Missing Localizations: 769", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "属性フィルター", "item.create.belt_connector": "メカニカルベルト", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "手", "item.create.brass_ingot": "真鍮インゴット", "item.create.brass_nugget": "真鍮ナゲット", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "配置されていない概略図です", "create.schematicannon.status.schematicExpired": "概略図ファイルが期限切れです", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "ブラックリスト", "create.gui.filter.deny_list.description": "上記のいずれにも一致しない場合、アイテムは通り抜けます。 空のブラックリストはすべてを受け入れます。", "create.gui.filter.allow_list": "ホワイトリスト", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 669755250..7f98bc146 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 767", + "_": "Missing Localizations: 770", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "속성 필터 틀", "item.create.belt_connector": "기계식 벨트", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "황동 손", "item.create.brass_ingot": "황동 주괴", "item.create.brass_nugget": "황동 조각", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "청사진이 전개되지 않음", "create.schematicannon.status.schematicExpired": "청사진 파일이 제거됨", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "블랙리스트", "create.gui.filter.deny_list.description": "위 목록에 맞지않는 아이템이면 통과합니다. 빈 블랙리스트는 모두 통과시킵니다.", "create.gui.filter.allow_list": "화이트리스트", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 3fca0cb93..052bdb9d5 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1073", + "_": "Missing Localizations: 1076", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", "item.create.belt_connector": "Mechanische Transportband", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "UNLOCALIZED: Brass Hand", "item.create.brass_ingot": "UNLOCALIZED: Brass Ingot", "item.create.brass_nugget": "Brons klompje", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "Bouwtekening niet geplaatst", "create.schematicannon.status.schematicExpired": "Bouwtekening verlopen", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "UNLOCALIZED: Deny-List", "create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "UNLOCALIZED: Allow-List", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index a56877fb5..7d42db853 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1139", + "_": "Missing Localizations: 1142", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "UNLOCALIZED: Attribute Filter", "item.create.belt_connector": "Esteira Mecânica", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "UNLOCALIZED: Brass Hand", "item.create.brass_ingot": "UNLOCALIZED: Brass Ingot", "item.create.brass_nugget": "UNLOCALIZED: Brass Nugget", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "Esquema não Colocado", "create.schematicannon.status.schematicExpired": "Arquivo de Esquema Expirado", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "UNLOCALIZED: Deny-List", "create.gui.filter.deny_list.description": "UNLOCALIZED: Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "UNLOCALIZED: Allow-List", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index b3e0be39b..af34ed77f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 440", + "_": "Missing Localizations: 443", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "Фильтр атрибутов", "item.create.belt_connector": "Механический ремень", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "Латунная рука", "item.create.brass_ingot": "Латунный слиток", "item.create.brass_nugget": "Кусочек латуни", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "Схема не загружена", "create.schematicannon.status.schematicExpired": "Срок действия файла схемы истек", + "create.materialChecklist": "UNLOCALIZED: Material Checklist", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Чёрный список", "create.gui.filter.deny_list.description": "Предметы проходят, если они не соответствуют ни одному из вышеперечисленных. Пустой черный список принимает все.", "create.gui.filter.allow_list": "Белый список", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index cda134d61..dec275541 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 449", + "_": "Missing Localizations: 451", "_": "->------------------------] Game Elements [------------------------<-", @@ -422,6 +422,7 @@ "item.create.attribute_filter": "属性过滤器", "item.create.belt_connector": "传送带", "item.create.blaze_cake": "UNLOCALIZED: Blaze Cake", + "item.create.blaze_cake_base": "UNLOCALIZED: Blaze Cake Base", "item.create.brass_hand": "黄铜手部零件", "item.create.brass_ingot": "黄铜锭", "item.create.brass_nugget": "黄铜粒", @@ -880,6 +881,9 @@ "create.schematicannon.status.schematicNotPlaced": "蓝图未部署", "create.schematicannon.status.schematicExpired": "蓝图文件已过期", + "create.materialChecklist": "材料清单", + "create.materialChecklist.blocksNotLoaded": "UNLOCALIZED: * Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "黑名单", "create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过", "create.gui.filter.allow_list": "白名单", diff --git a/src/generated/resources/assets/create/models/item/blaze_cake_base.json b/src/generated/resources/assets/create/models/item/blaze_cake_base.json new file mode 100644 index 000000000..ad6909823 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/blaze_cake_base.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "create:item/blaze_cake_base" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/compacting/andesite_from_flint.json b/src/generated/resources/data/create/recipes/compacting/andesite_from_flint.json new file mode 100644 index 000000000..6018bf3e6 --- /dev/null +++ b/src/generated/resources/data/create/recipes/compacting/andesite_from_flint.json @@ -0,0 +1,24 @@ +{ + "type": "create:compacting", + "ingredients": [ + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:gravel" + }, + { + "fluid": "minecraft:lava", + "nbt": {}, + "amount": 100 + } + ], + "results": [ + { + "item": "minecraft:andesite" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/compacting/blaze_cake.json b/src/generated/resources/data/create/recipes/compacting/blaze_cake.json index e4008758a..985ae27d0 100644 --- a/src/generated/resources/data/create/recipes/compacting/blaze_cake.json +++ b/src/generated/resources/data/create/recipes/compacting/blaze_cake.json @@ -9,15 +9,11 @@ }, { "item": "create:cinder_flour" - }, - { - "fluidTag": "minecraft:lava", - "amount": 125 } ], "results": [ { - "item": "create:blaze_cake" + "item": "create:blaze_cake_base" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/compacting/diorite_from_flint.json b/src/generated/resources/data/create/recipes/compacting/diorite_from_flint.json new file mode 100644 index 000000000..522b8faf0 --- /dev/null +++ b/src/generated/resources/data/create/recipes/compacting/diorite_from_flint.json @@ -0,0 +1,24 @@ +{ + "type": "create:compacting", + "ingredients": [ + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:flint" + }, + { + "item": "create:limesand" + }, + { + "fluid": "minecraft:lava", + "nbt": {}, + "amount": 100 + } + ], + "results": [ + { + "item": "minecraft:diorite" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/compacting/granite_from_flint.json b/src/generated/resources/data/create/recipes/compacting/granite_from_flint.json new file mode 100644 index 000000000..a591cff44 --- /dev/null +++ b/src/generated/resources/data/create/recipes/compacting/granite_from_flint.json @@ -0,0 +1,24 @@ +{ + "type": "create:compacting", + "ingredients": [ + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:flint" + }, + { + "item": "minecraft:red_sand" + }, + { + "fluid": "minecraft:lava", + "nbt": {}, + "amount": 100 + } + ], + "results": [ + { + "item": "minecraft:granite" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/encased_chain_drive.json b/src/generated/resources/data/create/recipes/crafting/kinetics/encased_chain_drive.json index d44ed9c67..1b8564a0a 100644 --- a/src/generated/resources/data/create/recipes/crafting/kinetics/encased_chain_drive.json +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/encased_chain_drive.json @@ -1,16 +1,19 @@ { "type": "minecraft:crafting_shaped", "pattern": [ - " C ", - "CBC", - " C " + " B ", + "SCS", + " B " ], "key": { - "C": { - "item": "create:andesite_casing" + "S": { + "item": "create:shaft" }, "B": { - "item": "minecraft:dried_kelp" + "tag": "forge:nuggets/iron" + }, + "C": { + "item": "create:andesite_casing" } }, "result": { diff --git a/src/generated/resources/data/create/recipes/mixing/temp_cobble.json b/src/generated/resources/data/create/recipes/filling/blaze_cake.json similarity index 53% rename from src/generated/resources/data/create/recipes/mixing/temp_cobble.json rename to src/generated/resources/data/create/recipes/filling/blaze_cake.json index 79e364c1d..179843453 100644 --- a/src/generated/resources/data/create/recipes/mixing/temp_cobble.json +++ b/src/generated/resources/data/create/recipes/filling/blaze_cake.json @@ -1,20 +1,18 @@ { - "type": "create:mixing", + "type": "create:filling", "ingredients": [ { - "fluid": "minecraft:water", - "nbt": {}, - "amount": 250 + "item": "create:blaze_cake_base" }, { "fluid": "minecraft:lava", "nbt": {}, - "amount": 25 + "amount": 250 } ], "results": [ { - "item": "minecraft:cobblestone" + "item": "create:blaze_cake" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/glowstone.json b/src/generated/resources/data/create/recipes/filling/glowstone.json new file mode 100644 index 000000000..21202f6d5 --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/glowstone.json @@ -0,0 +1,21 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "create:cinder_flour" + }, + { + "fluid": "create:potion", + "nbt": { + "Bottle": "REGULAR", + "Potion": "minecraft:fire_resistance" + }, + "amount": 25 + } + ], + "results": [ + { + "item": "minecraft:glowstone_dust" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/grass_block.json b/src/generated/resources/data/create/recipes/filling/grass_block.json new file mode 100644 index 000000000..00d1b8b86 --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/grass_block.json @@ -0,0 +1,18 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:dirt" + }, + { + "fluid": "minecraft:water", + "nbt": {}, + "amount": 500 + } + ], + "results": [ + { + "item": "minecraft:grass_block" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/gunpowder.json b/src/generated/resources/data/create/recipes/filling/gunpowder.json new file mode 100644 index 000000000..ffcfeb78f --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/gunpowder.json @@ -0,0 +1,21 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "create:cinder_flour" + }, + { + "fluid": "create:potion", + "nbt": { + "Bottle": "REGULAR", + "Potion": "minecraft:harming" + }, + "amount": 25 + } + ], + "results": [ + { + "item": "minecraft:gunpowder" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/filling/redstone.json b/src/generated/resources/data/create/recipes/filling/redstone.json new file mode 100644 index 000000000..5923deeb4 --- /dev/null +++ b/src/generated/resources/data/create/recipes/filling/redstone.json @@ -0,0 +1,21 @@ +{ + "type": "create:filling", + "ingredients": [ + { + "item": "create:cinder_flour" + }, + { + "fluid": "create:potion", + "nbt": { + "Bottle": "REGULAR", + "Potion": "minecraft:strength" + }, + "amount": 25 + } + ], + "results": [ + { + "item": "minecraft:redstone" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/gunpowder.json b/src/generated/resources/data/create/recipes/mixing/gunpowder.json deleted file mode 100644 index f098f05fb..000000000 --- a/src/generated/resources/data/create/recipes/mixing/gunpowder.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "create:mixing", - "ingredients": [ - { - "tag": "minecraft:coals" - }, - { - "item": "create:crushed_zinc_ore" - }, - { - "item": "minecraft:gunpowder" - } - ], - "results": [ - { - "item": "minecraft:gunpowder", - "count": 2 - } - ], - "heatRequirement": "heated" -} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mixing/temp_lava.json b/src/generated/resources/data/create/recipes/mixing/lava_from_cobble.json similarity index 91% rename from src/generated/resources/data/create/recipes/mixing/temp_lava.json rename to src/generated/resources/data/create/recipes/mixing/lava_from_cobble.json index efee970a9..3f9f2a070 100644 --- a/src/generated/resources/data/create/recipes/mixing/temp_lava.json +++ b/src/generated/resources/data/create/recipes/mixing/lava_from_cobble.json @@ -8,7 +8,7 @@ "results": [ { "fluid": "minecraft:lava", - "amount": 25 + "amount": 50 } ], "heatRequirement": "superheated" diff --git a/src/generated/resources/data/create/recipes/pressing/path.json b/src/generated/resources/data/create/recipes/pressing/path.json new file mode 100644 index 000000000..b9a17c39f --- /dev/null +++ b/src/generated/resources/data/create/recipes/pressing/path.json @@ -0,0 +1,21 @@ +{ + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "minecraft:grass_block" + }, + { + "item": "minecraft:dirt" + }, + { + "item": "minecraft:podzol" + } + ] + ], + "results": [ + { + "item": "minecraft:grass_path" + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/items/upright_on_belt.json b/src/generated/resources/data/create/tags/items/upright_on_belt.json index 4db8308e8..3cea45167 100644 --- a/src/generated/resources/data/create/tags/items/upright_on_belt.json +++ b/src/generated/resources/data/create/tags/items/upright_on_belt.json @@ -1,6 +1,8 @@ { "replace": false, "values": [ + "create:blaze_cake_base", + "create:blaze_cake", "minecraft:glass_bottle", "minecraft:potion", "minecraft:splash_potion", diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index 9cd3b1e19..c118dcb13 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -44,6 +44,7 @@ import com.simibubi.create.content.schematics.item.SchematicAndQuillItem; import com.simibubi.create.content.schematics.item.SchematicItem; import com.simibubi.create.foundation.data.AssetLookup; import com.simibubi.create.foundation.data.CreateRegistrate; +import com.simibubi.create.foundation.item.HiddenIngredientItem; import com.simibubi.create.foundation.item.TagDependentIngredientItem; import com.simibubi.create.foundation.item.TooltipHelper; import com.tterrag.registrate.util.entry.ItemEntry; @@ -81,19 +82,13 @@ public class AllItems { CRUSHED_ZINC = taggedIngredient("crushed_zinc_ore", CRUSHED_ORES.tag), CRUSHED_BRASS = taggedIngredient("crushed_brass", CRUSHED_ORES.tag); - public static final ItemEntry - CRUSHED_OSMIUM = compatCrushedOre("osmium"), - CRUSHED_PLATINUM = compatCrushedOre("platinum"), - CRUSHED_SILVER = compatCrushedOre("silver"), - CRUSHED_TIN = compatCrushedOre("tin"), - CRUSHED_LEAD = compatCrushedOre("lead"), - CRUSHED_QUICKSILVER = compatCrushedOre("quicksilver"), - CRUSHED_BAUXITE = compatCrushedOre("aluminum"), - CRUSHED_URANIUM = compatCrushedOre("uranium"), - CRUSHED_NICKEL = compatCrushedOre("nickel"); + public static final ItemEntry CRUSHED_OSMIUM = compatCrushedOre("osmium"), + CRUSHED_PLATINUM = compatCrushedOre("platinum"), CRUSHED_SILVER = compatCrushedOre("silver"), + CRUSHED_TIN = compatCrushedOre("tin"), CRUSHED_LEAD = compatCrushedOre("lead"), + CRUSHED_QUICKSILVER = compatCrushedOre("quicksilver"), CRUSHED_BAUXITE = compatCrushedOre("aluminum"), + CRUSHED_URANIUM = compatCrushedOre("uranium"), CRUSHED_NICKEL = compatCrushedOre("nickel"); - public static final ItemEntry - ANDESITE_ALLOY = ingredient("andesite_alloy"), + public static final ItemEntry ANDESITE_ALLOY = ingredient("andesite_alloy"), COPPER_INGOT = taggedIngredient("copper_ingot", forgeItemTag("ingots/copper"), CREATE_INGOTS.tag), ZINC_INGOT = taggedIngredient("zinc_ingot", forgeItemTag("ingots/zinc"), CREATE_INGOTS.tag), BRASS_INGOT = taggedIngredient("brass_ingot", forgeItemTag("ingots/brass"), CREATE_INGOTS.tag), @@ -104,7 +99,13 @@ public class AllItems { WHISK = ingredient("whisk"), BRASS_HAND = ingredient("brass_hand"), CRAFTER_SLOT_COVER = ingredient("crafter_slot_cover"); + public static final ItemEntry BLAZE_CAKE_BASE = + REGISTRATE.item("blaze_cake_base", HiddenIngredientItem::new) + .tag(AllItemTags.UPRIGHT_ON_BELT.tag) + .register(); + public static final ItemEntry BLAZE_CAKE = REGISTRATE.item("blaze_cake", CombustibleItem::new) + .tag(AllItemTags.UPRIGHT_ON_BELT.tag) .register(); public static final ItemEntry CHROMATIC_COMPOUND = @@ -266,6 +267,11 @@ public class AllItems { .register(); } + private static ItemEntry hiddenIngredient(String name) { + return REGISTRATE.item(name, HiddenIngredientItem::new) + .register(); + } + @SafeVarargs private static ItemEntry taggedIngredient(String name, ITag.INamedTag... tags) { return REGISTRATE.item(name, Item::new) diff --git a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java index ac6ba9397..12c5f4e90 100644 --- a/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java +++ b/src/main/java/com/simibubi/create/compat/jei/CreateJEI.java @@ -159,11 +159,10 @@ public class CreateJEI implements IModPlugin { .recipeList(MysteriousItemConversionCategory::getRecipes) .build(), - spoutFilling = - register("spout_filling", SpoutCategory::new).recipeList(() -> SpoutCategory.getRecipes(ingredientManager)) - .recipes(AllRecipeTypes.FILLING) - .catalyst(AllBlocks.SPOUT::get) - .build(), + spoutFilling = register("spout_filling", SpoutCategory::new).recipes(AllRecipeTypes.FILLING) + .recipeList(() -> SpoutCategory.getRecipes(ingredientManager)) + .catalyst(AllBlocks.SPOUT::get) + .build(), draining = register("draining", ItemDrainCategory::new) .recipeList(() -> ItemDrainCategory.getRecipes(ingredientManager)) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingBySpout.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingBySpout.java index 799fef49f..8823fb2c3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingBySpout.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/FillingBySpout.java @@ -1,7 +1,6 @@ package com.simibubi.create.content.contraptions.fluids.actors; import java.util.List; -import java.util.Optional; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.foundation.fluid.FluidIngredient; @@ -27,9 +26,9 @@ public class FillingBySpout { public static int getRequiredAmountForItem(World world, ItemStack stack, FluidStack availableFluid) { wrapper.setInventorySlotContents(0, stack); - Optional> recipe = AllRecipeTypes.FILLING.find(wrapper, world); - if (recipe.isPresent()) { - FillingRecipe fillingRecipe = (FillingRecipe) recipe.get(); + for (IRecipe recipe : world.getRecipeManager() + .getRecipes(AllRecipeTypes.FILLING.getType(), wrapper, world)) { + FillingRecipe fillingRecipe = (FillingRecipe) recipe; FluidIngredient requiredFluid = fillingRecipe.getRequiredFluid(); if (requiredFluid.test(availableFluid)) return requiredFluid.getRequiredAmount(); @@ -42,9 +41,9 @@ public class FillingBySpout { toFill.setAmount(requiredAmount); wrapper.setInventorySlotContents(0, stack); - Optional> recipe = AllRecipeTypes.FILLING.find(wrapper, world); - if (recipe.isPresent()) { - FillingRecipe fillingRecipe = (FillingRecipe) recipe.get(); + for (IRecipe recipe : world.getRecipeManager() + .getRecipes(AllRecipeTypes.FILLING.getType(), wrapper, world)) { + FillingRecipe fillingRecipe = (FillingRecipe) recipe; FluidIngredient requiredFluid = fillingRecipe.getRequiredFluid(); if (requiredFluid.test(toFill)) { List results = fillingRecipe.rollResults(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java index a294079b3..7b850f00b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/potion/PotionFluidHandler.java @@ -6,6 +6,8 @@ import java.util.Map.Entry; import com.google.common.collect.Lists; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid.BottleType; +import com.simibubi.create.foundation.fluid.FluidHelper; +import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.Pair; @@ -41,6 +43,11 @@ public class PotionFluidHandler { return Pair.of(fluid, new ItemStack(Items.GLASS_BOTTLE)); } + public static FluidIngredient potionIngredient(Potion potion, int amount) { + return FluidIngredient.fromFluidStack(FluidHelper.copyStackWithAmount(PotionFluidHandler + .getFluidFromPotionItem(PotionUtils.addPotionToItemStack(new ItemStack(Items.POTION), potion)), amount)); + } + public static FluidStack getFluidFromPotionItem(ItemStack stack) { Potion potion = PotionUtils.getPotionFromItem(stack); List list = PotionUtils.getFullEffectsFromItem(stack); diff --git a/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java b/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java index 9198fbec3..969ea7984 100644 --- a/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java @@ -1,8 +1,9 @@ package com.simibubi.create.content.logistics; import java.util.HashMap; -import java.util.HashSet; +import java.util.IdentityHashMap; import java.util.Iterator; +import java.util.LinkedHashSet; import java.util.Map; import java.util.Set; @@ -21,14 +22,24 @@ import net.minecraft.world.World; public class RedstoneLinkNetworkHandler { - static Map, Set>> connections = new HashMap<>(); + static final Map, Set>> connections = new IdentityHashMap<>(); public static class Frequency { + public static final Frequency EMPTY = new Frequency(ItemStack.EMPTY); + private static final Map simpleFrequencies = new IdentityHashMap<>(); private ItemStack stack; private Item item; private int color; - public Frequency(ItemStack stack) { + public static Frequency of(ItemStack stack) { + if (stack.isEmpty()) + return EMPTY; + if (!stack.hasTag()) + return simpleFrequencies.computeIfAbsent(stack.getItem(), $ -> new Frequency(stack)); + return new Frequency(stack); + } + + private Frequency(ItemStack stack) { this.stack = stack; item = stack.getItem(); CompoundNBT displayTag = stack.getChildTag("display"); @@ -36,7 +47,7 @@ public class RedstoneLinkNetworkHandler { } public ItemStack getStack() { - return stack.copy(); + return stack; } @Override @@ -46,6 +57,8 @@ public class RedstoneLinkNetworkHandler { @Override public boolean equals(Object obj) { + if (this == obj) + return true; return obj instanceof Frequency ? ((Frequency) obj).item == item && ((Frequency) obj).color == color : false; } @@ -66,7 +79,7 @@ public class RedstoneLinkNetworkHandler { Map, Set> networksInWorld = networksIn(actor.getWorld()); Pair key = actor.getNetworkKey(); if (!networksInWorld.containsKey(key)) - networksInWorld.put(key, new HashSet<>()); + networksInWorld.put(key, new LinkedHashSet<>()); return networksInWorld.get(key); } @@ -106,31 +119,26 @@ public class RedstoneLinkNetworkHandler { } if (!withinRange(actor, other)) continue; - power = Math.max(other.getTransmittedStrength(), power); - if (power == 15) - break; + + if (power < 15) + power = Math.max(other.getTransmittedStrength(), power); } // fix one-to-one loading order problem - if(actor.isListening()){ + if (actor.isListening()) { actor.newPosition = true; actor.updateReceiver(power); } - for (Iterator iterator = network.iterator(); iterator.hasNext();) { - LinkBehaviour other = iterator.next(); - if (other.tileEntity.isRemoved()) { - iterator.remove(); - continue; - } - if (!withinRange(actor, other)) - continue; - if (other.isListening()) + for (LinkBehaviour other : network) { + if (other != actor && other.isListening() && withinRange(actor, other)) other.updateReceiver(power); } } public static boolean withinRange(LinkBehaviour from, LinkBehaviour to) { + if (from == to) + return true; return from.getPos().withinDistance(to.getPos(), AllConfigs.SERVER.logistics.linkRange.get()); } diff --git a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java index 63fbe9635..e4a37dcc3 100644 --- a/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java +++ b/src/main/java/com/simibubi/create/content/schematics/MaterialChecklist.java @@ -2,41 +2,37 @@ package com.simibubi.create.content.schematics; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Locale; -import java.util.Map; import com.google.common.collect.Sets; import com.simibubi.create.content.schematics.ItemRequirement.ItemUseType; +import com.simibubi.create.foundation.utility.Lang; +import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; +import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; import net.minecraft.nbt.StringNBT; +import net.minecraft.util.text.IFormattableTextComponent; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; +import net.minecraft.util.text.Style; import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.TranslationTextComponent; -//TODO colors get purged with current approach, proper checklist item with UI is needed public class MaterialChecklist { - + public static final int MAX_ENTRIES_PER_PAGE = 5; - public Map gathered; - public Map required; - public Map damageRequired; + public Object2IntMap gathered = new Object2IntArrayMap<>(); + public Object2IntMap required = new Object2IntArrayMap<>(); + public Object2IntMap damageRequired = new Object2IntArrayMap<>(); public boolean blocksNotLoaded; - public MaterialChecklist() { - required = new HashMap<>(); - damageRequired = new HashMap<>(); - gathered = new HashMap<>(); - } - public void warnBlockNotLoaded() { blocksNotLoaded = true; } @@ -55,12 +51,12 @@ public class MaterialChecklist { } } - private void putOrIncrement(Map map, ItemStack stack) { + private void putOrIncrement(Object2IntMap map, ItemStack stack) { Item item = stack.getItem(); if (item == Items.AIR) return; if (map.containsKey(item)) - map.put(item, map.get(item) + stack.getCount()); + map.put(item, map.getInt(item) + stack.getCount()); else map.put(item, stack.getCount()); } @@ -69,7 +65,7 @@ public class MaterialChecklist { Item item = stack.getItem(); if (required.containsKey(item) || damageRequired.containsKey(item)) if (gathered.containsKey(item)) - gathered.put(item, gathered.get(item) + stack.getCount()); + gathered.put(item, gathered.getInt(item) + stack.getCount()); else gathered.put(item, stack.getCount()); } @@ -81,31 +77,31 @@ public class MaterialChecklist { ListNBT pages = new ListNBT(); int itemsWritten = 0; - StringBuilder string = new StringBuilder("{\"text\":\""); + IFormattableTextComponent textComponent; if (blocksNotLoaded) { - string.append("\n" + TextFormatting.RED + "* Disclaimer *\n\n"); - string.append("Material List may be inaccurate due to relevant chunks not being loaded."); - string.append("\"}"); - pages.add(StringNBT.of(string.toString())); - string = new StringBuilder("{\"text\":\""); + textComponent = new StringTextComponent("\n" + TextFormatting.RED); + textComponent = + textComponent.append(Lang.createTranslationTextComponent("materialChecklist.blocksNotLoaded")); + pages.add(StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); } List keys = new ArrayList<>(Sets.union(required.keySet(), damageRequired.keySet())); Collections.sort(keys, (item1, item2) -> { Locale locale = Locale.ENGLISH; - String name1 = - new TranslationTextComponent(item1.getTranslationKey()).getString().toLowerCase(locale); - String name2 = - new TranslationTextComponent(item2.getTranslationKey()).getString().toLowerCase(locale); + String name1 = new TranslationTextComponent(item1.getTranslationKey()).getString() + .toLowerCase(locale); + String name2 = new TranslationTextComponent(item2.getTranslationKey()).getString() + .toLowerCase(locale); return name1.compareTo(name2); }); + textComponent = new StringTextComponent(""); List completed = new ArrayList<>(); for (Item item : keys) { int amount = getRequiredAmount(item); if (gathered.containsKey(item)) - amount -= gathered.get(item); + amount -= gathered.getInt(item); if (amount <= 0) { completed.add(item); @@ -114,63 +110,59 @@ public class MaterialChecklist { if (itemsWritten == MAX_ENTRIES_PER_PAGE) { itemsWritten = 0; - string.append("\"}"); - pages.add(StringNBT.of(string.toString())); - string = new StringBuilder("{\"text\":\""); + textComponent.append(new StringTextComponent("\n >>>").formatted(TextFormatting.BLUE)); + pages.add(StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); + textComponent = new StringTextComponent(""); } itemsWritten++; - string.append(unfinishedEntry(new ItemStack(item), amount).getString()); + textComponent.append(entry(new ItemStack(item), amount, true)); } for (Item item : completed) { if (itemsWritten == MAX_ENTRIES_PER_PAGE) { itemsWritten = 0; - string.append("\"}"); - pages.add(StringNBT.of(string.toString())); - string = new StringBuilder("{\"text\":\""); + textComponent.append(new StringTextComponent("\n >>>").formatted(TextFormatting.DARK_GREEN)); + pages.add(StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); + textComponent = new StringTextComponent(""); } itemsWritten++; - string.append(gatheredEntry(new ItemStack(item), getRequiredAmount(item)).getString()); + textComponent.append(entry(new ItemStack(item), getRequiredAmount(item), false)); } - string.append("\"}"); - pages.add(StringNBT.of(string.toString())); + pages.add(StringNBT.of(ITextComponent.Serializer.toJson(textComponent))); tag.put("pages", pages); tag.putString("author", "Schematicannon"); tag.putString("title", TextFormatting.BLUE + "Material Checklist"); + textComponent = Lang.createTranslationTextComponent("materialChecklist") + .setStyle(Style.EMPTY.withColor(TextFormatting.BLUE) + .withItalic(Boolean.FALSE)); + book.getOrCreateChildTag("display") + .putString("Name", ITextComponent.Serializer.toJson(textComponent)); book.setTag(tag); return book; } - public Integer getRequiredAmount(Item item) { + public int getRequiredAmount(Item item) { int amount = required.getOrDefault(item, 0); if (damageRequired.containsKey(item)) - amount += Math.ceil(damageRequired.get(item) / (float) new ItemStack(item).getMaxDamage()); + amount += Math.ceil(damageRequired.getInt(item) / (float) new ItemStack(item).getMaxDamage()); return amount; } - private ITextComponent gatheredEntry(ItemStack item, int amount) { + private ITextComponent entry(ItemStack item, int amount, boolean unfinished) { int stacks = amount / 64; int remainder = amount % 64; - TranslationTextComponent tc = new TranslationTextComponent(item.getTranslationKey()); - return tc.append(" \\u2714\n"); - //.formatted(TextFormatting.DARK_GREEN).append(new StringTextComponent(" | " - //+ "-" + "\\u25A4 +" + "--" + "\n").formatted(TextFormatting.GRAY)); - // return TextFormatting.DARK_GREEN + tc.getFormattedText() + " \\u2714\n x" + amount + TextFormatting.GRAY + " | " - // + stacks + "\\u25A4 +" + remainder + "\n"; - } - - private ITextComponent unfinishedEntry(ItemStack item, int amount) { - int stacks = amount / 64; - int remainder = amount % 64; - TranslationTextComponent tc = new TranslationTextComponent(item.getTranslationKey()); - return tc.append("\n x" + amount).formatted(TextFormatting.BLUE).append(new StringTextComponent(" | " + stacks + "\\u25A4 +" + remainder + "\n").formatted(TextFormatting.GRAY)); - // return TextFormatting.BLUE + tc.getFormattedText() + "\n x" + amount + TextFormatting.GRAY + " | " + stacks - // + "\\u25A4 +" + remainder + "\n"; + IFormattableTextComponent tc = new TranslationTextComponent(item.getTranslationKey()); + if (!unfinished) + tc.append(" \u2714"); + tc.formatted(unfinished ? TextFormatting.BLUE : TextFormatting.DARK_GREEN); + return tc.append(new StringTextComponent("\n" + " x" + amount).formatted(TextFormatting.BLACK)) + .append( + new StringTextComponent(" | " + stacks + "\u25A4 +" + remainder + "\n").formatted(TextFormatting.GRAY)); } } diff --git a/src/main/java/com/simibubi/create/foundation/data/LangMerger.java b/src/main/java/com/simibubi/create/foundation/data/LangMerger.java index 6c672ee18..d51631052 100644 --- a/src/main/java/com/simibubi/create/foundation/data/LangMerger.java +++ b/src/main/java/com/simibubi/create/foundation/data/LangMerger.java @@ -162,8 +162,8 @@ public class LangMerger implements IDataProvider { if (key.endsWith(".tooltip")) return true; - key = new String(key).replaceFirst("\\.", ""); - previousKey = new String(previousKey).replaceFirst("\\.", ""); + key = key.replaceFirst("\\.", ""); + previousKey = previousKey.replaceFirst("\\.", ""); String[] split = key.split("\\."); String[] split2 = previousKey.split("\\."); @@ -243,7 +243,7 @@ public class LangMerger implements IDataProvider { } private class LangEntry { - static final String ENTRY_FORMAT = "\t\"%s\": \"%s\",\n"; + static final String ENTRY_FORMAT = "\t\"%s\": %s,\n"; private String key; private String value; @@ -255,7 +255,7 @@ public class LangMerger implements IDataProvider { @Override public String toString() { - return String.format(ENTRY_FORMAT, key, value); + return String.format(ENTRY_FORMAT, key, GSON.toJson(value, String.class)); } } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/CompactingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/CompactingRecipeGen.java index eacaed7c8..56df8ab3b 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/CompactingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/CompactingRecipeGen.java @@ -2,23 +2,41 @@ package com.simibubi.create.foundation.data.recipe; import com.simibubi.create.AllItems; import com.simibubi.create.AllRecipeTypes; +import com.simibubi.create.content.palettes.AllPaletteBlocks; +import net.minecraft.block.Blocks; import net.minecraft.data.DataGenerator; +import net.minecraft.fluid.Fluids; import net.minecraft.item.Items; -import net.minecraft.tags.FluidTags; import net.minecraftforge.common.Tags; public class CompactingRecipeGen extends ProcessingRecipeGen { GeneratedRecipe - - BLAZE_CAKE = create("blaze_cake", b -> b - .require(Tags.Items.EGGS) - .require(Items.SUGAR) - .require(AllItems.CINDER_FLOUR.get()) - .require(FluidTags.LAVA, 125) - .output(AllItems.BLAZE_CAKE.get(), 1)) - + + GRANITE = create("granite_from_flint", b -> b.require(Items.FLINT) + .require(Items.FLINT) + .require(Fluids.LAVA, 100) + .require(Items.RED_SAND) + .output(Blocks.GRANITE, 1)), + + DIORITE = create("diorite_from_flint", b -> b.require(Items.FLINT) + .require(Items.FLINT) + .require(Fluids.LAVA, 100) + .require(AllPaletteBlocks.LIMESAND.get()) + .output(Blocks.DIORITE, 1)), + + ANDESITE = create("andesite_from_flint", b -> b.require(Items.FLINT) + .require(Items.FLINT) + .require(Fluids.LAVA, 100) + .require(Items.GRAVEL) + .output(Blocks.ANDESITE, 1)), + + BLAZE_CAKE = create("blaze_cake", b -> b.require(Tags.Items.EGGS) + .require(Items.SUGAR) + .require(AllItems.CINDER_FLOUR.get()) + .output(AllItems.BLAZE_CAKE_BASE.get(), 1)) + ; public CompactingRecipeGen(DataGenerator p_i48262_1_) { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java index b851fd816..385966243 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/FillingRecipeGen.java @@ -1,24 +1,47 @@ package com.simibubi.create.foundation.data.recipe; +import com.simibubi.create.AllItems; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllTags; +import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler; import net.minecraft.data.DataGenerator; +import net.minecraft.fluid.Fluids; import net.minecraft.item.Items; +import net.minecraft.potion.Potions; public class FillingRecipeGen extends ProcessingRecipeGen { - GeneratedRecipe - - HONEY_BOTTLE = create("honey_bottle", b -> b - .require(AllTags.forgeFluidTag("honey"), 250) + GeneratedRecipe + + HONEY_BOTTLE = create("honey_bottle", b -> b.require(AllTags.forgeFluidTag("honey"), 250) .require(Items.GLASS_BOTTLE) .output(Items.HONEY_BOTTLE)), - - MILK_BUCKET = create("milk_bucket", b -> b - .require(AllTags.forgeFluidTag("milk"), 1000) - .require(Items.BUCKET) - .output(Items.MILK_BUCKET)) + + BLAZE_CAKE = create("blaze_cake", b -> b.require(Fluids.LAVA, 250) + .require(AllItems.BLAZE_CAKE_BASE.get()) + .output(AllItems.BLAZE_CAKE.get())), + + GRASS_BLOCK = create("grass_block", b -> b.require(Fluids.WATER, 500) + .require(Items.DIRT) + .output(Items.GRASS_BLOCK)), + + GUNPOWDER = create("gunpowder", b -> b.require(PotionFluidHandler.potionIngredient(Potions.HARMING, 25)) + .require(AllItems.CINDER_FLOUR.get()) + .output(Items.GUNPOWDER)), + + REDSTONE = create("redstone", b -> b.require(PotionFluidHandler.potionIngredient(Potions.STRENGTH, 25)) + .require(AllItems.CINDER_FLOUR.get()) + .output(Items.REDSTONE)), + + GLOWSTONE = create("glowstone", b -> b.require(PotionFluidHandler.potionIngredient(Potions.FIRE_RESISTANCE, 25)) + .require(AllItems.CINDER_FLOUR.get()) + .output(Items.GLOWSTONE_DUST)), + + MILK_BUCKET = create("milk_bucket", b -> b.require(AllTags.forgeFluidTag("milk"), 1000) + .require(Items.BUCKET) + .output(Items.MILK_BUCKET)) + ; public FillingRecipeGen(DataGenerator p_i48262_1_) { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java index 2d3d07cee..87ac41546 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MixingRecipeGen.java @@ -17,12 +17,8 @@ public class MixingRecipeGen extends ProcessingRecipeGen { GeneratedRecipe - TEMPCOBBLE = create("temp_cobble", b -> b.require(Fluids.WATER, 250) - .require(Fluids.LAVA, 25) - .output(Blocks.COBBLESTONE, 1)), - - TEMP_LAVA = create("temp_lava", b -> b.require(Tags.Items.COBBLESTONE) - .output(Fluids.LAVA, 25) + TEMP_LAVA = create("lava_from_cobble", b -> b.require(Tags.Items.COBBLESTONE) + .output(Fluids.LAVA, 50) .requiresHeat(HeatCondition.SUPERHEATED)), TEA = create("tea", b -> b.require(Fluids.WATER, 250) @@ -30,9 +26,8 @@ public class MixingRecipeGen extends ProcessingRecipeGen { .require(ItemTags.LEAVES) .output(AllFluids.TEA.get(), 500) .requiresHeat(HeatCondition.HEATED)), - - CHOCOLATE = create("chocolate", b -> b - .require(AllTags.forgeFluidTag("milk"), 250) + + CHOCOLATE = create("chocolate", b -> b.require(AllTags.forgeFluidTag("milk"), 250) .require(Items.SUGAR) .require(Items.COCOA_BEANS) .output(AllFluids.CHOCOLATE.get(), 250) @@ -48,12 +43,6 @@ public class MixingRecipeGen extends ProcessingRecipeGen { .output(AllItems.CRUSHED_BRASS.get(), 2) .requiresHeat(HeatCondition.HEATED)), - GUNPOWDER = create("gunpowder", b -> b.require(ItemTags.COALS) - .require(AllItems.CRUSHED_ZINC.get()) - .require(Items.GUNPOWDER) - .output(Items.GUNPOWDER, 2) - .requiresHeat(HeatCondition.HEATED)), - CHROMATIC_COMPOUND = create("chromatic_compound", b -> b.require(Tags.Items.DUSTS_GLOWSTONE) .require(Tags.Items.DUSTS_GLOWSTONE) .require(Tags.Items.DUSTS_GLOWSTONE) diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java index 2fff1d3ea..ca9740ab9 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java @@ -6,6 +6,7 @@ import com.simibubi.create.AllRecipeTypes; import net.minecraft.block.Blocks; import net.minecraft.data.DataGenerator; import net.minecraft.item.Items; +import net.minecraft.item.crafting.Ingredient; public class PressingRecipeGen extends ProcessingRecipeGen { @@ -13,6 +14,9 @@ public class PressingRecipeGen extends ProcessingRecipeGen { SUGAR_CANE = create(() -> Items.SUGAR_CANE, b -> b.output(Items.PAPER)), + PATH = create("path", b -> b.require(Ingredient.fromItems(Items.GRASS_BLOCK, Items.DIRT, Items.PODZOL)) + .output(Items.GRASS_PATH)), + IRON = create("iron_ingot", b -> b.require(I.iron()) .output(AllItems.IRON_SHEET.get())), GOLD = create("gold_ingot", b -> b.require(I.gold()) diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index 5599eac45..ead35a86d 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -656,13 +656,14 @@ public class StandardRecipeGen extends CreateRecipeProvider { .patternLine("CBC") .patternLine(" C ")), - ENCASED_BELT = create(AllBlocks.ENCASED_CHAIN_DRIVE).returns(4) + ENCASED_CHAIN_DRIVE = create(AllBlocks.ENCASED_CHAIN_DRIVE).returns(4) .unlockedBy(I::andesiteCasing) - .viaShaped(b -> b.key('C', I.andesiteCasing()) - .key('B', Items.DRIED_KELP) - .patternLine(" C ") - .patternLine("CBC") - .patternLine(" C ")), + .viaShaped(b -> b.key('S', I.shaft()) + .key('B', Tags.Items.NUGGETS_IRON) + .key('C', I.andesiteCasing()) + .patternLine(" B ") + .patternLine("SCS") + .patternLine(" B ")), SPEEDOMETER = create(AllBlocks.SPEEDOMETER).unlockedBy(I::andesite) .viaShaped(b -> b.key('C', Items.COMPASS) diff --git a/src/main/java/com/simibubi/create/foundation/item/HiddenIngredientItem.java b/src/main/java/com/simibubi/create/foundation/item/HiddenIngredientItem.java new file mode 100644 index 000000000..210db152d --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/item/HiddenIngredientItem.java @@ -0,0 +1,21 @@ +package com.simibubi.create.foundation.item; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.util.NonNullList; + +public class HiddenIngredientItem extends Item { + + public HiddenIngredientItem(Properties p_i48487_1_) { + super(p_i48487_1_); + } + + @Override + public void fillItemGroup(ItemGroup p_150895_1_, NonNullList p_150895_2_) { + if (p_150895_1_ != ItemGroup.SEARCH) + return; + super.fillItemGroup(p_150895_1_, p_150895_2_); + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java index 7dff0aa68..9a471d96a 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/linked/LinkBehaviour.java @@ -39,8 +39,8 @@ public class LinkBehaviour extends TileEntityBehaviour { protected LinkBehaviour(SmartTileEntity te, Pair slots) { super(te); - frequencyFirst = new Frequency(ItemStack.EMPTY); - frequencyLast = new Frequency(ItemStack.EMPTY); + frequencyFirst = Frequency.EMPTY; + frequencyLast = Frequency.EMPTY; firstSlot = slots.getLeft(); secondSlot = slots.getRight(); textShift = Vector3d.ZERO; @@ -133,8 +133,8 @@ public class LinkBehaviour extends TileEntityBehaviour { newPosition = positionInTag != positionKey; super.read(nbt, clientPacket); - frequencyFirst = new Frequency(ItemStack.read(nbt.getCompound("FrequencyFirst"))); - frequencyLast = new Frequency(ItemStack.read(nbt.getCompound("FrequencyLast"))); + frequencyFirst = Frequency.of(ItemStack.read(nbt.getCompound("FrequencyFirst"))); + frequencyLast = Frequency.of(ItemStack.read(nbt.getCompound("FrequencyLast"))); } public void setFrequency(boolean first, ItemStack stack) { @@ -148,9 +148,9 @@ public class LinkBehaviour extends TileEntityBehaviour { getHandler().removeFromNetwork(this); if (first) - frequencyFirst = new Frequency(stack); + frequencyFirst = Frequency.of(stack); else - frequencyLast = new Frequency(stack); + frequencyLast = Frequency.of(stack); if (!changed) return; diff --git a/src/main/resources/assets/create/lang/default/messages.json b/src/main/resources/assets/create/lang/default/messages.json index badd48a55..175a66baa 100644 --- a/src/main/resources/assets/create/lang/default/messages.json +++ b/src/main/resources/assets/create/lang/default/messages.json @@ -314,7 +314,10 @@ "create.schematicannon.status.schematicInvalid": "Schematic Invalid", "create.schematicannon.status.schematicNotPlaced": "Schematic Not Deployed", "create.schematicannon.status.schematicExpired": "Schematic File Expired", - + + "create.materialChecklist": "Material Checklist", + "create.materialChecklist.blocksNotLoaded": "* Disclaimer *\n\nMaterial List may be inaccurate due to relevant chunks not being loaded.", + "create.gui.filter.deny_list": "Deny-List", "create.gui.filter.deny_list.description": "Items pass if they do NOT match any of the above. An empty Deny-List accepts everything.", "create.gui.filter.allow_list": "Allow-List", diff --git a/src/main/resources/assets/create/lang/zh_cn.json b/src/main/resources/assets/create/lang/zh_cn.json index 4ce4d52c1..93395e84f 100644 --- a/src/main/resources/assets/create/lang/zh_cn.json +++ b/src/main/resources/assets/create/lang/zh_cn.json @@ -743,7 +743,9 @@ "create.schematicannon.status.schematicInvalid": "蓝图无效", "create.schematicannon.status.schematicNotPlaced": "蓝图未部署", "create.schematicannon.status.schematicExpired": "蓝图文件已过期", - + + "create.materialChecklist": "材料清单", + "create.gui.filter.deny_list": "黑名单", "create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过", "create.gui.filter.allow_list": "白名单", diff --git a/src/main/resources/assets/create/textures/item/blaze_cake_base.png b/src/main/resources/assets/create/textures/item/blaze_cake_base.png new file mode 100644 index 000000000..6fc04b7f9 Binary files /dev/null and b/src/main/resources/assets/create/textures/item/blaze_cake_base.png differ