1 package com.irtimaled.bbor.client.config;
3 import com.irtimaled.bbor.common.BoundingBoxType;
6 import java.util.HashMap;
9 public class BoundingBoxTypeHelper {
10 private static final Map<String, BoundingBoxTypeSettings> structureTypeMap = new HashMap<>();
12 private static void registerType(BoundingBoxType type, Setting<Boolean> shouldRender, Setting<HexColor> color) {
13 structureTypeMap.put(type.getName(), new BoundingBoxTypeSettings(shouldRender, color));
17 registerType(BoundingBoxType.WorldSpawn, ConfigManager.drawWorldSpawn, ConfigManager.colorWorldSpawn);
18 registerType(BoundingBoxType.SpawnChunks, ConfigManager.drawWorldSpawn, ConfigManager.colorWorldSpawn);
19 registerType(BoundingBoxType.LazySpawnChunks, ConfigManager.drawLazySpawnChunks, ConfigManager.colorLazySpawnChunks);
20 registerType(BoundingBoxType.MobSpawner, ConfigManager.drawMobSpawners, ConfigManager.colorMobSpawners);
21 registerType(BoundingBoxType.SlimeChunks, ConfigManager.drawSlimeChunks, ConfigManager.colorSlimeChunks);
22 registerType(BoundingBoxType.AFKSphere, ConfigManager.drawAFKSpheres, ConfigManager.colorAFKSpheres);
23 registerType(BoundingBoxType.BiomeBorder, ConfigManager.drawBiomeBorders, ConfigManager.colorBiomeBorders);
24 registerType(BoundingBoxType.Beacon, ConfigManager.drawBeacons, ConfigManager.colorBeacons);
25 registerType(BoundingBoxType.Custom, ConfigManager.drawConduits, ConfigManager.colorCustom);
26 registerType(BoundingBoxType.Conduit, ConfigManager.drawConduits, ConfigManager.colorConduits);
27 registerType(BoundingBoxType.SpawnableBlocks, ConfigManager.drawSpawnableBlocks, ConfigManager.colorSpawnableBlocks);
28 // registerType(BoundingBoxType.FlowerForest, ConfigManager.drawFlowerForests, null);
29 // registerType(BoundingBoxType.BedrockCeiling, ConfigManager.drawBedrockCeilingBlocks, ConfigManager.colorBedrockCeilingBlocks);
31 registerType(BoundingBoxType.JungleTemple, ConfigManager.drawJungleTemples, ConfigManager.colorJungleTemples);
32 registerType(BoundingBoxType.DesertTemple, ConfigManager.drawDesertTemples, ConfigManager.colorDesertTemples);
33 registerType(BoundingBoxType.WitchHut, ConfigManager.drawWitchHuts, ConfigManager.colorWitchHuts);
34 registerType(BoundingBoxType.OceanMonument, ConfigManager.drawOceanMonuments, ConfigManager.colorOceanMonuments);
35 registerType(BoundingBoxType.Shipwreck, ConfigManager.drawShipwrecks, ConfigManager.colorShipwrecks);
36 registerType(BoundingBoxType.OceanRuin, ConfigManager.drawOceanRuins, ConfigManager.colorOceanRuins);
37 registerType(BoundingBoxType.BuriedTreasure, ConfigManager.drawBuriedTreasure, ConfigManager.colorBuriedTreasure);
38 registerType(BoundingBoxType.Stronghold, ConfigManager.drawStrongholds, ConfigManager.colorStrongholds);
39 registerType(BoundingBoxType.MineShaft, ConfigManager.drawMineShafts, ConfigManager.colorMineShafts);
40 registerType(BoundingBoxType.NetherFortress, ConfigManager.drawNetherFortresses, ConfigManager.colorNetherFortresses);
41 registerType(BoundingBoxType.EndCity, ConfigManager.drawEndCities, ConfigManager.colorEndCities);
42 registerType(BoundingBoxType.Mansion, ConfigManager.drawMansions, ConfigManager.colorMansions);
43 registerType(BoundingBoxType.Igloo, ConfigManager.drawIgloos, ConfigManager.colorIgloos);
44 registerType(BoundingBoxType.PillagerOutpost, ConfigManager.drawPillagerOutposts, ConfigManager.colorPillagerOutposts);
45 registerType(BoundingBoxType.Village, ConfigManager.drawVillages, ConfigManager.colorVillages);
46 registerType(BoundingBoxType.NetherFossil, ConfigManager.drawNetherFossils, ConfigManager.colorNetherFossils);
47 registerType(BoundingBoxType.BastionRemnant, ConfigManager.drawBastionRemnants, ConfigManager.colorBastionRemnants);
48 registerType(BoundingBoxType.RuinedPortal, ConfigManager.drawRuinedPortals, ConfigManager.colorRuinedPortals);
51 public static Setting<Boolean> renderSetting(BoundingBoxType type) {
52 return structureTypeMap.get(type.getName()).shouldRender;
55 public static boolean shouldRender(BoundingBoxType type) {
56 BoundingBoxTypeSettings settings = structureTypeMap.get(type.getName());
57 return settings != null ? settings.shouldRender.get() : false;
60 public static Color getColor(BoundingBoxType type) {
61 BoundingBoxTypeSettings settings = structureTypeMap.get(type.getName());
62 return settings != null ? ColorHelper.getColor(settings.color) : Color.WHITE;
65 private static class BoundingBoxTypeSettings {
66 private final Setting<Boolean> shouldRender;
67 private final Setting<HexColor> color;
69 public BoundingBoxTypeSettings(Setting<Boolean> shouldRender, Setting<HexColor> color) {
70 this.shouldRender = shouldRender;