]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blobdiff - src/main/java/com/irtimaled/bbor/client/providers/WorldSpawnProvider.java
Upgrade to 1.14.4
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / providers / WorldSpawnProvider.java
index 55e89681e0155f250ef9f6be5e6913f9f3739b9e..c3b6b473c97dc67a0225dbdb075b3ad41d55c600 100644 (file)
@@ -3,6 +3,7 @@ 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.MathHelper;
 import com.irtimaled.bbor.common.models.Coords;
 import com.irtimaled.bbor.common.models.DimensionId;
 
@@ -17,8 +18,8 @@ public class WorldSpawnProvider implements IBoundingBoxProvider<BoundingBoxWorld
 
     public static void setWorldSpawn(int spawnX, int spawnZ) {
         worldSpawn = getWorldSpawnBoundingBox(spawnX, spawnZ);
-        spawnChunks = buildSpawnChunksBoundingBox(spawnX, spawnZ, 12, BoundingBoxType.SpawnChunks);
-        lazyChunks = buildSpawnChunksBoundingBox(spawnX, spawnZ, 16, BoundingBoxType.LazySpawnChunks);
+        spawnChunks = buildSpawnChunksBoundingBox(spawnX, spawnZ, 19, BoundingBoxType.SpawnChunks);
+        lazyChunks = buildSpawnChunksBoundingBox(spawnX, spawnZ, 21, BoundingBoxType.LazySpawnChunks);
     }
 
     public void clearCache() {
@@ -35,17 +36,18 @@ public class WorldSpawnProvider implements IBoundingBoxProvider<BoundingBoxWorld
     }
 
     private static BoundingBoxWorldSpawn buildSpawnChunksBoundingBox(int spawnX, int spawnZ, int size, BoundingBoxType type) {
-        double midOffset = CHUNK_SIZE * (size / 2.0);
-        double midX = Math.round((float) (spawnX / CHUNK_SIZE)) * CHUNK_SIZE;
-        double midZ = Math.round((float) (spawnZ / CHUNK_SIZE)) * CHUNK_SIZE;
-        Coords maxCoords = new Coords(midX + midOffset, 0, midZ + midOffset);
-        if ((spawnX / CHUNK_SIZE) % 1.0D == 0.5D) {
-            midX -= CHUNK_SIZE;
-        }
-        if ((spawnZ / CHUNK_SIZE) % 1.0D == 0.5D) {
-            midZ -= CHUNK_SIZE;
-        }
-        Coords minCoords = new Coords(midX - midOffset, 0, midZ - midOffset);
+        int spawnChunkX = MathHelper.floor(spawnX / CHUNK_SIZE);
+        int spawnChunkZ = MathHelper.floor(spawnZ / CHUNK_SIZE);
+        int midOffset = ((size - 1) / 2);
+
+        int minX = spawnChunkX - midOffset;
+        int maxX = spawnChunkX + midOffset;
+        int minZ = spawnChunkZ - midOffset;
+        int maxZ = spawnChunkZ + midOffset;
+
+
+        Coords maxCoords = new Coords(minX * CHUNK_SIZE, 0, minZ * CHUNK_SIZE);
+        Coords minCoords = new Coords(16 + (maxX * CHUNK_SIZE), 0, 16 + (maxZ * CHUNK_SIZE));
         return new BoundingBoxWorldSpawn(minCoords, maxCoords, type);
     }