From b8051e6483afcc588134700215ec50a2317263df Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 11 Jun 2016 15:42:28 +0200 Subject: [PATCH] Increased ESD performance by making it remember the tiles around --- .../actuallyadditions/mod/blocks/BlockInputter.java | 10 ++++++++++ .../actuallyadditions/mod/blocks/BlockItemViewer.java | 1 - .../actuallyadditions/mod/blocks/BlockLaserRelay.java | 3 +-- .../actuallyadditions/mod/tile/TileEntityInputter.java | 8 +++++++- .../mod/tile/TileEntityItemViewer.java | 2 -- .../mod/tile/TileEntityLaserRelayItem.java | 2 -- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockInputter.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockInputter.java index ae4fb49ad..e5b13e238 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockInputter.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockInputter.java @@ -90,6 +90,16 @@ public class BlockInputter extends BlockContainerBase{ return EnumRarity.EPIC; } + @Override + public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block){ + if(!world.isRemote){ + TileEntity tile = world.getTileEntity(pos); + if(tile instanceof TileEntityInputter){ + ((TileEntityInputter)tile).initVars(); + } + } + } + public static class TheItemBlock extends ItemBlockBase{ private long lastSysTime; diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockItemViewer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockItemViewer.java index 31026f2f9..fee3a1b7e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockItemViewer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockItemViewer.java @@ -40,7 +40,6 @@ public class BlockItemViewer extends BlockContainerBase{ TileEntity tile = world.getTileEntity(pos); if(tile instanceof TileEntityItemViewer){ ((TileEntityItemViewer)tile).saveConnectedRelay(); - System.out.println("------------Saving connected on change " + ((TileEntityItemViewer)tile).connectedRelay); } } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLaserRelay.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLaserRelay.java index 859c586de..2b046246d 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLaserRelay.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockLaserRelay.java @@ -118,11 +118,10 @@ public class BlockLaserRelay extends BlockContainerBase{ @Override public void neighborChanged(IBlockState state, World world, BlockPos pos, Block block){ - if(!world.isRemote){ + if((this.type == Type.ITEM || this.type == Type.ITEM_WHITELIST) && !world.isRemote){ TileEntity tile = world.getTileEntity(pos); if(tile instanceof TileEntityLaserRelayItem){ ((TileEntityLaserRelayItem)tile).saveAllHandlersAround(); - System.out.println("------------Saving around on change " + ((TileEntityLaserRelayItem)tile).handlersAround); } } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInputter.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInputter.java index 67badc6ad..22b592c75 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInputter.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityInputter.java @@ -49,6 +49,8 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt private boolean lastPullWhite; private boolean lastPutWhite; + private boolean hasCheckedTilesAround; + public TileEntityInputter(int slots, String name){ super(slots, name); } @@ -348,6 +350,7 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt } this.markDirty(); + this.initVars(); } @Override @@ -380,7 +383,10 @@ public class TileEntityInputter extends TileEntityInventoryBase implements IButt public void updateEntity(){ super.updateEntity(); if(!this.worldObj.isRemote){ - this.initVars(); + if(!this.hasCheckedTilesAround){ + this.initVars(); + this.hasCheckedTilesAround = true; + } //Is Block not powered by Redstone? if(!this.isRedstonePowered){ diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityItemViewer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityItemViewer.java index f667fc1c1..006b76f21 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityItemViewer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityItemViewer.java @@ -38,8 +38,6 @@ public class TileEntityItemViewer extends TileEntityInventoryBase{ if(!this.worldObj.isRemote && !this.hasCheckedRelayOnLoad){ this.saveConnectedRelay(); this.hasCheckedRelayOnLoad = true; - - System.out.println("------------Saving relay on load " + this.connectedRelay); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayItem.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayItem.java index 0a92b0ee5..ce26b54dc 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayItem.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityLaserRelayItem.java @@ -48,8 +48,6 @@ public class TileEntityLaserRelayItem extends TileEntityLaserRelay{ if(!this.worldObj.isRemote && !this.hasCheckedHandlersOnLoad){ this.saveAllHandlersAround(); this.hasCheckedHandlersOnLoad = true; - - System.out.println("------------Saving around on load " + this.handlersAround); } }