Skip to content

Commit

Permalink
make registired be reregistered per save file
Browse files Browse the repository at this point in the history
  • Loading branch information
BlueWeabo committed Aug 5, 2024
1 parent 1bb7a80 commit 69d6e51
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
2 changes: 2 additions & 0 deletions src/main/java/com/gtnewhorizons/mutecore/MuTECore.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.gtnewhorizons.mutecore.api.gui.MultiTileEntityGuiFactory;
import com.gtnewhorizons.mutecore.api.registry.EventRegistry;
import com.gtnewhorizons.mutecore.api.registry.MultiTileContainer.FakeEntity;
import com.gtnewhorizons.mutecore.api.registry.MultiTileEntityRegistry;
import com.gtnewhorizons.mutecore.api.tile.MultiTileEntity;
import com.gtnewhorizons.mutecore.api.utils.PlayerHelper;
import com.gtnewhorizons.mutecore.test.TestRegistry;
Expand Down Expand Up @@ -100,6 +101,7 @@ public void postInit(FMLPostInitializationEvent event) {
@Mod.EventHandler
public void serverStarting(FMLServerStartingEvent event) {
proxy.serverStarting(event);
MultiTileEntityRegistry.registerForSave();
}

@Mod.EventHandler
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@
import com.gtnewhorizons.mutecore.api.render.MuTERender;
import com.gtnewhorizons.mutecore.api.tile.MultiTileEntity;

import it.unimi.dsi.fastutil.Pair;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;

public class MultiTileEntityRegistry {

private static final List<Pair<MultiTileEntityBlock, MultiTileEntityRegistry>> TO_REGISTER = new ArrayList<>();
private static final Int2ObjectMap<MultiTileEntityRegistry> REGISTRY_MAP = new Int2ObjectOpenHashMap<>();

private final MultiTileEntityBlock block;
Expand All @@ -32,8 +34,16 @@ public class MultiTileEntityRegistry {
* Should only be called after the block has been registered
*/
public static void registerRegistry(MultiTileEntityBlock block, MultiTileEntityRegistry registry) {
int id = Block.getIdFromBlock(block);
REGISTRY_MAP.put(id, registry);
TO_REGISTER.add(Pair.of(block, registry));
}

public static void registerForSave() {
REGISTRY_MAP.clear();
for (int i = 0; i < TO_REGISTER.size(); i++) {
Pair<MultiTileEntityBlock, MultiTileEntityRegistry> pair = TO_REGISTER.get(i);
int id = Block.getIdFromBlock(pair.left());
REGISTRY_MAP.put(id, pair.right());
}
}

@Internal
Expand Down

0 comments on commit 69d6e51

Please sign in to comment.