Skip to content

Commit c2b6075

Browse files
committed
remove needless singleton structure from TransmitterNetworkRegistry
1 parent ddf6ef1 commit c2b6075

File tree

9 files changed

+50
-63
lines changed

9 files changed

+50
-63
lines changed

src/main/java/mekanism/client/MekanismClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public static void resetDimensionChange() {
6060
Mekanism.activeVibrators.clear();
6161
RadiationManager.get().resetClient();
6262
RenderSPS.clearBoltRenderers();
63-
TransmitterNetworkRegistry.getInstance().clearClientNetworks();
63+
TransmitterNetworkRegistry.clearClientNetworks();
6464
RenderTickHandler.clearQueued();
6565

6666
for (IModModule module : Mekanism.modulesLoaded) {

src/main/java/mekanism/common/Mekanism.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -368,9 +368,6 @@ private void commonSetup(FMLCommonSetupEvent event) {
368368

369369
NeoForge.EVENT_BUS.register(RadiationManager.get());
370370

371-
//Register with TransmitterNetworkRegistry
372-
TransmitterNetworkRegistry.initiate();
373-
374371
//Fake player info
375372
logger.info("Fake player readout: UUID = {}, name = {}", gameProfile.getId(), gameProfile.getName());
376373
logger.info("Mod loaded.");

src/main/java/mekanism/common/content/network/transmitter/Transmitter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ public void handleUpdateTag(@NotNull CompoundTag tag, @NotNull HolderLookup.Prov
456456
//Nothing needs to be done
457457
return;
458458
}
459-
DynamicNetwork<?, ?, ?> clientNetwork = TransmitterNetworkRegistry.getInstance().getClientNetwork(networkID);
459+
DynamicNetwork<?, ?, ?> clientNetwork = TransmitterNetworkRegistry.getClientNetwork(networkID);
460460
if (clientNetwork == null) {
461461
NETWORK network = createEmptyNetworkWithID(networkID);
462462
network.register();

src/main/java/mekanism/common/item/ItemNetworkReader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public InteractionResult useOn(UseOnContext context) {
8181
return InteractionResult.CONSUME;
8282
} else if (player.isShiftKeyDown() && MekanismAPI.debug) {
8383
displayBorder(player, MekanismLang.DEBUG_TITLE, true);
84-
for (Component component : TransmitterNetworkRegistry.getInstance().toComponents()) {
84+
for (Component component : TransmitterNetworkRegistry.toComponents()) {
8585
player.sendSystemMessage(TextComponentUtil.build(EnumColor.DARK_GRAY, component));
8686
}
8787
displayEndBorder(player);

src/main/java/mekanism/common/lib/transmitter/DynamicNetwork.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,9 @@ protected void adoptAllAndRegister(Collection<NETWORK> networks) {
172172

173173
public void register() {
174174
if (isRemote()) {
175-
TransmitterNetworkRegistry.getInstance().addClientNetwork(getUUID(), this);
175+
TransmitterNetworkRegistry.addClientNetwork(getUUID(), this);
176176
} else {
177-
TransmitterNetworkRegistry.getInstance().registerNetwork(this);
177+
TransmitterNetworkRegistry.registerNetwork(this);
178178
}
179179
}
180180

@@ -184,9 +184,9 @@ public void deregister() {
184184
acceptorCache.deregister();
185185
transmitterValidator = null;
186186
if (isRemote()) {
187-
TransmitterNetworkRegistry.getInstance().removeClientNetwork(this);
187+
TransmitterNetworkRegistry.removeClientNetwork(this);
188188
} else {
189-
TransmitterNetworkRegistry.getInstance().removeNetwork(this);
189+
TransmitterNetworkRegistry.removeNetwork(this);
190190
}
191191
}
192192

src/main/java/mekanism/common/lib/transmitter/TransmitterNetworkRegistry.java

Lines changed: 40 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -29,109 +29,96 @@
2929
import net.minecraft.world.level.Level;
3030
import net.minecraft.world.level.chunk.ChunkAccess;
3131
import net.neoforged.bus.api.SubscribeEvent;
32-
import net.neoforged.neoforge.common.NeoForge;
32+
import net.neoforged.fml.common.EventBusSubscriber;
3333
import net.neoforged.neoforge.event.level.ChunkTicketLevelUpdatedEvent;
3434
import net.neoforged.neoforge.event.tick.ServerTickEvent;
3535
import org.jetbrains.annotations.Nullable;
3636

37+
@EventBusSubscriber(modid = Mekanism.MODID)
3738
public class TransmitterNetworkRegistry {
3839

39-
private static final TransmitterNetworkRegistry INSTANCE = new TransmitterNetworkRegistry();
40-
private static boolean loaderRegistered = false;
41-
private final Multimap<Chunk3D, Transmitter<?, ?, ?>> transmitters = HashMultimap.create();
42-
private Object2BooleanMap<Chunk3D> changedTicketChunks = new Object2BooleanOpenHashMap<>();
43-
private final Set<DynamicNetwork<?, ?, ?>> networks = new ObjectOpenHashSet<>();
44-
private final Map<UUID, DynamicNetwork<?, ?, ?>> clientNetworks = new Object2ObjectOpenHashMap<>();
45-
private Map<GlobalPos, Transmitter<?, ?, ?>> newOrphanTransmitters = new Object2ObjectOpenHashMap<>();
46-
private Set<Transmitter<?, ?, ?>> invalidTransmitters = new ObjectOpenHashSet<>();
47-
private Set<DynamicNetwork<?, ?, ?>> networksToChange = new ObjectOpenHashSet<>();
40+
private static final Multimap<Chunk3D, Transmitter<?, ?, ?>> transmitters = HashMultimap.create();
41+
private static Object2BooleanMap<Chunk3D> changedTicketChunks = new Object2BooleanOpenHashMap<>();
42+
private static final Set<DynamicNetwork<?, ?, ?>> networks = new ObjectOpenHashSet<>();
43+
private static final Map<UUID, DynamicNetwork<?, ?, ?>> clientNetworks = new Object2ObjectOpenHashMap<>();
44+
private static Map<GlobalPos, Transmitter<?, ?, ?>> newOrphanTransmitters = new Object2ObjectOpenHashMap<>();
45+
private static Set<Transmitter<?, ?, ?>> invalidTransmitters = new ObjectOpenHashSet<>();
46+
private static Set<DynamicNetwork<?, ?, ?>> networksToChange = new ObjectOpenHashSet<>();
4847

49-
public void addClientNetwork(UUID networkID, DynamicNetwork<?, ?, ?> network) {
48+
public static void addClientNetwork(UUID networkID, DynamicNetwork<?, ?, ?> network) {
5049
if (!clientNetworks.containsKey(networkID)) {
5150
clientNetworks.put(networkID, network);
5251
}
5352
}
5453

5554
@Nullable
56-
public DynamicNetwork<?, ?, ?> getClientNetwork(UUID networkID) {
55+
public static DynamicNetwork<?, ?, ?> getClientNetwork(UUID networkID) {
5756
return clientNetworks.get(networkID);
5857
}
5958

60-
public void removeClientNetwork(DynamicNetwork<?, ?, ?> network) {
59+
public static void removeClientNetwork(DynamicNetwork<?, ?, ?> network) {
6160
clientNetworks.remove(network.getUUID());
6261
}
6362

64-
public void clearClientNetworks() {
63+
public static void clearClientNetworks() {
6564
clientNetworks.clear();
6665
}
6766

68-
public static void initiate() {
69-
if (!loaderRegistered) {
70-
loaderRegistered = true;
71-
NeoForge.EVENT_BUS.register(INSTANCE);
72-
}
73-
}
74-
7567
public static void reset() {
76-
getInstance().networks.clear();
77-
getInstance().networksToChange.clear();
78-
getInstance().invalidTransmitters.clear();
79-
getInstance().newOrphanTransmitters.clear();
80-
getInstance().transmitters.clear();
81-
getInstance().changedTicketChunks.clear();
68+
networks.clear();
69+
networksToChange.clear();
70+
invalidTransmitters.clear();
71+
newOrphanTransmitters.clear();
72+
transmitters.clear();
73+
changedTicketChunks.clear();
8274
}
8375

8476
public static void trackTransmitter(Transmitter<?, ?, ?> transmitter) {
85-
getInstance().transmitters.put(transmitter.getTileChunk(), transmitter);
77+
transmitters.put(transmitter.getTileChunk(), transmitter);
8678
}
8779

8880
public static void untrackTransmitter(Transmitter<?, ?, ?> transmitter) {
89-
getInstance().transmitters.remove(transmitter.getTileChunk(), transmitter);
81+
transmitters.remove(transmitter.getTileChunk(), transmitter);
9082
}
9183

9284
public static void invalidateTransmitter(Transmitter<?, ?, ?> transmitter) {
93-
TransmitterNetworkRegistry registry = getInstance();
94-
registry.invalidTransmitters.add(transmitter);
85+
invalidTransmitters.add(transmitter);
9586
GlobalPos coord = transmitter.getTileGlobalPos();
96-
Transmitter<?, ?, ?> removed = registry.newOrphanTransmitters.remove(coord);
87+
Transmitter<?, ?, ?> removed = newOrphanTransmitters.remove(coord);
9788
if (removed != null && removed != transmitter) {
9889
Mekanism.logger.error("Different orphan transmitter was registered at location during removal! {}", coord);
99-
registry.newOrphanTransmitters.put(coord, transmitter);//put it back?
90+
newOrphanTransmitters.put(coord, transmitter);//put it back?
10091
}
10192
}
10293

10394
public static void registerOrphanTransmitter(Transmitter<?, ?, ?> transmitter) {
104-
if (!getInstance().invalidTransmitters.remove(transmitter)) {
95+
if (!invalidTransmitters.remove(transmitter)) {
10596
//If we weren't an invalid transmitter, then we need to add it as a new orphan, otherwise removing it is good enough
10697
// as if it was an orphan before it still will be one, and if it wasn't then it still will be part of the network it
10798
// was in.
10899
GlobalPos pos = transmitter.getTileGlobalPos();
109-
Transmitter<?, ?, ?> previous = getInstance().newOrphanTransmitters.put(pos, transmitter);
100+
Transmitter<?, ?, ?> previous = newOrphanTransmitters.put(pos, transmitter);
110101
if (previous != null && previous != transmitter && previous.isValid()) {
111102
Mekanism.logger.error("Different orphan transmitter was already registered at location! {}", pos);
112103
}
113104
}
114105
}
115106

116107
public static void registerChangedNetwork(DynamicNetwork<?, ?, ?> network) {
117-
getInstance().networksToChange.add(network);
108+
networksToChange.add(network);
118109
}
119110

120-
public static TransmitterNetworkRegistry getInstance() {
121-
return INSTANCE;
122-
}
123-
124-
public void registerNetwork(DynamicNetwork<?, ?, ?> network) {
111+
public static void registerNetwork(DynamicNetwork<?, ?, ?> network) {
125112
networks.add(network);
126113
}
127114

128-
public void removeNetwork(DynamicNetwork<?, ?, ?> network) {
115+
public static void removeNetwork(DynamicNetwork<?, ?, ?> network) {
129116
networks.remove(network);
130117
networksToChange.remove(network);
131118
}
132119

133120
@SubscribeEvent
134-
public void onTick(ServerTickEvent.Post event) {
121+
public static void onTick(ServerTickEvent.Post event) {
135122
handleChangedChunks();
136123
removeInvalidTransmitters();
137124
assignOrphans();
@@ -144,7 +131,7 @@ public void onTick(ServerTickEvent.Post event) {
144131
}
145132

146133
@SubscribeEvent
147-
public void onTicketLevelChange(ChunkTicketLevelUpdatedEvent event) {
134+
public static void onTicketLevelChange(ChunkTicketLevelUpdatedEvent event) {
148135
int newTicketLevel = event.getNewTicketLevel();
149136
int oldTicketLevel = event.getOldTicketLevel();
150137
boolean loaded;
@@ -174,7 +161,7 @@ public void onTicketLevelChange(ChunkTicketLevelUpdatedEvent event) {
174161
}
175162
}
176163

177-
private void handleChangedChunks() {
164+
private static void handleChangedChunks() {
178165
if (!changedTicketChunks.isEmpty()) {
179166
Object2BooleanMap<Chunk3D> changed = changedTicketChunks;
180167
changedTicketChunks = new Object2BooleanOpenHashMap<>();
@@ -195,7 +182,7 @@ private void handleChangedChunks() {
195182
}
196183
}
197184

198-
private void removeInvalidTransmitters() {
185+
private static void removeInvalidTransmitters() {
199186
if (!invalidTransmitters.isEmpty()) {
200187
//Ensure we copy the invalid transmitters, so that when we iterate and remove invalid ones
201188
// and add still valid ones as orphans, we actually add them as orphans rather than try
@@ -211,7 +198,7 @@ private void removeInvalidTransmitters() {
211198
}
212199
}
213200

214-
private <NETWORK extends DynamicNetwork<?, NETWORK, TRANSMITTER>, TRANSMITTER extends Transmitter<?, NETWORK, TRANSMITTER>>
201+
private static <NETWORK extends DynamicNetwork<?, NETWORK, TRANSMITTER>, TRANSMITTER extends Transmitter<?, NETWORK, TRANSMITTER>>
215202
void removeInvalidTransmitter(Transmitter<?, NETWORK, TRANSMITTER> invalid) {
216203
if (!invalid.isOrphan() || !invalid.isValid()) {
217204
NETWORK n = invalid.getTransmitterNetwork();
@@ -227,7 +214,7 @@ void removeInvalidTransmitter(Transmitter<?, NETWORK, TRANSMITTER> invalid) {
227214
}
228215
}
229216

230-
private void assignOrphans() {
217+
private static void assignOrphans() {
231218
if (!newOrphanTransmitters.isEmpty()) {
232219
Map<GlobalPos, Transmitter<?, ?, ?>> orphanTransmitters = newOrphanTransmitters;
233220
newOrphanTransmitters = new Object2ObjectOpenHashMap<>();
@@ -244,7 +231,7 @@ private void assignOrphans() {
244231
}
245232
}
246233

247-
private void commitChanges() {
234+
private static void commitChanges() {
248235
if (!networksToChange.isEmpty()) {
249236
Set<DynamicNetwork<?, ?, ?>> networks = networksToChange;
250237
networksToChange = new ObjectOpenHashSet<>();
@@ -259,7 +246,7 @@ public String toString() {
259246
return "Network Registry:\n" + networks;
260247
}
261248

262-
public Component[] toComponents() {
249+
public static Component[] toComponents() {
263250
Component[] components = new Component[networks.size()];
264251
int i = 0;
265252
for (DynamicNetwork<?, ?, ?> network : networks) {
@@ -351,4 +338,7 @@ private void iterate(Map<GlobalPos, Transmitter<?, ?, ?>> orphanTransmitters, Bl
351338
}
352339
}
353340
}
341+
342+
private TransmitterNetworkRegistry() {
343+
}
354344
}

src/main/java/mekanism/common/network/to_client/transmitter/PacketChemicalNetworkContents.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public CustomPacketPayload.Type<PacketChemicalNetworkContents> type() {
3333
public void handle(IPayloadContext context) {
3434
//Note: We set the information even if opaque transmitters is true in case the client turns the config setting off
3535
// so that they will have the proper information to then render
36-
DynamicNetwork<?, ?, ?> clientNetwork = TransmitterNetworkRegistry.getInstance().getClientNetwork(networkID);
36+
DynamicNetwork<?, ?, ?> clientNetwork = TransmitterNetworkRegistry.getClientNetwork(networkID);
3737
if (clientNetwork instanceof ChemicalNetwork network) {
3838
network.setLastChemical(chemical);
3939
}

src/main/java/mekanism/common/network/to_client/transmitter/PacketFluidNetworkContents.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public CustomPacketPayload.Type<PacketFluidNetworkContents> type() {
3333
public void handle(IPayloadContext context) {
3434
//Note: We set the information even if opaque transmitters is true in case the client turns the config setting off
3535
// so that they will have the proper information to then render
36-
DynamicNetwork<?, ?, ?> clientNetwork = TransmitterNetworkRegistry.getInstance().getClientNetwork(networkID);
36+
DynamicNetwork<?, ?, ?> clientNetwork = TransmitterNetworkRegistry.getClientNetwork(networkID);
3737
if (clientNetwork instanceof FluidNetwork network) {
3838
network.setLastFluid(fluid);
3939
}

src/main/java/mekanism/common/network/to_client/transmitter/PacketNetworkScale.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public CustomPacketPayload.Type<PacketNetworkScale> type() {
3737
public void handle(IPayloadContext context) {
3838
//Note: We set the information even if opaque transmitters is true in case the client turns the config setting off
3939
// so that they will have the proper information to then render
40-
DynamicNetwork<?, ?, ?> clientNetwork = TransmitterNetworkRegistry.getInstance().getClientNetwork(networkID);
40+
DynamicNetwork<?, ?, ?> clientNetwork = TransmitterNetworkRegistry.getClientNetwork(networkID);
4141
if (clientNetwork instanceof DynamicBufferedNetwork<?, ?, ?, ?> network) {
4242
network.currentScale = scale;
4343
}

0 commit comments

Comments
 (0)