修改材料注册和配方生成方式

This commit is contained in:
Light_Quanta 2025-06-14 11:03:01 +08:00
parent 5721dba646
commit 1a92d5e1f1
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
21 changed files with 415 additions and 152 deletions

View file

@ -1,4 +1,4 @@
// 1.21.1 2025-06-14T10:09:06.1391868 Recipes // 1.21.1 2025-06-14T10:59:27.3003539 Recipes
9775e550332c69f1ee2ac4a09834a35db6f6a2ed data/minecraft/recipe/ammo_box_add_ammo.json 9775e550332c69f1ee2ac4a09834a35db6f6a2ed data/minecraft/recipe/ammo_box_add_ammo.json
9775e550332c69f1ee2ac4a09834a35db6f6a2ed data/minecraft/recipe/ammo_box_extract_ammo.json 9775e550332c69f1ee2ac4a09834a35db6f6a2ed data/minecraft/recipe/ammo_box_extract_ammo.json
2e1d1bbf32801f3d355c0d3f78ebbb1122cebd4c data/minecraft/recipe/potion_mortar_shell.json 2e1d1bbf32801f3d355c0d3f78ebbb1122cebd4c data/minecraft/recipe/potion_mortar_shell.json
@ -44,6 +44,10 @@ c570eb1f7d03feb4896c5f3aa04279ce23bcd76e data/superbwarfare/advancement/recipes/
c8a34f3eab27e1987ada9bee13c40cb96098d15f data/superbwarfare/advancement/recipes/misc/annihilator_blueprint.json c8a34f3eab27e1987ada9bee13c40cb96098d15f data/superbwarfare/advancement/recipes/misc/annihilator_blueprint.json
edb954552dd2ec2f3aac2b4c6d13fca19b61648e data/superbwarfare/advancement/recipes/misc/aurelia_sceptre_blueprint.json edb954552dd2ec2f3aac2b4c6d13fca19b61648e data/superbwarfare/advancement/recipes/misc/aurelia_sceptre_blueprint.json
4d0cf20281017a3468915eeef192fd4262039223 data/superbwarfare/advancement/recipes/misc/bocek_blueprint.json 4d0cf20281017a3468915eeef192fd4262039223 data/superbwarfare/advancement/recipes/misc/bocek_blueprint.json
f897cf8f5c8968f22f8fc0638c7340a41345c162 data/superbwarfare/advancement/recipes/misc/cemented_carbide_action.json
061127e7f3c533fe2d2d889d79b1dadd30f3b0e4 data/superbwarfare/advancement/recipes/misc/cemented_carbide_barrel.json
fef50c56302629f3e056ce1a5bf4acf3db99e95c data/superbwarfare/advancement/recipes/misc/cemented_carbide_spring.json
03a243311236ce62987be96c6978c9ed52c801c7 data/superbwarfare/advancement/recipes/misc/cemented_carbide_trigger.json
cae0bca9d87ad212a3155135433ffe88f289c04c data/superbwarfare/advancement/recipes/misc/devotion_blueprint.json cae0bca9d87ad212a3155135433ffe88f289c04c data/superbwarfare/advancement/recipes/misc/devotion_blueprint.json
446c53cb5e07af26811f443ca4d6794a0fd04e42 data/superbwarfare/advancement/recipes/misc/glock_17_blueprint.json 446c53cb5e07af26811f443ca4d6794a0fd04e42 data/superbwarfare/advancement/recipes/misc/glock_17_blueprint.json
076fac5dd247bc92ef917e3728692ee185f81e3f data/superbwarfare/advancement/recipes/misc/glock_18_blueprint.json 076fac5dd247bc92ef917e3728692ee185f81e3f data/superbwarfare/advancement/recipes/misc/glock_18_blueprint.json
@ -79,6 +83,10 @@ dd88128230882947ff1f7e46ca413e571374cf88 data/superbwarfare/advancement/recipes/
0fe097b3fa12c718d826bc14eb69c384400e8a8b data/superbwarfare/advancement/recipes/misc/secondary_cataclysm_blueprint.json 0fe097b3fa12c718d826bc14eb69c384400e8a8b data/superbwarfare/advancement/recipes/misc/secondary_cataclysm_blueprint.json
1702fe19c2e72e3dd2e782d7210bf5fae195fc34 data/superbwarfare/advancement/recipes/misc/sentinel_blueprint.json 1702fe19c2e72e3dd2e782d7210bf5fae195fc34 data/superbwarfare/advancement/recipes/misc/sentinel_blueprint.json
636bdaeadd7771e8aec3a00a4a378817df83a2ea data/superbwarfare/advancement/recipes/misc/sks_blueprint.json 636bdaeadd7771e8aec3a00a4a378817df83a2ea data/superbwarfare/advancement/recipes/misc/sks_blueprint.json
414d4dd603fdbe185eab904313ad055999ffc937 data/superbwarfare/advancement/recipes/misc/steel_action.json
f1b0f1b10a2c0fa43551aa0d222516ef2fc6280f data/superbwarfare/advancement/recipes/misc/steel_barrel.json
a14ae75ff20bd01d2ada8fce0a7dd6ab55e37fc0 data/superbwarfare/advancement/recipes/misc/steel_spring.json
92a191e19fef3b7857ef0a4fe357fc87c78a43de data/superbwarfare/advancement/recipes/misc/steel_trigger.json
9d54e1586679df4baa68666303841a0e845f8728 data/superbwarfare/advancement/recipes/misc/svd_blueprint.json 9d54e1586679df4baa68666303841a0e845f8728 data/superbwarfare/advancement/recipes/misc/svd_blueprint.json
2a9b21d77cad688c1fb0c924d8be9bb7ded56f0d data/superbwarfare/advancement/recipes/misc/taser_blueprint.json 2a9b21d77cad688c1fb0c924d8be9bb7ded56f0d data/superbwarfare/advancement/recipes/misc/taser_blueprint.json
e414607d3519e157842ddb5163a2057b299dd487 data/superbwarfare/advancement/recipes/misc/trachelium_blueprint.json e414607d3519e157842ddb5163a2057b299dd487 data/superbwarfare/advancement/recipes/misc/trachelium_blueprint.json
@ -96,6 +104,10 @@ b5a2b05abd0da94388cbd46b73ae1446db0773b4 data/superbwarfare/recipe/annihilator_b
cce043ab62824b9ea7e3c7005692061eaec50396 data/superbwarfare/recipe/a_10a_container.json cce043ab62824b9ea7e3c7005692061eaec50396 data/superbwarfare/recipe/a_10a_container.json
cba1ec494c1313b5a84895be16e90a25c0bc754c data/superbwarfare/recipe/bocek_blueprint.json cba1ec494c1313b5a84895be16e90a25c0bc754c data/superbwarfare/recipe/bocek_blueprint.json
12953ac27377b7869a68cc67a3874b0e555b381a data/superbwarfare/recipe/bocek_smithing.json 12953ac27377b7869a68cc67a3874b0e555b381a data/superbwarfare/recipe/bocek_smithing.json
3b8ab54c66849f6af945cd9b18ee4a9bc3f4ddba data/superbwarfare/recipe/cemented_carbide_action.json
7a6f4ea0d09eea03dbfee2d61868d9db0b958522 data/superbwarfare/recipe/cemented_carbide_barrel.json
881a90c5bf36bf08bc7083707c42558b2c70db15 data/superbwarfare/recipe/cemented_carbide_spring.json
415ad91b7fd5c0118fda145eb4e4c6e4fe761cae data/superbwarfare/recipe/cemented_carbide_trigger.json
ae7c8b9ef2e97948f11bf753660c4ab4e94930e2 data/superbwarfare/recipe/devotion_blueprint.json ae7c8b9ef2e97948f11bf753660c4ab4e94930e2 data/superbwarfare/recipe/devotion_blueprint.json
4516cd2b8d2ca38c9bfb398dee8fcc0909d95e0d data/superbwarfare/recipe/devotion_smithing.json 4516cd2b8d2ca38c9bfb398dee8fcc0909d95e0d data/superbwarfare/recipe/devotion_smithing.json
1ca96490a6d317f6bc71e05a2dced261b8790c0b data/superbwarfare/recipe/glock_17_blueprint.json 1ca96490a6d317f6bc71e05a2dced261b8790c0b data/superbwarfare/recipe/glock_17_blueprint.json
@ -158,6 +170,10 @@ d7fef75ab1114da28461ae0c50f8cee3d1b58316 data/superbwarfare/recipe/secondary_cat
14719ade84f72afa292d94d035642e8573878b83 data/superbwarfare/recipe/sentinel_smithing.json 14719ade84f72afa292d94d035642e8573878b83 data/superbwarfare/recipe/sentinel_smithing.json
0512e158416faa91b207f4f7e271dff6e2f12c49 data/superbwarfare/recipe/sks_blueprint.json 0512e158416faa91b207f4f7e271dff6e2f12c49 data/superbwarfare/recipe/sks_blueprint.json
ba64964139e39f3f6b359ef46792754f1f5eee29 data/superbwarfare/recipe/sks_smithing.json ba64964139e39f3f6b359ef46792754f1f5eee29 data/superbwarfare/recipe/sks_smithing.json
f2777c054b27e9fb44deeb72ddb6325e0385a270 data/superbwarfare/recipe/steel_action.json
24868042d556c545e0b2c9f7244795e7d3fdce4f data/superbwarfare/recipe/steel_barrel.json
e6f83a418c7ee3b596206deaf86a46a2a4b34fe8 data/superbwarfare/recipe/steel_spring.json
21d12a61558a3bf820796be67bd7b58047d929dc data/superbwarfare/recipe/steel_trigger.json
940339216a1dc73e8e9f090af1b5a638db81581a data/superbwarfare/recipe/svd_blueprint.json 940339216a1dc73e8e9f090af1b5a638db81581a data/superbwarfare/recipe/svd_blueprint.json
a25453be786b0f279d622dd69e4ad85d7a2dae0e data/superbwarfare/recipe/svd_smithing.json a25453be786b0f279d622dd69e4ad85d7a2dae0e data/superbwarfare/recipe/svd_smithing.json
74f766c560a92652471e00af24019caec23cf85c data/superbwarfare/recipe/taser_blueprint.json 74f766c560a92652471e00af24019caec23cf85c data/superbwarfare/recipe/taser_blueprint.json

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_cemented_carbide_ingot": {
"conditions": {
"items": [
{
"items": "superbwarfare:cemented_carbide_ingot"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "superbwarfare:cemented_carbide_action"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_cemented_carbide_ingot"
]
],
"rewards": {
"recipes": [
"superbwarfare:cemented_carbide_action"
]
}
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_cemented_carbide_ingot": {
"conditions": {
"items": [
{
"items": "superbwarfare:cemented_carbide_ingot"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "superbwarfare:cemented_carbide_barrel"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_cemented_carbide_ingot"
]
],
"rewards": {
"recipes": [
"superbwarfare:cemented_carbide_barrel"
]
}
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_cemented_carbide_ingot": {
"conditions": {
"items": [
{
"items": "superbwarfare:cemented_carbide_ingot"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "superbwarfare:cemented_carbide_spring"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_cemented_carbide_ingot"
]
],
"rewards": {
"recipes": [
"superbwarfare:cemented_carbide_spring"
]
}
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_cemented_carbide_ingot": {
"conditions": {
"items": [
{
"items": "superbwarfare:cemented_carbide_ingot"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "superbwarfare:cemented_carbide_trigger"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_cemented_carbide_ingot"
]
],
"rewards": {
"recipes": [
"superbwarfare:cemented_carbide_trigger"
]
}
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_steel_ingot": {
"conditions": {
"items": [
{
"items": "superbwarfare:steel_ingot"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "superbwarfare:steel_action"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_steel_ingot"
]
],
"rewards": {
"recipes": [
"superbwarfare:steel_action"
]
}
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_steel_ingot": {
"conditions": {
"items": [
{
"items": "superbwarfare:steel_ingot"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "superbwarfare:steel_barrel"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_steel_ingot"
]
],
"rewards": {
"recipes": [
"superbwarfare:steel_barrel"
]
}
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_steel_ingot": {
"conditions": {
"items": [
{
"items": "superbwarfare:steel_ingot"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "superbwarfare:steel_spring"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_steel_ingot"
]
],
"rewards": {
"recipes": [
"superbwarfare:steel_spring"
]
}
}

View file

@ -0,0 +1,32 @@
{
"parent": "minecraft:recipes/root",
"criteria": {
"has_steel_ingot": {
"conditions": {
"items": [
{
"items": "superbwarfare:steel_ingot"
}
]
},
"trigger": "minecraft:inventory_changed"
},
"has_the_recipe": {
"conditions": {
"recipe": "superbwarfare:steel_trigger"
},
"trigger": "minecraft:recipe_unlocked"
}
},
"requirements": [
[
"has_the_recipe",
"has_steel_ingot"
]
],
"rewards": {
"recipes": [
"superbwarfare:steel_trigger"
]
}
}

View file

@ -1,19 +1,17 @@
{ {
"type": "minecraft:crafting_shaped", "type": "minecraft:crafting_shaped",
"category": "misc", "category": "misc",
"pattern": [
"aba"
],
"key": { "key": {
"a": { "A": {
"tag": "superbwarfare:ingots/cemented_carbide"
},
"b": {
"item": "superbwarfare:cemented_carbide_ingot" "item": "superbwarfare:cemented_carbide_ingot"
} }
}, },
"pattern": [
"AAA",
" A"
],
"result": { "result": {
"id": "superbwarfare:cemented_carbide_barrel", "count": 1,
"count": 1 "id": "superbwarfare:cemented_carbide_action"
} }
} }

View file

@ -1,20 +1,16 @@
{ {
"type": "minecraft:crafting_shaped", "type": "minecraft:crafting_shaped",
"category": "misc", "category": "misc",
"pattern": [
"aba",
" a"
],
"key": { "key": {
"a": { "A": {
"tag": "superbwarfare:ingots/cemented_carbide"
},
"b": {
"item": "superbwarfare:cemented_carbide_ingot" "item": "superbwarfare:cemented_carbide_ingot"
} }
}, },
"pattern": [
"AAA"
],
"result": { "result": {
"id": "superbwarfare:cemented_carbide_action", "count": 1,
"count": 1 "id": "superbwarfare:cemented_carbide_barrel"
} }
} }

View file

@ -1,21 +1,18 @@
{ {
"type": "minecraft:crafting_shaped", "type": "minecraft:crafting_shaped",
"category": "misc", "category": "misc",
"pattern": [
"a",
"b",
"a"
],
"key": { "key": {
"a": { "A": {
"tag": "superbwarfare:ingots/cemented_carbide"
},
"b": {
"item": "superbwarfare:cemented_carbide_ingot" "item": "superbwarfare:cemented_carbide_ingot"
} }
}, },
"pattern": [
"A",
"A",
"A"
],
"result": { "result": {
"id": "superbwarfare:cemented_carbide_spring", "count": 1,
"count": 1 "id": "superbwarfare:cemented_carbide_spring"
} }
} }

View file

@ -1,23 +1,20 @@
{ {
"type": "minecraft:crafting_shaped", "type": "minecraft:crafting_shaped",
"category": "misc", "category": "misc",
"pattern": [
"ab",
" c"
],
"key": { "key": {
"a": { "A": {
"item": "minecraft:tripwire_hook"
},
"b": {
"tag": "superbwarfare:ingots/cemented_carbide"
},
"c": {
"item": "superbwarfare:cemented_carbide_ingot" "item": "superbwarfare:cemented_carbide_ingot"
},
"B": {
"item": "minecraft:tripwire_hook"
} }
}, },
"pattern": [
"BA",
" A"
],
"result": { "result": {
"id": "superbwarfare:cemented_carbide_trigger", "count": 1,
"count": 1 "id": "superbwarfare:cemented_carbide_trigger"
} }
} }

View file

@ -1,19 +1,17 @@
{ {
"type": "minecraft:crafting_shaped", "type": "minecraft:crafting_shaped",
"category": "misc", "category": "misc",
"pattern": [
"aba"
],
"key": { "key": {
"a": { "A": {
"tag": "superbwarfare:ingots/steel"
},
"b": {
"item": "superbwarfare:steel_ingot" "item": "superbwarfare:steel_ingot"
} }
}, },
"pattern": [
"AAA",
" A"
],
"result": { "result": {
"id": "superbwarfare:steel_barrel", "count": 1,
"count": 1 "id": "superbwarfare:steel_action"
} }
} }

View file

@ -1,20 +1,16 @@
{ {
"type": "minecraft:crafting_shaped", "type": "minecraft:crafting_shaped",
"category": "misc", "category": "misc",
"pattern": [
"aba",
" a"
],
"key": { "key": {
"a": { "A": {
"tag": "superbwarfare:ingots/steel"
},
"b": {
"item": "superbwarfare:steel_ingot" "item": "superbwarfare:steel_ingot"
} }
}, },
"pattern": [
"AAA"
],
"result": { "result": {
"id": "superbwarfare:steel_action", "count": 1,
"count": 1 "id": "superbwarfare:steel_barrel"
} }
} }

View file

@ -1,21 +1,18 @@
{ {
"type": "minecraft:crafting_shaped", "type": "minecraft:crafting_shaped",
"category": "misc", "category": "misc",
"pattern": [
"a",
"b",
"a"
],
"key": { "key": {
"a": { "A": {
"tag": "superbwarfare:ingots/steel"
},
"b": {
"item": "superbwarfare:steel_ingot" "item": "superbwarfare:steel_ingot"
} }
}, },
"pattern": [
"A",
"A",
"A"
],
"result": { "result": {
"id": "superbwarfare:steel_spring", "count": 1,
"count": 1 "id": "superbwarfare:steel_spring"
} }
} }

View file

@ -1,23 +1,20 @@
{ {
"type": "minecraft:crafting_shaped", "type": "minecraft:crafting_shaped",
"category": "misc", "category": "misc",
"pattern": [
"ab",
" c"
],
"key": { "key": {
"a": { "A": {
"item": "minecraft:tripwire_hook"
},
"b": {
"tag": "superbwarfare:ingots/steel"
},
"c": {
"item": "superbwarfare:steel_ingot" "item": "superbwarfare:steel_ingot"
},
"B": {
"item": "minecraft:tripwire_hook"
} }
}, },
"pattern": [
"BA",
" A"
],
"result": { "result": {
"id": "superbwarfare:steel_trigger", "count": 1,
"count": 1 "id": "superbwarfare:steel_trigger"
} }
} }

View file

@ -135,22 +135,11 @@ public class ModItemModelProvider extends ItemModelProvider {
simpleItem(ModItems.LARGE_BATTERY_PACK); simpleItem(ModItems.LARGE_BATTERY_PACK);
simpleItem(ModItems.TUNGSTEN_ROD); simpleItem(ModItems.TUNGSTEN_ROD);
simpleItem(ModItems.IRON_BARREL);
simpleItem(ModItems.IRON_ACTION); simpleMaterials(ModItems.IRON_MATERIALS);
simpleItem(ModItems.IRON_TRIGGER); simpleMaterials(ModItems.STEEL_MATERIALS);
simpleItem(ModItems.IRON_SPRING); simpleMaterials(ModItems.CEMENTED_CARBIDE_MATERIALS);
simpleItem(ModItems.STEEL_BARREL); simpleMaterials(ModItems.NETHERITE_MATERIALS);
simpleItem(ModItems.STEEL_ACTION);
simpleItem(ModItems.STEEL_TRIGGER);
simpleItem(ModItems.STEEL_SPRING);
simpleItem(ModItems.CEMENTED_CARBIDE_BARREL);
simpleItem(ModItems.CEMENTED_CARBIDE_ACTION);
simpleItem(ModItems.CEMENTED_CARBIDE_TRIGGER);
simpleItem(ModItems.CEMENTED_CARBIDE_SPRING);
simpleItem(ModItems.NETHERITE_BARREL);
simpleItem(ModItems.NETHERITE_ACTION);
simpleItem(ModItems.NETHERITE_TRIGGER);
simpleItem(ModItems.NETHERITE_SPRING);
simpleItem(ModItems.COMMON_MATERIAL_PACK); simpleItem(ModItems.COMMON_MATERIAL_PACK);
simpleItem(ModItems.RARE_MATERIAL_PACK); simpleItem(ModItems.RARE_MATERIAL_PACK);
@ -217,6 +206,13 @@ public class ModItemModelProvider extends ItemModelProvider {
evenSimplerBlockItem(ModBlocks.AIRCRAFT_CATAPULT); evenSimplerBlockItem(ModBlocks.AIRCRAFT_CATAPULT);
} }
private void simpleMaterials(ModItems.Materials materials) {
simpleItem(materials.action());
simpleItem(materials.barrel());
simpleItem(materials.trigger());
simpleItem(materials.spring());
}
private ItemModelBuilder simpleItem(DeferredHolder<Item, ? extends Item> item) { private ItemModelBuilder simpleItem(DeferredHolder<Item, ? extends Item> item) {
return simpleItem(item, ""); return simpleItem(item, "");
} }

View file

@ -37,31 +37,10 @@ public class ModRecipeProvider extends RecipeProvider {
SpecialRecipeBuilder.special(AmmoBoxExtractAmmoRecipe::new).save(output, "ammo_box_extract_ammo"); SpecialRecipeBuilder.special(AmmoBoxExtractAmmoRecipe::new).save(output, "ammo_box_extract_ammo");
// items // items
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.IRON_BARREL.get()) generateMaterialRecipes(output, ModItems.IRON_MATERIALS, Items.IRON_INGOT);
.pattern("AAA") generateMaterialRecipes(output, ModItems.STEEL_MATERIALS, ModItems.STEEL_INGOT.get());
.define('A', Items.IRON_INGOT) generateMaterialRecipes(output, ModItems.CEMENTED_CARBIDE_MATERIALS, ModItems.CEMENTED_CARBIDE_INGOT.get());
.unlockedBy(getHasName(Items.IRON_INGOT), has(Items.IRON_INGOT)) // TODO 下界合金材料
.save(output, Mod.loc(getItemName(ModItems.IRON_BARREL.get())));
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.IRON_ACTION.get())
.pattern("AAA")
.pattern(" A")
.define('A', Items.IRON_INGOT)
.unlockedBy(getHasName(Items.IRON_INGOT), has(Items.IRON_INGOT))
.save(output, Mod.loc(getItemName(ModItems.IRON_ACTION.get())));
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.IRON_SPRING.get())
.pattern("A")
.pattern("A")
.pattern("A")
.define('A', Items.IRON_INGOT)
.unlockedBy(getHasName(Items.IRON_INGOT), has(Items.IRON_INGOT))
.save(output, Mod.loc(getItemName(ModItems.IRON_SPRING.get())));
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.IRON_TRIGGER.get())
.pattern("BA")
.pattern(" A")
.define('A', Items.IRON_INGOT)
.define('B', Items.TRIPWIRE_HOOK)
.unlockedBy(getHasName(Items.IRON_INGOT), has(Items.IRON_INGOT))
.save(output, Mod.loc(getItemName(ModItems.IRON_TRIGGER.get())));
// vehicles // vehicles
containerRecipe(ModEntities.A_10A.get()) containerRecipe(ModEntities.A_10A.get())
@ -209,4 +188,36 @@ public class ModRecipeProvider extends RecipeProvider {
public static String getContainerRecipeName(EntityType<?> entityType) { public static String getContainerRecipeName(EntityType<?> entityType) {
return getEntityTypeName(entityType) + "_container"; return getEntityTypeName(entityType) + "_container";
} }
// 生成材料包所有材料的配方
public static void generateMaterialRecipes(@NotNull RecipeOutput output, ModItems.Materials material, Item ingredient) {
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, material.barrel().get())
.pattern("AAA")
.define('A', ingredient)
.unlockedBy(getHasName(ingredient), has(ingredient))
.save(output, Mod.loc(getItemName(material.barrel().get())));
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, material.action().get())
.pattern("AAA")
.pattern(" A")
.define('A', ingredient)
.unlockedBy(getHasName(ingredient), has(ingredient))
.save(output, Mod.loc(getItemName(material.action().get())));
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, material.spring().get())
.pattern("A")
.pattern("A")
.pattern("A")
.define('A', ingredient)
.unlockedBy(getHasName(ingredient), has(ingredient))
.save(output, Mod.loc(getItemName(material.spring().get())));
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, material.trigger().get())
.pattern("BA")
.pattern(" A")
.define('A', ingredient)
.define('B', Items.TRIPWIRE_HOOK)
.unlockedBy(getHasName(ingredient), has(ingredient))
.save(output, Mod.loc(getItemName(material.trigger().get())));
}
} }

View file

@ -200,22 +200,11 @@ public class ModItems {
public static final DeferredHolder<Item, FiringParameters> FIRING_PARAMETERS = ITEMS.register("firing_parameters", FiringParameters::new); public static final DeferredHolder<Item, FiringParameters> FIRING_PARAMETERS = ITEMS.register("firing_parameters", FiringParameters::new);
public static final DeferredHolder<Item, Item> TUNGSTEN_ROD = ITEMS.register("tungsten_rod", () -> new Item(new Item.Properties())); public static final DeferredHolder<Item, Item> TUNGSTEN_ROD = ITEMS.register("tungsten_rod", () -> new Item(new Item.Properties()));
public static final DeferredHolder<Item, Item> IRON_BARREL = ITEMS.register("iron_barrel", () -> new Item(new Item.Properties()));
public static final DeferredHolder<Item, Item> IRON_ACTION = ITEMS.register("iron_action", () -> new Item(new Item.Properties())); public static final Materials IRON_MATERIALS = registerMaterials("iron");
public static final DeferredHolder<Item, Item> IRON_TRIGGER = ITEMS.register("iron_trigger", () -> new Item(new Item.Properties())); public static final Materials STEEL_MATERIALS = registerMaterials("steel");
public static final DeferredHolder<Item, Item> IRON_SPRING = ITEMS.register("iron_spring", () -> new Item(new Item.Properties())); public static final Materials CEMENTED_CARBIDE_MATERIALS = registerMaterials("cemented_carbide");
public static final DeferredHolder<Item, Item> STEEL_BARREL = ITEMS.register("steel_barrel", () -> new Item(new Item.Properties().rarity(Rarity.RARE))); public static final Materials NETHERITE_MATERIALS = registerMaterials("netherite");
public static final DeferredHolder<Item, Item> STEEL_ACTION = ITEMS.register("steel_action", () -> new Item(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredHolder<Item, Item> STEEL_TRIGGER = ITEMS.register("steel_trigger", () -> new Item(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredHolder<Item, Item> STEEL_SPRING = ITEMS.register("steel_spring", () -> new Item(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredHolder<Item, Item> CEMENTED_CARBIDE_BARREL = ITEMS.register("cemented_carbide_barrel", () -> new Item(new Item.Properties().rarity(Rarity.EPIC)));
public static final DeferredHolder<Item, Item> CEMENTED_CARBIDE_ACTION = ITEMS.register("cemented_carbide_action", () -> new Item(new Item.Properties().rarity(Rarity.EPIC)));
public static final DeferredHolder<Item, Item> CEMENTED_CARBIDE_TRIGGER = ITEMS.register("cemented_carbide_trigger", () -> new Item(new Item.Properties().rarity(Rarity.EPIC)));
public static final DeferredHolder<Item, Item> CEMENTED_CARBIDE_SPRING = ITEMS.register("cemented_carbide_spring", () -> new Item(new Item.Properties().rarity(Rarity.EPIC)));
public static final DeferredHolder<Item, Item> NETHERITE_BARREL = ITEMS.register("netherite_barrel", () -> new Item(new Item.Properties().rarity(ModEnumExtensions.getLegendary())));
public static final DeferredHolder<Item, Item> NETHERITE_ACTION = ITEMS.register("netherite_action", () -> new Item(new Item.Properties().rarity(ModEnumExtensions.getLegendary())));
public static final DeferredHolder<Item, Item> NETHERITE_TRIGGER = ITEMS.register("netherite_trigger", () -> new Item(new Item.Properties().rarity(ModEnumExtensions.getLegendary())));
public static final DeferredHolder<Item, Item> NETHERITE_SPRING = ITEMS.register("netherite_spring", () -> new Item(new Item.Properties().rarity(ModEnumExtensions.getLegendary())));
public static final DeferredHolder<Item, MaterialPack> COMMON_MATERIAL_PACK = ITEMS.register("common_material_pack", () -> new MaterialPack(Rarity.COMMON)); public static final DeferredHolder<Item, MaterialPack> COMMON_MATERIAL_PACK = ITEMS.register("common_material_pack", () -> new MaterialPack(Rarity.COMMON));
public static final DeferredHolder<Item, MaterialPack> RARE_MATERIAL_PACK = ITEMS.register("rare_material_pack", () -> new MaterialPack(Rarity.RARE)); public static final DeferredHolder<Item, MaterialPack> RARE_MATERIAL_PACK = ITEMS.register("rare_material_pack", () -> new MaterialPack(Rarity.RARE));
@ -297,6 +286,25 @@ public class ModItems {
public static final DeferredHolder<Item, VehicleDeployerBlockItem> VEHICLE_DEPLOYER = BLOCKS.register("vehicle_deployer", VehicleDeployerBlockItem::new); public static final DeferredHolder<Item, VehicleDeployerBlockItem> VEHICLE_DEPLOYER = BLOCKS.register("vehicle_deployer", VehicleDeployerBlockItem::new);
public static final DeferredHolder<Item, BlockItem> AIRCRAFT_CATAPULT = block(ModBlocks.AIRCRAFT_CATAPULT); public static final DeferredHolder<Item, BlockItem> AIRCRAFT_CATAPULT = block(ModBlocks.AIRCRAFT_CATAPULT);
public record Materials(
String name,
DeferredHolder<Item, Item> barrel,
DeferredHolder<Item, Item> action,
DeferredHolder<Item, Item> spring,
DeferredHolder<Item, Item> trigger
) {
}
public static Materials registerMaterials(String name) {
return new Materials(
name,
ITEMS.register(name + "_barrel", () -> new Item(new Item.Properties())),
ITEMS.register(name + "_action", () -> new Item(new Item.Properties())),
ITEMS.register(name + "_spring", () -> new Item(new Item.Properties())),
ITEMS.register(name + "_trigger", () -> new Item(new Item.Properties()))
);
}
/** /**
* Perk Items * Perk Items
*/ */

View file

@ -78,13 +78,13 @@ public class ModVillagers {
// 等级 2 交易 // 等级 2 交易
trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 10), trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 10),
new ItemStack(ModItems.STEEL_ACTION.get()), 12, 5, 0.05f)); new ItemStack(ModItems.STEEL_MATERIALS.action().get()), 12, 5, 0.05f));
trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 8), trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 8),
new ItemStack(ModItems.STEEL_BARREL.get()), 12, 5, 0.05f)); new ItemStack(ModItems.STEEL_MATERIALS.barrel().get()), 12, 5, 0.05f));
trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 6), trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 6),
new ItemStack(ModItems.STEEL_TRIGGER.get()), 12, 5, 0.05f)); new ItemStack(ModItems.STEEL_MATERIALS.trigger().get()), 12, 5, 0.05f));
trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 8), trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 8),
new ItemStack(ModItems.STEEL_SPRING.get()), 12, 5, 0.05f)); new ItemStack(ModItems.STEEL_MATERIALS.spring().get()), 12, 5, 0.05f));
trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16), trades.get(2).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
new ItemStack(ModItems.MARLIN_BLUEPRINT.get()), 8, 25, 0.05f)); new ItemStack(ModItems.MARLIN_BLUEPRINT.get()), 8, 25, 0.05f));
@ -117,13 +117,13 @@ public class ModVillagers {
new ItemStack(Items.EMERALD, 3), 16, 5, 0.05f)); new ItemStack(Items.EMERALD, 3), 16, 5, 0.05f));
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16), trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
new ItemStack(ModItems.CEMENTED_CARBIDE_BARREL.get()), 12, 10, 0.05f)); new ItemStack(ModItems.CEMENTED_CARBIDE_MATERIALS.barrel().get()), 12, 10, 0.05f));
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 20), trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 20),
new ItemStack(ModItems.CEMENTED_CARBIDE_ACTION.get()), 10, 10, 0.05f)); new ItemStack(ModItems.CEMENTED_CARBIDE_MATERIALS.action().get()), 10, 10, 0.05f));
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16), trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
new ItemStack(ModItems.CEMENTED_CARBIDE_SPRING.get()), 10, 10, 0.05f)); new ItemStack(ModItems.CEMENTED_CARBIDE_MATERIALS.spring().get()), 10, 10, 0.05f));
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 12), trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 12),
new ItemStack(ModItems.CEMENTED_CARBIDE_TRIGGER.get()), 10, 10, 0.05f)); new ItemStack(ModItems.CEMENTED_CARBIDE_MATERIALS.trigger().get()), 10, 10, 0.05f));
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32), trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
new ItemStack(ModItems.M_4_BLUEPRINT.get()), 10, 25, 0.05f)); new ItemStack(ModItems.M_4_BLUEPRINT.get()), 10, 25, 0.05f));