/
WaypointCompassDyeingRecipe.java
61 lines (52 loc) · 2.1 KB
/
WaypointCompassDyeingRecipe.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package knightminer.inspirations.tools.recipe;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import knightminer.inspirations.tools.InspirationsTools;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.item.crafting.Ingredient;
import net.minecraft.util.JsonUtils;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.crafting.CraftingHelper;
import net.minecraftforge.common.crafting.IRecipeFactory;
import net.minecraftforge.common.crafting.JsonContext;
import net.minecraftforge.oredict.ShapelessOreRecipe;
import javax.annotation.Nonnull;
public class WaypointCompassDyeingRecipe extends ShapelessOreRecipe {
public WaypointCompassDyeingRecipe(ResourceLocation group, NonNullList<Ingredient> input, ItemStack result) {
super(group, input, result);
}
@Override
@Nonnull
public ItemStack getCraftingResult(@Nonnull InventoryCrafting crafting){
ItemStack output = this.output.copy();
for (int i = 0; i < crafting.getSizeInventory(); i++) {
ItemStack stack = crafting.getStackInSlot(i);
if(stack.getItem() == InspirationsTools.waypointCompass) {
if (stack.hasTagCompound()) {
output.setTagCompound(stack.getTagCompound().copy());
}
break;
}
}
return output;
}
public static class Factory implements IRecipeFactory {
@Override
public IRecipe parse(JsonContext context, JsonObject json) {
String group = JsonUtils.getString(json, "group", "");
NonNullList<Ingredient> ings = NonNullList.create();
for (JsonElement ele : JsonUtils.getJsonArray(json, "ingredients")) {
ings.add(CraftingHelper.getIngredient(ele, context));
}
if (ings.isEmpty()) {
throw new JsonParseException("No ingredients for shapeless recipe");
}
ItemStack itemstack = CraftingHelper.getItemStack(JsonUtils.getJsonObject(json, "result"), context);
return new WaypointCompassDyeingRecipe(group.isEmpty() ? null : new ResourceLocation(group), ings, itemstack);
}
}
}