package com.harry9137.ct.tileentity; import com.harry9137.ct.energy.IEnergyContainer; import net.minecraft.entity.passive.EntityChicken; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityEgg; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockPos; import net.minecraft.util.IChatComponent; public class TileEntityIncubator extends TileEntity implements IEnergyContainer, IInventory, ITickUpdater { public ItemStack slot; public int PowerStored = 0; private static int ChickenTick; private int Tick = 1; public TileEntityIncubator(){ super(); this.ChickenTick = 0; } @Override public void updateEntity(){ if(PowerStored > 0 && slot != null && slot.getItem().equals(Items.egg)) { Tick++; if(Tick % 10 == 0){ PowerStored--; } } System.out.println("Tick: " + Integer.toString(Tick)); System.out.println("ChickTick: " + Integer.toString(ChickenTick)); if(slot != null && slot.getItem().equals(Items.egg) && Tick == ChickenTick + 48000){ ChickenTick = 0; EntityChicken entityChicken = new EntityChicken(this.worldObj); entityChicken.setLocationAndAngles(pos.getX() + .5, pos.getY() + 1, pos.getZ() + .5, 0.0F, 0.0F); entityChicken.setGrowingAge(-24000); this.worldObj.spawnEntityInWorld(entityChicken); } } @Override public int getEnergyLevel() { return PowerStored; } @Override public boolean getCanSendPower() { return false; } @Override public boolean getCanReceivePower() { return true; } @Override public int getEnergyMax() { return 1000; } @Override public void onEnergyUpdate() { } @Override public void setPowerLevel(int powerLevel) { this.PowerStored = powerLevel; } @Override public int getSizeInventory() { return 1; } @Override public ItemStack getStackInSlot(int p_70301_1_) { return null; } @Override public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) { return null; } @Override public ItemStack getStackInSlotOnClosing(int p_70304_1_) { return null; } @Override public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) { if(p_70299_1_ == 0){ slot = p_70299_2_; } ChickenTick = Tick; } @Override public int getInventoryStackLimit() { return 1; } @Override public boolean isUseableByPlayer(EntityPlayer p_70300_1_) { return true; } @Override public void openInventory(EntityPlayer playerIn) { } @Override public void closeInventory(EntityPlayer playerIn) { } @Override public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { if(p_94041_2_.getItem() == Items.egg || p_94041_2_.getItem() == Blocks.dragon_egg.getItem(this.getWorld(), new BlockPos(0,0,0))){ return true; } return false; } @Override public int getField(int id) { return 0; } @Override public void setField(int id, int value) { } @Override public int getFieldCount() { return 0; } @Override public void clear() { } @Override public void readFromNBT(NBTTagCompound tagCompound){ super.readFromNBT(tagCompound); this.PowerStored = tagCompound.getInteger("PowerStored"); this.slot = ItemStack.loadItemStackFromNBT(tagCompound); } @Override public void writeToNBT(NBTTagCompound tagCompound) { super.writeToNBT(tagCompound); tagCompound.setInteger("PowerStored", this.PowerStored); if(slot != null) { slot.writeToNBT(tagCompound); } } @Override public String getName() { return null; } @Override public boolean hasCustomName() { return false; } @Override public IChatComponent getDisplayName() { return null; } }