Skip to content

Commit 94a4b7a

Browse files
committed
fix: added recipes for copper nugget <-> copper ingot
1 parent 515abc7 commit 94a4b7a

6 files changed

Lines changed: 153 additions & 2 deletions

File tree

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"neoforge:conditions": [
3+
{
4+
"type": "ftbmaterials:components_available",
5+
"used_materials": [
6+
"copper_nugget"
7+
]
8+
}
9+
],
10+
"parent": "minecraft:recipes/root",
11+
"criteria": {
12+
"has_item": {
13+
"conditions": {
14+
"items": [
15+
{
16+
"items": "minecraft:copper_ingot"
17+
}
18+
]
19+
},
20+
"trigger": "minecraft:inventory_changed"
21+
},
22+
"has_the_recipe": {
23+
"conditions": {
24+
"recipe": "ftbmaterials:copper_nugget"
25+
},
26+
"trigger": "minecraft:recipe_unlocked"
27+
}
28+
},
29+
"requirements": [
30+
[
31+
"has_the_recipe",
32+
"has_item"
33+
]
34+
],
35+
"rewards": {
36+
"recipes": [
37+
"ftbmaterials:copper_nugget"
38+
]
39+
}
40+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"neoforge:conditions": [
3+
{
4+
"type": "ftbmaterials:components_available",
5+
"used_materials": [
6+
"copper_nugget"
7+
]
8+
}
9+
],
10+
"type": "minecraft:crafting_shapeless",
11+
"category": "misc",
12+
"ingredients": [
13+
{
14+
"item": "minecraft:copper_ingot"
15+
}
16+
],
17+
"result": {
18+
"count": 9,
19+
"id": "ftbmaterials:copper_nugget"
20+
}
21+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"neoforge:conditions": [
3+
{
4+
"type": "ftbmaterials:components_available",
5+
"used_materials": [
6+
"copper_nugget"
7+
]
8+
}
9+
],
10+
"parent": "minecraft:recipes/root",
11+
"criteria": {
12+
"has_item": {
13+
"conditions": {
14+
"items": [
15+
{
16+
"items": "ftbmaterials:copper_nugget"
17+
}
18+
]
19+
},
20+
"trigger": "minecraft:inventory_changed"
21+
},
22+
"has_the_recipe": {
23+
"conditions": {
24+
"recipe": "minecraft:copper_ingot"
25+
},
26+
"trigger": "minecraft:recipe_unlocked"
27+
}
28+
},
29+
"requirements": [
30+
[
31+
"has_the_recipe",
32+
"has_item"
33+
]
34+
],
35+
"rewards": {
36+
"recipes": [
37+
"minecraft:copper_ingot"
38+
]
39+
}
40+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"neoforge:conditions": [
3+
{
4+
"type": "ftbmaterials:components_available",
5+
"used_materials": [
6+
"copper_nugget"
7+
]
8+
}
9+
],
10+
"type": "minecraft:crafting_shaped",
11+
"category": "misc",
12+
"key": {
13+
"N": {
14+
"item": "ftbmaterials:copper_nugget"
15+
}
16+
},
17+
"pattern": [
18+
"NNN",
19+
"NNN",
20+
"NNN"
21+
],
22+
"result": {
23+
"count": 1,
24+
"id": "minecraft:copper_ingot"
25+
}
26+
}

src/main/java/dev/ftb/mods/ftbmaterials/data/RecipesGenerator.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ protected void buildRecipes(RecipeOutput output) {
8282
.save(output.withConditions(ComponentsAvailableCondition.fromItems(inputReg, outputReg)));
8383
});
8484

85+
// Copper is special case (vanilla copper ingot but FTB Materials copper nugget)
86+
createVanillaCopperNuggetRecipes(output);
87+
8588
// Raw ore smelts to ingots
8689
createInputOutputRecipeFromTypes(ResourceType.RAW_ORE, ResourceType.INGOT, ResourceRegistryHolder::getItemFromType, ResourceRegistryHolder::getItemFromType, (inputItemLike, outputItemLike, inputReg, outputReg) -> {
8790
var inputName = inputReg.getId().getPath();
@@ -189,6 +192,21 @@ protected void buildRecipes(RecipeOutput output) {
189192
});
190193
}
191194

195+
private static void createVanillaCopperNuggetRecipes(RecipeOutput output) {
196+
var copperNugget = ResourceRegistries.getItemOrThrow(Resource.COPPER, ResourceType.NUGGET);
197+
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, copperNugget.get(), 9)
198+
.requires(Items.COPPER_INGOT)
199+
.unlockedBy("has_item", has(Items.COPPER_INGOT))
200+
.save(output.withConditions(ComponentsAvailableCondition.fromItems(copperNugget)));
201+
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, Items.COPPER_INGOT)
202+
.define('N', copperNugget.get())
203+
.pattern("NNN")
204+
.pattern("NNN")
205+
.pattern("NNN")
206+
.unlockedBy("has_item", has(copperNugget.get()))
207+
.save(output.withConditions(ComponentsAvailableCondition.fromItems(copperNugget)));
208+
}
209+
192210
private void addVanillaDustSmelting(Resource resource, Item vanillaIngot, RecipeOutput output) {
193211
ResourceRegistries.get(resource).getItemFromType(ResourceType.DUST).ifPresent(dustHolder -> {
194212
var inputName = dustHolder.getId().getPath();

src/main/java/dev/ftb/mods/ftbmaterials/resources/ResourceRegistries.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dev.ftb.mods.ftbmaterials.resources;
22

3+
import net.minecraft.world.item.Item;
4+
import net.neoforged.neoforge.registries.DeferredHolder;
35
import org.slf4j.Logger;
46
import org.slf4j.LoggerFactory;
57

@@ -23,8 +25,12 @@ public static Collection<ResourceRegistryHolder> allHolders() {
2325
return RESOURCE_REGISTRY_HOLDERS.values();
2426
}
2527

26-
public static ResourceRegistryHolder get(Resource type) {
27-
return RESOURCE_REGISTRY_HOLDERS.get(type);
28+
public static ResourceRegistryHolder get(Resource resource) {
29+
return RESOURCE_REGISTRY_HOLDERS.get(resource);
30+
}
31+
32+
public static DeferredHolder<Item, Item> getItemOrThrow(Resource resource, ResourceType resourceType) {
33+
return get(resource).getItemFromType(resourceType).orElseThrow();
2834
}
2935

3036
public static void clearReverseLookups() {

0 commit comments

Comments
 (0)