One more fix for connecting panels using connectors after the panel and the controller have been placed
This commit is contained in:
parent
f97bec3d44
commit
f8f53d2434
|
@ -303,7 +303,7 @@ public class TileEntityPanel extends TileEntityIWBase implements IDirectionalTil
|
||||||
|
|
||||||
public void removeAllRSCons() {
|
public void removeAllRSCons() {
|
||||||
for (TileEntityRSPanelConn rs : rsPorts) {
|
for (TileEntityRSPanelConn rs : rsPorts) {
|
||||||
rs.unregisterPanel(this, true);
|
rs.unregisterPanel(this, true, false);
|
||||||
}
|
}
|
||||||
rsPorts.clear();
|
rsPorts.clear();
|
||||||
firstTick = true;
|
firstTick = true;
|
||||||
|
|
|
@ -166,7 +166,7 @@ public class TileEntityRSPanelConn extends TileEntityImmersiveConnectable implem
|
||||||
Consumer<byte[]> listener = pc.getRSInputHandler(id, panel);
|
Consumer<byte[]> listener = pc.getRSInputHandler(id, panel);
|
||||||
if (listener != null) {
|
if (listener != null) {
|
||||||
changeListeners.add(listener);
|
changeListeners.add(listener);
|
||||||
listener.accept(out);
|
listener.accept(network.channelValues);
|
||||||
}
|
}
|
||||||
pc.registerRSOutput(id, rsOut);
|
pc.registerRSOutput(id, rsOut);
|
||||||
}
|
}
|
||||||
|
@ -174,19 +174,21 @@ public class TileEntityRSPanelConn extends TileEntityImmersiveConnectable implem
|
||||||
connectedPanels.add(panel);
|
connectedPanels.add(panel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void unregisterPanel(TileEntityPanel panel, boolean remove) {
|
public void unregisterPanel(TileEntityPanel panel, boolean remove, boolean callPanel) {
|
||||||
out = new byte[16];
|
out = new byte[16];
|
||||||
PropertyComponents.PanelRenderProperties p = panel.getComponents();
|
PropertyComponents.PanelRenderProperties p = panel.getComponents();
|
||||||
for (PanelComponent pc : p) {
|
for (PanelComponent pc : p) {
|
||||||
Consumer<byte[]> listener = pc.getRSInputHandler(id, panel);
|
Consumer<byte[]> listener = pc.getRSInputHandler(id, panel);
|
||||||
if (listener != null) {
|
if (listener != null) {
|
||||||
listener.accept(out);
|
listener.accept(new byte[16]);
|
||||||
changeListeners.remove(listener);
|
changeListeners.remove(listener);
|
||||||
}
|
}
|
||||||
pc.unregisterRSOutput(id, rsOut);
|
pc.unregisterRSOutput(id, rsOut);
|
||||||
outputs.remove(new PCWrapper(pc));
|
outputs.remove(new PCWrapper(pc));
|
||||||
}
|
}
|
||||||
panel.unregisterRS(this);
|
if (callPanel) {
|
||||||
|
panel.unregisterRS(this);
|
||||||
|
}
|
||||||
if (remove) {
|
if (remove) {
|
||||||
connectedPanels.remove(panel);
|
connectedPanels.remove(panel);
|
||||||
}
|
}
|
||||||
|
@ -282,7 +284,7 @@ public class TileEntityRSPanelConn extends TileEntityImmersiveConnectable implem
|
||||||
public void onChunkUnload() {
|
public void onChunkUnload() {
|
||||||
super.onChunkUnload();
|
super.onChunkUnload();
|
||||||
for (TileEntityPanel panel : connectedPanels) {
|
for (TileEntityPanel panel : connectedPanels) {
|
||||||
unregisterPanel(panel, false);
|
unregisterPanel(panel, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -290,7 +292,7 @@ public class TileEntityRSPanelConn extends TileEntityImmersiveConnectable implem
|
||||||
public void invalidate() {
|
public void invalidate() {
|
||||||
super.invalidate();
|
super.invalidate();
|
||||||
for (TileEntityPanel panel : connectedPanels) {
|
for (TileEntityPanel panel : connectedPanels) {
|
||||||
unregisterPanel(panel, false);
|
unregisterPanel(panel, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -303,7 +305,7 @@ public class TileEntityRSPanelConn extends TileEntityImmersiveConnectable implem
|
||||||
TileEntity te = world.getTileEntity(bp);
|
TileEntity te = world.getTileEntity(bp);
|
||||||
if (te instanceof TileEntityPanel) {
|
if (te instanceof TileEntityPanel) {
|
||||||
tes.add((TileEntityPanel) te);
|
tes.add((TileEntityPanel) te);
|
||||||
unregisterPanel((TileEntityPanel) te, true);
|
unregisterPanel((TileEntityPanel) te, true, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
id = nbt.getInteger("rsId");
|
id = nbt.getInteger("rsId");
|
||||||
|
|
Loading…
Reference in a new issue