From 2c71985f7b02f4c87bdda6740289f322f57d41a4 Mon Sep 17 00:00:00 2001 From: Irtimaled Date: Wed, 6 May 2020 19:47:10 -0700 Subject: [PATCH] Fully stop needing config on BoundingBoxType --- .../client/config/BoundingBoxTypeHelper.java | 4 + .../client/gui/BoundingBoxTypeButton.java | 3 +- .../client/models/BoundingBoxBiomeBorder.java | 2 +- .../client/models/BoundingBoxConduit.java | 2 +- .../bbor/common/BoundingBoxType.java | 82 ++++++++++--------- .../messages/BoundingBoxSerializer.java | 2 +- .../common/models/AbstractBoundingBox.java | 8 -- .../irtimaled/bbor/config/ConfigManager.java | 2 - 8 files changed, 53 insertions(+), 52 deletions(-) diff --git a/src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java b/src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java index 99539e9..b86346e 100644 --- a/src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java +++ b/src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java @@ -46,6 +46,10 @@ public class BoundingBoxTypeHelper { registerType(BoundingBoxType.RuinedPortal, ConfigManager.drawRuinedPortals); } + public static Setting renderSetting(BoundingBoxType type) { + return structureTypeMap.get(type.getName()); + } + public static boolean shouldRender(BoundingBoxType type) { Setting setting = structureTypeMap.get(type.getName()); return setting != null ? setting.get() : false; diff --git a/src/main/java/com/irtimaled/bbor/client/gui/BoundingBoxTypeButton.java b/src/main/java/com/irtimaled/bbor/client/gui/BoundingBoxTypeButton.java index 938d2f4..7432bf2 100644 --- a/src/main/java/com/irtimaled/bbor/client/gui/BoundingBoxTypeButton.java +++ b/src/main/java/com/irtimaled/bbor/client/gui/BoundingBoxTypeButton.java @@ -1,5 +1,6 @@ package com.irtimaled.bbor.client.gui; +import com.irtimaled.bbor.client.config.BoundingBoxTypeHelper; import com.irtimaled.bbor.common.BoundingBoxType; import java.awt.*; @@ -8,7 +9,7 @@ public class BoundingBoxTypeButton extends BoolSettingButton { private final Color color; BoundingBoxTypeButton(int width, String label, BoundingBoxType type) { - super(width, label, type.shouldRenderSetting); + super(width, label, BoundingBoxTypeHelper.renderSetting(type)); color = type.getColor(); } diff --git a/src/main/java/com/irtimaled/bbor/client/models/BoundingBoxBiomeBorder.java b/src/main/java/com/irtimaled/bbor/client/models/BoundingBoxBiomeBorder.java index 77b81c7..e4c4013 100644 --- a/src/main/java/com/irtimaled/bbor/client/models/BoundingBoxBiomeBorder.java +++ b/src/main/java/com/irtimaled/bbor/client/models/BoundingBoxBiomeBorder.java @@ -12,7 +12,7 @@ public class BoundingBoxBiomeBorder extends AbstractBoundingBox { private final boolean west; private BoundingBoxBiomeBorder(Coords coords, boolean north, boolean east, boolean south, boolean west) { - super(BoundingBoxType.Custom); + super(BoundingBoxType.BiomeBorder); this.coords = coords; this.north = north; this.east = east; diff --git a/src/main/java/com/irtimaled/bbor/client/models/BoundingBoxConduit.java b/src/main/java/com/irtimaled/bbor/client/models/BoundingBoxConduit.java index 878317f..3407e26 100644 --- a/src/main/java/com/irtimaled/bbor/client/models/BoundingBoxConduit.java +++ b/src/main/java/com/irtimaled/bbor/client/models/BoundingBoxConduit.java @@ -22,7 +22,7 @@ public class BoundingBoxConduit extends BoundingBoxSphere { @Override public int hashCode() { - return TypeHelper.combineHashCodes(getTypeName().hashCode(), getCenter().hashCode()); + return TypeHelper.combineHashCodes(getType().hashCode(), getCenter().hashCode()); } @Override diff --git a/src/main/java/com/irtimaled/bbor/common/BoundingBoxType.java b/src/main/java/com/irtimaled/bbor/common/BoundingBoxType.java index 559df88..ecb1287 100644 --- a/src/main/java/com/irtimaled/bbor/common/BoundingBoxType.java +++ b/src/main/java/com/irtimaled/bbor/common/BoundingBoxType.java @@ -1,8 +1,6 @@ package com.irtimaled.bbor.common; import com.irtimaled.bbor.common.models.Colors; -import com.irtimaled.bbor.config.ConfigManager; -import com.irtimaled.bbor.config.Setting; import java.awt.*; import java.util.HashMap; @@ -11,38 +9,39 @@ import java.util.Map; public class BoundingBoxType { private static final Map structureTypeMap = new HashMap<>(); - public static final BoundingBoxType JungleTemple = register(Colors.DARK_GREEN, "Jungle_Pyramid", ConfigManager.drawJungleTemples); - public static final BoundingBoxType DesertTemple = register(Color.ORANGE, "Desert_Pyramid", ConfigManager.drawDesertTemples); - public static final BoundingBoxType WitchHut = register(Color.BLUE, "Swamp_Hut", ConfigManager.drawWitchHuts); - public static final BoundingBoxType OceanMonument = register(Color.CYAN, "Monument", ConfigManager.drawOceanMonuments); - public static final BoundingBoxType Shipwreck = register(Color.CYAN, "Shipwreck", ConfigManager.drawShipwrecks); - public static final BoundingBoxType OceanRuin = register(Color.CYAN, "Ocean_Ruin", ConfigManager.drawOceanRuins); - public static final BoundingBoxType BuriedTreasure = register(Color.CYAN, "Buried_Treasure", ConfigManager.drawBuriedTreasure); - public static final BoundingBoxType Stronghold = register(Color.YELLOW, "Stronghold", ConfigManager.drawStrongholds); - public static final BoundingBoxType MineShaft = register(Color.LIGHT_GRAY, "Mineshaft", ConfigManager.drawMineShafts); - public static final BoundingBoxType NetherFortress = register(Color.RED, "Fortress", ConfigManager.drawNetherFortresses); - public static final BoundingBoxType EndCity = register(Color.MAGENTA, "EndCity", ConfigManager.drawEndCities); - public static final BoundingBoxType Mansion = register(Colors.BROWN, "Mansion", ConfigManager.drawMansions); - public static final BoundingBoxType Igloo = register(Color.WHITE, "Igloo", ConfigManager.drawIgloos); - public static final BoundingBoxType PillagerOutpost = register(Color.DARK_GRAY, "Pillager_Outpost", ConfigManager.drawPillagerOutposts); - public static final BoundingBoxType WorldSpawn = register(Color.RED, "World_Spawn", ConfigManager.drawWorldSpawn); - public static final BoundingBoxType SpawnChunks = register(Color.RED, "Spawn_Chunks", ConfigManager.drawWorldSpawn); - public static final BoundingBoxType LazySpawnChunks = register(Color.RED, "Lazy_Chunks", ConfigManager.drawLazySpawnChunks); - public static final BoundingBoxType MobSpawner = register(Color.GREEN, "Mob_Spawner", ConfigManager.drawMobSpawners); - public static final BoundingBoxType SlimeChunks = register(Colors.DARK_GREEN, "Slime_Chunks", ConfigManager.drawSlimeChunks); - public static final BoundingBoxType Village = register(Colors.PURPLE, "Village", ConfigManager.drawVillages); - public static final BoundingBoxType VillageSpheres = register(null, "Village Sphere", ConfigManager.drawVillageSpheres); - public static final BoundingBoxType AFKSphere = register(Color.RED, "AFK Sphere", ConfigManager.drawAFKSpheres); - public static final BoundingBoxType BiomeBorder = register(Color.GREEN, "Biome Border", ConfigManager.drawBiomeBorders); - public static final BoundingBoxType Beacon = register(Color.WHITE, "Beacon", ConfigManager.drawBeacons); - public static final BoundingBoxType NetherFossil = register(Color.WHITE, "Nether_Fossil", ConfigManager.drawNetherFossils); - public static final BoundingBoxType BastionRemnant = register(Color.LIGHT_GRAY, "Bastion_Remnant", ConfigManager.drawBastionRemnants); - public static final BoundingBoxType RuinedPortal = register(Colors.COOL_PURPLE, "Ruined_Portal", ConfigManager.drawRuinedPortals); - public static final BoundingBoxType Conduit = register(Color.CYAN, "Conduit", ConfigManager.drawConduits); - public static final BoundingBoxType Custom = register(Color.WHITE, "Custom", ConfigManager.drawCustomBoxes); + public static final BoundingBoxType WorldSpawn = register(Color.RED, "World_Spawn"); + public static final BoundingBoxType SpawnChunks = register(Color.RED, "Spawn_Chunks"); + public static final BoundingBoxType LazySpawnChunks = register(Color.RED, "Lazy_Chunks"); + public static final BoundingBoxType MobSpawner = register(Color.GREEN, "Mob_Spawner"); + public static final BoundingBoxType SlimeChunks = register(Colors.DARK_GREEN, "Slime_Chunks"); + public static final BoundingBoxType AFKSphere = register(Color.RED, "AFK Sphere"); + public static final BoundingBoxType BiomeBorder = register(Color.GREEN, "Biome Border"); + public static final BoundingBoxType Custom = register(Color.WHITE, "Custom"); + public static final BoundingBoxType Beacon = register(Color.WHITE, "Beacon"); + public static final BoundingBoxType Conduit = register(Color.CYAN, "Conduit"); - private static BoundingBoxType register(Color color, String name, Setting shouldRenderSetting) { - BoundingBoxType type = structureTypeMap.computeIfAbsent(name.hashCode(), k -> new BoundingBoxType(color, name, shouldRenderSetting)); + public static final BoundingBoxType JungleTemple = register(Colors.DARK_GREEN, "Jungle_Pyramid"); + public static final BoundingBoxType DesertTemple = register(Color.ORANGE, "Desert_Pyramid"); + public static final BoundingBoxType WitchHut = register(Color.BLUE, "Swamp_Hut"); + public static final BoundingBoxType OceanMonument = register(Color.CYAN, "Monument"); + public static final BoundingBoxType Shipwreck = register(Color.CYAN, "Shipwreck"); + public static final BoundingBoxType OceanRuin = register(Color.CYAN, "Ocean_Ruin"); + public static final BoundingBoxType BuriedTreasure = register(Color.CYAN, "Buried_Treasure"); + public static final BoundingBoxType Stronghold = register(Color.YELLOW, "Stronghold"); + public static final BoundingBoxType MineShaft = register(Color.LIGHT_GRAY, "Mineshaft"); + public static final BoundingBoxType NetherFortress = register(Color.RED, "Fortress"); + public static final BoundingBoxType EndCity = register(Color.MAGENTA, "EndCity"); + public static final BoundingBoxType Mansion = register(Colors.BROWN, "Mansion"); + public static final BoundingBoxType Igloo = register(Color.WHITE, "Igloo"); + public static final BoundingBoxType PillagerOutpost = register(Color.DARK_GRAY, "Pillager_Outpost"); + public static final BoundingBoxType Village = register(Colors.PURPLE, "Village"); + public static final BoundingBoxType VillageSpheres = register(null, "Village Sphere"); + public static final BoundingBoxType NetherFossil = register(Color.WHITE, "Nether_Fossil"); + public static final BoundingBoxType BastionRemnant = register(Color.LIGHT_GRAY, "Bastion_Remnant"); + public static final BoundingBoxType RuinedPortal = register(Colors.COOL_PURPLE, "Ruined_Portal"); + + private static BoundingBoxType register(Color color, String name) { + BoundingBoxType type = structureTypeMap.computeIfAbsent(name.hashCode(), k -> new BoundingBoxType(color, name)); StructureProcessor.registerSupportedStructure(type); return type; } @@ -53,12 +52,10 @@ public class BoundingBoxType { private final Color color; private final String name; - public final Setting shouldRenderSetting; - private BoundingBoxType(Color color, String name, Setting shouldRenderSetting) { + private BoundingBoxType(Color color, String name) { this.color = color; this.name = name; - this.shouldRenderSetting = shouldRenderSetting; } public Color getColor() { @@ -69,7 +66,16 @@ public class BoundingBoxType { return name; } - public Boolean shouldRender() { - return shouldRenderSetting.get(); + @Override + public int hashCode() { + return name.hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null || getClass() != obj.getClass()) return false; + BoundingBoxType other = (BoundingBoxType) obj; + return this.name.equals(other.name); } } diff --git a/src/main/java/com/irtimaled/bbor/common/messages/BoundingBoxSerializer.java b/src/main/java/com/irtimaled/bbor/common/messages/BoundingBoxSerializer.java index 2aa4ff7..7fdce42 100644 --- a/src/main/java/com/irtimaled/bbor/common/messages/BoundingBoxSerializer.java +++ b/src/main/java/com/irtimaled/bbor/common/messages/BoundingBoxSerializer.java @@ -41,7 +41,7 @@ class BoundingBoxSerializer { private static void serializeStructure(BoundingBoxCuboid boundingBox, PayloadBuilder builder) { builder.writeChar('S') - .writeInt(boundingBox.getTypeName().hashCode()) + .writeInt(boundingBox.getType().hashCode()) .writeCoords(boundingBox.getMinCoords()) .writeCoords(boundingBox.getMaxCoords()); } diff --git a/src/main/java/com/irtimaled/bbor/common/models/AbstractBoundingBox.java b/src/main/java/com/irtimaled/bbor/common/models/AbstractBoundingBox.java index 535d1cd..2c1bae2 100644 --- a/src/main/java/com/irtimaled/bbor/common/models/AbstractBoundingBox.java +++ b/src/main/java/com/irtimaled/bbor/common/models/AbstractBoundingBox.java @@ -15,16 +15,8 @@ public abstract class AbstractBoundingBox { return type.getColor(); } - public Boolean shouldRender() { - return type.shouldRender(); - } - public abstract Boolean intersectsBounds(int minX, int minZ, int maxX, int maxZ); - public String getTypeName() { - return type.getName(); - } - public BoundingBoxType getType() { return type; } diff --git a/src/main/java/com/irtimaled/bbor/config/ConfigManager.java b/src/main/java/com/irtimaled/bbor/config/ConfigManager.java index 512bb57..0815a40 100644 --- a/src/main/java/com/irtimaled/bbor/config/ConfigManager.java +++ b/src/main/java/com/irtimaled/bbor/config/ConfigManager.java @@ -44,7 +44,6 @@ public class ConfigManager { public static Setting renderAFKSpawnableBlocks; public static Setting afkSpawnableBlocksRenderDistance; public static Setting drawBeacons; - public static Setting drawCustomBoxes; public static Setting drawBiomeBorders; public static Setting renderOnlyCurrentBiome; public static Setting biomeBordersRenderDistance; @@ -64,7 +63,6 @@ public class ConfigManager { outerBoxesOnly = setup(config, "general", "outerBoxesOnly", false, "If set to true only the outer bounding boxes are rendered."); alwaysVisible = setup(config, "general", "alwaysVisible", false, "If set to true boxes will be visible even through other blocks."); keepCacheBetweenSessions = setup(config, "general", "keepCacheBetweenSessions", false, "If set to true bounding box caches will be kept between sessions."); - drawCustomBoxes = setup(config, "general", "drawCustomBoxes", true, "If set to true custom bounding boxes will be drawn."); drawBeacons = setup(config, "beacons", "drawBeacons", true, "If set to true beacon bounding boxes will be drawn."); -- 2.44.0