I need to BottleFW smelting only FermentedWine and KegForBeer only BeerBucket. How to do it? :'(
public class SlotBottlingFuel extends Slot
{
public static boolean wine = false;
public static boolean beer = false;
public SlotBottlingFuel(IInventory inventoryIn, int slotIndex, int xPosition, int yPosition)
{
super(inventoryIn, slotIndex, xPosition, yPosition);
}
public boolean isItemValid(ItemStack stack)
{
if(stack.getItem() == ItemHandler.FermentedWine)
{
beer = false;
wine = true;
}
if(stack.getItem() == ItemHandler.BeerBucket)
{
wine = false;
beer = true;
}
return TileEntityBottling.isItemFuel(stack) || isBucket(stack);
}
public int getItemStackLimit(ItemStack stack)
{
return isBucket(stack) ? 1 : super.getItemStackLimit(stack);
}
public static boolean isBucket(ItemStack stack)
{
return stack != null && stack.getItem() != null && stack.getItem() == Items.bucket;
}
}
public class BottlingRecipes
{
private static final BottlingRecipes smeltingBase = new BottlingRecipes();
private Map<ItemStack, ItemStack> smeltingList = Maps.<ItemStack, ItemStack>newHashMap();
private Map<ItemStack, Float> experienceList = Maps.<ItemStack, Float>newHashMap();
public static BottlingRecipes instance()
{
return smeltingBase;
}
private BottlingRecipes()
{
if(SlotBottlingFuel.wine == true)
{
this.addSmelting(ItemHandler.BottleFW, new ItemStack(ItemHandler.BottleSW), 0.0F);
}
if(SlotBottlingFuel.beer == true)
{
this.addSmelting(ItemHandler.KegForBeer, new ItemStack(ItemHandler.KegOfBeer), 0.0F);
}
}
public void addSmeltingRecipeForBlock(Block input, ItemStack stack, float experience)
{
this.addSmelting(Item.getItemFromBlock(input), stack, experience);
}
public void addSmelting(Item input, ItemStack stack, float experience)
{
this.addSmeltingRecipe(new ItemStack(input, 1, 32767), stack, experience);
}
public void addSmeltingRecipe(ItemStack input, ItemStack stack, float experience)
{
if (getSmeltingResult(input) != null) { net.minecraftforge.fml.common.FMLLog.info("Ignored smelting recipe with conflicting input: " + input + " = " + stack); return; }
this.smeltingList.put(input, stack);
this.experienceList.put(stack, Float.valueOf(experience));
}
public ItemStack getSmeltingResult(ItemStack stack)
{
for (Entry<ItemStack, ItemStack> entry : this.smeltingList.entrySet())
{
if (this.compareItemStacks(stack, (ItemStack)entry.getKey()))
{
return (ItemStack)entry.getValue();
}
}
return null;
}
private boolean compareItemStacks(ItemStack stack1, ItemStack stack2)
{
return stack2.getItem() == stack1.getItem() && (stack2.getMetadata() == 32767 || stack2.getMetadata() == stack1.getMetadata());
}
public Map<ItemStack, ItemStack> getSmeltingList()
{
return this.smeltingList;
}
public float getSmeltingExperience(ItemStack stack)
{
float ret = stack.getItem().getSmeltingExperience(stack);
if (ret != -1) return ret;
for (Entry<ItemStack, Float> entry : this.experienceList.entrySet())
{
if (this.compareItemStacks(stack, (ItemStack)entry.getKey()))
{
return ((Float)entry.getValue()).floatValue();
}
}
return 0.0F;
}
}