package noppes.npcs.scripted; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import noppes.npcs.api.*; public class ScriptTileEntity implements ITileEntity { protected T tileEntity; protected IWorld world; public ScriptTileEntity(T tileEntity) { this.tileEntity = tileEntity; this.world = NpcAPI.Instance().getIWorld(tileEntity.getWorldObj()); } public int getBlockMetadata(){ return tileEntity.getBlockMetadata(); } public IWorld getWorld(){ return world; } public void setWorld(IWorld world) { this.tileEntity.setWorldObj(world.getMCWorld()); this.world = world; } public TileEntity getMCTileEntity() { return this.tileEntity; } public void markDirty() { this.tileEntity.markDirty(); } public void readFromNBT(INbt nbt){ this.tileEntity.readFromNBT(nbt.getMCNBT()); } public double getDistanceFrom(double x, double y, double z){ return this.tileEntity.getDistanceFrom(x,y,z); } public double getDistanceFrom(IPos pos){ return this.getDistanceFrom(pos.getXD(),pos.getYD(),pos.getZD()); } public IBlock getBlockType(){ return NpcAPI.Instance().getIBlock(world, tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); } public boolean isInvalid(){ return tileEntity.isInvalid(); } public void invalidate(){ tileEntity.invalidate(); } public void validate() { tileEntity.validate(); } public void updateContainingBlockInfo(){ tileEntity.updateContainingBlockInfo(); } public INbt getNBT() { NBTTagCompound compound = new NBTTagCompound(); this.tileEntity.writeToNBT(compound); return NpcAPI.Instance().getINbt(compound); } }