78 lines
2.0 KiB
Java
78 lines
2.0 KiB
Java
package electroblob.wizardry.tileentity;
|
|
|
|
import electroblob.wizardry.block.BlockVanishingCobweb;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.network.NetworkManager;
|
|
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
|
|
import net.minecraft.tileentity.TileEntity;
|
|
import net.minecraft.util.ITickable;
|
|
|
|
public class TileEntityTimer extends TileEntity implements ITickable {
|
|
|
|
public int timer = 0;
|
|
public int maxTimer;
|
|
|
|
public TileEntityTimer(){
|
|
|
|
}
|
|
|
|
public TileEntityTimer(int maxTimer){
|
|
this.maxTimer = maxTimer;
|
|
}
|
|
|
|
@Override
|
|
public void update(){
|
|
timer++;
|
|
if(!this.world.isRemote){
|
|
// System.out.println("Timer: " + timer + "/" + maxTimer);
|
|
}
|
|
if(timer > maxTimer && !this.world.isRemote){// && this.world.getBlockId(xCoord, yCoord, zCoord) ==
|
|
// Wizardry.magicLight.blockID){
|
|
if(this.getBlockType() instanceof BlockVanishingCobweb){
|
|
// destroyBlock breaks the block as if broken by a player, with sound and particles.
|
|
this.world.destroyBlock(pos, false);
|
|
}else{
|
|
this.world.setBlockToAir(pos);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void setLifetime(int lifetime){
|
|
this.maxTimer = lifetime;
|
|
}
|
|
|
|
@Override
|
|
public void readFromNBT(NBTTagCompound tagCompound){
|
|
super.readFromNBT(tagCompound);
|
|
timer = tagCompound.getInteger("timer");
|
|
maxTimer = tagCompound.getInteger("maxTimer");
|
|
}
|
|
|
|
@Override
|
|
public NBTTagCompound writeToNBT(NBTTagCompound tagCompound){
|
|
super.writeToNBT(tagCompound);
|
|
tagCompound.setInteger("timer", timer);
|
|
tagCompound.setInteger("maxTimer", maxTimer);
|
|
return tagCompound;
|
|
}
|
|
|
|
@Override
|
|
public final NBTTagCompound getUpdateTag(){
|
|
return this.writeToNBT(new NBTTagCompound());
|
|
}
|
|
|
|
@Override
|
|
public SPacketUpdateTileEntity getUpdatePacket(){
|
|
NBTTagCompound tag = new NBTTagCompound();
|
|
writeToNBT(tag);
|
|
return new SPacketUpdateTileEntity(pos, 1, tag);
|
|
}
|
|
|
|
@Override
|
|
public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt){
|
|
NBTTagCompound tag = pkt.getNbtCompound();
|
|
readFromNBT(tag);
|
|
}
|
|
|
|
}
|