Abstract altar inventory handling for usage elsewhere

This commit is contained in:
Nick 2015-11-12 13:05:23 -08:00
parent 9a6d8d6d60
commit fb94914b91
2 changed files with 30 additions and 11 deletions

View file

@ -1,5 +1,10 @@
package WayofTime.bloodmagic.util;
import WayofTime.bloodmagic.tile.TileInventory;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
public class Utils {
public static boolean isInteger(String integer) {
@ -13,4 +18,27 @@ public class Utils {
// only got here if we didn't return false
return true;
}
/**
* Used for inserting an ItemStack with a stacksize of 1 to a tile's inventory at slot 0.
*
* EG: Block Altar
*
* @param tile - The {@link TileInventory} to input the item to
* @param player - The player to take the item from.
*/
public static void insertItemToTile(TileInventory tile, EntityPlayer player) {
if (tile.getStackInSlot(0) == null && player.getHeldItem() != null) {
ItemStack input = player.getHeldItem().copy();
input.stackSize = 1;
player.getHeldItem().stackSize--;
tile.setInventorySlotContents(0, input);
} else if (tile.getStackInSlot(0) != null && player.getHeldItem() == null) {
if (!tile.getWorld().isRemote) {
EntityItem invItem = new EntityItem(tile.getWorld(), player.posX, player.posY + 0.25, player.posZ, tile.getStackInSlot(0));
tile.getWorld().spawnEntityInWorld(invItem);
}
tile.clear();
}
}
}