]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Switch to using DimensionId object
authorIrtimaled <irtimaled@gmail.com>
Sat, 23 May 2020 06:42:27 +0000 (23:42 -0700)
committerIrtimaled <irtimaled@gmail.com>
Sun, 24 May 2020 23:50:31 +0000 (16:50 -0700)
31 files changed:
src/main/java/com/irtimaled/bbor/client/ClientRenderer.java
src/main/java/com/irtimaled/bbor/client/GetCache.java
src/main/java/com/irtimaled/bbor/client/Player.java
src/main/java/com/irtimaled/bbor/client/events/AddBoundingBoxReceived.java
src/main/java/com/irtimaled/bbor/client/interop/ClientInterop.java
src/main/java/com/irtimaled/bbor/client/interop/NBTStructureLoader.java
src/main/java/com/irtimaled/bbor/client/interop/SaveGameStructureLoader.java
src/main/java/com/irtimaled/bbor/client/providers/BeaconProvider.java
src/main/java/com/irtimaled/bbor/client/providers/BiomeBorderProvider.java
src/main/java/com/irtimaled/bbor/client/providers/CacheProvider.java
src/main/java/com/irtimaled/bbor/client/providers/ConduitProvider.java
src/main/java/com/irtimaled/bbor/client/providers/CustomBeaconProvider.java
src/main/java/com/irtimaled/bbor/client/providers/CustomBoxProvider.java
src/main/java/com/irtimaled/bbor/client/providers/CustomLineProvider.java
src/main/java/com/irtimaled/bbor/client/providers/CustomSphereProvider.java
src/main/java/com/irtimaled/bbor/client/providers/IBoundingBoxProvider.java
src/main/java/com/irtimaled/bbor/client/providers/MobSpawnerProvider.java
src/main/java/com/irtimaled/bbor/client/providers/SlimeChunkProvider.java
src/main/java/com/irtimaled/bbor/client/providers/SpawnableBlocksProvider.java
src/main/java/com/irtimaled/bbor/client/providers/SpawningSphereProvider.java
src/main/java/com/irtimaled/bbor/client/providers/WorldSpawnProvider.java
src/main/java/com/irtimaled/bbor/common/CommonProxy.java
src/main/java/com/irtimaled/bbor/common/Dimensions.java [deleted file]
src/main/java/com/irtimaled/bbor/common/events/StructuresLoaded.java
src/main/java/com/irtimaled/bbor/common/events/WorldLoaded.java
src/main/java/com/irtimaled/bbor/common/interop/CommonInterop.java
src/main/java/com/irtimaled/bbor/common/messages/AddBoundingBox.java
src/main/java/com/irtimaled/bbor/common/messages/PayloadBuilder.java
src/main/java/com/irtimaled/bbor/common/messages/PayloadReader.java
src/main/java/com/irtimaled/bbor/common/models/DimensionId.java [new file with mode: 0644]
src/main/java/com/irtimaled/bbor/common/models/ServerPlayer.java

index 4c6ba9d83d8715bc1347f0f1be685660de917a00..4fec5fdf2fe44242f45f5cda5be3afc9394ac169 100644 (file)
@@ -8,6 +8,7 @@ import com.irtimaled.bbor.client.renderers.*;
 import com.irtimaled.bbor.common.MathHelper;
 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
 import com.irtimaled.bbor.common.models.BoundingBoxCuboid;
+import com.irtimaled.bbor.common.models.DimensionId;
 import org.lwjgl.opengl.GL11;
 
 import java.util.HashMap;
@@ -82,7 +83,7 @@ public class ClientRenderer {
         return boundingBox.intersectsBounds(minX, minZ, maxX, maxZ);
     }
 
-    public static void render(int dimensionId) {
+    public static void render(DimensionId dimensionId) {
         if (!active) return;
 
         Set<AbstractBoundingBox> boundingBoxes = getBoundingBoxes(dimensionId);
@@ -108,7 +109,7 @@ public class ClientRenderer {
         GL11.glEnable(GL11.GL_TEXTURE_2D);
     }
 
-    private static Set<AbstractBoundingBox> getBoundingBoxes(int dimensionId) {
+    private static Set<AbstractBoundingBox> getBoundingBoxes(DimensionId dimensionId) {
         Set<AbstractBoundingBox> boundingBoxes = new HashSet<>();
         for (IBoundingBoxProvider<?> provider : providers) {
             if (provider.canProvide(dimensionId)) {
index 332d86ae11326020ba4f6b06112b96709f8fc23b..73ce433cd03c2ebc16b615c83c2cf4a48c6d0a40 100644 (file)
@@ -1,8 +1,9 @@
 package com.irtimaled.bbor.client;
 
 import com.irtimaled.bbor.common.BoundingBoxCache;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.function.Function;
 
-public interface GetCache extends Function<Integer, BoundingBoxCache> {
+public interface GetCache extends Function<DimensionId, BoundingBoxCache> {
 }
index 3006b179bc9eca7957bf94a77535b7b8880091d9..4b36029b961ebd8fb6140893656c394954870910 100644 (file)
@@ -2,6 +2,7 @@ package com.irtimaled.bbor.client;
 
 import com.irtimaled.bbor.client.models.Point;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.client.entity.player.ClientPlayerEntity;
 
 public class Player {
@@ -9,13 +10,13 @@ public class Player {
     private static double y;
     private static double z;
     private static double activeY;
-    private static int dimensionId;
+    private static DimensionId dimensionId;
 
     public static void setPosition(double partialTicks, ClientPlayerEntity player) {
         x = player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks;
         y = player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks;
         z = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks;
-        dimensionId = player.dimension.getId();
+        dimensionId = DimensionId.from(player.dimension);
     }
 
     static void setActiveY() {
@@ -44,7 +45,7 @@ public class Player {
         return configMaxY;
     }
 
-    public static int getDimensionId() {
+    public static DimensionId getDimensionId() {
         return dimensionId;
     }
 
index c4a443afa65667fc12d93f6cd9e8faf237267531..cee7e02fa257cd9777060fa1c34095e8dcb16939 100644 (file)
@@ -1,21 +1,22 @@
 package com.irtimaled.bbor.client.events;
 
 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.Set;
 
 public class AddBoundingBoxReceived {
-    private final int dimensionId;
+    private final DimensionId dimensionId;
     private final AbstractBoundingBox key;
     private final Set<AbstractBoundingBox> boundingBoxes;
 
-    public AddBoundingBoxReceived(int dimensionId, AbstractBoundingBox key, Set<AbstractBoundingBox> boundingBoxes) {
+    public AddBoundingBoxReceived(DimensionId dimensionId, AbstractBoundingBox key, Set<AbstractBoundingBox> boundingBoxes) {
         this.dimensionId = dimensionId;
         this.key = key;
         this.boundingBoxes = boundingBoxes;
     }
 
-    public int getDimensionId() {
+    public DimensionId getDimensionId() {
         return dimensionId;
     }
 
index 61265f248dede56177f1fd0be77bb68ae8d8e1d8..7ab06b9ba6e105ee50300d617faf9318008b38e4 100644 (file)
@@ -9,6 +9,7 @@ import com.irtimaled.bbor.client.events.UpdateWorldSpawnReceived;
 import com.irtimaled.bbor.client.providers.SlimeChunkProvider;
 import com.irtimaled.bbor.common.EventBus;
 import com.irtimaled.bbor.common.TypeHelper;
+import com.irtimaled.bbor.common.models.DimensionId;
 import com.mojang.brigadier.CommandDispatcher;
 import com.mojang.brigadier.exceptions.CommandSyntaxException;
 import net.minecraft.client.Minecraft;
@@ -29,7 +30,7 @@ public class ClientInterop {
 
     public static void render(float partialTicks, ClientPlayerEntity player) {
         Player.setPosition(partialTicks, player);
-        ClientRenderer.render(player.dimension.getId());
+        ClientRenderer.render(DimensionId.from(player.dimension));
     }
 
     public static boolean interceptChatMessage(String message) {
index b8455d2d44cbe9de8f0b6e8ded3cf0fe6d19806d..f7ab2f3de8736c56e7d19f89826660900db3acb2 100644 (file)
@@ -2,6 +2,7 @@ package com.irtimaled.bbor.client.interop;
 
 import com.irtimaled.bbor.common.EventBus;
 import com.irtimaled.bbor.common.events.StructuresLoaded;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.nbt.CompoundNBT;
 import net.minecraft.nbt.ListNBT;
 import net.minecraft.util.math.ChunkPos;
@@ -23,7 +24,7 @@ import java.io.IOException;
 import java.util.*;
 
 class NBTStructureLoader {
-    private final int dimensionId;
+    private final DimensionId dimensionId;
     private final Set<String> loadedChunks = new HashSet<>();
 
     private LegacyStructureDataUtil legacyStructureDataUtil = null;
@@ -31,12 +32,13 @@ class NBTStructureLoader {
     private File chunkSaveLocation = null;
     private ChunkLoader chunkLoader;
 
-    NBTStructureLoader(int dimensionId, SaveHandler saveHandler, File worldDirectory) {
+    NBTStructureLoader(DimensionId dimensionId, SaveHandler saveHandler, File worldDirectory) {
         this.dimensionId = dimensionId;
         this.configure(saveHandler, worldDirectory);
     }
 
     void clear() {
+        this.legacyStructureDataUtil = null;
         this.saveHandler = null;
         this.chunkSaveLocation = null;
         this.loadedChunks.clear();
@@ -46,12 +48,13 @@ class NBTStructureLoader {
             this.chunkLoader.close();
         } catch (IOException ignored) {
         }
+        this.chunkLoader = null;
     }
 
     void configure(SaveHandler saveHandler, File worldDirectory) {
         this.saveHandler = saveHandler;
         if (worldDirectory != null) {
-            this.chunkSaveLocation = new File(DimensionType.getById(dimensionId).getDirectory(worldDirectory), "region");
+            this.chunkSaveLocation = new File(dimensionId.getDimensionType().getDirectory(worldDirectory), "region");
             this.chunkLoader = new ChunkLoader(this.chunkSaveLocation);
         }
     }
@@ -59,7 +62,7 @@ class NBTStructureLoader {
     private LegacyStructureDataUtil getLegacyStructureDataUtil() {
         if (this.legacyStructureDataUtil == null) {
             File dataFolder = new File(DimensionType.OVERWORLD.getDirectory(this.saveHandler.getWorldDirectory()), "data");
-            this.legacyStructureDataUtil = LegacyStructureDataUtil.func_215130_a(DimensionType.getById(dimensionId),
+            this.legacyStructureDataUtil = LegacyStructureDataUtil.func_215130_a(dimensionId.getDimensionType(),
                     new DimensionSavedDataManager(dataFolder, this.saveHandler.getFixer()));
         }
         return this.legacyStructureDataUtil;
index 407adc921ea00d591eb10d50377b2a7c74e375a2..fd392aed12490bec950fce0bdb8356962806d5de 100644 (file)
@@ -1,6 +1,7 @@
 package com.irtimaled.bbor.client.interop;
 
 import com.irtimaled.bbor.client.Player;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.client.Minecraft;
 import net.minecraft.world.storage.SaveFormat;
 import net.minecraft.world.storage.SaveHandler;
@@ -10,7 +11,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 public class SaveGameStructureLoader {
-    private static final Map<Integer, NBTStructureLoader> nbtStructureLoaders = new HashMap<>();
+    private static final Map<DimensionId, NBTStructureLoader> nbtStructureLoaders = new HashMap<>();
     private static SaveHandler saveHandler = null;
     private static File worldDirectory = null;
 
@@ -20,7 +21,7 @@ public class SaveGameStructureLoader {
         saveHandler = saveLoader.getSaveLoader(fileName, null);
         worldDirectory = saveLoader.func_215781_c().resolve(fileName).toFile();
 
-        for (int dimensionId : nbtStructureLoaders.keySet()) {
+        for (DimensionId dimensionId : nbtStructureLoaders.keySet()) {
             NBTStructureLoader dimensionProcessor = getNBTStructureLoader(dimensionId);
             dimensionProcessor.configure(saveHandler, worldDirectory);
         }
@@ -52,7 +53,7 @@ public class SaveGameStructureLoader {
         dimensionProcessor.loadStructures(chunkX, chunkZ);
     }
 
-    private static NBTStructureLoader getNBTStructureLoader(int dimensionId) {
+    private static NBTStructureLoader getNBTStructureLoader(DimensionId dimensionId) {
         return nbtStructureLoaders.computeIfAbsent(dimensionId,
                 id -> new NBTStructureLoader(id, saveHandler, worldDirectory));
     }
index ff0c94f5876c741a182405df0c364c979ff99056..f0314964487a64fa3969374ab21746fb3e47b9b3 100644 (file)
@@ -5,16 +5,17 @@ import com.irtimaled.bbor.client.interop.TileEntitiesHelper;
 import com.irtimaled.bbor.client.models.BoundingBoxBeacon;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.tileentity.BeaconTileEntity;
 
 public class BeaconProvider implements IBoundingBoxProvider<BoundingBoxBeacon> {
     @Override
-    public boolean canProvide(int dimensionId) {
+    public boolean canProvide(DimensionId dimensionId) {
         return BoundingBoxTypeHelper.shouldRender(BoundingBoxType.Beacon);
     }
 
     @Override
-    public Iterable<BoundingBoxBeacon> get(int dimensionId) {
+    public Iterable<BoundingBoxBeacon> get(DimensionId dimensionId) {
         return TileEntitiesHelper.map(BeaconTileEntity.class, beacon -> {
             int levels = beacon.getLevels();
             Coords coords = new Coords(beacon.getPos());
index 51ec94c63197c572227213f1b5e4f02c7f946120..34990ecdac8301bd5e8d0b123e5f04a5d8c1c7aa 100644 (file)
@@ -8,6 +8,7 @@ import com.irtimaled.bbor.client.models.BoundingBoxBiomeBorder;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.common.MathHelper;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -20,12 +21,12 @@ public class BiomeBorderProvider implements IBoundingBoxProvider<BoundingBoxBiom
     private static Map<Coords, BoundingBoxBiomeBorder> lastBorders = new HashMap<>();
 
     @Override
-    public boolean canProvide(int dimensionId) {
+    public boolean canProvide(DimensionId dimensionId) {
         return BoundingBoxTypeHelper.shouldRender(BoundingBoxType.BiomeBorder);
     }
 
     @Override
-    public Iterable<BoundingBoxBiomeBorder> get(int dimensionId) {
+    public Iterable<BoundingBoxBiomeBorder> get(DimensionId dimensionId) {
         Coords playerCoords = Player.getCoords();
         Integer renderDistance = ConfigManager.biomeBordersRenderDistance.get();
         Boolean renderAllTransitions = !ConfigManager.renderOnlyCurrentBiome.get();
index b66b2dad4f95b479ce7722e8fd4905b15fe91833..8e344480bddc0e38692b05e6116fecd2ef16b998 100644 (file)
@@ -8,6 +8,7 @@ import com.irtimaled.bbor.client.interop.ClientInterop;
 import com.irtimaled.bbor.common.BoundingBoxCache;
 import com.irtimaled.bbor.common.MathHelper;
 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashSet;
 import java.util.Map;
@@ -33,7 +34,7 @@ public class CacheProvider implements IBoundingBoxProvider<AbstractBoundingBox>
     }
 
     @Override
-    public Iterable<AbstractBoundingBox> get(int dimensionId) {
+    public Iterable<AbstractBoundingBox> get(DimensionId dimensionId) {
         Boolean outerBoxesOnly = ConfigManager.outerBoxesOnly.get();
 
         Set<AbstractBoundingBox> boundingBoxes = new HashSet<>();
index 6d3392d6a3cf4dcb9e5e2800700bb100b0b15a5e..f860a0f51c4f8931706ef3497858bfc3ca5c818f 100644 (file)
@@ -6,6 +6,7 @@ import com.irtimaled.bbor.client.models.BoundingBoxConduit;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.common.ReflectionHelper;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.tileentity.ConduitTileEntity;
 import net.minecraft.util.math.BlockPos;
 
@@ -17,12 +18,12 @@ public class ConduitProvider implements IBoundingBoxProvider<BoundingBoxConduit>
             ReflectionHelper.getPrivateFieldGetter(ConduitTileEntity.class, List.class, BlockPos.class);
 
     @Override
-    public boolean canProvide(int dimensionId) {
+    public boolean canProvide(DimensionId dimensionId) {
         return BoundingBoxTypeHelper.shouldRender(BoundingBoxType.Conduit);
     }
 
     @Override
-    public Iterable<BoundingBoxConduit> get(int dimensionId) {
+    public Iterable<BoundingBoxConduit> get(DimensionId dimensionId) {
         return TileEntitiesHelper.map(ConduitTileEntity.class, conduit -> {
             List<BlockPos> blocks = blocksFetcher.apply(conduit);
             if (blocks == null) return null;
index 6033ac7943ec937206d8b9e4c563876eb0a96bf0..15a3728d529b08389a9ae3dc55e325cf721d12b0 100644 (file)
@@ -4,26 +4,27 @@ import com.irtimaled.bbor.client.Player;
 import com.irtimaled.bbor.client.models.BoundingBoxBeacon;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 public class CustomBeaconProvider implements IBoundingBoxProvider<BoundingBoxBeacon> {
-    private static final Map<Integer, Map<Coords, BoundingBoxBeacon>> dimensionsCache = new HashMap<>();
+    private static final Map<DimensionId, Map<Coords, BoundingBoxBeacon>> dimensionsCache = new HashMap<>();
 
-    private static Map<Coords, BoundingBoxBeacon> getCache(int dimensionId) {
+    private static Map<Coords, BoundingBoxBeacon> getCache(DimensionId dimensionId) {
         return dimensionsCache.computeIfAbsent(dimensionId, i -> new ConcurrentHashMap<>());
     }
 
     public static void add(Coords coords, int level) {
-        int dimensionId = Player.getDimensionId();
+        DimensionId dimensionId = Player.getDimensionId();
         BoundingBoxBeacon beacon = BoundingBoxBeacon.from(coords, level, BoundingBoxType.Custom);
         getCache(dimensionId).put(coords, beacon);
     }
 
     public static boolean remove(Coords coords) {
-        int dimensionId = Player.getDimensionId();
+        DimensionId dimensionId = Player.getDimensionId();
         return getCache(dimensionId).remove(coords) != null;
     }
 
@@ -32,7 +33,7 @@ public class CustomBeaconProvider implements IBoundingBoxProvider<BoundingBoxBea
     }
 
     @Override
-    public Iterable<BoundingBoxBeacon> get(int dimensionId) {
+    public Iterable<BoundingBoxBeacon> get(DimensionId dimensionId) {
         return getCache(dimensionId).values();
     }
 }
index 43dbe512afab25280312d965a10070210f7f9fe6..31c92a18561ab2ce4ca41537f139f149ea0fe9d4 100644 (file)
@@ -4,31 +4,32 @@ import com.irtimaled.bbor.client.Player;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.common.models.BoundingBoxCuboid;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 public class CustomBoxProvider implements IBoundingBoxProvider<BoundingBoxCuboid> {
-    private static final Map<Integer, Map<Integer, BoundingBoxCuboid>> dimensionCache = new HashMap<>();
+    private static final Map<DimensionId, Map<Integer, BoundingBoxCuboid>> dimensionCache = new HashMap<>();
 
     private static int getHashKey(Coords minCoords, Coords maxCoords) {
         return (31 + minCoords.hashCode()) * 31 + maxCoords.hashCode();
     }
 
-    private static Map<Integer, BoundingBoxCuboid> getCache(int dimensionId) {
+    private static Map<Integer, BoundingBoxCuboid> getCache(DimensionId dimensionId) {
         return dimensionCache.computeIfAbsent(dimensionId, i -> new ConcurrentHashMap<>());
     }
 
     public static void add(Coords minCoords, Coords maxCoords) {
-        int dimensionId = Player.getDimensionId();
+        DimensionId dimensionId = Player.getDimensionId();
         int cacheKey = getHashKey(minCoords, maxCoords);
         BoundingBoxCuboid cuboid = BoundingBoxCuboid.from(minCoords, maxCoords, BoundingBoxType.Custom);
         getCache(dimensionId).put(cacheKey, cuboid);
     }
 
     public static boolean remove(Coords minCoords, Coords maxCoords) {
-        int dimensionId = Player.getDimensionId();
+        DimensionId dimensionId = Player.getDimensionId();
         int cacheKey = getHashKey(minCoords, maxCoords);
         return getCache(dimensionId).remove(cacheKey) != null;
     }
@@ -38,7 +39,7 @@ public class CustomBoxProvider implements IBoundingBoxProvider<BoundingBoxCuboid
     }
 
     @Override
-    public Iterable<BoundingBoxCuboid> get(int dimensionId) {
+    public Iterable<BoundingBoxCuboid> get(DimensionId dimensionId) {
         return getCache(dimensionId).values();
     }
 }
index d7c96c04e6c5cb35d0d614193d2b40e2feb993ac..5bcbdc30d2892eee6fad06640759693b6343c0ef 100644 (file)
@@ -4,31 +4,32 @@ import com.irtimaled.bbor.client.Player;
 import com.irtimaled.bbor.client.models.BoundingBoxLine;
 import com.irtimaled.bbor.client.models.Point;
 import com.irtimaled.bbor.common.BoundingBoxType;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 public class CustomLineProvider implements IBoundingBoxProvider<BoundingBoxLine> {
-    private static final Map<Integer, Map<Integer, BoundingBoxLine>> dimensionCache = new HashMap<>();
+    private static final Map<DimensionId, Map<Integer, BoundingBoxLine>> dimensionCache = new HashMap<>();
 
     private static int getHashKey(Point minPoint, Point maxPoint) {
         return (31 + minPoint.hashCode()) * 31 + maxPoint.hashCode();
     }
 
-    private static Map<Integer, BoundingBoxLine> getCache(int dimensionId) {
+    private static Map<Integer, BoundingBoxLine> getCache(DimensionId dimensionId) {
         return dimensionCache.computeIfAbsent(dimensionId, i -> new ConcurrentHashMap<>());
     }
 
     public static void add(Point minPoint, Point maxPoint, Double width) {
-        int dimensionId = Player.getDimensionId();
+        DimensionId dimensionId = Player.getDimensionId();
         int cacheKey = getHashKey(minPoint, maxPoint);
         BoundingBoxLine line = BoundingBoxLine.from(minPoint, maxPoint, width, BoundingBoxType.Custom);
         getCache(dimensionId).put(cacheKey, line);
     }
 
     public static boolean remove(Point min, Point max) {
-        int dimensionId = Player.getDimensionId();
+        DimensionId dimensionId = Player.getDimensionId();
         int cacheKey = getHashKey(min, max);
         return getCache(dimensionId).remove(cacheKey) != null;
     }
@@ -38,7 +39,7 @@ public class CustomLineProvider implements IBoundingBoxProvider<BoundingBoxLine>
     }
 
     @Override
-    public Iterable<BoundingBoxLine> get(int dimensionId) {
+    public Iterable<BoundingBoxLine> get(DimensionId dimensionId) {
         return getCache(dimensionId).values();
     }
 }
index 92a5b152e7500ba325d3baafcaa30f239a5f8215..08b944f69aeae67f1a2fb576cf03c2f6e6e81a9b 100644 (file)
@@ -4,27 +4,28 @@ import com.irtimaled.bbor.client.Player;
 import com.irtimaled.bbor.client.models.BoundingBoxSphere;
 import com.irtimaled.bbor.client.models.Point;
 import com.irtimaled.bbor.common.BoundingBoxType;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 public class CustomSphereProvider implements IBoundingBoxProvider<BoundingBoxSphere> {
-    private static final Map<Integer, Map<Integer, BoundingBoxSphere>> dimensionCache = new HashMap<>();
+    private static final Map<DimensionId, Map<Integer, BoundingBoxSphere>> dimensionCache = new HashMap<>();
 
-    private static Map<Integer, BoundingBoxSphere> getCache(int dimensionId) {
+    private static Map<Integer, BoundingBoxSphere> getCache(DimensionId dimensionId) {
         return dimensionCache.computeIfAbsent(dimensionId, i -> new ConcurrentHashMap<>());
     }
 
     public static void add(Point center, double radius) {
-        int dimensionId = Player.getDimensionId();
+        DimensionId dimensionId = Player.getDimensionId();
         int cacheKey = center.hashCode();
         BoundingBoxSphere sphere = new BoundingBoxSphere(center, radius, BoundingBoxType.Custom);
         getCache(dimensionId).put(cacheKey, sphere);
     }
 
     public static boolean remove(Point center) {
-        int dimensionId = Player.getDimensionId();
+        DimensionId dimensionId = Player.getDimensionId();
         int cacheKey = center.hashCode();
         return getCache(dimensionId).remove(cacheKey) != null;
     }
@@ -34,7 +35,7 @@ public class CustomSphereProvider implements IBoundingBoxProvider<BoundingBoxSph
     }
 
     @Override
-    public Iterable<BoundingBoxSphere> get(int dimensionId) {
+    public Iterable<BoundingBoxSphere> get(DimensionId dimensionId) {
         return getCache(dimensionId).values();
     }
 }
index ea2a0e2fe850cfb984fbe9b9d234998b50d4f201..f629a7f993708c78a0587491f0e210d44824b5b5 100644 (file)
@@ -1,11 +1,12 @@
 package com.irtimaled.bbor.client.providers;
 
 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 public interface IBoundingBoxProvider<T extends AbstractBoundingBox> {
-    Iterable<T> get(int dimensionId);
+    Iterable<T> get(DimensionId dimensionId);
 
-    default boolean canProvide(int dimensionId) {
+    default boolean canProvide(DimensionId dimensionId) {
         return true;
     }
 }
index 2a02712447eb1afdd6f2a3bd91a7f73b214e7fb5..12eef54ff37f524a6b0dd14f5cb1d5503117c8e5 100644 (file)
@@ -5,16 +5,17 @@ import com.irtimaled.bbor.client.interop.TileEntitiesHelper;
 import com.irtimaled.bbor.client.models.BoundingBoxMobSpawner;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.tileentity.MobSpawnerTileEntity;
 
 public class MobSpawnerProvider implements IBoundingBoxProvider<BoundingBoxMobSpawner> {
     @Override
-    public boolean canProvide(int dimensionId) {
+    public boolean canProvide(DimensionId dimensionId) {
         return BoundingBoxTypeHelper.shouldRender(BoundingBoxType.MobSpawner);
     }
 
     @Override
-    public Iterable<BoundingBoxMobSpawner> get(int dimensionId) {
+    public Iterable<BoundingBoxMobSpawner> get(DimensionId dimensionId) {
         return TileEntitiesHelper.map(MobSpawnerTileEntity.class, spawner -> {
             Coords coords = new Coords(spawner.getPos());
             return BoundingBoxMobSpawner.from(coords);
index cd941ac48cca879f782347aa8a94544c34099232..2b9c600526eb3b73005cbcddc30c5ff21b82919e 100644 (file)
@@ -5,9 +5,9 @@ import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper;
 import com.irtimaled.bbor.client.interop.ClientInterop;
 import com.irtimaled.bbor.client.models.BoundingBoxSlimeChunk;
 import com.irtimaled.bbor.common.BoundingBoxType;
-import com.irtimaled.bbor.common.Dimensions;
 import com.irtimaled.bbor.common.MathHelper;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashSet;
 import java.util.Random;
@@ -36,12 +36,12 @@ public class SlimeChunkProvider implements IBoundingBoxProvider<BoundingBoxSlime
     }
 
     @Override
-    public boolean canProvide(int dimensionId) {
-        return dimensionId == Dimensions.OVERWORLD && seed != null && BoundingBoxTypeHelper.shouldRender(BoundingBoxType.SlimeChunks);
+    public boolean canProvide(DimensionId dimensionId) {
+        return dimensionId == DimensionId.OVERWORLD && seed != null && BoundingBoxTypeHelper.shouldRender(BoundingBoxType.SlimeChunks);
     }
 
     @Override
-    public Iterable<BoundingBoxSlimeChunk> get(int dimensionId) {
+    public Iterable<BoundingBoxSlimeChunk> get(DimensionId dimensionId) {
         Set<BoundingBoxSlimeChunk> slimeChunks = new HashSet<>();
         int renderDistanceChunks = ClientInterop.getRenderDistanceChunks();
         int playerChunkX = MathHelper.floor(Player.getX() / CHUNK_SIZE);
index 243cf48d752f74cf88889d27e312adc4e2cd56d2..13a2fa5ed1fa40555f6b3318d877ca57250e5314 100644 (file)
@@ -7,6 +7,7 @@ import com.irtimaled.bbor.client.interop.SpawnableBlocksHelper;
 import com.irtimaled.bbor.client.models.BoundingBoxSpawnableBlocks;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.common.MathHelper;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.client.Minecraft;
 
 import java.util.HashSet;
@@ -29,13 +30,13 @@ public class SpawnableBlocksProvider implements IBoundingBoxProvider<BoundingBox
     }
 
     @Override
-    public boolean canProvide(int dimensionId) {
+    public boolean canProvide(DimensionId dimensionId) {
         return BoundingBoxTypeHelper.shouldRender(BoundingBoxType.SpawnableBlocks) &&
                 !isWithinActiveSpawningSphere();
     }
 
     @Override
-    public Iterable<BoundingBoxSpawnableBlocks> get(int dimensionId) {
+    public Iterable<BoundingBoxSpawnableBlocks> get(DimensionId dimensionId) {
         long gameTime = minecraft.world.getGameTime();
         if (lastBoundingBox == null || (!((Long) gameTime).equals(lastGameTime) && gameTime % 2L == 0L)) {
             lastGameTime = gameTime;
index 56904e6d488fcba8690ac4695db77d452f4a8448..2ef1cca6721780e7eded64c9fae0ef6051100420 100644 (file)
@@ -9,6 +9,7 @@ import com.irtimaled.bbor.client.models.BoundingBoxSpawningSphere;
 import com.irtimaled.bbor.client.models.Point;
 import com.irtimaled.bbor.common.BoundingBoxType;
 import com.irtimaled.bbor.common.MathHelper;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.client.Minecraft;
 
 import java.util.HashSet;
@@ -20,7 +21,7 @@ public class SpawningSphereProvider implements IBoundingBoxProvider<BoundingBoxS
 
     private static Set<BoundingBoxSpawningSphere> lastBoundingBox = null;
     private static BoundingBoxSpawningSphere spawningSphere;
-    private static Integer dimensionId;
+    private static DimensionId dimensionId;
 
     public static void setSphere(Point point) {
         if (spawningSphere != null && spawningSphere.getPoint().equals(point)) return;
@@ -53,7 +54,7 @@ public class SpawningSphereProvider implements IBoundingBoxProvider<BoundingBoxS
         return hasSpawningSphereInDimension(Player.getDimensionId()) && spawningSphere.isWithinSphere(Player.getPoint());
     }
 
-    public static boolean hasSpawningSphereInDimension(int dimensionId) {
+    public static boolean hasSpawningSphereInDimension(DimensionId dimensionId) {
         return spawningSphere != null && SpawningSphereProvider.dimensionId == dimensionId;
     }
 
@@ -64,12 +65,12 @@ public class SpawningSphereProvider implements IBoundingBoxProvider<BoundingBoxS
     }
 
     @Override
-    public boolean canProvide(int dimensionId) {
+    public boolean canProvide(DimensionId dimensionId) {
         return hasSpawningSphereInDimension(dimensionId) && BoundingBoxTypeHelper.shouldRender(BoundingBoxType.AFKSphere);
     }
 
     @Override
-    public Iterable<BoundingBoxSpawningSphere> get(int dimensionId) {
+    public Iterable<BoundingBoxSpawningSphere> get(DimensionId dimensionId) {
         long gameTime = minecraft.world.getGameTime();
         if (lastBoundingBox == null || (!((Long) gameTime).equals(lastGameTime) && gameTime % 2L == 0L)) {
             lastGameTime = gameTime;
index 3586ba5caf4d28ee1a8779a89831e2d41b72f01c..b3884c939f6ee7657496f460335ca6b3b6553a8d 100644 (file)
@@ -3,8 +3,8 @@ package com.irtimaled.bbor.client.providers;
 import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper;
 import com.irtimaled.bbor.client.models.BoundingBoxWorldSpawn;
 import com.irtimaled.bbor.common.BoundingBoxType;
-import com.irtimaled.bbor.common.Dimensions;
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashSet;
 import java.util.Set;
@@ -50,12 +50,12 @@ public class WorldSpawnProvider implements IBoundingBoxProvider<BoundingBoxWorld
     }
 
     @Override
-    public boolean canProvide(int dimensionId) {
-        return dimensionId == Dimensions.OVERWORLD;
+    public boolean canProvide(DimensionId dimensionId) {
+        return dimensionId == DimensionId.OVERWORLD;
     }
 
     @Override
-    public Iterable<BoundingBoxWorldSpawn> get(int dimensionId) {
+    public Iterable<BoundingBoxWorldSpawn> get(DimensionId dimensionId) {
         Set<BoundingBoxWorldSpawn> boundingBoxes = new HashSet<>();
         if (BoundingBoxTypeHelper.shouldRender(BoundingBoxType.WorldSpawn)) {
             if (worldSpawn != null) boundingBoxes.add(worldSpawn);
index b39613757230eceebc55cb616c8ef59baf9d9931..ebc39d851cbd1348411db69214735d3496401f58 100644 (file)
@@ -6,6 +6,7 @@ import com.irtimaled.bbor.common.messages.AddBoundingBox;
 import com.irtimaled.bbor.common.messages.InitializeClient;
 import com.irtimaled.bbor.common.messages.PayloadBuilder;
 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
+import com.irtimaled.bbor.common.models.DimensionId;
 import com.irtimaled.bbor.common.models.ServerPlayer;
 
 import java.util.HashMap;
@@ -17,8 +18,8 @@ import java.util.concurrent.ConcurrentHashMap;
 public class CommonProxy {
     private final Map<Integer, ServerPlayer> players = new ConcurrentHashMap<>();
     private final Map<Integer, Set<AbstractBoundingBox>> playerBoundingBoxesCache = new HashMap<>();
-    private final Map<Integer, StructureProcessor> structureProcessors = new HashMap<>();
-    private final Map<Integer, BoundingBoxCache> dimensionCache = new ConcurrentHashMap<>();
+    private final Map<DimensionId, StructureProcessor> structureProcessors = new HashMap<>();
+    private final Map<DimensionId, BoundingBoxCache> dimensionCache = new ConcurrentHashMap<>();
     private Long seed = null;
     private Integer spawnX = null;
     private Integer spawnZ = null;
@@ -43,9 +44,9 @@ public class CommonProxy {
     }
 
     private void worldLoaded(WorldLoaded event) {
-        int dimensionId = event.getDimensionId();
+        DimensionId dimensionId = event.getDimensionId();
         long seed = event.getSeed();
-        if (dimensionId == Dimensions.OVERWORLD) {
+        if (dimensionId == DimensionId.OVERWORLD) {
             setSeed(seed);
             setWorldSpawn(event.getSpawnX(), event.getSpawnZ());
         }
@@ -53,12 +54,12 @@ public class CommonProxy {
     }
 
     private void structuresLoaded(StructuresLoaded event) {
-        int dimensionId = event.getDimensionId();
+        DimensionId dimensionId = event.getDimensionId();
         StructureProcessor structureProcessor = getStructureProcessor(dimensionId);
         structureProcessor.process(event.getStructures());
     }
 
-    private StructureProcessor getStructureProcessor(int dimensionId) {
+    private StructureProcessor getStructureProcessor(DimensionId dimensionId) {
         StructureProcessor structureProcessor = structureProcessors.get(dimensionId);
         if (structureProcessor == null) {
             structureProcessor = new StructureProcessor(getOrCreateCache(dimensionId));
@@ -89,8 +90,8 @@ public class CommonProxy {
     }
 
     private void sendToPlayer(int playerId, ServerPlayer player) {
-        for (Map.Entry<Integer, BoundingBoxCache> entry : dimensionCache.entrySet()) {
-            int dimensionId = entry.getKey();
+        for (Map.Entry<DimensionId, BoundingBoxCache> entry : dimensionCache.entrySet()) {
+            DimensionId dimensionId = entry.getKey();
             BoundingBoxCache boundingBoxCache = entry.getValue();
             if (boundingBoxCache == null) return;
 
@@ -121,11 +122,11 @@ public class CommonProxy {
         }
     }
 
-    protected BoundingBoxCache getCache(int dimensionId) {
+    protected BoundingBoxCache getCache(DimensionId dimensionId) {
         return dimensionCache.get(dimensionId);
     }
 
-    protected BoundingBoxCache getOrCreateCache(int dimensionId) {
+    protected BoundingBoxCache getOrCreateCache(DimensionId dimensionId) {
         return dimensionCache.computeIfAbsent(dimensionId, dt -> new BoundingBoxCache());
     }
 
diff --git a/src/main/java/com/irtimaled/bbor/common/Dimensions.java b/src/main/java/com/irtimaled/bbor/common/Dimensions.java
deleted file mode 100644 (file)
index dcd5ad6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.irtimaled.bbor.common;
-
-public class Dimensions {
-    public static final int OVERWORLD = 0;
-}
index 3ba23b9167e2f35637ff09231665e7fa5950ef9d..05a5b21a9a3b9e8f02c236a78ddc1dd407017401 100644 (file)
@@ -1,14 +1,15 @@
 package com.irtimaled.bbor.common.events;
 
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.world.gen.feature.structure.StructureStart;
 
 import java.util.Map;
 
 public class StructuresLoaded {
     private final Map<String, StructureStart> structures;
-    private final int dimensionId;
+    private final DimensionId dimensionId;
 
-    public StructuresLoaded(Map<String, StructureStart> structures, int dimensionId) {
+    public StructuresLoaded(Map<String, StructureStart> structures, DimensionId dimensionId) {
         this.structures = structures;
         this.dimensionId = dimensionId;
     }
@@ -17,7 +18,7 @@ public class StructuresLoaded {
         return structures;
     }
 
-    public int getDimensionId() {
+    public DimensionId getDimensionId() {
         return dimensionId;
     }
 }
index 33f44e98fb493dcb5b495befc6f8687b3bdde670..9370f5c0b55fe4b74e0602f42c1c3de122f5b504 100644 (file)
@@ -1,23 +1,24 @@
 package com.irtimaled.bbor.common.events;
 
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.world.ServerWorld;
 import net.minecraft.world.storage.WorldInfo;
 
 public class WorldLoaded {
-    private final int dimensionId;
+    private final DimensionId dimensionId;
     private final long seed;
     private final int spawnX;
     private final int spawnZ;
 
     public WorldLoaded(ServerWorld world) {
         WorldInfo info = world.getWorldInfo();
-        this.dimensionId = world.getDimension().getType().getId();
+        this.dimensionId = DimensionId.from(world.getDimension().getType());
         this.seed = info.getSeed();
         this.spawnX = info.getSpawnX();
         this.spawnZ = info.getSpawnZ();
     }
 
-    public int getDimensionId() {
+    public DimensionId getDimensionId() {
         return dimensionId;
     }
 
index 8367c69889334cc1266cbe1fa017730388df14a2..5d8b2b0bff8457df6071a119c3433c61f88781fc 100644 (file)
@@ -2,6 +2,7 @@ package com.irtimaled.bbor.common.interop;
 
 import com.irtimaled.bbor.common.EventBus;
 import com.irtimaled.bbor.common.events.*;
+import com.irtimaled.bbor.common.models.DimensionId;
 import com.irtimaled.bbor.common.models.ServerPlayer;
 import net.minecraft.entity.player.ServerPlayerEntity;
 import net.minecraft.network.NetworkManager;
@@ -15,7 +16,7 @@ import java.util.Map;
 
 public class CommonInterop {
     public static void chunkLoaded(Chunk chunk) {
-        int dimensionId = chunk.getWorld().getDimension().getType().getId();
+        DimensionId dimensionId = DimensionId.from(chunk.getWorld().getDimension().getType());
         Map<String, StructureStart> structures = chunk.getStructureStarts();
         if (structures.size() > 0) EventBus.publish(new StructuresLoaded(structures, dimensionId));
     }
index 3a12945565057955ae2971d51b80c38fff92d472..cc3759c5f0d4cdf72bc4b00e9b0b43bfbcc5e8ee 100644 (file)
@@ -2,18 +2,19 @@ package com.irtimaled.bbor.common.messages;
 
 import com.irtimaled.bbor.client.events.AddBoundingBoxReceived;
 import com.irtimaled.bbor.common.models.AbstractBoundingBox;
+import com.irtimaled.bbor.common.models.DimensionId;
 
 import java.util.HashSet;
 import java.util.Set;
 
 public class AddBoundingBox {
-    public static final String NAME = "bbor:add_bounding_box";
+    public static final String NAME = "bbor:add_bounding_box_v2";
 
-    public static PayloadBuilder getPayload(int dimensionId, AbstractBoundingBox key, Set<AbstractBoundingBox> boundingBoxes) {
+    public static PayloadBuilder getPayload(DimensionId dimensionId, AbstractBoundingBox key, Set<AbstractBoundingBox> boundingBoxes) {
         if (!BoundingBoxSerializer.canSerialize(key)) return null;
 
         PayloadBuilder builder = PayloadBuilder.clientBound(NAME)
-                .writeVarInt(dimensionId);
+                .writeDimensionId(dimensionId);
         BoundingBoxSerializer.serialize(key, builder);
         if (boundingBoxes != null && boundingBoxes.size() > 1) {
             for (AbstractBoundingBox boundingBox : boundingBoxes) {
@@ -24,7 +25,7 @@ public class AddBoundingBox {
     }
 
     public static AddBoundingBoxReceived getEvent(PayloadReader reader) {
-        int dimensionId = reader.readVarInt();
+        DimensionId dimensionId = reader.readDimensionId();
         AbstractBoundingBox key = BoundingBoxDeserializer.deserialize(reader);
         if (key == null) return null;
 
index 173dfbef5e9728eae89c3c94c50828ffc11a5f0e..c94b315009fd91944a71f6bbe8b038a4f5c4ed79 100644 (file)
@@ -1,6 +1,7 @@
 package com.irtimaled.bbor.common.messages;
 
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 import io.netty.buffer.Unpooled;
 import net.minecraft.network.IPacket;
 import net.minecraft.network.PacketBuffer;
@@ -70,4 +71,10 @@ public class PayloadBuilder {
                 .writeVarInt(coords.getY())
                 .writeVarInt(coords.getZ());
     }
+
+    public PayloadBuilder writeDimensionId(DimensionId dimensionId) {
+        buffer.writeResourceLocation(dimensionId.getValue());
+        packet = null;
+        return this;
+    }
 }
index 03b3775c991b17fc2dbeb9b400b00dbc993ad7ea..1186bc5eda1b08d2f4f92b43730f859b4b3e9b8b 100644 (file)
@@ -1,7 +1,9 @@
 package com.irtimaled.bbor.common.messages;
 
 import com.irtimaled.bbor.common.models.Coords;
+import com.irtimaled.bbor.common.models.DimensionId;
 import net.minecraft.network.PacketBuffer;
+import net.minecraft.util.ResourceLocation;
 
 public class PayloadReader {
     private final PacketBuffer buffer;
@@ -40,4 +42,8 @@ public class PayloadReader {
         int z = readVarInt();
         return new Coords(x, y, z);
     }
+
+    DimensionId readDimensionId() {
+        return DimensionId.from(buffer.readResourceLocation());
+    }
 }
diff --git a/src/main/java/com/irtimaled/bbor/common/models/DimensionId.java b/src/main/java/com/irtimaled/bbor/common/models/DimensionId.java
new file mode 100644 (file)
index 0000000..83924e3
--- /dev/null
@@ -0,0 +1,40 @@
+package com.irtimaled.bbor.common.models;
+
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.world.dimension.DimensionType;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class DimensionId {
+    private static final Map<ResourceLocation, DimensionId> dimensionIdMap = new HashMap<>();
+
+    public static DimensionId from(DimensionType dimensionType) {
+        return from(DimensionType.getKey(dimensionType));
+    }
+
+    public static DimensionId from(ResourceLocation value) {
+        return dimensionIdMap.computeIfAbsent(value, DimensionId::new);
+    }
+
+    public static DimensionId OVERWORLD = DimensionId.from(DimensionType.OVERWORLD);
+
+    private final ResourceLocation value;
+
+    public DimensionId(ResourceLocation value) {
+        this.value = value;
+    }
+
+    public ResourceLocation getValue() {
+        return value;
+    }
+
+    public DimensionType getDimensionType() {
+        return DimensionType.byName(value);
+    }
+
+    @Override
+    public String toString() {
+        return value.toString();
+    }
+}
index 241c7d77f91db63050dfeadae4dc4dfe286f1ca8..ab3854c686325d38ded40b0d04f4f5fc033c09bf 100644 (file)
@@ -7,15 +7,15 @@ import net.minecraft.network.IPacket;
 import java.util.function.Consumer;
 
 public class ServerPlayer {
-    private final int dimensionId;
+    private final DimensionId dimensionId;
     private final Consumer<IPacket<?>> packetConsumer;
 
     public ServerPlayer(ServerPlayerEntity player) {
-        this.dimensionId = player.dimension.getId();
+        this.dimensionId = DimensionId.from(player.dimension);
         this.packetConsumer = player.connection::sendPacket;
     }
 
-    public int getDimensionId() {
+    public DimensionId getDimensionId() {
         return dimensionId;
     }