package electroblob.wizardry.tileentity; import electroblob.wizardry.constants.Element; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.play.server.SPacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; import javax.annotation.Nullable; public class TileEntityReceptacle extends TileEntity { private Element element; public TileEntityReceptacle(){ this(null); } public TileEntityReceptacle(Element element){ this.element = element; } @Nullable public Element getElement(){ return element; } public void setElement(@Nullable Element element){ this.element = element; world.notifyNeighborsRespectDebug(pos, blockType, true); // Update altar if connected world.checkLight(pos); } @Override public NBTTagCompound writeToNBT(NBTTagCompound compound){ super.writeToNBT(compound); compound.setInteger("Element", element == null ? -1 : element.ordinal()); return compound; } @Override public void readFromNBT(NBTTagCompound compound){ super.readFromNBT(compound); int i = compound.getInteger("Element"); element = i == -1 ? null : Element.values()[i]; } @Override public NBTTagCompound getUpdateTag(){ return this.writeToNBT(new NBTTagCompound()); } @Nullable @Override public SPacketUpdateTileEntity getUpdatePacket(){ return new SPacketUpdateTileEntity(pos, 0, this.getUpdateTag()); } @Override public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt){ readFromNBT(pkt.getNbtCompound()); } }