Skip to content

Commit

Permalink
check old orphan transmitter was valid and remove orphans when invali…
Browse files Browse the repository at this point in the history
…dating

(cherry picked from commit a1ea0e9)

# Conflicts:
#	src/main/java/mekanism/common/lib/transmitter/TransmitterNetworkRegistry.java
  • Loading branch information
thiakil committed Dec 24, 2024
1 parent 6adc761 commit ddf6ef1
Showing 1 changed file with 9 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,14 @@ public static void untrackTransmitter(Transmitter<?, ?, ?> transmitter) {
}

public static void invalidateTransmitter(Transmitter<?, ?, ?> transmitter) {
getInstance().invalidTransmitters.add(transmitter);
TransmitterNetworkRegistry registry = getInstance();
registry.invalidTransmitters.add(transmitter);
GlobalPos coord = transmitter.getTileGlobalPos();
Transmitter<?, ?, ?> removed = registry.newOrphanTransmitters.remove(coord);
if (removed != null && removed != transmitter) {
Mekanism.logger.error("Different orphan transmitter was registered at location during removal! {}", coord);
registry.newOrphanTransmitters.put(coord, transmitter);//put it back?
}
}

public static void registerOrphanTransmitter(Transmitter<?, ?, ?> transmitter) {
Expand All @@ -100,7 +107,7 @@ public static void registerOrphanTransmitter(Transmitter<?, ?, ?> transmitter) {
// was in.
GlobalPos pos = transmitter.getTileGlobalPos();
Transmitter<?, ?, ?> previous = getInstance().newOrphanTransmitters.put(pos, transmitter);
if (previous != null && previous != transmitter) {
if (previous != null && previous != transmitter && previous.isValid()) {
Mekanism.logger.error("Different orphan transmitter was already registered at location! {}", pos);
}
}
Expand Down

0 comments on commit ddf6ef1

Please sign in to comment.