generated from tilera/1710mod
67 lines
1.7 KiB
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;
|
|
}
|
|
}
|