makerimages Posted November 24, 2013 Posted November 24, 2013 Hey, I got this: public boolean enchantItem(EntityPlayer player, int i) { ItemStack stack0=tileEntityGrinder.getStackInSlot(0); ItemStack stack1=new ItemStack(ElectronicaEngineered.siliconGrindingItem,2); if(stack0.getItem()!=null) { tileEntityGrinder.getStackInSlot(0).stackSize--; if(tileEntityGrinder.getStackInSlot(1)==null) { tileEntityGrinder.setInventorySlotContents(1,stack1); } else { tileEntityGrinder.getStackInSlot(1).stackSize+=2; } } return super.enchantItem(player,i); } Runs fine, but when I put a single block in slot 0 or a single is left in there, it is not getting removed. How to fix Quote
makerimages Posted November 26, 2013 Author Posted November 26, 2013 tried this: public boolean enchantItem(EntityPlayer player, int i) { ItemStack stack0=tileEntityGrinder.getStackInSlot(0); ItemStack stack1=new ItemStack(ElectronicaEngineered.siliconGrindingItem,2); if(stack0.stackSize>=0) { tileEntityGrinder.getStackInSlot(0).stackSize--; if(tileEntityGrinder.getStackInSlot(1)==null) { tileEntityGrinder.setInventorySlotContents(1,stack1); } else { tileEntityGrinder.getStackInSlot(1).stackSize+=2; System.out.println(tileEntityGrinder.getStackInSlot(1).stackSize); System.out.println(stack0.stackSize); } } return super.enchantItem(player,i); } still wont do it Quote
MineMaarten Posted November 26, 2013 Posted November 26, 2013 diesieben means if(getStackInSlot(x).stackSize <= 0) setInventorySlotContents(x, null); Quote Author of PneumaticCraft, MineChess, Minesweeper Mod and Sokoban Mod. Visit www.minemaarten.com to take a look at them.
makerimages Posted November 26, 2013 Author Posted November 26, 2013 jeez, can someone just make it work for me? ItemStack stack0=tileEntityGrinder.getStackInSlot(0); ItemStack stack1=new ItemStack(ElectronicaEngineered.siliconGrindingItem,2); if(tileEntityGrinder.getStackInSlot(0).stackSize>=0) { tileEntityGrinder.getStackInSlot(0).stackSize--; if(tileEntityGrinder.getStackInSlot(1)==null) { tileEntityGrinder.setInventorySlotContents(1,stack1); } else { tileEntityGrinder.getStackInSlot(1).stackSize+=2; System.out.println(tileEntityGrinder.getStackInSlot(1).stackSize); System.out.println(stack0.stackSize); } } has not worked aswell Quote
makerimages Posted November 27, 2013 Author Posted November 27, 2013 tried adding an if statement: if(tileEntityGrinder.getStackInSlot(0).stackSize>=0) { tileEntityGrinder.getStackInSlot(0).stackSize--; if(tileEntityGrinder.getStackInSlot(1)==null) { tileEntityGrinder.setInventorySlotContents(1,stack1); } else { tileEntityGrinder.getStackInSlot(1).stackSize+=2; System.out.println(tileEntityGrinder.getStackInSlot(1).stackSize); System.out.println(stack0.stackSize); } if(tileEntityGrinder.getStackInSlot(0).stackSize==0) { tileEntityGrinder.setInventorySlotContents(0,null); } } Quote
GotoLink Posted December 6, 2013 Posted December 6, 2013 if(stack0!=null) { if(stack0.stackSize--<=0) tileEntityGrinder.setInventorySlotContents(0,null); This is really common code, you know. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.