package buildcraft.core.builders; import java.util.List; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import buildcraft.api.blueprints.IBuilderContext; public class BuilderItemMetaPair { public Item item; public int meta; public int position = 0; public BuilderItemMetaPair(ItemStack stack) { if (stack != null) { this.item = stack.getItem(); this.meta = stack.getItemDamage(); } else { this.item = Item.getItemFromBlock(Blocks.air); this.meta = 0; } } public BuilderItemMetaPair(IBuilderContext context, BuildingSlotBlock block) { this(findStack(context, block)); } private static ItemStack findStack(IBuilderContext context, BuildingSlotBlock block) { List<ItemStack> s = block.getRequirements(context); return s.size() > 0 ? s.get(0) : null; } @Override public boolean equals(Object o) { if (o instanceof BuilderItemMetaPair) { BuilderItemMetaPair imp = (BuilderItemMetaPair) o; return imp.item == item && imp.meta == meta; } return false; } @Override public int hashCode() { return Item.getIdFromItem(item) * 17 + meta; } }