From fdacf4129f7c0aeb48cf1a64fadd5b979553fc99 Mon Sep 17 00:00:00 2001 From: malte0811 Date: Sun, 13 Aug 2017 22:14:56 +0200 Subject: [PATCH] Don't interact with other TE's in onChunkUnload, closes #12 (Ported from 1.11) --- .../blocks/controlpanel/TileEntityPanel.java | 12 +++++++++--- .../controlpanel/CoveredToggleSwitch.java | 1 - .../industrialWires/controlpanel/IndicatorLight.java | 1 - .../industrialWires/controlpanel/LightedButton.java | 2 -- .../malte0811/industrialWires/controlpanel/Lock.java | 3 --- .../industrialWires/controlpanel/PanelMeter.java | 1 - .../industrialWires/controlpanel/Slider.java | 1 - .../industrialWires/controlpanel/ToggleSwitch.java | 2 -- .../industrialWires/controlpanel/Variac.java | 1 - 9 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/main/java/malte0811/industrialWires/blocks/controlpanel/TileEntityPanel.java b/src/main/java/malte0811/industrialWires/blocks/controlpanel/TileEntityPanel.java index 25b2915..485b8f1 100644 --- a/src/main/java/malte0811/industrialWires/blocks/controlpanel/TileEntityPanel.java +++ b/src/main/java/malte0811/industrialWires/blocks/controlpanel/TileEntityPanel.java @@ -57,6 +57,7 @@ public class TileEntityPanel extends TileEntityIWBase implements IDirectionalTil public boolean firstTick = true; // non-rendered properties private Set rsPorts = new HashSet<>(); + private boolean renderUpdate; { int[] colors = { @@ -99,6 +100,13 @@ public class TileEntityPanel extends TileEntityIWBase implements IDirectionalTil } firstTick = false; } + if (renderUpdate) { + IBlockState state = world.getBlockState(pos); + world.notifyBlockUpdate(pos, state, state, 3); + world.addBlockEvent(pos, state.getBlock(), 255, 0); + markDirty(); + renderUpdate = false; + } } } @@ -281,9 +289,7 @@ public class TileEntityPanel extends TileEntityIWBase implements IDirectionalTil } public void triggerRenderUpdate() { - IBlockState state = world.getBlockState(pos); - world.notifyBlockUpdate(pos, state, state, 3); - world.addBlockEvent(pos, state.getBlock(), 255, 0); + renderUpdate = true; } public void registerRS(TileEntityRSPanelConn te) { diff --git a/src/main/java/malte0811/industrialWires/controlpanel/CoveredToggleSwitch.java b/src/main/java/malte0811/industrialWires/controlpanel/CoveredToggleSwitch.java index 9d9d6d3..438b4c8 100644 --- a/src/main/java/malte0811/industrialWires/controlpanel/CoveredToggleSwitch.java +++ b/src/main/java/malte0811/industrialWires/controlpanel/CoveredToggleSwitch.java @@ -67,7 +67,6 @@ public class CoveredToggleSwitch extends ToggleSwitch { state = state.next(); } setOut(state.active, tile); - tile.markDirty(); tile.triggerRenderUpdate(); } diff --git a/src/main/java/malte0811/industrialWires/controlpanel/IndicatorLight.java b/src/main/java/malte0811/industrialWires/controlpanel/IndicatorLight.java index 4674bfa..0310bbe 100644 --- a/src/main/java/malte0811/industrialWires/controlpanel/IndicatorLight.java +++ b/src/main/java/malte0811/industrialWires/controlpanel/IndicatorLight.java @@ -124,7 +124,6 @@ public class IndicatorLight extends PanelComponent implements IConfigurableCompo private Consumer handler = (input) -> { if (input[rsInputChannel] != rsInput) { rsInput = input[rsInputChannel]; - panel.markDirty(); panel.triggerRenderUpdate(); } }; diff --git a/src/main/java/malte0811/industrialWires/controlpanel/LightedButton.java b/src/main/java/malte0811/industrialWires/controlpanel/LightedButton.java index edccb45..0433575 100644 --- a/src/main/java/malte0811/industrialWires/controlpanel/LightedButton.java +++ b/src/main/java/malte0811/industrialWires/controlpanel/LightedButton.java @@ -123,7 +123,6 @@ public class LightedButton extends PanelComponent implements IConfigurableCompon ticksTillOff = 10; } } - tile.markDirty(); tile.triggerRenderUpdate(); } @@ -163,7 +162,6 @@ public class LightedButton extends PanelComponent implements IConfigurableCompon private void setOut(boolean on, TileEntityPanel tile) { active = on; - tile.markDirty(); tile.triggerRenderUpdate(); setOut(rsOutputChannel, active ? 15 : 0); } diff --git a/src/main/java/malte0811/industrialWires/controlpanel/Lock.java b/src/main/java/malte0811/industrialWires/controlpanel/Lock.java index acd4073..c92641a 100644 --- a/src/main/java/malte0811/industrialWires/controlpanel/Lock.java +++ b/src/main/java/malte0811/industrialWires/controlpanel/Lock.java @@ -197,7 +197,6 @@ public class Lock extends PanelComponent implements IConfigurableComponent { ticksTillOff = 10; } } - tile.markDirty(); tile.triggerRenderUpdate(); } @@ -208,7 +207,6 @@ public class Lock extends PanelComponent implements IConfigurableComponent { tile.markDirty(); if (ticksTillOff == 0) { turned = false; - tile.markDirty(); tile.triggerRenderUpdate(); setOut(tile); } @@ -245,7 +243,6 @@ public class Lock extends PanelComponent implements IConfigurableComponent { } private void setOut(TileEntityPanel tile) { - tile.markDirty(); tile.triggerRenderUpdate(); setOut(rsOutputChannel, turned ? 15 : 0); } diff --git a/src/main/java/malte0811/industrialWires/controlpanel/PanelMeter.java b/src/main/java/malte0811/industrialWires/controlpanel/PanelMeter.java index 7074bc2..5bcf29d 100644 --- a/src/main/java/malte0811/industrialWires/controlpanel/PanelMeter.java +++ b/src/main/java/malte0811/industrialWires/controlpanel/PanelMeter.java @@ -192,7 +192,6 @@ public class PanelMeter extends PanelComponent implements IConfigurableComponent private Consumer handler = (input) -> { if (input[rsInputChannel] != rsInput) { rsInput = input[rsInputChannel]; - panel.markDirty(); panel.triggerRenderUpdate(); } }; diff --git a/src/main/java/malte0811/industrialWires/controlpanel/Slider.java b/src/main/java/malte0811/industrialWires/controlpanel/Slider.java index 675f4c4..1241883 100644 --- a/src/main/java/malte0811/industrialWires/controlpanel/Slider.java +++ b/src/main/java/malte0811/industrialWires/controlpanel/Slider.java @@ -134,7 +134,6 @@ public class Slider extends PanelComponent implements IConfigurableComponent { if (newLevel != out) { setOut(rsChannel, newLevel); out = newLevel; - tile.markDirty(); tile.triggerRenderUpdate(); } } diff --git a/src/main/java/malte0811/industrialWires/controlpanel/ToggleSwitch.java b/src/main/java/malte0811/industrialWires/controlpanel/ToggleSwitch.java index 10be826..5688d58 100644 --- a/src/main/java/malte0811/industrialWires/controlpanel/ToggleSwitch.java +++ b/src/main/java/malte0811/industrialWires/controlpanel/ToggleSwitch.java @@ -119,7 +119,6 @@ public class ToggleSwitch extends PanelComponent implements IConfigurableCompone @Override public void interactWith(Vec3d hitRel, TileEntityPanel tile, EntityPlayerMP player) { setOut(!active, tile); - tile.markDirty(); tile.triggerRenderUpdate(); } @@ -166,7 +165,6 @@ public class ToggleSwitch extends PanelComponent implements IConfigurableCompone protected void setOut(boolean on, TileEntityPanel tile) { active = on; - tile.markDirty(); tile.triggerRenderUpdate(); setOut(rsOutputChannel, active ? 15 : 0); } diff --git a/src/main/java/malte0811/industrialWires/controlpanel/Variac.java b/src/main/java/malte0811/industrialWires/controlpanel/Variac.java index db0b0e6..0f4d0fc 100644 --- a/src/main/java/malte0811/industrialWires/controlpanel/Variac.java +++ b/src/main/java/malte0811/industrialWires/controlpanel/Variac.java @@ -152,7 +152,6 @@ public class Variac extends PanelComponent implements IConfigurableComponent { if (newLevel != out) { setOut(rsChannel, newLevel); out = newLevel; - tile.markDirty(); tile.triggerRenderUpdate(); } }