diff --git a/src/main/java/mcp/mobius/waila/api/impl/DataAccessorFMP.java b/src/main/java/mcp/mobius/waila/api/impl/DataAccessorFMP.java index 9e71b158..aab5ee2d 100644 --- a/src/main/java/mcp/mobius/waila/api/impl/DataAccessorFMP.java +++ b/src/main/java/mcp/mobius/waila/api/impl/DataAccessorFMP.java @@ -12,18 +12,18 @@ public class DataAccessorFMP implements IWailaFMPAccessor { - String id; - World world; - EntityPlayer player; - MovingObjectPosition mop; - Vec3 renderingvec = null; - TileEntity entity; - NBTTagCompound partialNBT = null; - NBTTagCompound remoteNBT = null; - long timeLastUpdate = System.currentTimeMillis(); - double partialFrame; - - public static DataAccessorFMP instance = new DataAccessorFMP(); + public static final DataAccessorFMP instance = new DataAccessorFMP(); + + private String id; + private World world; + private EntityPlayer player; + private MovingObjectPosition mop; + private Vec3 renderingvec; + private TileEntity tileEntity; + private NBTTagCompound partialNBT; + private double partialFrame; + + private DataAccessorFMP() {} public void set(World _world, EntityPlayer _player, MovingObjectPosition _mop, NBTTagCompound _partialNBT, String id) { @@ -35,13 +35,24 @@ public void set(World _world, EntityPlayer _player, MovingObjectPosition _mop, N this.world = _world; this.player = _player; this.mop = _mop; - this.entity = world.getTileEntity(_mop.blockX, _mop.blockY, _mop.blockZ); + this.tileEntity = world.getTileEntity(_mop.blockX, _mop.blockY, _mop.blockZ); this.partialNBT = _partialNBT; this.id = id; this.renderingvec = renderVec; this.partialFrame = partialTicks; } + public void reset() { + id = null; + world = null; + player = null; + mop = null; + renderingvec = null; + tileEntity = null; + partialNBT = null; + partialFrame = 0.0D; + } + @Override public World getWorld() { return this.world; @@ -54,7 +65,7 @@ public EntityPlayer getPlayer() { @Override public TileEntity getTileEntity() { - return this.entity; + return this.tileEntity; } @Override @@ -69,12 +80,9 @@ public NBTTagCompound getNBTData() { @Override public NBTTagCompound getFullNBTData() { - if (this.entity == null) return null; - - if (this.isTagCorrect(this.remoteNBT)) return this.remoteNBT; - + if (this.tileEntity == null) return null; NBTTagCompound tag = new NBTTagCompound(); - this.entity.writeToNBT(tag); + this.tileEntity.writeToNBT(tag); return tag; } @@ -98,20 +106,4 @@ public String getID() { return this.id; } - private boolean isTagCorrect(NBTTagCompound tag) { - if (tag == null) { - this.timeLastUpdate = System.currentTimeMillis() - 250; - return false; - } - - int x = tag.getInteger("x"); - int y = tag.getInteger("y"); - int z = tag.getInteger("z"); - - if (x == this.mop.blockX && y == this.mop.blockY && z == this.mop.blockZ) return true; - else { - this.timeLastUpdate = System.currentTimeMillis() - 250; - return false; - } - } } diff --git a/src/main/java/mcp/mobius/waila/handlers/DecoratorFMP.java b/src/main/java/mcp/mobius/waila/handlers/DecoratorFMP.java index 909558bb..0b45fa93 100644 --- a/src/main/java/mcp/mobius/waila/handlers/DecoratorFMP.java +++ b/src/main/java/mcp/mobius/waila/handlers/DecoratorFMP.java @@ -35,9 +35,13 @@ public void decorateBlock(ItemStack itemStack, IWailaDataAccessor accessor, IWai accessor.getRenderingPosition(), accessor.getPartialFrame()); - for (List providersList : ModuleRegistrar.instance().getFMPDecorators(id).values()) - for (IWailaFMPDecorator provider : providersList) + for (List providersList : ModuleRegistrar.instance().getFMPDecorators(id) + .values()) { + for (IWailaFMPDecorator provider : providersList) { provider.decorateBlock(itemStack, DataAccessorFMP.instance, config); + } + } + DataAccessorFMP.instance.reset(); } } } diff --git a/src/main/java/mcp/mobius/waila/handlers/HUDHandlerFMP.java b/src/main/java/mcp/mobius/waila/handlers/HUDHandlerFMP.java index 2c8672c5..a07f6a68 100644 --- a/src/main/java/mcp/mobius/waila/handlers/HUDHandlerFMP.java +++ b/src/main/java/mcp/mobius/waila/handlers/HUDHandlerFMP.java @@ -41,9 +41,11 @@ public List getWailaHead(ItemStack itemStack, List currenttip, I for (List providersList : ModuleRegistrar.instance().getHeadFMPProviders(id) .values()) { - for (IWailaFMPProvider provider : providersList) + for (IWailaFMPProvider provider : providersList) { currenttip = provider.getWailaHead(itemStack, currenttip, DataAccessorFMP.instance, config); + } } + DataAccessorFMP.instance.reset(); } } @@ -64,9 +66,11 @@ public List getWailaBody(ItemStack itemStack, List currenttip, I for (List providersList : ModuleRegistrar.instance().getBodyFMPProviders(id) .values()) { - for (IWailaFMPProvider provider : providersList) + for (IWailaFMPProvider provider : providersList) { currenttip = provider.getWailaBody(itemStack, currenttip, DataAccessorFMP.instance, config); + } } + DataAccessorFMP.instance.reset(); } } @@ -87,9 +91,11 @@ public List getWailaTail(ItemStack itemStack, List currenttip, I for (List providersList : ModuleRegistrar.instance().getTailFMPProviders(id) .values()) { - for (IWailaFMPProvider provider : providersList) + for (IWailaFMPProvider provider : providersList) { currenttip = provider.getWailaTail(itemStack, currenttip, DataAccessorFMP.instance, config); + } } + DataAccessorFMP.instance.reset(); } }