From: Irtimaled Date: Thu, 5 Feb 2015 21:34:40 +0000 (+0000) Subject: Add support to draw lazy spawn chunks X-Git-Tag: 1.0.0-beta7~3 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=a651bb18c9d45be6b6096a7328aca70846e7f75d;p=BoundingBoxOutlineReloaded.git Add support to draw lazy spawn chunks --- diff --git a/java/com/irtimaled/bbor/ClientProxy.java b/java/com/irtimaled/bbor/ClientProxy.java index bb4146f..9f33670 100644 --- a/java/com/irtimaled/bbor/ClientProxy.java +++ b/java/com/irtimaled/bbor/ClientProxy.java @@ -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 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) { diff --git a/java/com/irtimaled/bbor/ConfigManager.java b/java/com/irtimaled/bbor/ConfigManager.java index 74d0ba9..1013a39 100644 --- a/java/com/irtimaled/bbor/ConfigManager.java +++ b/java/com/irtimaled/bbor/ConfigManager.java @@ -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(); }