]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/commitdiff
Add support to draw lazy spawn chunks
authorIrtimaled <irtimaled@gmail.com>
Thu, 5 Feb 2015 21:34:40 +0000 (21:34 +0000)
committerIrtimaled <irtimaled@gmail.com>
Thu, 5 Feb 2015 21:34:40 +0000 (21:34 +0000)
java/com/irtimaled/bbor/ClientProxy.java
java/com/irtimaled/bbor/ConfigManager.java

index bb4146f595b94c0eede58e8a740e5b4ddb8af42c..9f3367066ace5eb17cda42a6341a279331ca1381 100644 (file)
@@ -41,6 +41,7 @@ public class ClientProxy extends CommonProxy {
     private double playerZ;
     private BoundingBox worldSpawnBoundingBox;
     private BoundingBox spawnChunksBoundingBox;
+    private BoundingBox lazySpawnChunksBoundingBox;
 
     @SubscribeEvent
     public void onKeyInputEvent(InputEvent.KeyInputEvent evt) {
@@ -73,6 +74,7 @@ public class ClientProxy extends CommonProxy {
     public void setWorldData(long seed, int spawnX, int spawnZ) {
         worldSpawnBoundingBox = null;
         spawnChunksBoundingBox = null;
+        lazySpawnChunksBoundingBox = null;
         super.setWorldData(seed, spawnX, spawnZ);
     }
 
@@ -545,8 +547,9 @@ public class ClientProxy extends CommonProxy {
                 if (configManager.drawWorldSpawn.getBoolean()) {
                     boundingBoxes.add(getWorldSpawnBoundingBox(spawnX, spawnZ));
                     boundingBoxes.add(getSpawnChunksBoundingBox(spawnX, spawnZ));
-
                 }
+                if (configManager.drawLazySpawnChunks.getBoolean()) ;
+                boundingBoxes.add(getLazySpawnChunksBoundingBox(spawnX, spawnZ));
 
                 if (configManager.drawSlimeChunks.getBoolean()) {
                     Set<ChunkCoordIntPair> activeChunks = getActiveChunks(world);
@@ -573,9 +576,24 @@ public class ClientProxy extends CommonProxy {
     private BoundingBox getSpawnChunksBoundingBox(int spawnX, int spawnZ) {
         if(spawnChunksBoundingBox != null)
             return spawnChunksBoundingBox;
+        }
+        BoundingBox boundingBox = getSpawnChunksBoundingBox(spawnX, spawnZ, 12, Color.RED);
+        spawnChunksBoundingBox = boundingBox;
+        return boundingBox;
+    }
+
+    private BoundingBox getLazySpawnChunksBoundingBox(int spawnX, int spawnZ) {
+        if (lazySpawnChunksBoundingBox != null)
+            return lazySpawnChunksBoundingBox;
 
+        BoundingBox boundingBox = getSpawnChunksBoundingBox(spawnX, spawnZ, 16, Color.RED);
+        lazySpawnChunksBoundingBox = boundingBox;
+        return boundingBox;
+    }
+
+    private BoundingBox getSpawnChunksBoundingBox(int spawnX, int spawnZ, int size, Color color) {
         double chunkSize = 16;
-        double midOffset = chunkSize * 6;
+        double midOffset = chunkSize * (size / 2);
         double midX = Math.round((float) (spawnX / chunkSize)) * chunkSize;
         double midZ = Math.round((float) (spawnZ / chunkSize)) * chunkSize;
         BlockPos minBlockPos = new BlockPos(midX - midOffset, 0, midZ - midOffset);
@@ -584,9 +602,7 @@ public class ClientProxy extends CommonProxy {
             midZ += chunkSize;
         }
         BlockPos maxBlockPos = new BlockPos(midX + midOffset, 0, midZ + midOffset);
-        BoundingBox boundingBox =  BoundingBoxWorldSpawn.from(minBlockPos, maxBlockPos, Color.RED);
-        spawnChunksBoundingBox = boundingBox;
-        return boundingBox;
+        return BoundingBoxWorldSpawn.from(minBlockPos, maxBlockPos, color);
     }
 
     private BoundingBox getWorldSpawnBoundingBox(int spawnX, int spawnZ) {
index 74d0ba9af666b684dfe11f9a8ba9a026614eb326..1013a3938cc37c1ceb2b0000821ef4f87f109065 100644 (file)
@@ -26,6 +26,7 @@ public class ConfigManager {
     public Property keepCacheBetweenSessions;
     public Property drawWorldSpawn;
     public Property worldSpawnMaxY;
+    public Property drawLazySpawnChunks;
 
     private Configuration config;
 
@@ -52,6 +53,7 @@ public class ConfigManager {
         slimeChunkMaxY = SetupIntegerProperty(config, "features", "slimeChunkMaxY", 0, "The maximum top of the slime chunk bounding box. If set to -1 it will use the value when activated, if set to 0 it will always track the player's feet. (default: 0)");
         drawWorldSpawn = SetupBooleanProperty(config, "features", "drawWorldSpawn", true, "If set to true world spawn and spawn chunks bounding boxes are drawn. (default: true)");
         worldSpawnMaxY = SetupIntegerProperty(config, "features", "worldSpawnMaxY", 0, "The maximum top of the world spawn bounding boxes. If set to -1 it will use the value when activated, if set to 0 it will always track the players feet. (default: 0)");
+        drawLazySpawnChunks = SetupBooleanProperty(config, "features", "drawLazySpawnChunks", false, "If set to true the lazy spawn chunks bounding boxes will be drawn. (default: false)");
         config.save();
     }