redpower/src/main/java/com/eloraam/redpower/base/RecipeBag.java

67 lines
1.7 KiB
Java

package com.eloraam.redpower.base;
import com.eloraam.redpower.RedPowerBase;
import net.minecraft.init.Items;
import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.world.World;
public class RecipeBag implements IRecipe {
public int getRecipeSize() {
return 2;
}
public ItemStack getRecipeOutput() {
return new ItemStack(RedPowerBase.itemBag, 1, 0);
}
private ItemStack findResult(InventoryCrafting inv) {
ItemStack bag = null;
int color = -1;
for(int i = 0; i < 3; ++i) {
for(int j = 0; j < 3; ++j) {
ItemStack ist = inv.getStackInRowAndColumn(i, j);
if (ist != null) {
if (ist.getItem() instanceof ItemBag) {
if (bag != null) {
return null;
}
bag = ist;
} else {
if (ist.getItem() != Items.dye) {
return null;
}
if (color >= 0) {
return null;
}
color = 15 - ist.getItemDamage();
}
}
}
}
if (bag == null || color < 0) {
return null;
} else if (bag.getItemDamage() == color) {
return null;
} else {
bag = bag.copy();
bag.setItemDamage(color);
return bag;
}
}
public ItemStack getCraftingResult(InventoryCrafting inv) {
return this.findResult(inv).copy();
}
public boolean matches(InventoryCrafting inv, World world) {
return this.findResult(inv) != null;
}
}