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;
}
}