From c96e5c00b7fc7ca8f6dd9d855da07f2e8ea80f5a Mon Sep 17 00:00:00 2001 From: QiuShui1012 Date: Fri, 13 Nov 2026 03:06:04 +0800 Subject: [PATCH 1/6] feat(id): rename some item's id for consistency --- ...acitor_empty.json => black_chocolate.json} | 2 +- ...colate_black.json => empty_capacitor.json} | 2 +- .../items/empty_supercapacitor.json | 6 + .../items/supercapacitor_empty.json | 6 - ...colate_white.json => white_chocolate.json} | 2 +- .../assets/anvilcraft/lang/en_ud.json | 20 +- .../assets/anvilcraft/lang/en_us.json | 20 +- ...colate_black.json => black_chocolate.json} | 2 +- ...colate_white.json => white_chocolate.json} | 2 +- .../black_chocolate_block.json | 6 +- .../white_chocolate_block.json | 18 +- ...acitor_empty.json => empty_capacitor.json} | 4 +- ...r_empty.json => empty_supercapacitor.json} | 4 +- ...colate_black.json => black_chocolate.json} | 4 +- ...colate_white.json => white_chocolate.json} | 4 +- ...r_empty.json => empty_supercapacitor.json} | 4 +- ...acitor_empty.json => empty_capacitor.json} | 4 +- ...colate_black.json => black_chocolate.json} | 2 +- .../recipe/black_chocolate_block.json | 2 +- .../recipe/black_chocolate_from_block.json | 2 +- .../data/anvilcraft/recipe/building_rod.json | 2 +- .../recipe/charger_charging/capacitor.json | 2 +- ...acitor_empty.json => empty_capacitor.json} | 2 +- ...r_empty.json => empty_supercapacitor.json} | 2 +- .../charger_charging/supercapacitor.json | 2 +- ...acitor_empty.json => empty_capacitor.json} | 2 +- .../recipe/empty_propel_piston.json | 2 +- ...r_empty.json => empty_supercapacitor.json} | 2 +- ...colate_white.json => white_chocolate.json} | 2 +- .../recipe/white_chocolate_block.json | 2 +- .../recipe/white_chocolate_from_block.json | 2 +- .../data/anvilcraft/tags/item/capacitor.json | 2 +- .../tags/item/reinforced_concrete.json | 92 +-- .../resources/data/c/tags/block/dyed.json | 92 +-- .../resources/data/c/tags/item/dyed.json | 92 +-- .../resources/data/c/tags/item/foods.json | 4 +- .../tags/block/mineable/pickaxe.json | 92 +-- .../tags/item/banned_uncraftables.json | 4 +- .../item/banned_uncrafting_ingredients.json | 4 +- .../client/init/ModCreativeVariantGroups.java | 21 +- .../recipe/RegistrumBlockRecipeLoader.java | 12 +- .../anvilcraft/data/tags/ItemTagLoader.java | 4 +- .../anvilcraft/init/block/ModBlocks.java | 721 +++++++----------- .../anvilcraft/init/item/ModFoodItems.java | 18 +- .../dubhe/anvilcraft/init/item/ModItems.java | 152 ++-- .../init/item/tabs/ItemsSections.java | 4 +- .../init/item/tabs/ToolsAndUtilities.java | 4 +- .../jei/category/JewelCraftingCategory.java | 7 +- .../jei/category/MineralFountainCategory.java | 89 +-- ...hocolate_black.png => black_chocolate.png} | Bin ...apacitor_empty.png => empty_capacitor.png} | Bin ...tor_empty.png => empty_supercapacitor.png} | Bin .../{hardend_resin.png => hardened_resin.png} | Bin ...hocolate_white.png => white_chocolate.png} | Bin 54 files changed, 649 insertions(+), 903 deletions(-) rename src/generated/resources/assets/anvilcraft/items/{capacitor_empty.json => black_chocolate.json} (52%) rename src/generated/resources/assets/anvilcraft/items/{chocolate_black.json => empty_capacitor.json} (52%) create mode 100644 src/generated/resources/assets/anvilcraft/items/empty_supercapacitor.json delete mode 100644 src/generated/resources/assets/anvilcraft/items/supercapacitor_empty.json rename src/generated/resources/assets/anvilcraft/items/{chocolate_white.json => white_chocolate.json} (52%) rename src/generated/resources/assets/anvilcraft/models/item/{chocolate_black.json => black_chocolate.json} (56%) rename src/generated/resources/assets/anvilcraft/models/item/{chocolate_white.json => white_chocolate.json} (56%) rename src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/{capacitor_empty.json => empty_capacitor.json} (69%) rename src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/{supercapacitor_empty.json => empty_supercapacitor.json} (68%) rename src/generated/resources/data/anvilcraft/advancement/recipes/food/{chocolate_black.json => black_chocolate.json} (91%) rename src/generated/resources/data/anvilcraft/advancement/recipes/food/{chocolate_white.json => white_chocolate.json} (91%) rename src/generated/resources/data/anvilcraft/advancement/recipes/item_compress/{supercapacitor_empty.json => empty_supercapacitor.json} (69%) rename src/generated/resources/data/anvilcraft/advancement/recipes/misc/{capacitor_empty.json => empty_capacitor.json} (89%) rename src/generated/resources/data/anvilcraft/recipe/{chocolate_black.json => black_chocolate.json} (87%) rename src/generated/resources/data/anvilcraft/recipe/charger_charging/{capacitor_empty.json => empty_capacitor.json} (77%) rename src/generated/resources/data/anvilcraft/recipe/charger_charging/{supercapacitor_empty.json => empty_supercapacitor.json} (75%) rename src/generated/resources/data/anvilcraft/recipe/{capacitor_empty.json => empty_capacitor.json} (83%) rename src/generated/resources/data/anvilcraft/recipe/item_compress/{supercapacitor_empty.json => empty_supercapacitor.json} (94%) rename src/generated/resources/data/anvilcraft/recipe/{chocolate_white.json => white_chocolate.json} (86%) rename src/main/resources/assets/anvilcraft/textures/item/{chocolate_black.png => black_chocolate.png} (100%) rename src/main/resources/assets/anvilcraft/textures/item/{capacitor_empty.png => empty_capacitor.png} (100%) rename src/main/resources/assets/anvilcraft/textures/item/{supercapacitor_empty.png => empty_supercapacitor.png} (100%) rename src/main/resources/assets/anvilcraft/textures/item/{hardend_resin.png => hardened_resin.png} (100%) rename src/main/resources/assets/anvilcraft/textures/item/{chocolate_white.png => white_chocolate.png} (100%) diff --git a/src/generated/resources/assets/anvilcraft/items/capacitor_empty.json b/src/generated/resources/assets/anvilcraft/items/black_chocolate.json similarity index 52% rename from src/generated/resources/assets/anvilcraft/items/capacitor_empty.json rename to src/generated/resources/assets/anvilcraft/items/black_chocolate.json index 51f78bdb1e..ef9a356ada 100644 --- a/src/generated/resources/assets/anvilcraft/items/capacitor_empty.json +++ b/src/generated/resources/assets/anvilcraft/items/black_chocolate.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "anvilcraft:item/capacitor_empty" + "model": "anvilcraft:item/black_chocolate" } } \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_black.json b/src/generated/resources/assets/anvilcraft/items/empty_capacitor.json similarity index 52% rename from src/generated/resources/assets/anvilcraft/items/chocolate_black.json rename to src/generated/resources/assets/anvilcraft/items/empty_capacitor.json index 4d4e6a3351..880098516f 100644 --- a/src/generated/resources/assets/anvilcraft/items/chocolate_black.json +++ b/src/generated/resources/assets/anvilcraft/items/empty_capacitor.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "anvilcraft:item/chocolate_black" + "model": "anvilcraft:item/empty_capacitor" } } \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/empty_supercapacitor.json b/src/generated/resources/assets/anvilcraft/items/empty_supercapacitor.json new file mode 100644 index 0000000000..3cea8c7efb --- /dev/null +++ b/src/generated/resources/assets/anvilcraft/items/empty_supercapacitor.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "anvilcraft:item/empty_supercapacitor" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/supercapacitor_empty.json b/src/generated/resources/assets/anvilcraft/items/supercapacitor_empty.json deleted file mode 100644 index 85b153bfa3..0000000000 --- a/src/generated/resources/assets/anvilcraft/items/supercapacitor_empty.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "model": { - "type": "minecraft:model", - "model": "anvilcraft:item/supercapacitor_empty" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/items/chocolate_white.json b/src/generated/resources/assets/anvilcraft/items/white_chocolate.json similarity index 52% rename from src/generated/resources/assets/anvilcraft/items/chocolate_white.json rename to src/generated/resources/assets/anvilcraft/items/white_chocolate.json index b1945813db..0c6db8d79f 100644 --- a/src/generated/resources/assets/anvilcraft/items/chocolate_white.json +++ b/src/generated/resources/assets/anvilcraft/items/white_chocolate.json @@ -1,6 +1,6 @@ { "model": { "type": "minecraft:model", - "model": "anvilcraft:item/chocolate_white" + "model": "anvilcraft:item/white_chocolate" } } \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/lang/en_ud.json b/src/generated/resources/assets/anvilcraft/lang/en_ud.json index 8688696c99..723eb1b01d 100644 --- a/src/generated/resources/assets/anvilcraft/lang/en_ud.json +++ b/src/generated/resources/assets/anvilcraft/lang/en_ud.json @@ -1424,6 +1424,7 @@ "item.anvilcraft.armadillo_amulet": "ʇǝꞁnɯⱯ oꞁꞁᴉpɐɯɹⱯ", "item.anvilcraft.beef_mushroom_stew": "ʍǝʇS ɯooɹɥsnW ɟǝǝᗺ", "item.anvilcraft.black_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ʞɔɐꞁᗺ", + "item.anvilcraft.black_chocolate": "ǝʇɐꞁoɔoɥƆ ʞɔɐꞁᗺ", "item.anvilcraft.blue_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ǝnꞁᗺ", "item.anvilcraft.brass_ingot": "ʇoᵷuI ssɐɹᗺ", "item.anvilcraft.brass_nugget": "ʇǝᵷᵷnN ssɐɹᗺ", @@ -1440,13 +1441,10 @@ "item.anvilcraft.building_rod.summary": "˙ʞꞁnq uᴉ sʇuᴉɹdǝnꞁq puɐ sʞɔoꞁq ǝɔɐꞁԀ", "item.anvilcraft.canned_food": "pooℲ pǝuuɐƆ", "item.anvilcraft.capacitor": "ɹoʇᴉɔɐdɐƆ", - "item.anvilcraft.capacitor_empty": "ɹoʇᴉɔɐdɐƆ ʎʇdɯƎ", "item.anvilcraft.cat_amulet": "ʇǝꞁnɯⱯ ʇɐƆ", "item.anvilcraft.charged_neutronium_ingot": "ʇoᵷuI ɯnᴉuoɹʇnǝN pǝᵷɹɐɥƆ", "item.anvilcraft.check_valve": "ǝʌꞁɐɅ ʞɔǝɥƆ", "item.anvilcraft.chocolate": "ǝʇɐꞁoɔoɥƆ", - "item.anvilcraft.chocolate_black": "ʞɔɐꞁᗺ ǝʇɐꞁoɔoɥƆ", - "item.anvilcraft.chocolate_white": "ǝʇᴉɥM ǝʇɐꞁoɔoɥƆ", "item.anvilcraft.circuit_board": "pɹɐoᗺ ʇᴉnɔɹᴉƆ", "item.anvilcraft.civilization_catalyst": "ʇsʎꞁɐʇɐƆ uoᴉʇɐzᴉꞁᴉʌᴉƆ", "item.anvilcraft.cocoa_butter": "ɹǝʇʇnᗺ ɐoɔoƆ", @@ -1483,13 +1481,15 @@ "item.anvilcraft.ember_metal_resonator": "ɹoʇɐuosǝᴚ ꞁɐʇǝW ɹǝqɯƎ", "item.anvilcraft.ember_metal_shovel": "ꞁǝʌoɥS ꞁɐʇǝW ɹǝqɯƎ", "item.anvilcraft.ember_metal_sword": "pɹoʍS ꞁɐʇǝW ɹǝqɯƎ", - "item.anvilcraft.ember_metal_upgrade_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS", + "item.anvilcraft.ember_metal_upgrade_smithing_template": "ǝpɐɹᵷd∩ ꞁɐʇǝW ɹǝqɯƎ", "item.anvilcraft.emerald_amulet": "ʇǝꞁnɯⱯ pꞁɐɹǝɯƎ", + "item.anvilcraft.empty_capacitor": "ɹoʇᴉɔɐdɐƆ ʎʇdɯƎ", + "item.anvilcraft.empty_supercapacitor": "ɹoʇᴉɔɐdɐɔɹǝdnS ʎʇdɯƎ", "item.anvilcraft.enchanted_gold_ingot": "ʇoᵷuI pꞁo⅁ pǝʇuɐɥɔuƎ", "item.anvilcraft.enchanted_gold_nugget": "ʇǝᵷᵷnN pꞁo⅁ pǝʇuɐɥɔuƎ", "item.anvilcraft.energy_weapon_platform": "ɯɹoɟʇɐꞁԀ uodɐǝM ʎᵷɹǝuƎ", "item.anvilcraft.excited_state_void_matter": "ɹǝʇʇɐW pᴉoɅ ǝʇɐʇS pǝʇᴉɔxƎ", - "item.anvilcraft.exp_bucket": "ʇǝʞɔnᗺ dxƎ", + "item.anvilcraft.exp_bucket": "ʇǝʞɔnᗺ ԀXƎ", "item.anvilcraft.exp_gem": "ɯǝ⅁ dxƎ", "item.anvilcraft.feather_amulet": "ʇǝꞁnɯⱯ ɹǝɥʇɐǝℲ", "item.anvilcraft.filter": "ɹǝʇꞁᴉℲ", @@ -1507,7 +1507,7 @@ "item.anvilcraft.frost_metal_resonator": "ɹoʇɐuosǝᴚ ꞁɐʇǝW ʇsoɹℲ", "item.anvilcraft.frost_metal_shovel": "ꞁǝʌoɥS ꞁɐʇǝW ʇsoɹℲ", "item.anvilcraft.frost_metal_sword": "pɹoʍS ꞁɐʇǝW ʇsoɹℲ", - "item.anvilcraft.frost_metal_upgrade_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS", + "item.anvilcraft.frost_metal_upgrade_smithing_template": "ǝpɐɹᵷd∩ ꞁɐʇǝW ʇsoɹℲ", "item.anvilcraft.gem_amulet": "ʇǝꞁnɯⱯ ɯǝ⅁", "item.anvilcraft.geode": "ǝpoǝ⅁", "item.anvilcraft.geode.find": "%s pǝʇɐɔoꞁ 'ǝpoǝᵷ ʇsʎɥʇǝɯɐ pǝʇɔǝdsnS", @@ -1589,7 +1589,7 @@ "item.anvilcraft.royal_steel_pickaxe": "ǝxɐʞɔᴉԀ ꞁǝǝʇS ꞁɐʎoᴚ", "item.anvilcraft.royal_steel_shovel": "ꞁǝʌoɥS ꞁǝǝʇS ꞁɐʎoᴚ", "item.anvilcraft.royal_steel_sword": "pɹoʍS ꞁǝǝʇS ꞁɐʎoᴚ", - "item.anvilcraft.royal_steel_upgrade_smithing_template": "ǝʇɐꞁdɯǝ⟘ ᵷuᴉɥʇᴉɯS", + "item.anvilcraft.royal_steel_upgrade_smithing_template": "ǝpɐɹᵷd∩ ꞁǝǝʇS ꞁɐʎoᴚ", "item.anvilcraft.ruby": "ʎqnᴚ", "item.anvilcraft.ruby_amulet": "ʇǝꞁnɯⱯ ʎqnᴚ", "item.anvilcraft.sapphire": "ǝɹᴉɥddɐS", @@ -1614,7 +1614,6 @@ "item.anvilcraft.structure_disk.too_large_for_placer": "(ϛ×ϛ×ϛ xɐɯ) ɹǝɔɐꞁԀ ʞɔoꞁᗺ ʇɹɐɯS ɹoɟ ǝᵷɹɐꞁ oo⟘ ✗", "item.anvilcraft.structure_tool": "ꞁoo⟘ ǝɹnʇɔnɹʇS", "item.anvilcraft.supercapacitor": "ɹoʇᴉɔɐdɐɔɹǝdnS", - "item.anvilcraft.supercapacitor_empty": "ɹoʇᴉɔɐdɐɔɹǝdnS ʎʇdɯƎ", "item.anvilcraft.tesla_gun": "un⅁ ɐꞁsǝ⟘", "item.anvilcraft.tin_can": "uɐƆ uᴉ⟘", "item.anvilcraft.tin_ingot": "ʇoᵷuI uᴉ⟘", @@ -1644,6 +1643,7 @@ "item.anvilcraft.weatherproof_spacesuit_helmet": "ʇǝɯꞁǝH ʇᴉnsǝɔɐdS ɟooɹdɹǝɥʇɐǝM", "item.anvilcraft.weatherproof_spacesuit_leggings": "sᵷuᴉᵷᵷǝꞀ ʇᴉnsǝɔɐdS ɟooɹdɹǝɥʇɐǝM", "item.anvilcraft.white_cement_bucket": "ʇǝʞɔnᗺ ʇuǝɯǝƆ ǝʇᴉɥM", + "item.anvilcraft.white_chocolate": "ǝʇɐꞁoɔoɥƆ ǝʇᴉɥM", "item.anvilcraft.wood_fiber": "ɹǝqᴉℲ pooM", "item.anvilcraft.wormhole_stabilizer_component": "ʇuǝuodɯoƆ ɹǝzᴉꞁᴉqɐʇS ǝꞁoɥɯɹoM", "item.anvilcraft.xenon_bucket": "ʇǝʞɔnᗺ uouǝX", @@ -2434,7 +2434,6 @@ "tooltip.anvilcraft.item.cake_block": "ʇᴉ ʇɐǝ oʇ uoods ɐ sɐ ꞁǝʌoɥs ɐ ǝsn 'ǝʞɐɔ ɯɐǝɹɔ ɟo ʞɔoꞁq Ɐ", "tooltip.anvilcraft.item.canned_food": "pooɟ ʇuɐʇsuᴉ ǝꞁqɐʞɔɐʇS", "tooltip.anvilcraft.item.capacitor": "pǝɹoʇs ƎℲW 8", - "tooltip.anvilcraft.item.capacitor_empty": "ʎʇᴉɔɐdɐɔ ƎℲW 8", "tooltip.anvilcraft.item.cat_amulet": "uoᴉʇɔɐɹǝʇuᴉ puɐɥ-ʎʇdɯǝ ǝuo ɥʇᴉʍ sʇɐƆ pꞁᴉʍ ǝɯɐʇ ⸵sɯoʇuɐɥԀ puɐ sɹǝdǝǝɹƆ ʎɐʍɐ sǝɹɐɔS", "tooltip.anvilcraft.item.celestial_forging_anvil": "sǝɹnʇɔnɹʇsɐᵷǝɯ pꞁᴉnq 'sǝᴉpoq ꞁɐᴉʇsǝꞁǝɔ ǝᵷɹoℲ", "tooltip.anvilcraft.item.celestial_forging_anvil.shift": "sꞁᴉɐʇǝp ɹoɟ uoʇʇnq ǝɹnʇɔnɹʇsɐᵷǝɯ ǝɥʇ ʞɔǝɥɔ — sǝsodɹnd ʇuǝɹǝɟɟᴉp ǝʌɹǝs sǝɹnʇɔnɹʇsɐᵷǝɯ ʇuǝɹǝɟɟᴉᗡ\nǝɹnʇɔnɹʇsɐᵷǝɯ ǝɥʇ ʎoɹʇsǝp ꞁꞁᴉʍ ʎpoq ꞁɐᴉʇsǝꞁǝɔ ǝɥʇ ᵷuᴉʞɔoꞁu∩\nǝɹnʇɔnɹʇsɐᵷǝɯ ɐ pꞁᴉnq oʇ ʇᴉ ʞɔoꞁ 'punoɟ sᴉ ʎpoq ꞁɐᴉʇsǝꞁǝɔ ǝꞁqɐʇᴉns ɐ ǝɔuO\nsɹǝʇǝɯɐɹɐd ꞁɐᴉʇsǝꞁǝɔ ǝuᴉɯɹǝʇǝp oʇ ꞁᴉʌuɐ uɐ ǝɔɐꞁԀ", @@ -2530,6 +2529,8 @@ "tooltip.anvilcraft.item.ember_metal_nugget": "suoǝ ɹoɟ ǝɹᴉɟ uᴉ pǝɹǝdɯǝʇ ǝʇᴉɹǝɥʇǝN ʇuɐʇsᴉsǝɹ-ʇɐǝɥ ɟo ǝɔǝᴉd ꞁꞁɐɯs Ɐ", "tooltip.anvilcraft.item.ember_smithing_table": "ɟooɹd ɹǝɥʇᴉM 'ᵷuᴉɥʇᴉɯs uoᴉʇɐuᴉqɯoɔ ǝuo-uᴉ-ꞁꞁⱯ", "tooltip.anvilcraft.item.emerald_amulet": "ɹǝɹɐǝʍ ǝɥʇ oʇ ǝꞁᴉʇsoɥ ǝɯoɔǝq ɹǝʌǝu sɯǝꞁo⅁ uoɹI ⸵sʇunoɔsᴉp ɹǝɟɟo sɹǝᵷɐꞁꞁᴉɅ", + "tooltip.anvilcraft.item.empty_capacitor": "ʎʇᴉɔɐdɐɔ ƎℲW 8", + "tooltip.anvilcraft.item.empty_supercapacitor": "ʎʇᴉɔɐdɐɔ ƎℲW 09⥝", "tooltip.anvilcraft.item.enchanted_gold_block": "sɟɟnqǝp pꞁoᵷ pǝsɹnɔ sꞁǝɔuɐɔ pꞁoᵷ pǝʇuɐɥɔuǝ ᵷuᴉʎɹɹɐƆ", "tooltip.anvilcraft.item.enchanted_gold_ingot": "sǝɯᴉʇ ɹnoɟ ʇᴉ ɥʇᴉʍ ɹǝʇɹɐq suᴉꞁᵷᴉԀ\nsɟɟnqǝp pꞁoᵷ pǝsɹnɔ sꞁǝɔuɐɔ pꞁoᵷ pǝʇuɐɥɔuǝ ᵷuᴉʎɹɹɐƆ", "tooltip.anvilcraft.item.enchanted_gold_nugget": "sɟɟnqǝp pꞁoᵷ pǝsɹnɔ sꞁǝɔuɐɔ pꞁoᵷ pǝʇuɐɥɔuǝ ᵷuᴉʎɹɹɐƆ", @@ -2728,7 +2729,6 @@ "tooltip.anvilcraft.item.structure_tool.size": "%3$d :z '%2$d :ʎ '%1$d :x :ǝzᴉS", "tooltip.anvilcraft.item.sugar_block": "ǝꞁᴉᵷɐɹɟ sɯǝǝs ʇnq 'ꞁɐʇsʎɹɔ ɔᴉɹʇɔǝꞁǝozǝᴉd ɐ osꞁⱯ\nɹɐᵷns ɟo ʞɔoꞁq ǝᵷɹɐꞁ Ɐ", "tooltip.anvilcraft.item.supercapacitor": "pǝɹoʇs ƎℲW 09⥝", - "tooltip.anvilcraft.item.supercapacitor_empty": "ʎʇᴉɔɐdɐɔ ƎℲW 09⥝", "tooltip.anvilcraft.item.tempering_glass": "ʇɔǝꞁꞁoɔ uo pǝɹᴉnbǝɹ sꞁooʇ oN 'ɟooɹd uoᴉsoꞁdxƎ 'ssɐꞁᵷ ꞁǝǝʇS ꞁɐʎoᴚ", "tooltip.anvilcraft.item.tesla_gun": "sqoɯ uǝǝʍʇǝq sǝɔunoq ʇɐɥʇ ᵷuᴉuʇɥᵷᴉꞁ uᴉɐɥɔ ǝɹᴉɟ puɐ ɹǝʍod ǝɯnsuoɔ oʇ ʞɔᴉꞁɔ-ʇɥᵷᴉɹ pꞁoH", "tooltip.anvilcraft.item.tesla_gun.shift": "un⅁ ɐꞁsǝ⟘ ǝɥʇ ᵷuᴉʇuɐɥɔuǝ ʎq pǝuǝʇɹoɥs ǝq uɐɔ ɥɔᴉɥʍ 'uʍopꞁooɔ ɐ ʎq pǝʍoꞁꞁoɟ sᴉ ǝʞᴉɹʇs ɥɔɐƎ\npǝʇǝᵷɹɐʇ ǝq osꞁɐ ꞁꞁᴉʍ spoɹ ᵷuᴉuʇɥᵷᴉꞁ puɐ 'sqoɯ ʇɹǝʌuoɔ uɐɔ ᵷuᴉuʇɥᵷᴉꞁ ǝɥ⟘\nǝɔunoq ɥɔɐǝ ɥʇᴉʍ ǝᵷɐɯɐp pǝɔnpǝɹ ᵷuᴉꞁɐǝp 'sqoɯ ߈ oʇ dn uǝǝʍʇǝq sɔɹɐ ʇɐɥʇ ᵷuᴉuʇɥᵷᴉꞁ uᴉɐɥɔ sǝɹᴉℲ", diff --git a/src/generated/resources/assets/anvilcraft/lang/en_us.json b/src/generated/resources/assets/anvilcraft/lang/en_us.json index b08798d7f5..3af95608a9 100644 --- a/src/generated/resources/assets/anvilcraft/lang/en_us.json +++ b/src/generated/resources/assets/anvilcraft/lang/en_us.json @@ -1424,6 +1424,7 @@ "item.anvilcraft.armadillo_amulet": "Armadillo Amulet", "item.anvilcraft.beef_mushroom_stew": "Beef Mushroom Stew", "item.anvilcraft.black_cement_bucket": "Black Cement Bucket", + "item.anvilcraft.black_chocolate": "Black Chocolate", "item.anvilcraft.blue_cement_bucket": "Blue Cement Bucket", "item.anvilcraft.brass_ingot": "Brass Ingot", "item.anvilcraft.brass_nugget": "Brass Nugget", @@ -1440,13 +1441,10 @@ "item.anvilcraft.building_rod.summary": "Place blocks and blueprints in bulk.", "item.anvilcraft.canned_food": "Canned Food", "item.anvilcraft.capacitor": "Capacitor", - "item.anvilcraft.capacitor_empty": "Empty Capacitor", "item.anvilcraft.cat_amulet": "Cat Amulet", "item.anvilcraft.charged_neutronium_ingot": "Charged Neutronium Ingot", "item.anvilcraft.check_valve": "Check Valve", "item.anvilcraft.chocolate": "Chocolate", - "item.anvilcraft.chocolate_black": "Chocolate Black", - "item.anvilcraft.chocolate_white": "Chocolate White", "item.anvilcraft.circuit_board": "Circuit Board", "item.anvilcraft.civilization_catalyst": "Civilization Catalyst", "item.anvilcraft.cocoa_butter": "Cocoa Butter", @@ -1483,13 +1481,15 @@ "item.anvilcraft.ember_metal_resonator": "Ember Metal Resonator", "item.anvilcraft.ember_metal_shovel": "Ember Metal Shovel", "item.anvilcraft.ember_metal_sword": "Ember Metal Sword", - "item.anvilcraft.ember_metal_upgrade_smithing_template": "Smithing Template", + "item.anvilcraft.ember_metal_upgrade_smithing_template": "Ember Metal Upgrade", "item.anvilcraft.emerald_amulet": "Emerald Amulet", + "item.anvilcraft.empty_capacitor": "Empty Capacitor", + "item.anvilcraft.empty_supercapacitor": "Empty Supercapacitor", "item.anvilcraft.enchanted_gold_ingot": "Enchanted Gold Ingot", "item.anvilcraft.enchanted_gold_nugget": "Enchanted Gold Nugget", "item.anvilcraft.energy_weapon_platform": "Energy Weapon Platform", "item.anvilcraft.excited_state_void_matter": "Excited State Void Matter", - "item.anvilcraft.exp_bucket": "Exp Bucket", + "item.anvilcraft.exp_bucket": "EXP Bucket", "item.anvilcraft.exp_gem": "Exp Gem", "item.anvilcraft.feather_amulet": "Feather Amulet", "item.anvilcraft.filter": "Filter", @@ -1507,7 +1507,7 @@ "item.anvilcraft.frost_metal_resonator": "Frost Metal Resonator", "item.anvilcraft.frost_metal_shovel": "Frost Metal Shovel", "item.anvilcraft.frost_metal_sword": "Frost Metal Sword", - "item.anvilcraft.frost_metal_upgrade_smithing_template": "Smithing Template", + "item.anvilcraft.frost_metal_upgrade_smithing_template": "Frost Metal Upgrade", "item.anvilcraft.gem_amulet": "Gem Amulet", "item.anvilcraft.geode": "Geode", "item.anvilcraft.geode.find": "Suspected amethyst geode, located %s", @@ -1589,7 +1589,7 @@ "item.anvilcraft.royal_steel_pickaxe": "Royal Steel Pickaxe", "item.anvilcraft.royal_steel_shovel": "Royal Steel Shovel", "item.anvilcraft.royal_steel_sword": "Royal Steel Sword", - "item.anvilcraft.royal_steel_upgrade_smithing_template": "Smithing Template", + "item.anvilcraft.royal_steel_upgrade_smithing_template": "Royal Steel Upgrade", "item.anvilcraft.ruby": "Ruby", "item.anvilcraft.ruby_amulet": "Ruby Amulet", "item.anvilcraft.sapphire": "Sapphire", @@ -1614,7 +1614,6 @@ "item.anvilcraft.structure_disk.too_large_for_placer": "✗ Too large for Smart Block Placer (max 5×5×5)", "item.anvilcraft.structure_tool": "Structure Tool", "item.anvilcraft.supercapacitor": "Supercapacitor", - "item.anvilcraft.supercapacitor_empty": "Empty Supercapacitor", "item.anvilcraft.tesla_gun": "Tesla Gun", "item.anvilcraft.tin_can": "Tin Can", "item.anvilcraft.tin_ingot": "Tin Ingot", @@ -1644,6 +1643,7 @@ "item.anvilcraft.weatherproof_spacesuit_helmet": "Weatherproof Spacesuit Helmet", "item.anvilcraft.weatherproof_spacesuit_leggings": "Weatherproof Spacesuit Leggings", "item.anvilcraft.white_cement_bucket": "White Cement Bucket", + "item.anvilcraft.white_chocolate": "White Chocolate", "item.anvilcraft.wood_fiber": "Wood Fiber", "item.anvilcraft.wormhole_stabilizer_component": "Wormhole Stabilizer Component", "item.anvilcraft.xenon_bucket": "Xenon Bucket", @@ -2434,7 +2434,6 @@ "tooltip.anvilcraft.item.cake_block": "A block of cream cake, use a shovel as a spoon to eat it", "tooltip.anvilcraft.item.canned_food": "Stackable instant food", "tooltip.anvilcraft.item.capacitor": "8 MFE stored", - "tooltip.anvilcraft.item.capacitor_empty": "8 MFE capacity", "tooltip.anvilcraft.item.cat_amulet": "Scares away Creepers and Phantoms; tame wild Cats with one empty-hand interaction", "tooltip.anvilcraft.item.celestial_forging_anvil": "Forge celestial bodies, build megastructures", "tooltip.anvilcraft.item.celestial_forging_anvil.shift": "Place an anvil to determine celestial parameters\nOnce a suitable celestial body is found, lock it to build a megastructure\nUnlocking the celestial body will destroy the megastructure\nDifferent megastructures serve different purposes — check the megastructure button for details", @@ -2530,6 +2529,8 @@ "tooltip.anvilcraft.item.ember_metal_nugget": "A small piece of heat-resistant Netherite tempered in fire for eons", "tooltip.anvilcraft.item.ember_smithing_table": "All-in-one combination smithing, Wither proof", "tooltip.anvilcraft.item.emerald_amulet": "Villagers offer discounts; Iron Golems never become hostile to the wearer", + "tooltip.anvilcraft.item.empty_capacitor": "8 MFE capacity", + "tooltip.anvilcraft.item.empty_supercapacitor": "160 MFE capacity", "tooltip.anvilcraft.item.enchanted_gold_block": "Carrying enchanted gold cancels cursed gold debuffs", "tooltip.anvilcraft.item.enchanted_gold_ingot": "Carrying enchanted gold cancels cursed gold debuffs\nPiglins barter with it four times", "tooltip.anvilcraft.item.enchanted_gold_nugget": "Carrying enchanted gold cancels cursed gold debuffs", @@ -2728,7 +2729,6 @@ "tooltip.anvilcraft.item.structure_tool.size": "Size: x: %1$d, y: %2$d, z: %3$d", "tooltip.anvilcraft.item.sugar_block": "A large block of sugar\nAlso a piezoelectric crystal, but seems fragile", "tooltip.anvilcraft.item.supercapacitor": "160 MFE stored", - "tooltip.anvilcraft.item.supercapacitor_empty": "160 MFE capacity", "tooltip.anvilcraft.item.tempering_glass": "Royal Steel glass, Explosion proof, No tools required on collect", "tooltip.anvilcraft.item.tesla_gun": "Hold right-click to consume power and fire chain lightning that bounces between mobs", "tooltip.anvilcraft.item.tesla_gun.shift": "Fires chain lightning that arcs between up to 4 mobs, dealing reduced damage with each bounce\nThe lightning can convert mobs, and lightning rods will also be targeted\nEach strike is followed by a cooldown, which can be shortened by enchanting the Tesla Gun", diff --git a/src/generated/resources/assets/anvilcraft/models/item/chocolate_black.json b/src/generated/resources/assets/anvilcraft/models/item/black_chocolate.json similarity index 56% rename from src/generated/resources/assets/anvilcraft/models/item/chocolate_black.json rename to src/generated/resources/assets/anvilcraft/models/item/black_chocolate.json index d72be5d613..c0f65fd7a3 100644 --- a/src/generated/resources/assets/anvilcraft/models/item/chocolate_black.json +++ b/src/generated/resources/assets/anvilcraft/models/item/black_chocolate.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "anvilcraft:item/chocolate_black" + "layer0": "anvilcraft:item/black_chocolate" } } \ No newline at end of file diff --git a/src/generated/resources/assets/anvilcraft/models/item/chocolate_white.json b/src/generated/resources/assets/anvilcraft/models/item/white_chocolate.json similarity index 56% rename from src/generated/resources/assets/anvilcraft/models/item/chocolate_white.json rename to src/generated/resources/assets/anvilcraft/models/item/white_chocolate.json index 347ac83181..a76035086d 100644 --- a/src/generated/resources/assets/anvilcraft/models/item/chocolate_white.json +++ b/src/generated/resources/assets/anvilcraft/models/item/white_chocolate.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "anvilcraft:item/chocolate_white" + "layer0": "anvilcraft:item/white_chocolate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_chocolate_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_chocolate_block.json index 945cbb5c5f..f3c4d0c656 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_chocolate_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/black_chocolate_block.json @@ -1,11 +1,11 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_chocolate_black": { + "has_black_chocolate": { "conditions": { "items": [ { - "items": "anvilcraft:chocolate_black" + "items": "anvilcraft:black_chocolate" } ] }, @@ -21,7 +21,7 @@ "requirements": [ [ "has_the_recipe", - "has_chocolate_black" + "has_black_chocolate" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_chocolate_block.json b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_chocolate_block.json index 33eef4dd86..fe55e7b7b7 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_chocolate_block.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/building_blocks/white_chocolate_block.json @@ -1,27 +1,27 @@ { "parent": "minecraft:recipes/root", "criteria": { - "has_chocolate_white": { + "has_the_recipe": { + "conditions": { + "recipe": "anvilcraft:white_chocolate_block" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_white_chocolate": { "conditions": { "items": [ { - "items": "anvilcraft:chocolate_white" + "items": "anvilcraft:white_chocolate" } ] }, "trigger": "minecraft:inventory_changed" - }, - "has_the_recipe": { - "conditions": { - "recipe": "anvilcraft:white_chocolate_block" - }, - "trigger": "minecraft:recipe_unlocked" } }, "requirements": [ [ "has_the_recipe", - "has_chocolate_white" + "has_white_chocolate" ] ], "rewards": { diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/capacitor_empty.json b/src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/empty_capacitor.json similarity index 69% rename from src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/capacitor_empty.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/empty_capacitor.json index 68a6839537..192c5373bc 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/capacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/empty_capacitor.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:charger_charging/capacitor_empty" + "recipe": "anvilcraft:charger_charging/empty_capacitor" }, "trigger": "minecraft:recipe_unlocked" } @@ -15,7 +15,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:charger_charging/capacitor_empty" + "anvilcraft:charger_charging/empty_capacitor" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/supercapacitor_empty.json b/src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/empty_supercapacitor.json similarity index 68% rename from src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/supercapacitor_empty.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/empty_supercapacitor.json index 63381622b5..d06201230c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/supercapacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/charger_charging/empty_supercapacitor.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:charger_charging/supercapacitor_empty" + "recipe": "anvilcraft:charger_charging/empty_supercapacitor" }, "trigger": "minecraft:recipe_unlocked" } @@ -15,7 +15,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:charger_charging/supercapacitor_empty" + "anvilcraft:charger_charging/empty_supercapacitor" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_black.json b/src/generated/resources/data/anvilcraft/advancement/recipes/food/black_chocolate.json similarity index 91% rename from src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_black.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/food/black_chocolate.json index 06d69b7839..e62208792c 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_black.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/food/black_chocolate.json @@ -33,7 +33,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:chocolate_black" + "recipe": "anvilcraft:black_chocolate" }, "trigger": "minecraft:recipe_unlocked" } @@ -48,7 +48,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:chocolate_black" + "anvilcraft:black_chocolate" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_white.json b/src/generated/resources/data/anvilcraft/advancement/recipes/food/white_chocolate.json similarity index 91% rename from src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_white.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/food/white_chocolate.json index 29ad352511..16ae5e448f 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/food/chocolate_white.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/food/white_chocolate.json @@ -33,7 +33,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:chocolate_white" + "recipe": "anvilcraft:white_chocolate" }, "trigger": "minecraft:recipe_unlocked" } @@ -48,7 +48,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:chocolate_white" + "anvilcraft:white_chocolate" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/item_compress/supercapacitor_empty.json b/src/generated/resources/data/anvilcraft/advancement/recipes/item_compress/empty_supercapacitor.json similarity index 69% rename from src/generated/resources/data/anvilcraft/advancement/recipes/item_compress/supercapacitor_empty.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/item_compress/empty_supercapacitor.json index bc9d2a64a3..9f6f2a4aab 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/item_compress/supercapacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/item_compress/empty_supercapacitor.json @@ -3,7 +3,7 @@ "criteria": { "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:item_compress/supercapacitor_empty" + "recipe": "anvilcraft:item_compress/empty_supercapacitor" }, "trigger": "minecraft:recipe_unlocked" } @@ -15,7 +15,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:item_compress/supercapacitor_empty" + "anvilcraft:item_compress/empty_supercapacitor" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/capacitor_empty.json b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/empty_capacitor.json similarity index 89% rename from src/generated/resources/data/anvilcraft/advancement/recipes/misc/capacitor_empty.json rename to src/generated/resources/data/anvilcraft/advancement/recipes/misc/empty_capacitor.json index bd9f18356a..b924373edb 100644 --- a/src/generated/resources/data/anvilcraft/advancement/recipes/misc/capacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/advancement/recipes/misc/empty_capacitor.json @@ -23,7 +23,7 @@ }, "has_the_recipe": { "conditions": { - "recipe": "anvilcraft:capacitor_empty" + "recipe": "anvilcraft:empty_capacitor" }, "trigger": "minecraft:recipe_unlocked" } @@ -37,7 +37,7 @@ ], "rewards": { "recipes": [ - "anvilcraft:capacitor_empty" + "anvilcraft:empty_capacitor" ] } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate_black.json b/src/generated/resources/data/anvilcraft/recipe/black_chocolate.json similarity index 87% rename from src/generated/resources/data/anvilcraft/recipe/chocolate_black.json rename to src/generated/resources/data/anvilcraft/recipe/black_chocolate.json index 1c88fa69b6..90877e8711 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate_black.json +++ b/src/generated/resources/data/anvilcraft/recipe/black_chocolate.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "id": "anvilcraft:chocolate_black" + "id": "anvilcraft:black_chocolate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_block.json b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_block.json index fcd0749a50..95951811b5 100644 --- a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_block.json @@ -2,7 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": "anvilcraft:chocolate_black" + "A": "anvilcraft:black_chocolate" }, "pattern": [ "AAA", diff --git a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_from_block.json b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_from_block.json index 025202209b..5522334f81 100644 --- a/src/generated/resources/data/anvilcraft/recipe/black_chocolate_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/black_chocolate_from_block.json @@ -6,6 +6,6 @@ ], "result": { "count": 9, - "id": "anvilcraft:chocolate_black" + "id": "anvilcraft:black_chocolate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/building_rod.json b/src/generated/resources/data/anvilcraft/recipe/building_rod.json index 5183ff5cb7..6101e3f793 100644 --- a/src/generated/resources/data/anvilcraft/recipe/building_rod.json +++ b/src/generated/resources/data/anvilcraft/recipe/building_rod.json @@ -5,7 +5,7 @@ "A": "anvilcraft:smart_block_placer", "B": "anvilcraft:magnetoelectric_core", "C": "anvilcraft:anvil_hammer", - "D": "anvilcraft:capacitor_empty" + "D": "anvilcraft:empty_capacitor" }, "pattern": [ "ABA", diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor.json index 2e5c1b1ac8..4005b2d028 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor.json @@ -1,6 +1,6 @@ { "type": "anvilcraft:charger_charging", - "ingredient": "anvilcraft:capacitor_empty", + "ingredient": "anvilcraft:empty_capacitor", "power": -70, "result": { "id": "anvilcraft:capacitor" diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor_empty.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/empty_capacitor.json similarity index 77% rename from src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor_empty.json rename to src/generated/resources/data/anvilcraft/recipe/charger_charging/empty_capacitor.json index afbf4f5264..b8b7c69a74 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/capacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/empty_capacitor.json @@ -3,7 +3,7 @@ "ingredient": "anvilcraft:capacitor", "power": 64, "result": { - "id": "anvilcraft:capacitor_empty" + "id": "anvilcraft:empty_capacitor" }, "time": 1200 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor_empty.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/empty_supercapacitor.json similarity index 75% rename from src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor_empty.json rename to src/generated/resources/data/anvilcraft/recipe/charger_charging/empty_supercapacitor.json index 0da7cad491..69c0d00b50 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/empty_supercapacitor.json @@ -3,7 +3,7 @@ "ingredient": "anvilcraft:supercapacitor", "power": 640, "result": { - "id": "anvilcraft:supercapacitor_empty" + "id": "anvilcraft:empty_supercapacitor" }, "time": 2400 } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor.json b/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor.json index 3b4d6472ad..5b4485ed85 100644 --- a/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor.json +++ b/src/generated/resources/data/anvilcraft/recipe/charger_charging/supercapacitor.json @@ -1,6 +1,6 @@ { "type": "anvilcraft:charger_charging", - "ingredient": "anvilcraft:supercapacitor_empty", + "ingredient": "anvilcraft:empty_supercapacitor", "power": -700, "result": { "id": "anvilcraft:supercapacitor" diff --git a/src/generated/resources/data/anvilcraft/recipe/capacitor_empty.json b/src/generated/resources/data/anvilcraft/recipe/empty_capacitor.json similarity index 83% rename from src/generated/resources/data/anvilcraft/recipe/capacitor_empty.json rename to src/generated/resources/data/anvilcraft/recipe/empty_capacitor.json index 352ebb8e54..6af6b1a593 100644 --- a/src/generated/resources/data/anvilcraft/recipe/capacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/recipe/empty_capacitor.json @@ -11,6 +11,6 @@ "A" ], "result": { - "id": "anvilcraft:capacitor_empty" + "id": "anvilcraft:empty_capacitor" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/empty_propel_piston.json b/src/generated/resources/data/anvilcraft/recipe/empty_propel_piston.json index 9d023e1890..fee40d5e6a 100644 --- a/src/generated/resources/data/anvilcraft/recipe/empty_propel_piston.json +++ b/src/generated/resources/data/anvilcraft/recipe/empty_propel_piston.json @@ -3,7 +3,7 @@ "category": "redstone", "key": { "A": "anvilcraft:ionocraft", - "B": "anvilcraft:capacitor_empty", + "B": "anvilcraft:empty_capacitor", "C": "minecraft:iron_ingot", "D": "minecraft:piston", "E": "anvilcraft:ruby" diff --git a/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor_empty.json b/src/generated/resources/data/anvilcraft/recipe/item_compress/empty_supercapacitor.json similarity index 94% rename from src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor_empty.json rename to src/generated/resources/data/anvilcraft/recipe/item_compress/empty_supercapacitor.json index 14f6b83380..7437582b58 100644 --- a/src/generated/resources/data/anvilcraft/recipe/item_compress/supercapacitor_empty.json +++ b/src/generated/resources/data/anvilcraft/recipe/item_compress/empty_supercapacitor.json @@ -34,7 +34,7 @@ ], "results": [ { - "id": "anvilcraft:supercapacitor_empty" + "id": "anvilcraft:empty_supercapacitor" } ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/chocolate_white.json b/src/generated/resources/data/anvilcraft/recipe/white_chocolate.json similarity index 86% rename from src/generated/resources/data/anvilcraft/recipe/chocolate_white.json rename to src/generated/resources/data/anvilcraft/recipe/white_chocolate.json index b6b7953704..1b10b02414 100644 --- a/src/generated/resources/data/anvilcraft/recipe/chocolate_white.json +++ b/src/generated/resources/data/anvilcraft/recipe/white_chocolate.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "id": "anvilcraft:chocolate_white" + "id": "anvilcraft:white_chocolate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_block.json b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_block.json index f733d75dfc..ae41ddf590 100644 --- a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_block.json @@ -2,7 +2,7 @@ "type": "minecraft:crafting_shaped", "category": "building", "key": { - "A": "anvilcraft:chocolate_white" + "A": "anvilcraft:white_chocolate" }, "pattern": [ "AAA", diff --git a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_from_block.json b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_from_block.json index 588c08d2ec..053cdab23c 100644 --- a/src/generated/resources/data/anvilcraft/recipe/white_chocolate_from_block.json +++ b/src/generated/resources/data/anvilcraft/recipe/white_chocolate_from_block.json @@ -6,6 +6,6 @@ ], "result": { "count": 9, - "id": "anvilcraft:chocolate_white" + "id": "anvilcraft:white_chocolate" } } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/tags/item/capacitor.json b/src/generated/resources/data/anvilcraft/tags/item/capacitor.json index eb102d9346..d18548b36c 100644 --- a/src/generated/resources/data/anvilcraft/tags/item/capacitor.json +++ b/src/generated/resources/data/anvilcraft/tags/item/capacitor.json @@ -1,6 +1,6 @@ { "values": [ "anvilcraft:capacitor", - "anvilcraft:capacitor_empty" + "anvilcraft:empty_capacitor" ] } \ No newline at end of file diff --git a/src/generated/resources/data/anvilcraft/tags/item/reinforced_concrete.json b/src/generated/resources/data/anvilcraft/tags/item/reinforced_concrete.json index d26a673ac7..8713096b60 100644 --- a/src/generated/resources/data/anvilcraft/tags/item/reinforced_concrete.json +++ b/src/generated/resources/data/anvilcraft/tags/item/reinforced_concrete.json @@ -1,68 +1,68 @@ { "values": [ "anvilcraft:white_reinforced_concrete", - "anvilcraft:light_gray_reinforced_concrete", - "anvilcraft:gray_reinforced_concrete", - "anvilcraft:black_reinforced_concrete", - "anvilcraft:brown_reinforced_concrete", - "anvilcraft:red_reinforced_concrete", - "anvilcraft:orange_reinforced_concrete", - "anvilcraft:yellow_reinforced_concrete", - "anvilcraft:lime_reinforced_concrete", - "anvilcraft:green_reinforced_concrete", - "anvilcraft:cyan_reinforced_concrete", - "anvilcraft:light_blue_reinforced_concrete", - "anvilcraft:blue_reinforced_concrete", - "anvilcraft:purple_reinforced_concrete", - "anvilcraft:magenta_reinforced_concrete", - "anvilcraft:pink_reinforced_concrete", "anvilcraft:white_reinforced_concrete_slab", - "anvilcraft:light_gray_reinforced_concrete_slab", - "anvilcraft:gray_reinforced_concrete_slab", - "anvilcraft:black_reinforced_concrete_slab", - "anvilcraft:brown_reinforced_concrete_slab", - "anvilcraft:red_reinforced_concrete_slab", - "anvilcraft:orange_reinforced_concrete_slab", - "anvilcraft:yellow_reinforced_concrete_slab", - "anvilcraft:lime_reinforced_concrete_slab", - "anvilcraft:green_reinforced_concrete_slab", - "anvilcraft:cyan_reinforced_concrete_slab", - "anvilcraft:light_blue_reinforced_concrete_slab", - "anvilcraft:blue_reinforced_concrete_slab", - "anvilcraft:purple_reinforced_concrete_slab", - "anvilcraft:magenta_reinforced_concrete_slab", - "anvilcraft:pink_reinforced_concrete_slab", "anvilcraft:white_reinforced_concrete_stair", - "anvilcraft:light_gray_reinforced_concrete_stair", - "anvilcraft:gray_reinforced_concrete_stair", - "anvilcraft:black_reinforced_concrete_stair", - "anvilcraft:brown_reinforced_concrete_stair", - "anvilcraft:red_reinforced_concrete_stair", - "anvilcraft:orange_reinforced_concrete_stair", - "anvilcraft:yellow_reinforced_concrete_stair", - "anvilcraft:lime_reinforced_concrete_stair", - "anvilcraft:green_reinforced_concrete_stair", - "anvilcraft:cyan_reinforced_concrete_stair", - "anvilcraft:light_blue_reinforced_concrete_stair", - "anvilcraft:blue_reinforced_concrete_stair", - "anvilcraft:purple_reinforced_concrete_stair", - "anvilcraft:magenta_reinforced_concrete_stair", - "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_stair", "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_stair", "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_stair", "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_stair", "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_stair", "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_stair", "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_stair", "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_stair", "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_stair", "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_stair", "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_stair", "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_stair", "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_stair", "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_stair", "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:pink_reinforced_concrete_wall" ] -} \ No newline at end of file +} diff --git a/src/generated/resources/data/c/tags/block/dyed.json b/src/generated/resources/data/c/tags/block/dyed.json index d26a673ac7..8713096b60 100644 --- a/src/generated/resources/data/c/tags/block/dyed.json +++ b/src/generated/resources/data/c/tags/block/dyed.json @@ -1,68 +1,68 @@ { "values": [ "anvilcraft:white_reinforced_concrete", - "anvilcraft:light_gray_reinforced_concrete", - "anvilcraft:gray_reinforced_concrete", - "anvilcraft:black_reinforced_concrete", - "anvilcraft:brown_reinforced_concrete", - "anvilcraft:red_reinforced_concrete", - "anvilcraft:orange_reinforced_concrete", - "anvilcraft:yellow_reinforced_concrete", - "anvilcraft:lime_reinforced_concrete", - "anvilcraft:green_reinforced_concrete", - "anvilcraft:cyan_reinforced_concrete", - "anvilcraft:light_blue_reinforced_concrete", - "anvilcraft:blue_reinforced_concrete", - "anvilcraft:purple_reinforced_concrete", - "anvilcraft:magenta_reinforced_concrete", - "anvilcraft:pink_reinforced_concrete", "anvilcraft:white_reinforced_concrete_slab", - "anvilcraft:light_gray_reinforced_concrete_slab", - "anvilcraft:gray_reinforced_concrete_slab", - "anvilcraft:black_reinforced_concrete_slab", - "anvilcraft:brown_reinforced_concrete_slab", - "anvilcraft:red_reinforced_concrete_slab", - "anvilcraft:orange_reinforced_concrete_slab", - "anvilcraft:yellow_reinforced_concrete_slab", - "anvilcraft:lime_reinforced_concrete_slab", - "anvilcraft:green_reinforced_concrete_slab", - "anvilcraft:cyan_reinforced_concrete_slab", - "anvilcraft:light_blue_reinforced_concrete_slab", - "anvilcraft:blue_reinforced_concrete_slab", - "anvilcraft:purple_reinforced_concrete_slab", - "anvilcraft:magenta_reinforced_concrete_slab", - "anvilcraft:pink_reinforced_concrete_slab", "anvilcraft:white_reinforced_concrete_stair", - "anvilcraft:light_gray_reinforced_concrete_stair", - "anvilcraft:gray_reinforced_concrete_stair", - "anvilcraft:black_reinforced_concrete_stair", - "anvilcraft:brown_reinforced_concrete_stair", - "anvilcraft:red_reinforced_concrete_stair", - "anvilcraft:orange_reinforced_concrete_stair", - "anvilcraft:yellow_reinforced_concrete_stair", - "anvilcraft:lime_reinforced_concrete_stair", - "anvilcraft:green_reinforced_concrete_stair", - "anvilcraft:cyan_reinforced_concrete_stair", - "anvilcraft:light_blue_reinforced_concrete_stair", - "anvilcraft:blue_reinforced_concrete_stair", - "anvilcraft:purple_reinforced_concrete_stair", - "anvilcraft:magenta_reinforced_concrete_stair", - "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_stair", "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_stair", "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_stair", "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_stair", "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_stair", "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_stair", "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_stair", "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_stair", "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_stair", "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_stair", "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_stair", "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_stair", "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_stair", "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_stair", "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:pink_reinforced_concrete_wall" ] -} \ No newline at end of file +} diff --git a/src/generated/resources/data/c/tags/item/dyed.json b/src/generated/resources/data/c/tags/item/dyed.json index d26a673ac7..8713096b60 100644 --- a/src/generated/resources/data/c/tags/item/dyed.json +++ b/src/generated/resources/data/c/tags/item/dyed.json @@ -1,68 +1,68 @@ { "values": [ "anvilcraft:white_reinforced_concrete", - "anvilcraft:light_gray_reinforced_concrete", - "anvilcraft:gray_reinforced_concrete", - "anvilcraft:black_reinforced_concrete", - "anvilcraft:brown_reinforced_concrete", - "anvilcraft:red_reinforced_concrete", - "anvilcraft:orange_reinforced_concrete", - "anvilcraft:yellow_reinforced_concrete", - "anvilcraft:lime_reinforced_concrete", - "anvilcraft:green_reinforced_concrete", - "anvilcraft:cyan_reinforced_concrete", - "anvilcraft:light_blue_reinforced_concrete", - "anvilcraft:blue_reinforced_concrete", - "anvilcraft:purple_reinforced_concrete", - "anvilcraft:magenta_reinforced_concrete", - "anvilcraft:pink_reinforced_concrete", "anvilcraft:white_reinforced_concrete_slab", - "anvilcraft:light_gray_reinforced_concrete_slab", - "anvilcraft:gray_reinforced_concrete_slab", - "anvilcraft:black_reinforced_concrete_slab", - "anvilcraft:brown_reinforced_concrete_slab", - "anvilcraft:red_reinforced_concrete_slab", - "anvilcraft:orange_reinforced_concrete_slab", - "anvilcraft:yellow_reinforced_concrete_slab", - "anvilcraft:lime_reinforced_concrete_slab", - "anvilcraft:green_reinforced_concrete_slab", - "anvilcraft:cyan_reinforced_concrete_slab", - "anvilcraft:light_blue_reinforced_concrete_slab", - "anvilcraft:blue_reinforced_concrete_slab", - "anvilcraft:purple_reinforced_concrete_slab", - "anvilcraft:magenta_reinforced_concrete_slab", - "anvilcraft:pink_reinforced_concrete_slab", "anvilcraft:white_reinforced_concrete_stair", - "anvilcraft:light_gray_reinforced_concrete_stair", - "anvilcraft:gray_reinforced_concrete_stair", - "anvilcraft:black_reinforced_concrete_stair", - "anvilcraft:brown_reinforced_concrete_stair", - "anvilcraft:red_reinforced_concrete_stair", - "anvilcraft:orange_reinforced_concrete_stair", - "anvilcraft:yellow_reinforced_concrete_stair", - "anvilcraft:lime_reinforced_concrete_stair", - "anvilcraft:green_reinforced_concrete_stair", - "anvilcraft:cyan_reinforced_concrete_stair", - "anvilcraft:light_blue_reinforced_concrete_stair", - "anvilcraft:blue_reinforced_concrete_stair", - "anvilcraft:purple_reinforced_concrete_stair", - "anvilcraft:magenta_reinforced_concrete_stair", - "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_stair", "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_stair", "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_stair", "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_stair", "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_stair", "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_stair", "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_stair", "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_stair", "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_stair", "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_stair", "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_stair", "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_stair", "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_stair", "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_stair", "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:pink_reinforced_concrete_wall" ] -} \ No newline at end of file +} diff --git a/src/generated/resources/data/c/tags/item/foods.json b/src/generated/resources/data/c/tags/item/foods.json index 8df4a32b7b..b492320fca 100644 --- a/src/generated/resources/data/c/tags/item/foods.json +++ b/src/generated/resources/data/c/tags/item/foods.json @@ -14,8 +14,8 @@ "anvilcraft:matcha_cake_block", "anvilcraft:cursed_golden_apple", "anvilcraft:chocolate", - "anvilcraft:chocolate_black", - "anvilcraft:chocolate_white", + "anvilcraft:black_chocolate", + "anvilcraft:white_chocolate", "anvilcraft:creamy_bread_roll", "anvilcraft:beef_mushroom_stew", "anvilcraft:canned_food", diff --git a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json index 4f4f047530..9308e9a41c 100644 --- a/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -191,68 +191,68 @@ "anvilcraft:black_chocolate_stairs", "anvilcraft:white_chocolate_stairs", "anvilcraft:white_reinforced_concrete", - "anvilcraft:light_gray_reinforced_concrete", - "anvilcraft:gray_reinforced_concrete", - "anvilcraft:black_reinforced_concrete", - "anvilcraft:brown_reinforced_concrete", - "anvilcraft:red_reinforced_concrete", - "anvilcraft:orange_reinforced_concrete", - "anvilcraft:yellow_reinforced_concrete", - "anvilcraft:lime_reinforced_concrete", - "anvilcraft:green_reinforced_concrete", - "anvilcraft:cyan_reinforced_concrete", - "anvilcraft:light_blue_reinforced_concrete", - "anvilcraft:blue_reinforced_concrete", - "anvilcraft:purple_reinforced_concrete", - "anvilcraft:magenta_reinforced_concrete", - "anvilcraft:pink_reinforced_concrete", "anvilcraft:white_reinforced_concrete_slab", - "anvilcraft:light_gray_reinforced_concrete_slab", - "anvilcraft:gray_reinforced_concrete_slab", - "anvilcraft:black_reinforced_concrete_slab", - "anvilcraft:brown_reinforced_concrete_slab", - "anvilcraft:red_reinforced_concrete_slab", - "anvilcraft:orange_reinforced_concrete_slab", - "anvilcraft:yellow_reinforced_concrete_slab", - "anvilcraft:lime_reinforced_concrete_slab", - "anvilcraft:green_reinforced_concrete_slab", - "anvilcraft:cyan_reinforced_concrete_slab", - "anvilcraft:light_blue_reinforced_concrete_slab", - "anvilcraft:blue_reinforced_concrete_slab", - "anvilcraft:purple_reinforced_concrete_slab", - "anvilcraft:magenta_reinforced_concrete_slab", - "anvilcraft:pink_reinforced_concrete_slab", "anvilcraft:white_reinforced_concrete_stair", - "anvilcraft:light_gray_reinforced_concrete_stair", - "anvilcraft:gray_reinforced_concrete_stair", - "anvilcraft:black_reinforced_concrete_stair", - "anvilcraft:brown_reinforced_concrete_stair", - "anvilcraft:red_reinforced_concrete_stair", - "anvilcraft:orange_reinforced_concrete_stair", - "anvilcraft:yellow_reinforced_concrete_stair", - "anvilcraft:lime_reinforced_concrete_stair", - "anvilcraft:green_reinforced_concrete_stair", - "anvilcraft:cyan_reinforced_concrete_stair", - "anvilcraft:light_blue_reinforced_concrete_stair", - "anvilcraft:blue_reinforced_concrete_stair", - "anvilcraft:purple_reinforced_concrete_stair", - "anvilcraft:magenta_reinforced_concrete_stair", - "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:white_reinforced_concrete_wall", + "anvilcraft:light_gray_reinforced_concrete", + "anvilcraft:light_gray_reinforced_concrete_slab", + "anvilcraft:light_gray_reinforced_concrete_stair", "anvilcraft:light_gray_reinforced_concrete_wall", + "anvilcraft:gray_reinforced_concrete", + "anvilcraft:gray_reinforced_concrete_slab", + "anvilcraft:gray_reinforced_concrete_stair", "anvilcraft:gray_reinforced_concrete_wall", + "anvilcraft:black_reinforced_concrete", + "anvilcraft:black_reinforced_concrete_slab", + "anvilcraft:black_reinforced_concrete_stair", "anvilcraft:black_reinforced_concrete_wall", + "anvilcraft:brown_reinforced_concrete", + "anvilcraft:brown_reinforced_concrete_slab", + "anvilcraft:brown_reinforced_concrete_stair", "anvilcraft:brown_reinforced_concrete_wall", + "anvilcraft:red_reinforced_concrete", + "anvilcraft:red_reinforced_concrete_slab", + "anvilcraft:red_reinforced_concrete_stair", "anvilcraft:red_reinforced_concrete_wall", + "anvilcraft:orange_reinforced_concrete", + "anvilcraft:orange_reinforced_concrete_slab", + "anvilcraft:orange_reinforced_concrete_stair", "anvilcraft:orange_reinforced_concrete_wall", + "anvilcraft:yellow_reinforced_concrete", + "anvilcraft:yellow_reinforced_concrete_slab", + "anvilcraft:yellow_reinforced_concrete_stair", "anvilcraft:yellow_reinforced_concrete_wall", + "anvilcraft:lime_reinforced_concrete", + "anvilcraft:lime_reinforced_concrete_slab", + "anvilcraft:lime_reinforced_concrete_stair", "anvilcraft:lime_reinforced_concrete_wall", + "anvilcraft:green_reinforced_concrete", + "anvilcraft:green_reinforced_concrete_slab", + "anvilcraft:green_reinforced_concrete_stair", "anvilcraft:green_reinforced_concrete_wall", + "anvilcraft:cyan_reinforced_concrete", + "anvilcraft:cyan_reinforced_concrete_slab", + "anvilcraft:cyan_reinforced_concrete_stair", "anvilcraft:cyan_reinforced_concrete_wall", + "anvilcraft:light_blue_reinforced_concrete", + "anvilcraft:light_blue_reinforced_concrete_slab", + "anvilcraft:light_blue_reinforced_concrete_stair", "anvilcraft:light_blue_reinforced_concrete_wall", + "anvilcraft:blue_reinforced_concrete", + "anvilcraft:blue_reinforced_concrete_slab", + "anvilcraft:blue_reinforced_concrete_stair", "anvilcraft:blue_reinforced_concrete_wall", + "anvilcraft:purple_reinforced_concrete", + "anvilcraft:purple_reinforced_concrete_slab", + "anvilcraft:purple_reinforced_concrete_stair", "anvilcraft:purple_reinforced_concrete_wall", + "anvilcraft:magenta_reinforced_concrete", + "anvilcraft:magenta_reinforced_concrete_slab", + "anvilcraft:magenta_reinforced_concrete_stair", "anvilcraft:magenta_reinforced_concrete_wall", + "anvilcraft:pink_reinforced_concrete", + "anvilcraft:pink_reinforced_concrete_slab", + "anvilcraft:pink_reinforced_concrete_stair", "anvilcraft:pink_reinforced_concrete_wall", "anvilcraft:heated_netherite_block", "anvilcraft:heated_tungsten_block", @@ -349,4 +349,4 @@ "anvilcraft:brass_pressure_plate", "anvilcraft:bronze_pressure_plate" ] -} \ No newline at end of file +} diff --git a/src/generated/resources/data/twilightforest/tags/item/banned_uncraftables.json b/src/generated/resources/data/twilightforest/tags/item/banned_uncraftables.json index f3af772918..6ca9ded6ec 100644 --- a/src/generated/resources/data/twilightforest/tags/item/banned_uncraftables.json +++ b/src/generated/resources/data/twilightforest/tags/item/banned_uncraftables.json @@ -34,8 +34,8 @@ "anvilcraft:celestial_forging_anvil_laser_interface", "anvilcraft:charger", "anvilcraft:chocolate", - "anvilcraft:chocolate_black", - "anvilcraft:chocolate_white", + "anvilcraft:black_chocolate", + "anvilcraft:white_chocolate", "anvilcraft:cursed_gold_ingot", "anvilcraft:deformation_smithing_template", "anvilcraft:disk", diff --git a/src/generated/resources/data/twilightforest/tags/item/banned_uncrafting_ingredients.json b/src/generated/resources/data/twilightforest/tags/item/banned_uncrafting_ingredients.json index b9268794be..c788bc02cb 100644 --- a/src/generated/resources/data/twilightforest/tags/item/banned_uncrafting_ingredients.json +++ b/src/generated/resources/data/twilightforest/tags/item/banned_uncrafting_ingredients.json @@ -14,9 +14,9 @@ "anvilcraft:transcendence_deco_block", "anvilcraft:transcendence_deco_outline", "anvilcraft:capacitor", - "anvilcraft:capacitor_empty", + "anvilcraft:empty_capacitor", "anvilcraft:supercapacitor", - "anvilcraft:supercapacitor_empty", + "anvilcraft:empty_supercapacitor", "anvilcraft:neutronium_ingot", "anvilcraft:charged_neutronium_ingot", "anvilcraft:stable_neutronium_ingot" diff --git a/src/main/java/dev/dubhe/anvilcraft/client/init/ModCreativeVariantGroups.java b/src/main/java/dev/dubhe/anvilcraft/client/init/ModCreativeVariantGroups.java index 7fc30f9ec4..71e7ff5b53 100644 --- a/src/main/java/dev/dubhe/anvilcraft/client/init/ModCreativeVariantGroups.java +++ b/src/main/java/dev/dubhe/anvilcraft/client/init/ModCreativeVariantGroups.java @@ -5,9 +5,9 @@ import dev.dubhe.anvilcraft.block.state.Color; import dev.dubhe.anvilcraft.init.block.ModBlocks; import dev.dubhe.anvilcraft.init.item.ModItems; -import it.unimi.dsi.fastutil.objects.Object2ObjectMap; import net.minecraft.world.level.ItemLike; +import java.util.Map; import java.util.function.BooleanSupplier; public final class ModCreativeVariantGroups { @@ -16,19 +16,14 @@ private ModCreativeVariantGroups() { public static void register() { BooleanSupplier enabled = () -> AnvilCraft.CLIENT_CONFIG.ui.enableCreativeVariantPicker; - CreativeVariantPickerRegistry.register(enabled, itemsOf(ModBlocks.REINFORCED_CONCRETES)); - CreativeVariantPickerRegistry.register(enabled, itemsOf(ModBlocks.REINFORCED_CONCRETE_SLABS)); - CreativeVariantPickerRegistry.register(enabled, itemsOf(ModBlocks.REINFORCED_CONCRETE_STAIRS)); - CreativeVariantPickerRegistry.register(enabled, itemsOf(ModBlocks.REINFORCED_CONCRETE_WALLS)); - CreativeVariantPickerRegistry.register(enabled, itemsOf(ModItems.CEMENT_BUCKETS)); + CreativeVariantPickerRegistry.register(enabled, ModCreativeVariantGroups.itemsOf(ModBlocks.REINFORCED_CONCRETES)); + CreativeVariantPickerRegistry.register(enabled, ModCreativeVariantGroups.itemsOf(ModBlocks.REINFORCED_CONCRETE_SLABS)); + CreativeVariantPickerRegistry.register(enabled, ModCreativeVariantGroups.itemsOf(ModBlocks.REINFORCED_CONCRETE_STAIRS)); + CreativeVariantPickerRegistry.register(enabled, ModCreativeVariantGroups.itemsOf(ModBlocks.REINFORCED_CONCRETE_WALLS)); + CreativeVariantPickerRegistry.register(enabled, ModCreativeVariantGroups.itemsOf(ModItems.CEMENT_BUCKETS)); } - private static ItemLike[] itemsOf(Object2ObjectMap family) { - ItemLike[] items = new ItemLike[Color.values().length]; - int index = 0; - for (Color color : Color.values()) { - items[index++] = family.get(color); - } - return items; + private static ItemLike[] itemsOf(Map family) { + return family.values().toArray(new ItemLike[0]); } } diff --git a/src/main/java/dev/dubhe/anvilcraft/data/recipe/RegistrumBlockRecipeLoader.java b/src/main/java/dev/dubhe/anvilcraft/data/recipe/RegistrumBlockRecipeLoader.java index b1ce000da6..0921e78d7f 100644 --- a/src/main/java/dev/dubhe/anvilcraft/data/recipe/RegistrumBlockRecipeLoader.java +++ b/src/main/java/dev/dubhe/anvilcraft/data/recipe/RegistrumBlockRecipeLoader.java @@ -2155,10 +2155,10 @@ public static void blackChocolateBlock(DataGenContext void whiteChocolateBlock(DataGenContext ModBlocks.CELESTIAL_FORGING_ANVIL_LASER_INTERFACE, ModBlocks.CHARGER, ModFoodItems.CHOCOLATE, - ModFoodItems.CHOCOLATE_BLACK, - ModFoodItems.CHOCOLATE_WHITE, + ModFoodItems.BLACK_CHOCOLATE, + ModFoodItems.WHITE_CHOCOLATE, ModItems.CURSED_GOLD_INGOT, ModItems.DEFORMATION_TEMPLATE, ModItems.DISK, diff --git a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java index 06d1c6f010..d5d851cd35 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java @@ -1,13 +1,9 @@ package dev.dubhe.anvilcraft.init.block; import com.mojang.math.Quadrant; -import dev.anvilcraft.lib.v2.registrum.providers.DataGenContext; import dev.anvilcraft.lib.v2.registrum.providers.ProviderType; -import dev.anvilcraft.lib.v2.registrum.providers.generators.RegistrumBlockModelGenerator; -import dev.anvilcraft.lib.v2.registrum.providers.generators.RegistrumItemModelGenerator; import dev.anvilcraft.lib.v2.registrum.providers.generators.model.PropertyDispatchWrap; import dev.anvilcraft.lib.v2.registrum.util.entry.BlockEntry; -import dev.anvilcraft.lib.v2.util.nullness.NonNullBiConsumer; import dev.anvilcraft.lib.v2.util.nullness.NonNullFunction; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.power.IPowerComponent.Switch; @@ -297,8 +293,6 @@ import dev.dubhe.anvilcraft.util.registrater.DataGenUtil; import dev.dubhe.anvilcraft.util.registrater.ModelProviderUtil; import dev.dubhe.anvilcraft.util.registrater.PropertiesProviderUtil; -import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; -import it.unimi.dsi.fastutil.objects.Object2ObjectMap; import net.minecraft.client.data.models.BlockModelGenerators; import net.minecraft.client.data.models.MultiVariant; import net.minecraft.client.data.models.blockstates.MultiVariantGenerator; @@ -326,7 +320,6 @@ import net.minecraft.util.Unit; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -366,6 +359,9 @@ import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; import net.neoforged.neoforge.common.Tags; +import java.util.Collections; +import java.util.EnumMap; +import java.util.Map; import java.util.Optional; import java.util.function.Supplier; @@ -602,20 +598,13 @@ public class ModBlocks { .item(CreativeContainerBlockItem::new) .transform(PropertiesProviderUtil::blockItem) .properties(properties -> properties.rarity(Rarity.EPIC)) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumItemModelGenerator generator - ) { - generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(ctx.getId().withPrefix("block/"), CreativeFluidTankItemRenderer.Unbaked.INSTANCE)); - } - }) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel(ctx.getId().withPrefix("block/"), CreativeFluidTankItemRenderer.Unbaked.INSTANCE) + )) .build() .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry FLUID_TANK = REGISTRUM.block("fluid_tank", FluidTankBlock::new) .initialProperties(() -> Blocks.IRON_BLOCK) .properties(PropertiesProviderUtil::metalSound) @@ -623,24 +612,15 @@ public void accept( .blockstate(DataGenUtil::noExtraModelOrState) .item(FluidTankBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumItemModelGenerator generator - ) { - DataGenUtil.specialBlockItem( - FluidTankItemRenderer.Unbaked.INSTANCE, - false - ).accept(ctx, generator); - } - }) + .model(() -> (ctx, generator) -> DataGenUtil + .specialBlockItem(FluidTankItemRenderer.Unbaked.INSTANCE, false) + .accept(ctx, generator) + ) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .recipe(RegistrumBlockRecipeLoader::fluidTank) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry LARGE_FLUID_TANK = REGISTRUM.block( "large_fluid_tank", LargeFluidTankBlock::new @@ -656,18 +636,10 @@ public void accept( .item(LargeFluidTankBlockItem::new) .transform(PropertiesProviderUtil::blockItem) .properties(properties -> properties.stacksTo(16)) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumItemModelGenerator generator - ) { - DataGenUtil.specialBlockItem( - LargeFluidTankItemRenderer.Unbaked.INSTANCE, - true - ).accept(ctx, generator); - } - }) + .model(() -> (ctx, generator) -> DataGenUtil + .specialBlockItem(LargeFluidTankItemRenderer.Unbaked.INSTANCE, true) + .accept(ctx, generator) + ) .build() .blockstate(DataGenUtil::noExtraModelOrState) .tag(BlockTags.MINEABLE_WITH_PICKAXE) @@ -707,16 +679,10 @@ public void accept( .item(CreativeContainerBlockItem::new) .transform(PropertiesProviderUtil::blockItem) .properties(properties -> properties.rarity(Rarity.EPIC)) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumItemModelGenerator generator - ) { - generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(ctx.getId().withPrefix("block/"), CreativeCrateItemRenderer.Unbaked.INSTANCE)); - } - }) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel(ctx.getId().withPrefix("block/"), CreativeCrateItemRenderer.Unbaked.INSTANCE) + )) .build() .register(); @@ -1221,7 +1187,6 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .recipe(RegistrumBlockRecipeLoader::remoteTransmissionPole) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry TESLA_TOWER = REGISTRUM.block("tesla_tower", TeslaTowerBlock::new) .initialProperties(ModBlocks.MAGNET_BLOCK) .loot(SimpleMultiPartBlock::loot) @@ -1234,19 +1199,11 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .blockstate(DataGenUtil::noExtraModelOrState) .item(TeslaTowerItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumItemModelGenerator generator - ) { - generator.itemModelOutput.accept( - ctx.get(), - ItemModelUtils.plainModel(ctx.getId().withPrefix("block/").withSuffix("_overall")), - new ClientItem.Properties(true, true, 1.0F) - ); - } - }) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.plainModel(ctx.getId().withPrefix("block/").withSuffix("_overall")), + new ClientItem.Properties(true, true, 1.0F) + )) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .recipe(RegistrumBlockRecipeLoader::teslaTower) @@ -1400,7 +1357,6 @@ public void accept( .recipe(RegistrumBlockRecipeLoader::heliostats) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry LOAD_MONITOR = REGISTRUM.block("load_monitor", LoadMonitorBlock::new) .initialProperties(() -> Blocks.IRON_BLOCK) .properties(PropertiesProviderUtil::metalSound) @@ -1415,17 +1371,11 @@ public void accept( .tag(BlockTags.MINEABLE_WITH_PICKAXE) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/").withSuffix("_0")); - } - }) + .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/").withSuffix("_0"))) .build() .recipe(RegistrumBlockRecipeLoader::loadMonitor) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry POWER_CONVERTER_SMALL = REGISTRUM.block( "power_converter_small", PowerConverterSmallBlock::new @@ -1445,17 +1395,11 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); - } - }) + .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry POWER_CONVERTER_MIDDLE = REGISTRUM.block( "power_converter_middle", PowerConverterMiddleBlock::new @@ -1475,17 +1419,11 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); - } - }) + .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry POWER_CONVERTER_BIG = REGISTRUM.block( "power_converter_big", PowerConverterBigBlock::new @@ -1505,17 +1443,11 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); - } - }) + .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry POWER_CONVERTER_SUPER_BIG = REGISTRUM.block( "power_converter_super_big", PowerConverterSuperBigBlock::new @@ -1535,17 +1467,11 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); - } - }) + .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry POWER_CONVERTER_EXTREMELY_BIG = REGISTRUM.block( "power_converter_extremely_big", PowerConverterExtremelyBigBlock::new @@ -1565,12 +1491,7 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); - } - }) + .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); @@ -1672,7 +1593,6 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .recipe(RegistrumBlockRecipeLoader::blockPlacer) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry SMART_BLOCK_PLACER = REGISTRUM .block("smart_block_placer", SmartBlockPlacerBlock::new) .initialProperties(() -> Blocks.IRON_BLOCK) @@ -1695,24 +1615,19 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera case WEST -> Quadrant.R270; default -> Quadrant.R0; }; - Quadrant yrot = isUpsideDown + Quadrant rotY = isUpsideDown ? Quadrant.values()[(baseY.ordinal() + 2) % 4] : baseY; return BlockModelGenerators.plainVariant(model) - .with(v -> v.withXRot(isUpsideDown ? Quadrant.R180 : Quadrant.R0).withYRot(yrot)); + .with(v -> v.withXRot(isUpsideDown ? Quadrant.R180 : Quadrant.R0).withYRot(rotY)); }))); }) .item(SmartBlockPlacerBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.itemModelOutput.accept( - ctx.get(), new SmartBlockPlacerItemModel.Unbaked(ctx.getId().withPrefix("block/")), - new ClientItem.Properties(true, true, 1.0F) - ); - } - }) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( + ctx.get(), new SmartBlockPlacerItemModel.Unbaked(ctx.getId().withPrefix("block/")), + new ClientItem.Properties(true, true, 1.0F) + )) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .recipe(RegistrumBlockRecipeLoader::smartBlockPlacer) @@ -1735,11 +1650,11 @@ public void accept(DataGenContext ctx, Registru case WEST -> Quadrant.R270; default -> Quadrant.R0; }; - Quadrant yrot = isUpsideDown + Quadrant rotY = isUpsideDown ? Quadrant.values()[(baseY.ordinal() + 2) % 4] : baseY; return BlockModelGenerators.plainVariant(model) - .with(v -> v.withXRot(isUpsideDown ? Quadrant.R180 : Quadrant.R0).withYRot(yrot)); + .with(v -> v.withXRot(isUpsideDown ? Quadrant.R180 : Quadrant.R0).withYRot(rotY)); }))); }) .item().transform(PropertiesProviderUtil::blockItem).build() @@ -2016,39 +1931,30 @@ public void accept(DataGenContext ctx, Registru .build() .register(); - @SuppressWarnings("Convert2Lambda") public static BlockEntry SLIDING_RAIL = REGISTRUM.block("sliding_rail", SlidingRailBlock::new) .initialProperties(() -> Blocks.IRON_BLOCK) .properties(PropertiesProviderUtil::metalSound) .properties(it -> it.noOcclusion().isValidSpawn(Blocks::never).mapColor(MapColor.COLOR_GRAY)) .tag(BlockTags.MINEABLE_WITH_PICKAXE, ModBlockTags.SLIDING_RAILS) - .blockstate(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumBlockModelGenerator generator - ) { - generator.blockStateOutput.accept( - MultiVariantGenerator.dispatch(ctx.get()) - .with( - PropertyDispatchWrap.initial(SlidingRailBlock.AXIS) - .select( - Direction.Axis.X, - BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail")) - .with(BlockModelGenerators.Y_ROT_90) - ) - .select( - Direction.Axis.Z, - BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail")) - ) - .select( - Direction.Axis.Y, - BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail_cross")) - ) - .dispatch() - )); - } - }) + .blockstate(() -> (ctx, generator) -> generator.blockStateOutput.accept( + MultiVariantGenerator.dispatch(ctx.get()) + .with( + PropertyDispatchWrap.initial(SlidingRailBlock.AXIS) + .select( + Direction.Axis.X, + BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail")) + .with(BlockModelGenerators.Y_ROT_90) + ) + .select( + Direction.Axis.Z, + BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail")) + ) + .select( + Direction.Axis.Y, + BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail_cross")) + ) + .dispatch() + ))) .item() .transform(PropertiesProviderUtil::blockItem) .model(DataGenUtil::blockItem) @@ -2296,7 +2202,6 @@ public void accept( .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.WITHER_IMMUNE, BlockTags.DRAGON_IMMUNE) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry CELESTIAL_BACK_GATE = REGISTRUM .block("celestial_back_gate", CelestialBackGateBlock::new) .lang("Celestial Back Gate") @@ -2330,15 +2235,7 @@ public void accept( .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.WITHER_IMMUNE, BlockTags.DRAGON_IMMUNE, ModBlockTags.COLLISION_IMMUNE) .item(CelestialForgingAnvilPortalBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumItemModelGenerator generator - ) { - generator.createWithExistingModel(ctx.get(), AnvilCraft.of("block/celestial_forging_anvil_gate")); - } - }) + .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), AnvilCraft.of("block/celestial_forging_anvil_gate"))) .properties(properties -> properties .rarity(Rarity.EPIC) .component(ModComponents.ETERNAL, Eternal.DEFAULT) @@ -2420,18 +2317,10 @@ public void accept( .loot((tables, block) -> tables.add(block, LootTable.lootTable())) .item(RuinsBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumItemModelGenerator generator - ) { - DataGenUtil.specialItem( - RuinsBlockItemRenderer.Unbaked.INSTANCE, - false - ).accept(ctx, generator); - } - }) + .model(() -> (ctx, generator) -> DataGenUtil.specialItem( + RuinsBlockItemRenderer.Unbaked.INSTANCE, + false + ).accept(ctx, generator)) .build() .register(); @@ -2979,7 +2868,6 @@ public void accept( .recipe(RegistrumBlockRecipeLoader::heavyIronBeam) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry HEAVY_IRON_WALL = REGISTRUM.block("heavy_iron_wall", HeavyIronWallBlock::new) .initialProperties(() -> Blocks.IRON_BLOCK) .properties(PropertiesProviderUtil::metalSound) @@ -2990,12 +2878,7 @@ public void accept( .item() .transform(PropertiesProviderUtil::blockItem) .tag(ItemTags.WALLS) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.createWithExistingModel(ctx.get(), AnvilCraft.of("block/heavy_iron_wall_inventory")); - } - }) + .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), AnvilCraft.of("block/heavy_iron_wall_inventory"))) .build() .register(); @@ -3350,13 +3233,8 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .properties(properties -> properties.sound(SoundType.HONEY_BLOCK)) .item(ResinBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator); - } - }) + .model(() -> (ctx, generator) -> DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator)) .tag(Tags.Items.STORAGE_BLOCKS, ModItemTags.STORAGE_BLOCKS_RESIN) .build() .tag(Tags.Blocks.STORAGE_BLOCKS, ModBlockTags.STORAGE_BLOCKS_RESIN) @@ -3381,13 +3259,8 @@ public void accept(DataGenContext ctx, RegistrumItemModelG .blockstate(DataGenUtil::noExtraModelOrState) .item(HasMobBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator); - } - }) + .model(() -> (ctx, generator) -> DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator)) .properties(properties -> properties.component( ModComponents.SAVED_ENTITY, new SavedEntity(EntityType.MOOSHROOM, new CompoundTag(), false) @@ -3414,13 +3287,8 @@ public void accept(DataGenContext ctx, RegistrumItemModel .blockstate(DataGenUtil::noExtraModelOrState) .item(HasMobBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator); - } - }) + .model(() -> (ctx, generator) -> DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator)) .properties(properties -> properties.component( ModComponents.SAVED_ENTITY, new SavedEntity(EntityType.ZOMBIE, new CompoundTag(), true) @@ -3905,14 +3773,127 @@ public void accept(DataGenContext ctx, RegistrumItemModel .recipe(RegistrumBlockRecipeLoader::whiteChocolateStairs) .register(); - public static final Object2ObjectMap> REINFORCED_CONCRETES = - ModBlocks.registerReinforcedConcretes(); - public static final Object2ObjectMap> REINFORCED_CONCRETE_SLABS = - ModBlocks.registerReinforcedConcreteSlabs(); - public static final Object2ObjectMap> REINFORCED_CONCRETE_STAIRS = - ModBlocks.registerReinforcedConcreteStairs(); - public static final Object2ObjectMap> REINFORCED_CONCRETE_WALLS = - ModBlocks.registerReinforcedConcreteWalls(); + public static final Map> REINFORCED_CONCRETES; + public static final Map> REINFORCED_CONCRETE_SLABS; + public static final Map> REINFORCED_CONCRETE_STAIRS; + public static final Map> REINFORCED_CONCRETE_WALLS; + + static { + EnumMap> full = new EnumMap<>(Color.class); + EnumMap> slab = new EnumMap<>(Color.class); + EnumMap> stair = new EnumMap<>(Color.class); + EnumMap> wall = new EnumMap<>(Color.class); + for (Color color : Color.values()) { + var entryFull = ModBlocks.registerReinforcedConcreteBlock(color); + full.put(color, entryFull); + + var entrySlab = ModBlocks.registerReinforcedConcreteSlabBlock(color, entryFull); + slab.put(color, entrySlab); + + var entryStair = ModBlocks.registerReinforcedConcreteStairBlock(color, entryFull); + stair.put(color, entryStair); + + var entryWall = ModBlocks.registerReinforcedConcreteWallBlock(color, entryFull); + wall.put(color, entryWall); + } + REINFORCED_CONCRETES = Collections.unmodifiableMap(full); + REINFORCED_CONCRETE_SLABS = Collections.unmodifiableMap(slab); + REINFORCED_CONCRETE_STAIRS = Collections.unmodifiableMap(stair); + REINFORCED_CONCRETE_WALLS = Collections.unmodifiableMap(wall); + } + + private static BlockEntry registerReinforcedConcreteBlock(Color color) { + return REGISTRUM + .block(color + "_reinforced_concrete", p -> new ReinforcedConcreteBlock(p, color)) + .initialProperties(() -> Blocks.TERRACOTTA) + .aliasFrom(AnvilCraft.of("reinforced_concrete_" + color)) + .properties(properties -> properties.destroyTime(2.0F).explosionResistance(15.0F)) + .item() + .transform(PropertiesProviderUtil::blockItem) + .tag(ModItemTags.REINFORCED_CONCRETE, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) + .build() + .blockstate(() -> (ctx, generator) -> { + Identifier singleModel = generator.withParent(ModelTemplates.CUBE_ALL) + .texture(TextureSlot.ALL, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) + .build(generator.modLoc("block/%s_reinforced_concrete".formatted(color))); + Identifier topModel = generator.withParent(ModelTemplates.CUBE_COLUMN) + .texture(TextureSlot.END, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) + .texture(TextureSlot.SIDE, generator.modLoc("block/%s_reinforced_concrete_top".formatted(color)), false) + .build(generator.modLoc("block/%s_reinforced_concrete_top".formatted(color))); + Identifier bottomModel = generator.withParent(ModelTemplates.CUBE_COLUMN) + .texture(TextureSlot.END, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) + .texture(TextureSlot.SIDE, generator.modLoc("block/%s_reinforced_concrete_bottom".formatted(color)), false) + .build(generator.modLoc("block/%s_reinforced_concrete_bottom".formatted(color))); + generator.blockStateOutput.accept(MultiVariantGenerator.dispatch(ctx.get()) + .with( + PropertyDispatchWrap.initial(ReinforcedConcreteBlock.HALF) + .select( + ReinforcedConcreteHalf.TOP, + BlockModelGenerators.plainVariant(topModel) + ) + .select( + ReinforcedConcreteHalf.SINGLE, + BlockModelGenerators.plainVariant(singleModel) + ) + .select( + ReinforcedConcreteHalf.BOTTOM, + BlockModelGenerators.plainVariant(bottomModel) + ) + .dispatch() + )); + }) + .tag(BlockTags.MINEABLE_WITH_PICKAXE, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) + .register(); + } + + private static BlockEntry registerReinforcedConcreteSlabBlock(Color color, BlockEntry parent) { + return REGISTRUM.block(color + "_reinforced_concrete_slab", SlabBlock::new) + .initialProperties(() -> Blocks.TERRACOTTA) + .aliasFrom(AnvilCraft.of("reinforced_concrete_" + color + "_slab")) + .properties(properties -> properties.destroyTime(2.0F).explosionResistance(15.0F)) + .item() + .transform(PropertiesProviderUtil::blockItem) + .tag(ModItemTags.REINFORCED_CONCRETE, ItemTags.SLABS, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) + .build() + .blockstate(() -> DataGenUtil.slabBlock(AnvilCraft.of("block/%s_reinforced_concrete".formatted(color)))) + .loot((tables, block) -> tables.add(block, tables.createSlabItemTable(block))) + .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.SLABS, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) + .recipe(RegistrumBlockRecipeLoader.reinforcedConcreteSlab(parent)) + .register(); + } + + private static BlockEntry registerReinforcedConcreteStairBlock(Color color, BlockEntry parent) { + return REGISTRUM.block( + color + "_reinforced_concrete_stair", + properties -> new StairBlock(parent.getDefaultState(), properties) + ) + .initialProperties(() -> Blocks.TERRACOTTA) + .aliasFrom(AnvilCraft.of("reinforced_concrete_" + color + "_stair")) + .properties(properties -> properties.destroyTime(2.0F).explosionResistance(15.0F)) + .item() + .transform(PropertiesProviderUtil::blockItem) + .tag(ModItemTags.REINFORCED_CONCRETE, ItemTags.STAIRS, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) + .build() + .blockstate(() -> DataGenUtil.stairsBlock(AnvilCraft.of("block/%s_reinforced_concrete".formatted(color)))) + .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.STAIRS, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) + .recipe(RegistrumBlockRecipeLoader.reinforcedConcreteStair(parent)) + .register(); + } + + private static BlockEntry registerReinforcedConcreteWallBlock(Color color, BlockEntry parent) { + return REGISTRUM.block(color + "_reinforced_concrete_wall", WallBlock::new) + .initialProperties(() -> Blocks.TERRACOTTA) + .aliasFrom(AnvilCraft.of("reinforced_concrete_" + color + "_wall")) + .properties(properties -> properties.destroyTime(2.0F).explosionResistance(15.0F)) + .blockstate(() -> DataGenUtil.wallBlock(AnvilCraft.of("block/%s_reinforced_concrete_wall".formatted(color)))) + .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.WALLS, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) + .recipe(RegistrumBlockRecipeLoader.reinforcedConcreteWall(parent)) + .item() + .transform(PropertiesProviderUtil::blockItem) + .tag(ModItemTags.REINFORCED_CONCRETE, ItemTags.WALLS, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) + .build() + .register(); + } public static final BlockEntry HEATED_NETHERITE_BLOCK = REGISTRUM.block("heated_netherite_block", HeatedBlock::new) .lang("Heated Block of Netherite") @@ -4444,176 +4425,32 @@ public void accept(DataGenContext ctx, RegistrumItemModel .onRegister(block -> Item.BY_BLOCK.put(block, Items.CAULDRON)) .register(); - public static final Object2ObjectMap> CEMENT_CAULDRONS = ModBlocks.registerAllCementCauldrons(); - - private static Object2ObjectMap> registerReinforcedConcretes() { - Object2ObjectMap> map = new Object2ObjectLinkedOpenHashMap<>(); - for (Color color : Color.values()) { - var entry = ModBlocks.registerReinforcedConcreteBlock(color); - map.put(color, entry); - } - return map; - } - - private static BlockEntry registerReinforcedConcreteBlock(Color color) { - // noinspection Convert2Lambda - return REGISTRUM.block( - color + "_reinforced_concrete", - p -> new ReinforcedConcreteBlock(p, color) - ).initialProperties(() -> Blocks.TERRACOTTA) - .aliasFrom(AnvilCraft.of("reinforced_concrete_" + color)) - .properties(properties -> properties.destroyTime(2.0F).explosionResistance(15.0F)) - .item() - .transform(PropertiesProviderUtil::blockItem) - .tag(ModItemTags.REINFORCED_CONCRETE, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) - .build() - .blockstate(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumBlockModelGenerator generator - ) { - Identifier singleModel = generator.withParent(ModelTemplates.CUBE_ALL) - .texture(TextureSlot.ALL, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) - .build(generator.modLoc("block/%s_reinforced_concrete".formatted(color))); - Identifier topModel = generator.withParent(ModelTemplates.CUBE_COLUMN) - .texture(TextureSlot.END, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) - .texture(TextureSlot.SIDE, generator.modLoc("block/%s_reinforced_concrete_top".formatted(color)), false) - .build(generator.modLoc("block/%s_reinforced_concrete_top".formatted(color))); - Identifier bottomModel = generator.withParent(ModelTemplates.CUBE_COLUMN) - .texture(TextureSlot.END, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) - .texture(TextureSlot.SIDE, generator.modLoc("block/%s_reinforced_concrete_bottom".formatted(color)), false) - .build(generator.modLoc("block/%s_reinforced_concrete_bottom".formatted(color))); - generator.blockStateOutput.accept(MultiVariantGenerator.dispatch(ctx.get()) - .with( - PropertyDispatchWrap.initial(ReinforcedConcreteBlock.HALF) - .select( - ReinforcedConcreteHalf.TOP, - BlockModelGenerators.plainVariant(topModel) - ) - .select( - ReinforcedConcreteHalf.SINGLE, - BlockModelGenerators.plainVariant(singleModel) - ) - .select( - ReinforcedConcreteHalf.BOTTOM, - BlockModelGenerators.plainVariant(bottomModel) - ) - .dispatch() - )); - } - }) - .tag(BlockTags.MINEABLE_WITH_PICKAXE, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) - .register(); - } - - private static Object2ObjectMap> registerReinforcedConcreteSlabs() { - Object2ObjectMap> map = new Object2ObjectLinkedOpenHashMap<>(); - for (Color color : Color.values()) { - var entry = ModBlocks.registerReinforcedConcreteSlabBlock(color, ModBlocks.REINFORCED_CONCRETES.get(color)); - map.put(color, entry); - } - return map; - } - - private static BlockEntry registerReinforcedConcreteSlabBlock(Color color, BlockEntry parent) { - return REGISTRUM.block(color + "_reinforced_concrete_slab", SlabBlock::new) - .initialProperties(() -> Blocks.TERRACOTTA) - .aliasFrom(AnvilCraft.of("reinforced_concrete_" + color + "_slab")) - .properties(properties -> properties.destroyTime(2.0F).explosionResistance(15.0F)) - .item() - .transform(PropertiesProviderUtil::blockItem) - .tag(ModItemTags.REINFORCED_CONCRETE, ItemTags.SLABS, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) - .build() - .blockstate(() -> DataGenUtil.slabBlock(AnvilCraft.of("block/%s_reinforced_concrete".formatted(color)))) - .loot((tables, block) -> tables.add(block, tables.createSlabItemTable(block))) - .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.SLABS, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) - .recipe(RegistrumBlockRecipeLoader.reinforcedConcreteSlab(parent)) - .register(); - } - - private static Object2ObjectMap> registerReinforcedConcreteStairs() { - Object2ObjectMap> map = new Object2ObjectLinkedOpenHashMap<>(); - for (Color color : Color.values()) { - var entry = ModBlocks.registerReinforcedConcreteStairBlock(color, ModBlocks.REINFORCED_CONCRETES.get(color)); - map.put(color, entry); - } - return map; - } - - private static BlockEntry registerReinforcedConcreteStairBlock(Color color, BlockEntry parent) { - return REGISTRUM.block( - color + "_reinforced_concrete_stair", - properties -> new StairBlock(parent.getDefaultState(), properties) - ) - .initialProperties(() -> Blocks.TERRACOTTA) - .aliasFrom(AnvilCraft.of("reinforced_concrete_" + color + "_stair")) - .properties(properties -> properties.destroyTime(2.0F).explosionResistance(15.0F)) - .item() - .transform(PropertiesProviderUtil::blockItem) - .tag(ModItemTags.REINFORCED_CONCRETE, ItemTags.STAIRS, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) - .build() - .blockstate(() -> DataGenUtil.stairsBlock(AnvilCraft.of("block/%s_reinforced_concrete".formatted(color)))) - .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.STAIRS, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) - .recipe(RegistrumBlockRecipeLoader.reinforcedConcreteStair(parent)) - .register(); - } - - private static Object2ObjectMap> registerReinforcedConcreteWalls() { - Object2ObjectMap> map = new Object2ObjectLinkedOpenHashMap<>(); - for (Color color : Color.values()) { - var entry = ModBlocks.registerReinforcedConcreteWallBlock(color, ModBlocks.REINFORCED_CONCRETES.get(color)); - map.put(color, entry); - } - return map; - } - - private static BlockEntry registerReinforcedConcreteWallBlock(Color color, BlockEntry parent) { - return REGISTRUM.block(color + "_reinforced_concrete_wall", WallBlock::new) - .initialProperties(() -> Blocks.TERRACOTTA) - .aliasFrom(AnvilCraft.of("reinforced_concrete_" + color + "_wall")) - .properties(properties -> properties.destroyTime(2.0F).explosionResistance(15.0F)) - .blockstate(() -> DataGenUtil.wallBlock(AnvilCraft.of("block/%s_reinforced_concrete_wall".formatted(color)))) - .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.WALLS, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) - .recipe(RegistrumBlockRecipeLoader.reinforcedConcreteWall(parent)) - .item() - .transform(PropertiesProviderUtil::blockItem) - .tag(ModItemTags.REINFORCED_CONCRETE, ItemTags.WALLS, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) - .build() - .register(); - } + public static final Map> CEMENT_CAULDRONS; - private static Object2ObjectMap> registerAllCementCauldrons() { - Object2ObjectMap> map = new Object2ObjectLinkedOpenHashMap<>(); + static { + EnumMap> map = new EnumMap<>(Color.class); for (Color color : Color.values()) { var entry = ModBlocks.registerCementCauldron(color); map.put(color, entry); } - return map; + CEMENT_CAULDRONS = Collections.unmodifiableMap(map); } - @SuppressWarnings("Convert2Lambda") private static BlockEntry registerCementCauldron(Color color) { return REGISTRUM.block(color + "_cement_cauldron", p -> new CementCauldronBlock(p, color)) .initialProperties(() -> Blocks.CAULDRON) - .blockstate(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext ctx, - RegistrumBlockModelGenerator generator - ) { - TextureMapping mapping = new TextureMapping() - .put(TextureSlot.BOTTOM, new Material(generator.mcLoc("block/cauldron_bottom"))) - .put(TextureSlot.INSIDE, new Material(generator.mcLoc("block/cauldron_inner"))) - .put(TextureSlot.SIDE, new Material(generator.mcLoc("block/cauldron_side"))) - .put(TextureSlot.TOP, new Material(generator.mcLoc("block/cauldron_top"))) - .put(TextureSlot.PARTICLE, new Material(generator.mcLoc("block/cauldron_side"))) - .put(TextureSlot.CONTENT, new Material(generator.modLoc("block/%s_cement".formatted(color)))); - generator.blockStateOutput.accept(MultiVariantGenerator.dispatch( - ctx.get(), - BlockModelGenerators.plainVariant(generator.withParent(ModelTemplates.CAULDRON_FULL, mapping).build(ctx.get())) - )); - } + .blockstate(() -> (ctx, generator) -> { + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.BOTTOM, new Material(generator.mcLoc("block/cauldron_bottom"))) + .put(TextureSlot.INSIDE, new Material(generator.mcLoc("block/cauldron_inner"))) + .put(TextureSlot.SIDE, new Material(generator.mcLoc("block/cauldron_side"))) + .put(TextureSlot.TOP, new Material(generator.mcLoc("block/cauldron_top"))) + .put(TextureSlot.PARTICLE, new Material(generator.mcLoc("block/cauldron_side"))) + .put(TextureSlot.CONTENT, new Material(generator.modLoc("block/%s_cement".formatted(color)))); + generator.blockStateOutput.accept(MultiVariantGenerator.dispatch( + ctx.get(), + BlockModelGenerators.plainVariant(generator.withParent(ModelTemplates.CAULDRON_FULL, mapping).build(ctx.get())) + )); }) .loot((tables, block) -> tables.dropOther(block, Items.CAULDRON)) .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.CAULDRONS) @@ -4735,15 +4572,15 @@ private static BlockEntry registerPressu .blockstate(ModelProviderUtil::liquid) .register(); - public static final Object2ObjectMap> CEMENTS = ModBlocks.registerAllCementLiquidBlock(); + public static final Map> CEMENTS; - private static Object2ObjectMap> registerAllCementLiquidBlock() { - Object2ObjectMap> map = new Object2ObjectLinkedOpenHashMap<>(); + static { + EnumMap> map = new EnumMap<>(Color.class); for (Color color : Color.values()) { var entry = ModBlocks.registerCementLiquidBlock(color); map.put(color, entry); } - return map; + CEMENTS = Collections.unmodifiableMap(map); } private static BlockEntry registerCementLiquidBlock(Color color) { @@ -4903,44 +4740,40 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .recipe(RegistrumBlockRecipeLoader::singularityCrystal) .register(); - @SuppressWarnings("Convert2Lambda") public static final BlockEntry SUGAR_BLOCK = REGISTRUM.block("sugar_block", SugarBlock::new) .initialProperties(() -> Blocks.LAPIS_BLOCK) .loot(SugarBlock::loot) .tag(BlockTags.MINEABLE_WITH_PICKAXE, ModBlockTags.STORAGE_BLOCKS_SUGAR, Tags.Blocks.STORAGE_BLOCKS) - .blockstate(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumBlockModelGenerator generator) { - Identifier block = ModelLocationUtils.getModelLocation(ctx.get()); - Identifier stage0 = ModelTemplates.CUBE_ALL.create( - block, - new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block"), false)), - generator.modelOutput - ); - Identifier stage1 = ModelTemplates.CUBE_ALL.create( - block.withSuffix("_1"), - new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_1"), false)), - generator.modelOutput - ); - Identifier stage2 = ModelTemplates.CUBE_ALL.create( - block.withSuffix("_2"), - new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_2"), false)), - generator.modelOutput - ); - Identifier stage3 = ModelTemplates.CUBE_ALL.create( - block.withSuffix("_3"), - new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_3"), false)), - generator.modelOutput - ); - generator.blockStateOutput.accept(MultiVariantGenerator.dispatch(ctx.get()).with( - PropertyDispatchWrap.initial(SugarBlock.FRAGMENTATION_DEGREE) - .select(FragmentationDegree.ZERO, BlockModelGenerators.plainVariant(stage0)) - .select(FragmentationDegree.ONE, BlockModelGenerators.plainVariant(stage1)) - .select(FragmentationDegree.TWO, BlockModelGenerators.plainVariant(stage2)) - .select(FragmentationDegree.THREE, BlockModelGenerators.plainVariant(stage3)) - .dispatch() - )); - } + .blockstate(() -> (ctx, generator) -> { + Identifier block = ModelLocationUtils.getModelLocation(ctx.get()); + Identifier stage0 = ModelTemplates.CUBE_ALL.create( + block, + new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block"), false)), + generator.modelOutput + ); + Identifier stage1 = ModelTemplates.CUBE_ALL.create( + block.withSuffix("_1"), + new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_1"), false)), + generator.modelOutput + ); + Identifier stage2 = ModelTemplates.CUBE_ALL.create( + block.withSuffix("_2"), + new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_2"), false)), + generator.modelOutput + ); + Identifier stage3 = ModelTemplates.CUBE_ALL.create( + block.withSuffix("_3"), + new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_3"), false)), + generator.modelOutput + ); + generator.blockStateOutput.accept(MultiVariantGenerator.dispatch(ctx.get()).with( + PropertyDispatchWrap.initial(SugarBlock.FRAGMENTATION_DEGREE) + .select(FragmentationDegree.ZERO, BlockModelGenerators.plainVariant(stage0)) + .select(FragmentationDegree.ONE, BlockModelGenerators.plainVariant(stage1)) + .select(FragmentationDegree.TWO, BlockModelGenerators.plainVariant(stage2)) + .select(FragmentationDegree.THREE, BlockModelGenerators.plainVariant(stage3)) + .dispatch() + )); }) .item() .transform(PropertiesProviderUtil::blockItem) @@ -5088,13 +4921,10 @@ public void accept(DataGenContext ctx, RegistrumBlockModelGen .requiresCorrectToolForDrops()) .item(StorageFluidPortBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - var model = ctx.getId().withPrefix("block/"); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite(ItemModelUtils.plainModel(model), - ItemModelUtils.specialModel(model, StorageFluidPortItemRenderer.Unbaked.INSTANCE))); - } + .model(() -> (ctx, generator) -> { + var model = ctx.getId().withPrefix("block/"); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite(ItemModelUtils.plainModel(model), + ItemModelUtils.specialModel(model, StorageFluidPortItemRenderer.Unbaked.INSTANCE))); }) .build() .blockstate(DataGenUtil::noExtraModelOrState) @@ -5126,15 +4956,12 @@ public void accept(DataGenContext ctx, Registru .requiresCorrectToolForDrops()) .item(StoragePortBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - var model = ctx.getId().withPrefix("block/"); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( - ItemModelUtils.plainModel(model), - ItemModelUtils.specialModel(model, StoragePortItemRenderer.Unbaked.INSTANCE) - )); - } + .model(() -> (ctx, generator) -> { + var model = ctx.getId().withPrefix("block/"); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( + ItemModelUtils.plainModel(model), + ItemModelUtils.specialModel(model, StoragePortItemRenderer.Unbaked.INSTANCE) + )); }) .build() .blockstate(DataGenUtil::noExtraModelOrState) @@ -5434,14 +5261,9 @@ public void accept(DataGenContext ctx, RegistrumItem .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_core"), - new MonolithItemRenderer.Unbaked(ctx.get().getBlock()))); - } - }) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept(ctx.get(), + ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_core"), + new MonolithItemRenderer.Unbaked(ctx.get().getBlock())))) .build() .recipe(RegistrumBlockRecipeLoader::monolithCore) .register(); @@ -5457,14 +5279,9 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_line"), - new MonolithItemRenderer.Unbaked(ctx.get().getBlock()))); - } - }) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept(ctx.get(), + ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_line"), + new MonolithItemRenderer.Unbaked(ctx.get().getBlock())))) .build() .recipe(RegistrumBlockRecipeLoader::monolithLine) .register(); @@ -5485,17 +5302,10 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera .transform(PropertiesProviderUtil::blockItem) .properties(properties -> properties.stacksTo(16).useBlockDescriptionPrefix()) .setData(ProviderType.LANG, (_, _) -> {}) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept( - DataGenContext> ctx, - RegistrumItemModelGenerator generator - ) { - generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/giant_monolith_core"), - new MonolithItemRenderer.Unbaked(ctx.get().getBlock()))); - } - }) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel(AnvilCraft.of("block/giant_monolith_core"), new MonolithItemRenderer.Unbaked(ctx.get().getBlock())) + )) .build() .blockstate(DataGenUtil::noExtraModelOrState) .register(); @@ -5511,14 +5321,9 @@ public void accept( .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/giant_monolith_line"), - new MonolithItemRenderer.Unbaked(ctx.get().getBlock()))); - } - }) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept(ctx.get(), + ItemModelUtils.specialModel(AnvilCraft.of("block/giant_monolith_line"), + new MonolithItemRenderer.Unbaked(ctx.get().getBlock())))) .build() .register(); diff --git a/src/main/java/dev/dubhe/anvilcraft/init/item/ModFoodItems.java b/src/main/java/dev/dubhe/anvilcraft/init/item/ModFoodItems.java index b4ecef0e02..451804fb75 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/item/ModFoodItems.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/item/ModFoodItems.java @@ -1,6 +1,7 @@ package dev.dubhe.anvilcraft.init.item; import dev.anvilcraft.lib.v2.registrum.util.entry.ItemEntry; +import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.data.AnvilCraftDatagen; import dev.dubhe.anvilcraft.data.recipe.RegistrumItemRecipeLoader; import dev.dubhe.anvilcraft.init.block.ModBlocks; @@ -22,7 +23,6 @@ public class ModFoodItems { public static final ItemEntry CURSED_GOLDEN_APPLE = REGISTRUM .item("cursed_golden_apple", properties -> new CursedGoldenAppleItem(properties.food(ModFoods.CURSED_GOLDEN_APPLE))) - .lang("Cursed Golden Apple") .tag(Tags.Items.FOODS) .recipe((ctx, provider) -> ShapedRecipeBuilder.shaped(provider.getItems(), RecipeCategory.FOOD, ctx.get()) .pattern("AAA") @@ -44,8 +44,9 @@ public class ModFoodItems { .recipe(RegistrumItemRecipeLoader::chocolate) .register(); - public static final ItemEntry CHOCOLATE_BLACK = REGISTRUM - .item("chocolate_black", Item::new) + public static final ItemEntry BLACK_CHOCOLATE = REGISTRUM + .item("black_chocolate", Item::new) + .aliasFrom(AnvilCraft.of("chocolate_black")) .properties(properties -> properties .food(ModFoods.CHOCOLATE_BLACK, ModConsumables.CHOCOLATE_BLACK) ) @@ -53,8 +54,12 @@ public class ModFoodItems { .recipe(RegistrumItemRecipeLoader::chocolateBlack) .register(); - public static final ItemEntry CHOCOLATE_WHITE = REGISTRUM - .item("chocolate_white", Item::new) + @Deprecated(forRemoval = true) + public static final ItemEntry CHOCOLATE_BLACK = ModFoodItems.BLACK_CHOCOLATE; + + public static final ItemEntry WHITE_CHOCOLATE = REGISTRUM + .item("white_chocolate", Item::new) + .aliasFrom(AnvilCraft.of("chocolate_white")) .properties(properties -> properties .food(ModFoods.CHOCOLATE_WHITE, ModConsumables.CHOCOLATE_WHITE) ) @@ -62,6 +67,9 @@ public class ModFoodItems { .recipe(RegistrumItemRecipeLoader::chocolateWhite) .register(); + @Deprecated(forRemoval = true) + public static final ItemEntry CHOCOLATE_WHITE = ModFoodItems.WHITE_CHOCOLATE; + public static final ItemEntry CREAMY_BREAD_ROLL = REGISTRUM .item("creamy_bread_roll", Item::new) .properties(properties -> properties diff --git a/src/main/java/dev/dubhe/anvilcraft/init/item/ModItems.java b/src/main/java/dev/dubhe/anvilcraft/init/item/ModItems.java index 07ac014a7e..c9313bb450 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/item/ModItems.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/item/ModItems.java @@ -10,7 +10,6 @@ import dev.dubhe.anvilcraft.api.amulet.Amulet; import dev.dubhe.anvilcraft.block.item.CheckValveItem; import dev.dubhe.anvilcraft.block.state.Color; -import dev.dubhe.anvilcraft.client.init.ModEquipmentAssets; import dev.dubhe.anvilcraft.client.renderer.item.DiskItemRenderer; import dev.dubhe.anvilcraft.client.renderer.item.EnergyWeaponExhaustedProperty; import dev.dubhe.anvilcraft.client.renderer.item.FilterItemRenderer; @@ -57,7 +56,6 @@ import dev.dubhe.anvilcraft.item.property.component.Merciless; import dev.dubhe.anvilcraft.item.property.component.Multiphase; import dev.dubhe.anvilcraft.item.property.component.TerminalBinding; -import dev.dubhe.anvilcraft.item.property.predicate.IntegerComponentPredicate; import dev.dubhe.anvilcraft.item.template.EmberMetalUpgradeTemplateItem; import dev.dubhe.anvilcraft.item.template.FrostMetalUpgradeTemplateItem; import dev.dubhe.anvilcraft.item.template.RoyalSteelUpgradeTemplateItem; @@ -123,26 +121,19 @@ import dev.dubhe.anvilcraft.util.dummy.DummyHolder; import dev.dubhe.anvilcraft.util.registrater.DataGenUtil; import dev.dubhe.anvilcraft.util.registrater.ModelProviderUtil; -import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; -import it.unimi.dsi.fastutil.objects.Object2ObjectMap; import net.minecraft.client.data.models.model.ItemModelUtils; import net.minecraft.client.data.models.model.ModelLocationUtils; import net.minecraft.client.data.models.model.ModelTemplate; import net.minecraft.client.data.models.model.ModelTemplates; import net.minecraft.client.data.models.model.TextureMapping; -import net.minecraft.client.renderer.item.properties.conditional.ComponentMatches; import net.minecraft.core.HolderLookup; import net.minecraft.core.component.DataComponentPatch; import net.minecraft.core.component.DataComponents; -import net.minecraft.core.component.predicates.DataComponentPredicate; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; -import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceKey; -import net.minecraft.sounds.SoundEvents; import net.minecraft.tags.ItemTags; import net.minecraft.util.Unit; -import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.BucketItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStackTemplate; @@ -152,13 +143,14 @@ import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.item.enchantment.ItemEnchantments; -import net.minecraft.world.item.equipment.ArmorMaterials; import net.minecraft.world.item.equipment.ArmorType; -import net.minecraft.world.item.equipment.Equippable; import net.minecraft.world.level.ItemLike; import net.neoforged.neoforge.common.Tags; import net.neoforged.neoforge.registries.RegisterEvent; +import java.util.Collections; +import java.util.EnumMap; +import java.util.Map; import java.util.Optional; import java.util.function.Function; @@ -735,82 +727,55 @@ public void accept( // 升级锻造模板 public static final ItemEntry ROYAL_STEEL_UPGRADE_SMITHING_TEMPLATE = REGISTRUM - .item( - "royal_steel_upgrade_smithing_template", - RoyalSteelUpgradeTemplateItem::new - ) - .lang("Smithing Template") + .item("royal_steel_upgrade_smithing_template", RoyalSteelUpgradeTemplateItem::new) + .lang("Royal Steel Upgrade") .tag(ModItemTags.TEMPLATES) .register(); public static final ItemEntry FROST_METAL_UPGRADE_SMITHING_TEMPLATE = REGISTRUM - .item( - "frost_metal_upgrade_smithing_template", - FrostMetalUpgradeTemplateItem::new - ) - .lang("Smithing Template") + .item("frost_metal_upgrade_smithing_template", FrostMetalUpgradeTemplateItem::new) + .lang("Frost Metal Upgrade") .tag(ModItemTags.TEMPLATES) .register(); public static final ItemEntry EMBER_METAL_UPGRADE_SMITHING_TEMPLATE = REGISTRUM - .item( - "ember_metal_upgrade_smithing_template", - EmberMetalUpgradeTemplateItem::new - ) - .lang("Smithing Template") + .item("ember_metal_upgrade_smithing_template", EmberMetalUpgradeTemplateItem::new) + .lang("Ember Metal Upgrade") .tag(ModItemTags.TEMPLATES) .register(); public static final ItemEntry PERMUTATION_TEMPLATE = REGISTRUM - .item( - "permutation_smithing_template", - PermutationTemplateItem::new - ) + .item("permutation_smithing_template", PermutationTemplateItem::new) .recipe(RegistrumItemRecipeLoader::permutationTemplateItem) .initialProperties(() -> new Item.Properties().fireResistant()) .tag(ModItemTags.TEMPLATES, ModItemTags.EXPLOSION_PROOF) .register(); public static final ItemEntry DEFORMATION_TEMPLATE = REGISTRUM - .item( - "deformation_smithing_template", - DeformationTemplateItem::new - ) + .item("deformation_smithing_template", DeformationTemplateItem::new) .recipe(RegistrumItemRecipeLoader::deformationTemplateItem) .initialProperties(() -> new Item.Properties().fireResistant()) .tag(ModItemTags.TEMPLATES, ModItemTags.EXPLOSION_PROOF) .register(); public static final ItemEntry TWO_TO_ONE_SMITHING_TEMPLATE = REGISTRUM - .item( - "two_to_one_smithing_template", - TwoToOneTemplateItem::new - ) + .item("two_to_one_smithing_template", TwoToOneTemplateItem::new) .lang("Two to One Smithing Template") .tag(ModItemTags.MULTIPLE_TO_ONE_SMITHING_TEMPLATES) .register(); public static final ItemEntry FOUR_TO_ONE_SMITHING_TEMPLATE = REGISTRUM - .item( - "four_to_one_smithing_template", - FourToOneTemplateItem::new - ) + .item("four_to_one_smithing_template", FourToOneTemplateItem::new) .lang("Four to One Smithing Template") .tag(ModItemTags.MULTIPLE_TO_ONE_SMITHING_TEMPLATES) .register(); public static final ItemEntry EIGHT_TO_ONE_SMITHING_TEMPLATE = REGISTRUM - .item( - "eight_to_one_smithing_template", - EightToOneTemplateItem::new - ) + .item("eight_to_one_smithing_template", EightToOneTemplateItem::new) .lang("Eight to One Smithing Template") .tag(ModItemTags.MULTIPLE_TO_ONE_SMITHING_TEMPLATES) .register(); public static final ItemEntry DISK = REGISTRUM.item("disk", DiskItem::new) .properties(p -> p.stacksTo(1)) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( - ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, DiskItemRenderer.Unbaked.INSTANCE))); - } + .model(() -> (ctx, generator) -> { + var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( + ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, DiskItemRenderer.Unbaked.INSTANCE))); }) .recipe(RegistrumItemRecipeLoader::disk) .register(); @@ -818,32 +783,25 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenerat public static final ItemEntry STRUCTURE_DISK = REGISTRUM .item("structure_disk", StructureDiskItem::new) .properties(p -> p.stacksTo(1)) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( - ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, DiskItemRenderer.Unbaked.INSTANCE))); - } + .model(() -> (ctx, generator) -> { + var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( + ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, DiskItemRenderer.Unbaked.INSTANCE))); }) .recipe(RegistrumItemRecipeLoader::structureDisk) .register(); public static final ItemEntry FILTER = REGISTRUM.item("filter", FilterItem::new) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( - ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, FilterItemRenderer.Unbaked.INSTANCE))); - } + .model(() -> (ctx, generator) -> { + var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( + ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, FilterItemRenderer.Unbaked.INSTANCE))); }) .recipe(RegistrumItemRecipeLoader::filter) .properties(properties -> properties.stacksTo(16)) .register(); public static final ItemEntry BUILDING_ROD = REGISTRUM.item("building_rod", BuildingRodItem::new) - .lang("Building Rod") .model(DataGenUtil::buildingRod) .recipe(RegistrumItemRecipeLoader::buildingRod) .register(); @@ -878,6 +836,7 @@ public void accept(DataGenContext ctx, RegistrumItemModelGener .recipe(RegistrumItemRecipeLoader::totemOfRage) .register(); + @SuppressWarnings("SameParameterValue") private static ItemEntry createAmuletItem( String type, ResourceKey amulet, @@ -1002,8 +961,9 @@ private static ItemEntry createBigAmuletItem(String type, Resour .model(DataGenUtil::onlyInfo) .tag(ModItemTags.CAPACITOR) .register(); - public static final ItemEntry CAPACITOR_EMPTY = REGISTRUM.item("capacitor_empty", EmptyCapacitorItem::new) - .lang("Empty Capacitor") + public static final ItemEntry CAPACITOR_EMPTY = REGISTRUM + .item("empty_capacitor", EmptyCapacitorItem::new) + .aliasFrom(AnvilCraft.of("capacitor_empty")) .model(DataGenUtil::onlyInfo) .tag(ModItemTags.CAPACITOR) .recipe(RegistrumItemRecipeLoader::capacitorEmpty) @@ -1012,11 +972,8 @@ private static ItemEntry createBigAmuletItem(String type, Resour .model(DataGenUtil::onlyInfo) .register(); public static final ItemEntry SUPER_CAPACITOR_EMPTY = REGISTRUM - .item( - "supercapacitor_empty", - EmptySuperCapacitorItem::new - ) - .lang("Empty Supercapacitor") + .item("empty_supercapacitor", EmptySuperCapacitorItem::new) + .aliasFrom(AnvilCraft.of("supercapacitor_empty")) .model(DataGenUtil::onlyInfo) .register(); @@ -1025,7 +982,6 @@ private static ItemEntry createBigAmuletItem(String type, Resour public static final ItemEntry FLUID_TANK_MINECART = REGISTRUM .item("fluid_tank_minecart", FluidTankMinecartItem::new) - .lang("Fluid Tank Minecart") .recipe(RegistrumItemRecipeLoader::fluidTankMinecart) .register(); @@ -1149,19 +1105,13 @@ public void accept( .tag(ItemTags.PIGLIN_LOVED, Tags.Items.NUGGETS) .recipe(RegistrumItemRecipeLoader::cursedGoldNugget) .register(); - public static final ItemEntry ENCHANTED_GOLD_INGOT = REGISTRUM.item( - "enchanted_gold_ingot", - EnchantedGoldIngotItem::new - ) - .lang("Enchanted Gold Ingot") + public static final ItemEntry ENCHANTED_GOLD_INGOT = REGISTRUM + .item("enchanted_gold_ingot", EnchantedGoldIngotItem::new) .tag(ItemTags.BEACON_PAYMENT_ITEMS, ItemTags.PIGLIN_LOVED, Tags.Items.INGOTS, ModItemTags.ENCHANTED_GOLD) .recipe(RegistrumItemRecipeLoader::enchantedGoldIngot) .register(); - public static final ItemEntry ENCHANTED_GOLD_NUGGET = REGISTRUM.item( - "enchanted_gold_nugget", - EnchantedGoldItem::new - ) - .lang("Enchanted Gold Nugget") + public static final ItemEntry ENCHANTED_GOLD_NUGGET = REGISTRUM + .item("enchanted_gold_nugget", EnchantedGoldItem::new) .tag(ItemTags.PIGLIN_LOVED, Tags.Items.NUGGETS, ModItemTags.ENCHANTED_GOLD) .recipe(RegistrumItemRecipeLoader::enchantedGoldNugget) .register(); @@ -1505,16 +1455,15 @@ public void accept( .register(); public static final ItemEntry LEGACY_ESSENCE = REGISTRUM.item("legacy_essence", Item::new) - .lang("Legacy Essence") .register(); public static final ItemEntry CIVILIZATION_CATALYST = REGISTRUM.item("civilization_catalyst", Item::new) - .lang("Civilization Catalyst") .recipe(RegistrumItemRecipeLoader::civilizationCatalyst) .register(); public static final ItemEntry EXP_BUCKET = REGISTRUM .item("exp_bucket", p -> new BucketItem(ModFluids.EXP_FLUID.get(), p)) + .lang("EXP Bucket") .tag(ModItemTags.EXP_BUCKETS, Tags.Items.BUCKETS) .initialProperties(() -> new Item.Properties().stacksTo(1).craftRemainder(Items.BUCKET)) .model(ModelProviderUtil::bucket) @@ -1526,15 +1475,15 @@ public void accept( .model(ModelProviderUtil::bucket) .register(); - public static final Object2ObjectMap> CEMENT_BUCKETS = ModItems.registerAllCementBuckets(); + public static final Map> CEMENT_BUCKETS; - private static Object2ObjectMap> registerAllCementBuckets() { - Object2ObjectMap> map = new Object2ObjectLinkedOpenHashMap<>(); + static { + EnumMap> map = new EnumMap<>(Color.class); for (Color color : Color.values()) { var entry = ModItems.registerCementBucket(color); map.put(color, entry); } - return map; + CEMENT_BUCKETS = Collections.unmodifiableMap(map); } private static ItemEntry registerCementBucket(Color color) { @@ -1555,7 +1504,6 @@ private static ItemEntry registerCementBucket(Color color) { public static final ItemEntry HYDROGEN_BUCKET = REGISTRUM .item("hydrogen_bucket", p -> new BucketItem(ModFluids.HYDROGEN.get(), p)) .tag(Tags.Items.BUCKETS) - .lang("Hydrogen Bucket") .properties(properties -> properties.stacksTo(1).craftRemainder(Items.BUCKET)) .model(ModelProviderUtil::bucketGassy) .register(); @@ -1563,7 +1511,6 @@ private static ItemEntry registerCementBucket(Color color) { public static final ItemEntry OXYGEN_BUCKET = REGISTRUM .item("oxygen_bucket", p -> new BucketItem(ModFluids.OXYGEN.get(), p)) .tag(Tags.Items.BUCKETS) - .lang("Oxygen Bucket") .properties(properties -> properties.stacksTo(1).craftRemainder(Items.BUCKET)) .model(ModelProviderUtil::bucketGassy) .register(); @@ -1571,7 +1518,6 @@ private static ItemEntry registerCementBucket(Color color) { public static final ItemEntry HELIUM_BUCKET = REGISTRUM .item("helium_bucket", p -> new BucketItem(ModFluids.HELIUM.get(), p)) .tag(Tags.Items.BUCKETS) - .lang("Helium Bucket") .properties(properties -> properties.stacksTo(1).craftRemainder(Items.BUCKET)) .model(ModelProviderUtil::bucketGassy) .register(); @@ -1579,7 +1525,6 @@ private static ItemEntry registerCementBucket(Color color) { public static final ItemEntry DEUTERIUM_BUCKET = REGISTRUM .item("deuterium_bucket", p -> new BucketItem(ModFluids.DEUTERIUM.get(), p)) .tag(Tags.Items.BUCKETS) - .lang("Deuterium Bucket") .properties(properties -> properties.stacksTo(1).craftRemainder(Items.BUCKET)) .model(ModelProviderUtil::bucketGassy) .register(); @@ -1587,7 +1532,6 @@ private static ItemEntry registerCementBucket(Color color) { public static final ItemEntry XENON_BUCKET = REGISTRUM .item("xenon_bucket", p -> new BucketItem(ModFluids.XENON.get(), p)) .tag(Tags.Items.BUCKETS) - .lang("Xenon Bucket") .properties(properties -> properties.stacksTo(1).craftRemainder(Items.BUCKET)) .model(ModelProviderUtil::bucketGassy) .register(); @@ -1595,7 +1539,6 @@ private static ItemEntry registerCementBucket(Color color) { public static final ItemEntry KRYPTON_BUCKET = REGISTRUM .item("krypton_bucket", p -> new BucketItem(ModFluids.KRYPTON.get(), p)) .tag(Tags.Items.BUCKETS) - .lang("Krypton Bucket") .properties(properties -> properties.stacksTo(1).craftRemainder(Items.BUCKET)) .model(ModelProviderUtil::bucketGassy) .register(); @@ -1603,7 +1546,6 @@ private static ItemEntry registerCementBucket(Color color) { public static final ItemEntry PRIMORDIAL_MATTER_BUCKET = REGISTRUM .item("primordial_matter_bucket", p -> new BucketItem(ModFluids.PRIMORDIAL_MATTER.get(), p)) .tag(Tags.Items.BUCKETS) - .lang("Primordial Matter Bucket") .properties(properties -> properties.stacksTo(1).craftRemainder(Items.BUCKET)) .model(ModelProviderUtil::bucketGassy) .register(); @@ -1616,19 +1558,15 @@ private static ItemEntry registerCementBucket(Color color) { public static final ItemEntry GLASS_PIPE = REGISTRUM .item("glass_pipe", properties -> new PipeBlockItem(properties, ModBlocks.GLASS_PIPE_STRAIGHT)) - .lang("Glass Pipe") .model(DataGenUtil::onlyInfo) .tag(ModItemTags.DISALLOW_HAND_INSERT_INTO_TANK) .register(); public static final ItemEntry CHECK_VALVE = REGISTRUM.item("check_valve", CheckValveItem::new) - .model(() -> new NonNullBiConsumer<>() { - @Override - public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { - var itemModel = new ModelTemplate(Optional.of(ctx.getId().withPrefix("block/")), Optional.empty()) - .create(ctx.get(), new TextureMapping(), generator.modelOutput); - generator.createWithExistingModel(ctx.get(), itemModel); - } + .model(() -> (ctx, generator) -> { + var itemModel = new ModelTemplate(Optional.of(ctx.getId().withPrefix("block/")), Optional.empty()) + .create(ctx.get(), new TextureMapping(), generator.modelOutput); + generator.createWithExistingModel(ctx.get(), itemModel); }) .recipe(RegistrumItemRecipeLoader::checkValve) .register(); diff --git a/src/main/java/dev/dubhe/anvilcraft/init/item/tabs/ItemsSections.java b/src/main/java/dev/dubhe/anvilcraft/init/item/tabs/ItemsSections.java index b9d9260872..376bad55c5 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/item/tabs/ItemsSections.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/item/tabs/ItemsSections.java @@ -156,8 +156,8 @@ public void accept() { content -> { content.accept(ModFoodItems.CURSED_GOLDEN_APPLE); content.accept(ModFoodItems.CHOCOLATE); - content.accept(ModFoodItems.CHOCOLATE_BLACK); - content.accept(ModFoodItems.CHOCOLATE_WHITE); + content.accept(ModFoodItems.BLACK_CHOCOLATE); + content.accept(ModFoodItems.WHITE_CHOCOLATE); content.accept(ModFoodItems.CREAMY_BREAD_ROLL); content.accept(ModFoodItems.BEEF_MUSHROOM_STEW); content.accept(ModFoodItems.PILL); diff --git a/src/main/java/dev/dubhe/anvilcraft/init/item/tabs/ToolsAndUtilities.java b/src/main/java/dev/dubhe/anvilcraft/init/item/tabs/ToolsAndUtilities.java index 800605b481..9e405e9048 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/item/tabs/ToolsAndUtilities.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/item/tabs/ToolsAndUtilities.java @@ -116,8 +116,8 @@ public void accept() { // Food and consumables. Ingredient foods also appear in Ingredients. this.plain(ModFoodItems.CURSED_GOLDEN_APPLE); this.plain(ModFoodItems.CHOCOLATE); - this.plain(ModFoodItems.CHOCOLATE_BLACK); - this.plain(ModFoodItems.CHOCOLATE_WHITE); + this.plain(ModFoodItems.BLACK_CHOCOLATE); + this.plain(ModFoodItems.WHITE_CHOCOLATE); this.plain(ModFoodItems.CREAMY_BREAD_ROLL); this.plain(ModFoodItems.BEEF_MUSHROOM_STEW); this.plain(ModFoodItems.PILL); diff --git a/src/main/java/dev/dubhe/anvilcraft/integration/jei/category/JewelCraftingCategory.java b/src/main/java/dev/dubhe/anvilcraft/integration/jei/category/JewelCraftingCategory.java index 6780baf62f..cd5ffa0d2d 100644 --- a/src/main/java/dev/dubhe/anvilcraft/integration/jei/category/JewelCraftingCategory.java +++ b/src/main/java/dev/dubhe/anvilcraft/integration/jei/category/JewelCraftingCategory.java @@ -25,7 +25,6 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeHolder; -import org.jspecify.annotations.Nullable; import java.util.ArrayList; import java.util.HashSet; @@ -69,19 +68,19 @@ public int getHeight() { } @Override - public @Nullable IDrawable getIcon() { + public IDrawable getIcon() { return this.icon; } @Override public void setRecipe(IRecipeLayoutBuilder builder, RecipeHolder recipe, IFocusGroup focuses) { - builder.addSlot(RecipeIngredientRole.INPUT, 59, 11).addItemStack(recipe.value().result().create().copyWithCount(1)); + builder.addSlot(RecipeIngredientRole.INPUT, 59, 11).add(recipe.value().result().create().copyWithCount(1)); for (int i = 0; i < recipe.value().mergedIngredients().size(); i++) { var entry = recipe.value().mergedIngredients().get(i); builder.addSlot(RecipeIngredientRole.INPUT, 5 + i * 18, 37).addItemStacks(entry.getKey().getValues().stream() .map(holder -> new ItemStack(holder.value(), entry.getIntValue())).toList()); } - builder.addSlot(RecipeIngredientRole.OUTPUT, 135, 24).addItemStack(recipe.value().result().create()); + builder.addSlot(RecipeIngredientRole.OUTPUT, 135, 24).add(recipe.value().result().create()); } @Override diff --git a/src/main/java/dev/dubhe/anvilcraft/integration/jei/category/MineralFountainCategory.java b/src/main/java/dev/dubhe/anvilcraft/integration/jei/category/MineralFountainCategory.java index 7f6424ee77..b6cde92419 100644 --- a/src/main/java/dev/dubhe/anvilcraft/integration/jei/category/MineralFountainCategory.java +++ b/src/main/java/dev/dubhe/anvilcraft/integration/jei/category/MineralFountainCategory.java @@ -97,37 +97,37 @@ public Component getTitle() { @Override public int getWidth() { - return WIDTH; + return MineralFountainCategory.WIDTH; } @Override public int getHeight() { - return HEIGHT; + return MineralFountainCategory.HEIGHT; } @Override - public @Nullable IDrawable getIcon() { + public IDrawable getIcon() { return this.icon; } @Override public void setRecipe(IRecipeLayoutBuilder builder, MineralFountainJeiRecipe recipe, IFocusGroup focuses) { List sideSlots = recipe.sideSlots(); - for (int i = 0; i < SIDE_SLOT_AREAS.length; i++) { + for (int i = 0; i < MineralFountainCategory.SIDE_SLOT_AREAS.length; i++) { if (i >= sideSlots.size()) break; MineralFountainJeiRecipe.SideRequirement side = sideSlots.get(i); - int[] area = SIDE_SLOT_AREAS[i]; + int[] area = MineralFountainCategory.SIDE_SLOT_AREAS[i]; JeiBlockIngredientUtil.addSlot( builder, RecipeIngredientRole.INPUT, - SIDE_BLOCK_PREFIX + i, + MineralFountainCategory.SIDE_BLOCK_PREFIX + i, area[0], area[1], area[2], area[3], JeiBlockIngredientUtil.toItemStacks(side.states()), JeiBlockIngredientUtil.toFluidStacks(side.states()) - ).addRichTooltipCallback((slot, tooltip) -> tooltip.add( + ).addRichTooltipCallback((_, tooltip) -> tooltip.add( Component.translatable( "gui.anvilcraft.category.mineral_fountain.side_count", side.count() @@ -138,7 +138,7 @@ public void setRecipe(IRecipeLayoutBuilder builder, MineralFountainJeiRecipe rec List fromStacks = JeiBlockIngredientUtil.toItemStacks(recipe.fromBlocks()); if (!fromStacks.isEmpty()) { JeiBlockIngredientUtil.addSlot( - builder, RecipeIngredientRole.INPUT, FROM_BLOCK, 40, 28, 16, 13, fromStacks + builder, RecipeIngredientRole.INPUT, MineralFountainCategory.FROM_BLOCK, 40, 28, 16, 13, fromStacks ); } @@ -146,7 +146,7 @@ public void setRecipe(IRecipeLayoutBuilder builder, MineralFountainJeiRecipe rec JeiBlockIngredientUtil.addSlot( builder, RecipeIngredientRole.OUTPUT, - OUTPUT_BLOCK, + MineralFountainCategory.OUTPUT_BLOCK, 118, 28, 16, @@ -157,17 +157,17 @@ public void setRecipe(IRecipeLayoutBuilder builder, MineralFountainJeiRecipe rec BlockState displayed = JeiBlockIngredientUtil.toBlockState( slot.getDisplayedIngredient().orElse(null), outcomeStates ); - tooltip.addAll(getChanceTooltips( + tooltip.addAll(MineralFountainCategory.getChanceTooltips( recipe, displayed == null ? outcomeStates.getFirst() : displayed )); if (recipe.dimension() != null) { - tooltip.add(getDimensionName(recipe.dimension()).copy().withStyle(ChatFormatting.GRAY)); + tooltip.add(MineralFountainCategory.getDimensionName(recipe.dimension()).copy().withStyle(ChatFormatting.GRAY)); } }); if (!recipe.fluids().isEmpty()) { IIngredientAcceptor invisible = builder.addInvisibleIngredients(RecipeIngredientRole.OUTPUT); - recipe.fluids().forEach(fluid -> invisible.addFluidStack( + recipe.fluids().forEach(fluid -> invisible.add( fluid.getFluid(), fluid.getAmount(), fluid.getComponentsPatch() )); } @@ -189,7 +189,7 @@ public void draw( List sideSlots = recipe.sideSlots(); for (int i = 0; i < Math.min(2, sideSlots.size()); i++) { - renderSideSlot(guiGraphics, recipeSlotsView, sideSlots, i); + MineralFountainCategory.renderSideSlot(guiGraphics, recipeSlotsView, sideSlots, i); } RenderSupport.renderBlockAt( @@ -197,21 +197,22 @@ public void draw( ModBlocks.MINERAL_FOUNTAIN.getDefaultState(), 48, 50, - BLOCK_SCALE + MineralFountainCategory.BLOCK_SCALE ); for (int i = 2; i < Math.min(4, sideSlots.size()); i++) { - renderSideSlot(guiGraphics, recipeSlotsView, sideSlots, i); + MineralFountainCategory.renderSideSlot(guiGraphics, recipeSlotsView, sideSlots, i); } if (!recipe.fromBlocks().isEmpty()) { - JeiBlockIngredientUtil.getDisplayedState(recipeSlotsView, FROM_BLOCK, recipe.fromBlocks()).ifPresent(state -> + JeiBlockIngredientUtil.getDisplayedState(recipeSlotsView, + MineralFountainCategory.FROM_BLOCK, recipe.fromBlocks()).ifPresent(state -> RenderSupport.renderBlockAt( guiGraphics, state, 48, 39.5f, - BLOCK_SCALE + MineralFountainCategory.BLOCK_SCALE ) ); } @@ -221,11 +222,11 @@ public void draw( ModBlocks.MINERAL_FOUNTAIN.getDefaultState(), 126, 50, - BLOCK_SCALE + MineralFountainCategory.BLOCK_SCALE ); BlockState resultState = JeiBlockIngredientUtil.toBlockState( - JeiBlockIngredientUtil.getDisplayedIngredient(recipeSlotsView, OUTPUT_BLOCK).orElse(null), + JeiBlockIngredientUtil.getDisplayedIngredient(recipeSlotsView, MineralFountainCategory.OUTPUT_BLOCK).orElse(null), recipe.outcomeStates() ); if (resultState == null) resultState = recipe.outcomeStates().getFirst(); @@ -234,19 +235,19 @@ public void draw( resultState, 126, 39.5f, - BLOCK_SCALE + MineralFountainCategory.BLOCK_SCALE ); this.arrow.draw(guiGraphics, 82, 37); if (recipe.dimension() != null) { - Component dimensionName = getDimensionName(recipe.dimension()).copy().withStyle(ChatFormatting.WHITE); + Component dimensionName = MineralFountainCategory.getDimensionName(recipe.dimension()).copy().withStyle(ChatFormatting.WHITE); guiGraphics.centeredText(Minecraft.getInstance().font, dimensionName, 126, 65, 0xFFFFFFFF); } } @Override - public @Nullable Identifier getRegistryName(MineralFountainJeiRecipe recipe) { + public Identifier getIdentifier(MineralFountainJeiRecipe recipe) { return recipe.id(); } @@ -261,18 +262,18 @@ public static void registerRecipes(IRecipeRegistration registration) { Map>> activeGroups = new LinkedHashMap<>(); for (RecipeHolder holder : activeRecipes) { - activeGroups.computeIfAbsent(activeGroupKey(holder.value()), key -> new ArrayList<>()).add(holder); + activeGroups.computeIfAbsent(MineralFountainCategory.activeGroupKey(holder.value()), _ -> new ArrayList<>()).add(holder); } for (List> group : activeGroups.values()) { - displays.add(mergeActive(group)); + displays.add(MineralFountainCategory.mergeActive(group)); } Map>> passiveGroups = new LinkedHashMap<>(); for (RecipeHolder holder : passiveRecipes) { - passiveGroups.computeIfAbsent(passiveGroupKey(holder.value()), key -> new ArrayList<>()).add(holder); + passiveGroups.computeIfAbsent(MineralFountainCategory.passiveGroupKey(holder.value()), _ -> new ArrayList<>()).add(holder); } for (List> group : passiveGroups.values()) { - displays.add(mergePassive(group)); + displays.add(MineralFountainCategory.mergePassive(group)); } Map activeById = new LinkedHashMap<>(); @@ -284,7 +285,7 @@ public static void registerRecipes(IRecipeRegistration registration) { MineralFountainReplacementRecipe recipe = holder.value(); displays.add(new MineralFountainJeiRecipe( holder.id().identifier(), - replacementAround(recipe, activeById), + MineralFountainCategory.replacementAround(recipe, activeById), recipe.getFromBlock().constructStatesForRender(), List.of(new MineralFountainJeiRecipe.Outcome( recipe.getToBlock().state(), NumberProviderUtil.expected(recipe.getToBlock().chance()) @@ -292,7 +293,7 @@ public static void registerRecipes(IRecipeRegistration registration) { recipe.getToFluid().map(FluidStackTemplate::create).map(List::of).orElse(List.of()), recipe.getDimension().orElse(null), recipe.getReplaceChance(), - replacementTarget(recipe) + MineralFountainCategory.replacementTarget(recipe) )); } @@ -308,13 +309,13 @@ private static MineralFountainJeiRecipe mergeActive(List around) { return around.stream() - .map(requirement -> requirement.count() + "x" + predicateKey(requirement.block())) + .map(requirement -> requirement.count() + "x" + MineralFountainCategory.predicateKey(requirement.block())) .collect(Collectors.joining(",")); } @@ -415,7 +416,7 @@ private static List getChanceTooltips(MineralFountainJeiRecipe recipe tooltips.add( Component.translatable( "gui.anvilcraft.category.chance", - formatPercentage(chance) + MineralFountainCategory.formatPercentage(chance) ).withStyle(ChatFormatting.GRAY) ); } @@ -423,7 +424,7 @@ private static List getChanceTooltips(MineralFountainJeiRecipe recipe tooltips.add( Component.translatable( "gui.anvilcraft.category.mineral_fountain.replace_chance", - formatPercentage(recipe.replacementChance()) + MineralFountainCategory.formatPercentage(recipe.replacementChance()) ).withStyle(ChatFormatting.GRAY) ); if (recipe.replacementTarget() != null) { @@ -439,10 +440,10 @@ private static List getChanceTooltips(MineralFountainJeiRecipe recipe } private static String formatPercentage(double chance) { - String percentage = FORMATTER.format(chance * 100); - if (chance < 1 && percentage.equals(FORMATTER.format(100))) { + String percentage = MineralFountainCategory.FORMATTER.format(chance * 100); + if (chance < 1 && percentage.equals(MineralFountainCategory.FORMATTER.format(100))) { BigDecimal exact = BigDecimal.valueOf(chance).movePointRight(2); - DecimalFormat localized = (DecimalFormat) FORMATTER.clone(); + DecimalFormat localized = (DecimalFormat) MineralFountainCategory.FORMATTER.clone(); localized.setMaximumFractionDigits(Math.max(0, exact.scale())); return localized.format(exact); } @@ -457,7 +458,7 @@ private static List replacementAround( int count = 0; for (Map.Entry entry : activeById.entrySet()) { if (!recipe.appliesTo(entry.getKey())) continue; - if (!sharesFromBlock(recipe.getFromBlock(), entry.getValue().getFromBlock())) continue; + if (!MineralFountainCategory.sharesFromBlock(recipe.getFromBlock(), entry.getValue().getFromBlock())) continue; for (AroundRequirement requirement : entry.getValue().getAround()) { states.addAll(requirement.block().constructStatesForRender()); count = Math.max(count, requirement.count()); @@ -485,7 +486,7 @@ private static List sideRequirements(M } public static void registerRecipeCatalysts(IRecipeCatalystRegistration registration) { - registration.addRecipeCatalyst(ModBlocks.MINERAL_FOUNTAIN.asStack(), AnvilCraftJeiPlugin.MINERAL_FOUNTAIN); + registration.addCraftingStation(AnvilCraftJeiPlugin.MINERAL_FOUNTAIN, ModBlocks.MINERAL_FOUNTAIN.asStack()); } private static void renderSideSlot( @@ -496,21 +497,21 @@ private static void renderSideSlot( ) { MineralFountainJeiRecipe.SideRequirement side = sideSlots.get(index); BlockState state = JeiBlockIngredientUtil.toBlockState( - JeiBlockIngredientUtil.getDisplayedIngredient(recipeSlotsView, SIDE_BLOCK_PREFIX + index).orElse(null), + JeiBlockIngredientUtil.getDisplayedIngredient(recipeSlotsView, MineralFountainCategory.SIDE_BLOCK_PREFIX + index).orElse(null), side.states() ); if (state == null) state = side.states().getFirst(); - renderSideBlock(guiGraphics, state, index); + MineralFountainCategory.renderSideBlock(guiGraphics, state, index); } private static void renderSideBlock(GuiGraphicsExtractor guiGraphics, BlockState state, int index) { - int[] position = SIDE_POSITIONS[index]; + int[] position = MineralFountainCategory.SIDE_POSITIONS[index]; RenderSupport.renderBlockAt( guiGraphics, state, position[0], position[1], - BLOCK_SCALE + MineralFountainCategory.BLOCK_SCALE ); } diff --git a/src/main/resources/assets/anvilcraft/textures/item/chocolate_black.png b/src/main/resources/assets/anvilcraft/textures/item/black_chocolate.png similarity index 100% rename from src/main/resources/assets/anvilcraft/textures/item/chocolate_black.png rename to src/main/resources/assets/anvilcraft/textures/item/black_chocolate.png diff --git a/src/main/resources/assets/anvilcraft/textures/item/capacitor_empty.png b/src/main/resources/assets/anvilcraft/textures/item/empty_capacitor.png similarity index 100% rename from src/main/resources/assets/anvilcraft/textures/item/capacitor_empty.png rename to src/main/resources/assets/anvilcraft/textures/item/empty_capacitor.png diff --git a/src/main/resources/assets/anvilcraft/textures/item/supercapacitor_empty.png b/src/main/resources/assets/anvilcraft/textures/item/empty_supercapacitor.png similarity index 100% rename from src/main/resources/assets/anvilcraft/textures/item/supercapacitor_empty.png rename to src/main/resources/assets/anvilcraft/textures/item/empty_supercapacitor.png diff --git a/src/main/resources/assets/anvilcraft/textures/item/hardend_resin.png b/src/main/resources/assets/anvilcraft/textures/item/hardened_resin.png similarity index 100% rename from src/main/resources/assets/anvilcraft/textures/item/hardend_resin.png rename to src/main/resources/assets/anvilcraft/textures/item/hardened_resin.png diff --git a/src/main/resources/assets/anvilcraft/textures/item/chocolate_white.png b/src/main/resources/assets/anvilcraft/textures/item/white_chocolate.png similarity index 100% rename from src/main/resources/assets/anvilcraft/textures/item/chocolate_white.png rename to src/main/resources/assets/anvilcraft/textures/item/white_chocolate.png From 32fec6ca4363f31473a48478eadf08fdbf0d16a2 Mon Sep 17 00:00:00 2001 From: QiuShui1012 Date: Fri, 13 Nov 2026 03:14:02 +0800 Subject: [PATCH 2/6] fix(style): fix style --- .../anvilcraft/init/block/ModBlocks.java | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java index d5d851cd35..0f74c76d4e 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java @@ -3233,8 +3233,10 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .properties(properties -> properties.sound(SoundType.HONEY_BLOCK)) .item(ResinBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator)) + .model(() -> (ctx, generator) -> DataGenUtil + .specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator) + ) .tag(Tags.Items.STORAGE_BLOCKS, ModItemTags.STORAGE_BLOCKS_RESIN) .build() .tag(Tags.Blocks.STORAGE_BLOCKS, ModBlockTags.STORAGE_BLOCKS_RESIN) @@ -3259,8 +3261,10 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .blockstate(DataGenUtil::noExtraModelOrState) .item(HasMobBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator)) + .model(() -> (ctx, generator) -> DataGenUtil + .specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator) + ) .properties(properties -> properties.component( ModComponents.SAVED_ENTITY, new SavedEntity(EntityType.MOOSHROOM, new CompoundTag(), false) @@ -3287,8 +3291,10 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .blockstate(DataGenUtil::noExtraModelOrState) .item(HasMobBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator)) + .model(() -> (ctx, generator) -> DataGenUtil + .specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator) + ) .properties(properties -> properties.component( ModComponents.SAVED_ENTITY, new SavedEntity(EntityType.ZOMBIE, new CompoundTag(), true) @@ -5261,9 +5267,10 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_core"), - new MonolithItemRenderer.Unbaked(ctx.get().getBlock())))) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_core"), new MonolithItemRenderer.Unbaked(ctx.get().getBlock())) + )) .build() .recipe(RegistrumBlockRecipeLoader::monolithCore) .register(); @@ -5279,9 +5286,10 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_line"), - new MonolithItemRenderer.Unbaked(ctx.get().getBlock())))) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_line"), new MonolithItemRenderer.Unbaked(ctx.get().getBlock())) + )) .build() .recipe(RegistrumBlockRecipeLoader::monolithLine) .register(); @@ -5321,9 +5329,10 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept(ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/giant_monolith_line"), - new MonolithItemRenderer.Unbaked(ctx.get().getBlock())))) + .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel(AnvilCraft.of("block/giant_monolith_line"), new MonolithItemRenderer.Unbaked(ctx.get().getBlock())) + )) .build() .register(); From 9235e5dba66ce35ce94c7a05a356c158e6f20217 Mon Sep 17 00:00:00 2001 From: QiuShui1012 Date: Fri, 13 Nov 2026 03:31:07 +0800 Subject: [PATCH 3/6] fix(style): fix style again --- .../anvilcraft/init/block/ModBlocks.java | 275 +++++++++++++----- .../dubhe/anvilcraft/init/item/ModItems.java | 49 ++-- 2 files changed, 233 insertions(+), 91 deletions(-) diff --git a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java index 0f74c76d4e..58f8e32d14 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java @@ -1,9 +1,12 @@ package dev.dubhe.anvilcraft.init.block; import com.mojang.math.Quadrant; +import dev.anvilcraft.lib.v2.registrum.providers.DataGenContext; import dev.anvilcraft.lib.v2.registrum.providers.ProviderType; +import dev.anvilcraft.lib.v2.registrum.providers.generators.RegistrumItemModelGenerator; import dev.anvilcraft.lib.v2.registrum.providers.generators.model.PropertyDispatchWrap; import dev.anvilcraft.lib.v2.registrum.util.entry.BlockEntry; +import dev.anvilcraft.lib.v2.util.nullness.NonNullBiConsumer; import dev.anvilcraft.lib.v2.util.nullness.NonNullFunction; import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.power.IPowerComponent.Switch; @@ -320,6 +323,7 @@ import net.minecraft.util.Unit; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -367,10 +371,7 @@ import static dev.dubhe.anvilcraft.AnvilCraft.REGISTRUM; -@SuppressWarnings({ - "unused", - "CodeBlock2Expr" -}) +@SuppressWarnings({"unused", "CodeBlock2Expr", "Convert2Lambda"}) public class ModBlocks { public static final BlockEntry AUTO_ENCHANTING_TABLE = REGISTRUM .block("auto_enchanting_table", AutoEnchantingTableBlock::new) @@ -598,10 +599,18 @@ public class ModBlocks { .item(CreativeContainerBlockItem::new) .transform(PropertiesProviderUtil::blockItem) .properties(properties -> properties.rarity(Rarity.EPIC)) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( - ctx.get(), - ItemModelUtils.specialModel(ctx.getId().withPrefix("block/"), CreativeFluidTankItemRenderer.Unbaked.INSTANCE) - )) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumItemModelGenerator generator + ) { + generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel(ctx.getId().withPrefix("block/"), CreativeFluidTankItemRenderer.Unbaked.INSTANCE) + ); + } + }) .build() .register(); @@ -612,10 +621,18 @@ public class ModBlocks { .blockstate(DataGenUtil::noExtraModelOrState) .item(FluidTankBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> DataGenUtil - .specialBlockItem(FluidTankItemRenderer.Unbaked.INSTANCE, false) - .accept(ctx, generator) - ) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumItemModelGenerator generator + ) { + DataGenUtil.specialBlockItem( + FluidTankItemRenderer.Unbaked.INSTANCE, + false + ).accept(ctx, generator); + } + }) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .recipe(RegistrumBlockRecipeLoader::fluidTank) @@ -636,10 +653,18 @@ public class ModBlocks { .item(LargeFluidTankBlockItem::new) .transform(PropertiesProviderUtil::blockItem) .properties(properties -> properties.stacksTo(16)) - .model(() -> (ctx, generator) -> DataGenUtil - .specialBlockItem(LargeFluidTankItemRenderer.Unbaked.INSTANCE, true) - .accept(ctx, generator) - ) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumItemModelGenerator generator + ) { + DataGenUtil.specialBlockItem( + LargeFluidTankItemRenderer.Unbaked.INSTANCE, + true + ).accept(ctx, generator); + } + }) .build() .blockstate(DataGenUtil::noExtraModelOrState) .tag(BlockTags.MINEABLE_WITH_PICKAXE) @@ -679,10 +704,18 @@ public class ModBlocks { .item(CreativeContainerBlockItem::new) .transform(PropertiesProviderUtil::blockItem) .properties(properties -> properties.rarity(Rarity.EPIC)) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( - ctx.get(), - ItemModelUtils.specialModel(ctx.getId().withPrefix("block/"), CreativeCrateItemRenderer.Unbaked.INSTANCE) - )) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumItemModelGenerator generator + ) { + generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel(ctx.getId().withPrefix("block/"), CreativeCrateItemRenderer.Unbaked.INSTANCE) + ); + } + }) .build() .register(); @@ -1199,11 +1232,19 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .blockstate(DataGenUtil::noExtraModelOrState) .item(TeslaTowerItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( - ctx.get(), - ItemModelUtils.plainModel(ctx.getId().withPrefix("block/").withSuffix("_overall")), - new ClientItem.Properties(true, true, 1.0F) - )) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumItemModelGenerator generator + ) { + generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.plainModel(ctx.getId().withPrefix("block/").withSuffix("_overall")), + new ClientItem.Properties(true, true, 1.0F) + ); + } + }) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .recipe(RegistrumBlockRecipeLoader::teslaTower) @@ -1371,7 +1412,12 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .tag(BlockTags.MINEABLE_WITH_PICKAXE) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/").withSuffix("_0"))) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/").withSuffix("_0")); + } + }) .build() .recipe(RegistrumBlockRecipeLoader::loadMonitor) .register(); @@ -1395,7 +1441,12 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); + } + }) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); @@ -1419,7 +1470,12 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); + } + }) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); @@ -1443,7 +1499,12 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); + } + }) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); @@ -1467,7 +1528,12 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); + } + }) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); @@ -1491,7 +1557,12 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .item() .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.POWER_CONVERTER) - .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/"))) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.createWithExistingModel(ctx.get(), ctx.getId().withPrefix("block/")); + } + }) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .register(); @@ -1624,10 +1695,15 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p }) .item(SmartBlockPlacerBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( - ctx.get(), new SmartBlockPlacerItemModel.Unbaked(ctx.getId().withPrefix("block/")), - new ClientItem.Properties(true, true, 1.0F) - )) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.itemModelOutput.accept( + ctx.get(), new SmartBlockPlacerItemModel.Unbaked(ctx.getId().withPrefix("block/")), + new ClientItem.Properties(true, true, 1.0F) + ); + } + }) .build() .tag(BlockTags.MINEABLE_WITH_PICKAXE) .recipe(RegistrumBlockRecipeLoader::smartBlockPlacer) @@ -2235,7 +2311,15 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.WITHER_IMMUNE, BlockTags.DRAGON_IMMUNE, ModBlockTags.COLLISION_IMMUNE) .item(CelestialForgingAnvilPortalBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), AnvilCraft.of("block/celestial_forging_anvil_gate"))) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumItemModelGenerator generator + ) { + generator.createWithExistingModel(ctx.get(), AnvilCraft.of("block/celestial_forging_anvil_gate")); + } + }) .properties(properties -> properties .rarity(Rarity.EPIC) .component(ModComponents.ETERNAL, Eternal.DEFAULT) @@ -2317,10 +2401,18 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .loot((tables, block) -> tables.add(block, LootTable.lootTable())) .item(RuinsBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> DataGenUtil.specialItem( - RuinsBlockItemRenderer.Unbaked.INSTANCE, - false - ).accept(ctx, generator)) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumItemModelGenerator generator + ) { + DataGenUtil.specialItem( + RuinsBlockItemRenderer.Unbaked.INSTANCE, + false + ).accept(ctx, generator); + } + }) .build() .register(); @@ -2878,7 +2970,12 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .item() .transform(PropertiesProviderUtil::blockItem) .tag(ItemTags.WALLS) - .model(() -> (ctx, generator) -> generator.createWithExistingModel(ctx.get(), AnvilCraft.of("block/heavy_iron_wall_inventory"))) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.createWithExistingModel(ctx.get(), AnvilCraft.of("block/heavy_iron_wall_inventory")); + } + }) .build() .register(); @@ -3233,10 +3330,13 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .properties(properties -> properties.sound(SoundType.HONEY_BLOCK)) .item(ResinBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> DataGenUtil - .specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator) - ) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator); + } + }) .tag(Tags.Items.STORAGE_BLOCKS, ModItemTags.STORAGE_BLOCKS_RESIN) .build() .tag(Tags.Blocks.STORAGE_BLOCKS, ModBlockTags.STORAGE_BLOCKS_RESIN) @@ -3261,10 +3361,13 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .blockstate(DataGenUtil::noExtraModelOrState) .item(HasMobBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> DataGenUtil - .specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator) - ) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator); + } + }) .properties(properties -> properties.component( ModComponents.SAVED_ENTITY, new SavedEntity(EntityType.MOOSHROOM, new CompoundTag(), false) @@ -3291,10 +3394,13 @@ public boolean doesSneakBypassUse(ItemStack stack, LevelReader level, BlockPos p .blockstate(DataGenUtil::noExtraModelOrState) .item(HasMobBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> DataGenUtil - .specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) - .accept(ctx, generator) - ) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + DataGenUtil.specialBlockItem(new HasMobBlockItemRenderer.Unbaked(ctx.get().getBlock()), false) + .accept(ctx, generator); + } + }) .properties(properties -> properties.component( ModComponents.SAVED_ENTITY, new SavedEntity(EntityType.ZOMBIE, new CompoundTag(), true) @@ -4927,10 +5033,18 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .requiresCorrectToolForDrops()) .item(StorageFluidPortBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> { - var model = ctx.getId().withPrefix("block/"); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite(ItemModelUtils.plainModel(model), - ItemModelUtils.specialModel(model, StorageFluidPortItemRenderer.Unbaked.INSTANCE))); + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + var model = ctx.getId().withPrefix("block/"); + generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.composite( + ItemModelUtils.plainModel(model), + ItemModelUtils.specialModel(model, StorageFluidPortItemRenderer.Unbaked.INSTANCE) + ) + ); + } }) .build() .blockstate(DataGenUtil::noExtraModelOrState) @@ -4962,12 +5076,15 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .requiresCorrectToolForDrops()) .item(StoragePortBlockItem::new) .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> { - var model = ctx.getId().withPrefix("block/"); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( - ItemModelUtils.plainModel(model), - ItemModelUtils.specialModel(model, StoragePortItemRenderer.Unbaked.INSTANCE) - )); + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + var model = ctx.getId().withPrefix("block/"); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( + ItemModelUtils.plainModel(model), + ItemModelUtils.specialModel(model, StoragePortItemRenderer.Unbaked.INSTANCE) + )); + } }) .build() .blockstate(DataGenUtil::noExtraModelOrState) @@ -5267,10 +5384,18 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( - ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_core"), new MonolithItemRenderer.Unbaked(ctx.get().getBlock())) - )) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel( + AnvilCraft.of("block/monolith_core"), + new MonolithItemRenderer.Unbaked(ctx.get().getBlock()) + ) + ); + } + }) .build() .recipe(RegistrumBlockRecipeLoader::monolithCore) .register(); @@ -5286,10 +5411,18 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( - ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/monolith_line"), new MonolithItemRenderer.Unbaked(ctx.get().getBlock())) - )) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel( + AnvilCraft.of("block/monolith_line"), + new MonolithItemRenderer.Unbaked(ctx.get().getBlock()) + ) + ); + } + }) .build() .recipe(RegistrumBlockRecipeLoader::monolithLine) .register(); diff --git a/src/main/java/dev/dubhe/anvilcraft/init/item/ModItems.java b/src/main/java/dev/dubhe/anvilcraft/init/item/ModItems.java index c9313bb450..f5b7199970 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/item/ModItems.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/item/ModItems.java @@ -156,10 +156,7 @@ import static dev.dubhe.anvilcraft.AnvilCraft.REGISTRUM; -@SuppressWarnings({ - "unused", - "CodeBlock2Expr" -}) +@SuppressWarnings({"unused", "CodeBlock2Expr", "Convert2Lambda"}) public class ModItems { public static final ItemEntry GUIDE_BOOK = REGISTRUM.item("guide_book", GuideBookItem::new) .properties(p -> p.stacksTo(1)) @@ -772,10 +769,13 @@ public void accept( public static final ItemEntry DISK = REGISTRUM.item("disk", DiskItem::new) .properties(p -> p.stacksTo(1)) - .model(() -> (ctx, generator) -> { - var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( - ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, DiskItemRenderer.Unbaked.INSTANCE))); + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( + ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, DiskItemRenderer.Unbaked.INSTANCE))); + } }) .recipe(RegistrumItemRecipeLoader::disk) .register(); @@ -783,19 +783,25 @@ public void accept( public static final ItemEntry STRUCTURE_DISK = REGISTRUM .item("structure_disk", StructureDiskItem::new) .properties(p -> p.stacksTo(1)) - .model(() -> (ctx, generator) -> { - var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( - ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, DiskItemRenderer.Unbaked.INSTANCE))); + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( + ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, DiskItemRenderer.Unbaked.INSTANCE))); + } }) .recipe(RegistrumItemRecipeLoader::structureDisk) .register(); public static final ItemEntry FILTER = REGISTRUM.item("filter", FilterItem::new) - .model(() -> (ctx, generator) -> { - var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); - generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( - ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, FilterItemRenderer.Unbaked.INSTANCE))); + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + var model = ModelTemplates.FLAT_ITEM.create(ctx.get(), TextureMapping.layer0(ctx.get()), generator.modelOutput); + generator.itemModelOutput.accept(ctx.get(), ItemModelUtils.composite( + ItemModelUtils.plainModel(model), ItemModelUtils.specialModel(model, FilterItemRenderer.Unbaked.INSTANCE))); + } }) .recipe(RegistrumItemRecipeLoader::filter) .properties(properties -> properties.stacksTo(16)) @@ -1563,10 +1569,13 @@ private static ItemEntry registerCementBucket(Color color) { .register(); public static final ItemEntry CHECK_VALVE = REGISTRUM.item("check_valve", CheckValveItem::new) - .model(() -> (ctx, generator) -> { - var itemModel = new ModelTemplate(Optional.of(ctx.getId().withPrefix("block/")), Optional.empty()) - .create(ctx.get(), new TextureMapping(), generator.modelOutput); - generator.createWithExistingModel(ctx.get(), itemModel); + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + var itemModel = new ModelTemplate(Optional.of(ctx.getId().withPrefix("block/")), Optional.empty()) + .create(ctx.get(), new TextureMapping(), generator.modelOutput); + generator.createWithExistingModel(ctx.get(), itemModel); + } }) .recipe(RegistrumItemRecipeLoader::checkValve) .register(); From 3c25f3095a9db8325c8faf0f42dde12179f254e1 Mon Sep 17 00:00:00 2001 From: QiuShui1012 Date: Fri, 13 Nov 2026 03:39:25 +0800 Subject: [PATCH 4/6] fix(style): fix style againn --- .../anvilcraft/init/block/ModBlocks.java | 206 ++++++++++-------- 1 file changed, 116 insertions(+), 90 deletions(-) diff --git a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java index 58f8e32d14..5a8cd60942 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java @@ -3,6 +3,7 @@ import com.mojang.math.Quadrant; import dev.anvilcraft.lib.v2.registrum.providers.DataGenContext; import dev.anvilcraft.lib.v2.registrum.providers.ProviderType; +import dev.anvilcraft.lib.v2.registrum.providers.generators.RegistrumBlockModelGenerator; import dev.anvilcraft.lib.v2.registrum.providers.generators.RegistrumItemModelGenerator; import dev.anvilcraft.lib.v2.registrum.providers.generators.model.PropertyDispatchWrap; import dev.anvilcraft.lib.v2.registrum.util.entry.BlockEntry; @@ -2012,25 +2013,33 @@ public void accept(DataGenContext ctx, Registru .properties(PropertiesProviderUtil::metalSound) .properties(it -> it.noOcclusion().isValidSpawn(Blocks::never).mapColor(MapColor.COLOR_GRAY)) .tag(BlockTags.MINEABLE_WITH_PICKAXE, ModBlockTags.SLIDING_RAILS) - .blockstate(() -> (ctx, generator) -> generator.blockStateOutput.accept( - MultiVariantGenerator.dispatch(ctx.get()) - .with( - PropertyDispatchWrap.initial(SlidingRailBlock.AXIS) - .select( - Direction.Axis.X, - BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail")) - .with(BlockModelGenerators.Y_ROT_90) - ) - .select( - Direction.Axis.Z, - BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail")) - ) - .select( - Direction.Axis.Y, - BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail_cross")) - ) - .dispatch() - ))) + .blockstate(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumBlockModelGenerator generator + ) { + generator.blockStateOutput.accept( + MultiVariantGenerator.dispatch(ctx.get()) + .with( + PropertyDispatchWrap.initial(SlidingRailBlock.AXIS) + .select( + Direction.Axis.X, + BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail")) + .with(BlockModelGenerators.Y_ROT_90) + ) + .select( + Direction.Axis.Z, + BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail")) + ) + .select( + Direction.Axis.Y, + BlockModelGenerators.plainVariant(AnvilCraft.of("block/sliding_rail_cross")) + ) + .dispatch() + )); + } + }) .item() .transform(PropertiesProviderUtil::blockItem) .model(DataGenUtil::blockItem) @@ -3924,35 +3933,43 @@ private static BlockEntry registerReinforcedConcreteBlo .transform(PropertiesProviderUtil::blockItem) .tag(ModItemTags.REINFORCED_CONCRETE, Tags.Items.DYED, ModItemTags.DYED_COLORS.get(color)) .build() - .blockstate(() -> (ctx, generator) -> { - Identifier singleModel = generator.withParent(ModelTemplates.CUBE_ALL) - .texture(TextureSlot.ALL, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) - .build(generator.modLoc("block/%s_reinforced_concrete".formatted(color))); - Identifier topModel = generator.withParent(ModelTemplates.CUBE_COLUMN) - .texture(TextureSlot.END, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) - .texture(TextureSlot.SIDE, generator.modLoc("block/%s_reinforced_concrete_top".formatted(color)), false) - .build(generator.modLoc("block/%s_reinforced_concrete_top".formatted(color))); - Identifier bottomModel = generator.withParent(ModelTemplates.CUBE_COLUMN) - .texture(TextureSlot.END, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) - .texture(TextureSlot.SIDE, generator.modLoc("block/%s_reinforced_concrete_bottom".formatted(color)), false) - .build(generator.modLoc("block/%s_reinforced_concrete_bottom".formatted(color))); - generator.blockStateOutput.accept(MultiVariantGenerator.dispatch(ctx.get()) - .with( - PropertyDispatchWrap.initial(ReinforcedConcreteBlock.HALF) - .select( - ReinforcedConcreteHalf.TOP, - BlockModelGenerators.plainVariant(topModel) - ) - .select( - ReinforcedConcreteHalf.SINGLE, - BlockModelGenerators.plainVariant(singleModel) - ) - .select( - ReinforcedConcreteHalf.BOTTOM, - BlockModelGenerators.plainVariant(bottomModel) - ) - .dispatch() - )); + .blockstate(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumBlockModelGenerator generator + ) { + Identifier singleModel = generator.withParent(ModelTemplates.CUBE_ALL) + .texture(TextureSlot.ALL, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) + .build(generator.modLoc("block/%s_reinforced_concrete".formatted(color))); + Identifier topModel = generator.withParent(ModelTemplates.CUBE_COLUMN) + .texture(TextureSlot.END, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) + .texture(TextureSlot.SIDE, generator.modLoc("block/%s_reinforced_concrete_top".formatted(color)), false) + .build(generator.modLoc("block/%s_reinforced_concrete_top".formatted(color))); + Identifier bottomModel = generator.withParent(ModelTemplates.CUBE_COLUMN) + .texture(TextureSlot.END, generator.modLoc("block/%s_reinforced_concrete".formatted(color)), false) + .texture(TextureSlot.SIDE, generator.modLoc("block/%s_reinforced_concrete_bottom".formatted(color)), false) + .build(generator.modLoc("block/%s_reinforced_concrete_bottom".formatted(color))); + generator.blockStateOutput.accept( + MultiVariantGenerator.dispatch(ctx.get()) + .with( + PropertyDispatchWrap.initial(ReinforcedConcreteBlock.HALF) + .select( + ReinforcedConcreteHalf.TOP, + BlockModelGenerators.plainVariant(topModel) + ) + .select( + ReinforcedConcreteHalf.SINGLE, + BlockModelGenerators.plainVariant(singleModel) + ) + .select( + ReinforcedConcreteHalf.BOTTOM, + BlockModelGenerators.plainVariant(bottomModel) + ) + .dispatch() + ) + ); + } }) .tag(BlockTags.MINEABLE_WITH_PICKAXE, Tags.Blocks.DYED, ModBlockTags.DYED_COLORS.get(color)) .register(); @@ -4551,18 +4568,24 @@ private static BlockEntry registerReinforcedConcreteWallBlock(Color c private static BlockEntry registerCementCauldron(Color color) { return REGISTRUM.block(color + "_cement_cauldron", p -> new CementCauldronBlock(p, color)) .initialProperties(() -> Blocks.CAULDRON) - .blockstate(() -> (ctx, generator) -> { - TextureMapping mapping = new TextureMapping() - .put(TextureSlot.BOTTOM, new Material(generator.mcLoc("block/cauldron_bottom"))) - .put(TextureSlot.INSIDE, new Material(generator.mcLoc("block/cauldron_inner"))) - .put(TextureSlot.SIDE, new Material(generator.mcLoc("block/cauldron_side"))) - .put(TextureSlot.TOP, new Material(generator.mcLoc("block/cauldron_top"))) - .put(TextureSlot.PARTICLE, new Material(generator.mcLoc("block/cauldron_side"))) - .put(TextureSlot.CONTENT, new Material(generator.modLoc("block/%s_cement".formatted(color)))); - generator.blockStateOutput.accept(MultiVariantGenerator.dispatch( - ctx.get(), - BlockModelGenerators.plainVariant(generator.withParent(ModelTemplates.CAULDRON_FULL, mapping).build(ctx.get())) - )); + .blockstate(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext ctx, + RegistrumBlockModelGenerator generator + ) { + TextureMapping mapping = new TextureMapping() + .put(TextureSlot.BOTTOM, new Material(generator.mcLoc("block/cauldron_bottom"))) + .put(TextureSlot.INSIDE, new Material(generator.mcLoc("block/cauldron_inner"))) + .put(TextureSlot.SIDE, new Material(generator.mcLoc("block/cauldron_side"))) + .put(TextureSlot.TOP, new Material(generator.mcLoc("block/cauldron_top"))) + .put(TextureSlot.PARTICLE, new Material(generator.mcLoc("block/cauldron_side"))) + .put(TextureSlot.CONTENT, new Material(generator.modLoc("block/%s_cement".formatted(color)))); + generator.blockStateOutput.accept(MultiVariantGenerator.dispatch( + ctx.get(), + BlockModelGenerators.plainVariant(generator.withParent(ModelTemplates.CAULDRON_FULL, mapping).build(ctx.get())) + )); + } }) .loot((tables, block) -> tables.dropOther(block, Items.CAULDRON)) .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.CAULDRONS) @@ -4856,36 +4879,39 @@ private static BlockEntry registerCementLiquidBlock(Color color) { .initialProperties(() -> Blocks.LAPIS_BLOCK) .loot(SugarBlock::loot) .tag(BlockTags.MINEABLE_WITH_PICKAXE, ModBlockTags.STORAGE_BLOCKS_SUGAR, Tags.Blocks.STORAGE_BLOCKS) - .blockstate(() -> (ctx, generator) -> { - Identifier block = ModelLocationUtils.getModelLocation(ctx.get()); - Identifier stage0 = ModelTemplates.CUBE_ALL.create( - block, - new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block"), false)), - generator.modelOutput - ); - Identifier stage1 = ModelTemplates.CUBE_ALL.create( - block.withSuffix("_1"), - new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_1"), false)), - generator.modelOutput - ); - Identifier stage2 = ModelTemplates.CUBE_ALL.create( - block.withSuffix("_2"), - new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_2"), false)), - generator.modelOutput - ); - Identifier stage3 = ModelTemplates.CUBE_ALL.create( - block.withSuffix("_3"), - new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_3"), false)), - generator.modelOutput - ); - generator.blockStateOutput.accept(MultiVariantGenerator.dispatch(ctx.get()).with( - PropertyDispatchWrap.initial(SugarBlock.FRAGMENTATION_DEGREE) - .select(FragmentationDegree.ZERO, BlockModelGenerators.plainVariant(stage0)) - .select(FragmentationDegree.ONE, BlockModelGenerators.plainVariant(stage1)) - .select(FragmentationDegree.TWO, BlockModelGenerators.plainVariant(stage2)) - .select(FragmentationDegree.THREE, BlockModelGenerators.plainVariant(stage3)) - .dispatch() - )); + .blockstate(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumBlockModelGenerator generator) { + Identifier block = ModelLocationUtils.getModelLocation(ctx.get()); + Identifier stage0 = ModelTemplates.CUBE_ALL.create( + block, + new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block"), false)), + generator.modelOutput + ); + Identifier stage1 = ModelTemplates.CUBE_ALL.create( + block.withSuffix("_1"), + new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_1"), false)), + generator.modelOutput + ); + Identifier stage2 = ModelTemplates.CUBE_ALL.create( + block.withSuffix("_2"), + new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_2"), false)), + generator.modelOutput + ); + Identifier stage3 = ModelTemplates.CUBE_ALL.create( + block.withSuffix("_3"), + new TextureMapping().put(TextureSlot.ALL, new Material(generator.modLoc("block/sugar_block_3"), false)), + generator.modelOutput + ); + generator.blockStateOutput.accept(MultiVariantGenerator.dispatch(ctx.get()).with( + PropertyDispatchWrap.initial(SugarBlock.FRAGMENTATION_DEGREE) + .select(FragmentationDegree.ZERO, BlockModelGenerators.plainVariant(stage0)) + .select(FragmentationDegree.ONE, BlockModelGenerators.plainVariant(stage1)) + .select(FragmentationDegree.TWO, BlockModelGenerators.plainVariant(stage2)) + .select(FragmentationDegree.THREE, BlockModelGenerators.plainVariant(stage3)) + .dispatch() + )); + } }) .item() .transform(PropertiesProviderUtil::blockItem) From f12eb5a5c7cba0d49cb5f104ac89de384806c04a Mon Sep 17 00:00:00 2001 From: QiuShui1012 Date: Fri, 13 Nov 2026 03:54:15 +0800 Subject: [PATCH 5/6] fix(style): fix style againnn --- .../anvilcraft/init/block/ModBlocks.java | 58 +++++++++++++------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java index 5a8cd60942..3a6318a4d4 100644 --- a/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java +++ b/src/main/java/dev/dubhe/anvilcraft/init/block/ModBlocks.java @@ -5458,40 +5458,64 @@ public void accept(DataGenContext ctx, RegistrumItemModelGenera GiantMonolithCoreBlock::new ) .initialProperties(() -> Blocks.REINFORCED_DEEPSLATE) - .properties(properties -> properties.pushReaction(PushReaction.BLOCK)) + .properties(properties -> properties + .pushReaction(PushReaction.BLOCK) + .lightLevel(state -> 10) + .noOcclusion() + .noCollision() + .overrideLootTable(Optional.of(ResourceKey.create(Registries.LOOT_TABLE, AnvilCraft.of("blocks/giant_monolith_core")))) + ) .tag(BlockTags.WITHER_IMMUNE, BlockTags.DRAGON_IMMUNE) .loot(SimpleMultiPartBlock::loot) - .properties(properties -> properties.lightLevel(state -> 10).noOcclusion().noCollision()) - .properties(properties -> properties.overrideLootTable(Optional.of(ResourceKey.create( - Registries.LOOT_TABLE, AnvilCraft.of("blocks/giant_monolith_core"))))) .lang("Giant Monolith Core") .item(SimpleMultiPartBlockItem::new) .transform(PropertiesProviderUtil::blockItem) .properties(properties -> properties.stacksTo(16).useBlockDescriptionPrefix()) .setData(ProviderType.LANG, (_, _) -> {}) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( - ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/giant_monolith_core"), new MonolithItemRenderer.Unbaked(ctx.get().getBlock())) - )) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept( + DataGenContext> ctx, + RegistrumItemModelGenerator generator + ) { + generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel( + AnvilCraft.of("block/giant_monolith_core"), + new MonolithItemRenderer.Unbaked(ctx.get().getBlock()) + ) + ); + } + }) .build() .blockstate(DataGenUtil::noExtraModelOrState) .register(); public static final BlockEntry GIANT_MONOLITH_LINE = REGISTRUM.block("giant_monolith_line", MonolithLineBlock::new) .initialProperties(() -> Blocks.REINFORCED_DEEPSLATE) - .properties(properties -> properties.pushReaction(PushReaction.BLOCK)) + .properties(properties -> properties + .pushReaction(PushReaction.BLOCK) + .lightLevel(state -> 10) + .noOcclusion() + .noCollision() + .overrideLootTable(Optional.of(ResourceKey.create(Registries.LOOT_TABLE, AnvilCraft.of("blocks/giant_monolith_line")))) + ) .tag(BlockTags.WITHER_IMMUNE, BlockTags.DRAGON_IMMUNE) - .properties(properties -> properties.lightLevel(state -> 10).noOcclusion().noCollision()) - .properties(properties -> properties.overrideLootTable(Optional.of(ResourceKey.create( - Registries.LOOT_TABLE, AnvilCraft.of("blocks/giant_monolith_line"))))) - .lang("Giant Monolith Line") .blockstate(DataGenUtil::noExtraModelOrState) .item() .transform(PropertiesProviderUtil::blockItem) - .model(() -> (ctx, generator) -> generator.itemModelOutput.accept( - ctx.get(), - ItemModelUtils.specialModel(AnvilCraft.of("block/giant_monolith_line"), new MonolithItemRenderer.Unbaked(ctx.get().getBlock())) - )) + .model(() -> new NonNullBiConsumer<>() { + @Override + public void accept(DataGenContext ctx, RegistrumItemModelGenerator generator) { + generator.itemModelOutput.accept( + ctx.get(), + ItemModelUtils.specialModel( + AnvilCraft.of("block/giant_monolith_line"), + new MonolithItemRenderer.Unbaked(ctx.get().getBlock()) + ) + ); + } + }) .build() .register(); From 45d86580f92bc26137f4627e6966f5f77c3f1c75 Mon Sep 17 00:00:00 2001 From: QiuShui1012 Date: Fri, 13 Nov 2026 06:27:37 +0800 Subject: [PATCH 6/6] fix(id): update leftover references to renamed ids MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 手册 ageratum 双语文档改用新 id,修复配方预览空白与按 W 跳转失效 --- .../en_us/002_material/101_capacitor.md | 16 +++++++-------- .../en_us/003_power/102_power_charge.md | 4 ++-- .../ageratum/en_us/006_prop/011_chocolate.md | 20 +++++++++---------- .../zh_cn/002_material/101_capacitor.md | 16 +++++++-------- .../zh_cn/003_power/102_power_charge.md | 4 ++-- .../ageratum/zh_cn/006_prop/011_chocolate.md | 20 +++++++++---------- 6 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/main/resources/assets/anvilcraft/ageratum/en_us/002_material/101_capacitor.md b/src/main/resources/assets/anvilcraft/ageratum/en_us/002_material/101_capacitor.md index e5c645e8f3..538da1d7df 100644 --- a/src/main/resources/assets/anvilcraft/ageratum/en_us/002_material/101_capacitor.md +++ b/src/main/resources/assets/anvilcraft/ageratum/en_us/002_material/101_capacitor.md @@ -4,29 +4,29 @@ navigation: icon: "anvilcraft:capacitor" items: - anvilcraft:capacitor - - anvilcraft:capacitor_empty + - anvilcraft:empty_capacitor - anvilcraft:supercapacitor - - anvilcraft:supercapacitor_empty + - anvilcraft:empty_supercapacitor --- # Capacitor - + - + # - Can work with to store or release electrical energy - + - + # @@ -37,11 +37,11 @@ The resin block must contain a Creeper If it is a charged version, there is a 50% chance of a massive explosion, and a 50% chance of obtaining a fully charged capacitor - + - + ## Salvaging diff --git a/src/main/resources/assets/anvilcraft/ageratum/en_us/003_power/102_power_charge.md b/src/main/resources/assets/anvilcraft/ageratum/en_us/003_power/102_power_charge.md index 4d56301f1d..75adcae526 100644 --- a/src/main/resources/assets/anvilcraft/ageratum/en_us/003_power/102_power_charge.md +++ b/src/main/resources/assets/anvilcraft/ageratum/en_us/003_power/102_power_charge.md @@ -39,14 +39,14 @@ items: - + --- - + --- diff --git a/src/main/resources/assets/anvilcraft/ageratum/en_us/006_prop/011_chocolate.md b/src/main/resources/assets/anvilcraft/ageratum/en_us/006_prop/011_chocolate.md index 52451d283b..2e53d8915f 100644 --- a/src/main/resources/assets/anvilcraft/ageratum/en_us/006_prop/011_chocolate.md +++ b/src/main/resources/assets/anvilcraft/ageratum/en_us/006_prop/011_chocolate.md @@ -7,11 +7,11 @@ items: - anvilcraft:chocolate_block - anvilcraft:chocolate_slab - anvilcraft:chocolate_stairs - - anvilcraft:chocolate_black + - anvilcraft:black_chocolate - anvilcraft:black_chocolate_block - anvilcraft:black_chocolate_slab - anvilcraft:black_chocolate_stairs - - anvilcraft:chocolate_white + - anvilcraft:white_chocolate - anvilcraft:white_chocolate_block - anvilcraft:white_chocolate_slab - anvilcraft:white_chocolate_stairs @@ -38,13 +38,13 @@ items: - + - + @@ -53,8 +53,8 @@ items: # Eating - : 2 Hunger + 16 Saturation + 30s Speed IV -- : 2 Hunger + 8 Saturation + 30s Speed II + 30s Haste III -- : 2 Hunger + 8 Saturation + 30s Speed II + 30s Jump Boost IV +- : 2 Hunger + 8 Saturation + 30s Speed II + 30s Haste III +- : 2 Hunger + 8 Saturation + 30s Speed II + 30s Jump Boost IV Can be eaten even when full @@ -69,16 +69,16 @@ Can be eaten even when full --- - - + + # Chocolate Blocks Standing on chocolate blocks/stairs/slabs continuously grants effects: - : Speed 10 -- : Speed 5 + Haste 4 -- : Speed 5 + Jump Boost 6 +- : Speed 5 + Haste 4 +- : Speed 5 + Jump Boost 6 - : Speed 5 + Jump Boost 6 + Haste 4 diff --git a/src/main/resources/assets/anvilcraft/ageratum/zh_cn/002_material/101_capacitor.md b/src/main/resources/assets/anvilcraft/ageratum/zh_cn/002_material/101_capacitor.md index d8827a4815..814385c806 100644 --- a/src/main/resources/assets/anvilcraft/ageratum/zh_cn/002_material/101_capacitor.md +++ b/src/main/resources/assets/anvilcraft/ageratum/zh_cn/002_material/101_capacitor.md @@ -4,29 +4,29 @@ navigation: icon: "anvilcraft:capacitor" items: - anvilcraft:capacitor - - anvilcraft:capacitor_empty + - anvilcraft:empty_capacitor - anvilcraft:supercapacitor - - anvilcraft:supercapacitor_empty + - anvilcraft:empty_supercapacitor --- # 电容器 - + - + # - 能够配合存储电能或释放电能 - + - + # @@ -37,11 +37,11 @@ items: 若为高压版本,有50%概率发生大爆炸、有50%概率获得充满的电容器 - + - + ## 拆解 diff --git a/src/main/resources/assets/anvilcraft/ageratum/zh_cn/003_power/102_power_charge.md b/src/main/resources/assets/anvilcraft/ageratum/zh_cn/003_power/102_power_charge.md index 1c2ee70814..5478153c68 100644 --- a/src/main/resources/assets/anvilcraft/ageratum/zh_cn/003_power/102_power_charge.md +++ b/src/main/resources/assets/anvilcraft/ageratum/zh_cn/003_power/102_power_charge.md @@ -39,14 +39,14 @@ items: - + --- - + --- diff --git a/src/main/resources/assets/anvilcraft/ageratum/zh_cn/006_prop/011_chocolate.md b/src/main/resources/assets/anvilcraft/ageratum/zh_cn/006_prop/011_chocolate.md index ea75cc0d10..da6f80172c 100644 --- a/src/main/resources/assets/anvilcraft/ageratum/zh_cn/006_prop/011_chocolate.md +++ b/src/main/resources/assets/anvilcraft/ageratum/zh_cn/006_prop/011_chocolate.md @@ -7,11 +7,11 @@ items: - anvilcraft:chocolate_block - anvilcraft:chocolate_slab - anvilcraft:chocolate_stairs - - anvilcraft:chocolate_black + - anvilcraft:black_chocolate - anvilcraft:black_chocolate_block - anvilcraft:black_chocolate_slab - anvilcraft:black_chocolate_stairs - - anvilcraft:chocolate_white + - anvilcraft:white_chocolate - anvilcraft:white_chocolate_block - anvilcraft:white_chocolate_slab - anvilcraft:white_chocolate_stairs @@ -38,13 +38,13 @@ items: - + - + @@ -53,8 +53,8 @@ items: # 食用 - :2 饥饿值 + 16 饱和度 + 30s 迅捷IV -- :2 饥饿值 + 8 饱和度 + 30s 迅捷II + 30s 急迫III -- :2 饥饿值 + 8 饱和度 + 30s 迅捷II + 30s 跳跃提升IV +- :2 饥饿值 + 8 饱和度 + 30s 迅捷II + 30s 急迫III +- :2 饥饿值 + 8 饱和度 + 30s 迅捷II + 30s 跳跃提升IV 饱了也能吃 @@ -69,8 +69,8 @@ items: --- - - + + # 巧克力方块 @@ -78,8 +78,8 @@ items: 站在巧克力块/楼梯/台阶上可以持续获得效果: - :迅捷10 -- :迅捷5 + 急迫4 -- :迅捷5 + 跳跃提升6 +- :迅捷5 + 急迫4 +- :迅捷5 + 跳跃提升6 - : 迅捷5 + 跳跃提升6 + 急迫4