package crazypants.enderio.machine.painter; import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import crazypants.enderio.TileEntityEio; public class TileEntityPaintedBlock extends TileEntityEio implements IPaintableTileEntity { private static final String KEY_SOURCE_BLOCK_ID = "sourceBlock"; private static final String KEY_SOURCE_BLOCK_META = "sourceBlockMeta"; private Block sourceBlock; private int sourceBlockMetadata; public TileEntityPaintedBlock() { this.sourceBlock = null; } @Override public void readCustomNBT(NBTTagCompound nbtRoot) { String sourceBlockStr = nbtRoot.getString(KEY_SOURCE_BLOCK_ID); sourceBlock = Block.getBlockFromName(sourceBlockStr); sourceBlockMetadata = nbtRoot.getInteger(KEY_SOURCE_BLOCK_META); } @Override public void writeCustomNBT(NBTTagCompound nbtRoot) { if(sourceBlock != null) { nbtRoot.setString(KEY_SOURCE_BLOCK_ID, Block.blockRegistry.getNameForObject(sourceBlock)); } nbtRoot.setInteger(KEY_SOURCE_BLOCK_META, sourceBlockMetadata); } @Override public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { super.onDataPacket(net, pkt); updateBlock(); } @Override public Block getSourceBlock() { return sourceBlock; } @Override public void setSourceBlock(Block sourceBlock) { this.sourceBlock = sourceBlock; } @Override public int getSourceBlockMetadata() { return sourceBlockMetadata; } @Override public void setSourceBlockMetadata(int sourceBlockMetadata) { this.sourceBlockMetadata = sourceBlockMetadata; } @Override public boolean shouldUpdate() { return false; } }