package WayofTime.alchemicalWizardry.common.tileEntity;

import WayofTime.alchemicalWizardry.ModBlocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

public class TESpectralBlock extends TileEntity
{
    private int ticksRemaining;

    public TESpectralBlock()
    {
        ticksRemaining = 0;
    }

    @Override
    public void readFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readFromNBT(par1NBTTagCompound);

        ticksRemaining = par1NBTTagCompound.getInteger("ticksRemaining");
    }

    @Override
    public void writeToNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.writeToNBT(par1NBTTagCompound);

        par1NBTTagCompound.setInteger("ticksRemaining", ticksRemaining);
    }

    @Override
    public void updateEntity()
    {
        super.updateEntity();

        if (worldObj.isRemote)
        {
            return;
        }

        this.ticksRemaining--;

        if (this.ticksRemaining <= 0)
        {
            worldObj.setBlockToAir(xCoord, yCoord, zCoord);
        }
    }

    public static boolean createSpectralBlockAtLocation(World world, int x, int y, int z, int duration)
    {
        if (!world.isAirBlock(x, y, z))
        {
            return false;
        }
        world.setBlock(x, y, z, ModBlocks.spectralBlock);
        TileEntity tile = world.getTileEntity(x, y, z);
        if (tile instanceof TESpectralBlock)
        {
            ((TESpectralBlock) tile).setDuration(duration);
            return true;
        }

        return false;
    }

    public void setDuration(int dur)
    {
        this.ticksRemaining = dur;
    }

    public void resetDuration(int dur)
    {
        if (this.ticksRemaining < dur)
        {
            this.ticksRemaining = dur;
        }
    }
}