*Actually* fixed Item Laser Relays leaving phantom connections behind

This commit is contained in:
Ellpeck 2016-11-25 15:33:47 +01:00
parent f7f68e4f16
commit 6955188d7b

View file

@ -75,32 +75,46 @@ public class TileEntityItemViewer extends TileEntityInventoryBase{
} }
private void queryAndSaveData(){ private void queryAndSaveData(){
this.genericInfos.clear();
this.specificInfos.clear();
if(this.connectedRelay != null){ if(this.connectedRelay != null){
Network network = ActuallyAdditionsAPI.connectionHandler.getNetworkFor(this.connectedRelay.getPos(), this.worldObj); Network network = ActuallyAdditionsAPI.connectionHandler.getNetworkFor(this.connectedRelay.getPos(), this.worldObj);
if(network != null && (this.oldNetwork != network || this.lastNetworkChangeAmount != network.changeAmount)){ if(network != null){
if(this.oldNetwork != network || this.lastNetworkChangeAmount != network.changeAmount){
this.clearInfos();
this.connectedRelay.getItemHandlersInNetwork(network, this.genericInfos); this.connectedRelay.getItemHandlersInNetwork(network, this.genericInfos);
if(!this.genericInfos.isEmpty()){ if(!this.genericInfos.isEmpty()){
Collections.sort(this.genericInfos); Collections.sort(this.genericInfos);
int slotsQueried = 0; int slotsQueried = 0;
for(GenericItemHandlerInfo info : this.genericInfos){ for(GenericItemHandlerInfo info : this.genericInfos){
for(IItemHandler handler : info.handlers){ for(IItemHandler handler : info.handlers){
for(int i = 0; i < handler.getSlots(); i++){ for(int i = 0; i < handler.getSlots(); i++){
this.specificInfos.put(slotsQueried, new SpecificItemHandlerInfo(handler, i, info.relayInQuestion)); this.specificInfos.put(slotsQueried, new SpecificItemHandlerInfo(handler, i, info.relayInQuestion));
slotsQueried++; slotsQueried++;
}
} }
} }
} }
this.oldNetwork = network;
this.lastNetworkChangeAmount = network.changeAmount;
} }
this.oldNetwork = network; return;
this.lastNetworkChangeAmount = network.changeAmount;
} }
} }
this.clearInfos();
}
private void clearInfos(){
if(!this.genericInfos.isEmpty()){
this.genericInfos.clear();
}
if(!this.specificInfos.isEmpty()){
this.specificInfos.clear();
}
} }
private SpecificItemHandlerInfo getSwitchedIndexHandler(int i){ private SpecificItemHandlerInfo getSwitchedIndexHandler(int i){