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);
29 registerType(BoundingBoxType.JungleTemple, ConfigManager.drawJungleTemples, ConfigManager.colorJungleTemples);
30 registerType(BoundingBoxType.DesertTemple, ConfigManager.drawDesertTemples, ConfigManager.colorDesertTemples);
31 registerType(BoundingBoxType.WitchHut, ConfigManager.drawWitchHuts, ConfigManager.colorWitchHuts);
32 registerType(BoundingBoxType.OceanMonument, ConfigManager.drawOceanMonuments, ConfigManager.colorOceanMonuments);
33 registerType(BoundingBoxType.Shipwreck, ConfigManager.drawShipwrecks, ConfigManager.colorShipwrecks);
34 registerType(BoundingBoxType.OceanRuin, ConfigManager.drawOceanRuins, ConfigManager.colorOceanRuins);
35 registerType(BoundingBoxType.BuriedTreasure, ConfigManager.drawBuriedTreasure, ConfigManager.colorBuriedTreasure);
36 registerType(BoundingBoxType.Stronghold, ConfigManager.drawStrongholds, ConfigManager.colorStrongholds);
37 registerType(BoundingBoxType.MineShaft, ConfigManager.drawMineShafts, ConfigManager.colorMineShafts);
38 registerType(BoundingBoxType.NetherFortress, ConfigManager.drawNetherFortresses, ConfigManager.colorNetherFortresses);
39 registerType(BoundingBoxType.EndCity, ConfigManager.drawEndCities, ConfigManager.colorEndCities);
40 registerType(BoundingBoxType.Mansion, ConfigManager.drawMansions, ConfigManager.colorMansions);
41 registerType(BoundingBoxType.Igloo, ConfigManager.drawIgloos, ConfigManager.colorIgloos);
42 registerType(BoundingBoxType.PillagerOutpost, ConfigManager.drawPillagerOutposts, ConfigManager.colorPillagerOutposts);
43 registerType(BoundingBoxType.Village, ConfigManager.drawVillages, ConfigManager.colorVillages);
44 registerType(BoundingBoxType.NetherFossil, ConfigManager.drawNetherFossils, ConfigManager.colorNetherFossils);
45 registerType(BoundingBoxType.BastionRemnant, ConfigManager.drawBastionRemnants, ConfigManager.colorBastionRemnants);
46 registerType(BoundingBoxType.RuinedPortal, ConfigManager.drawRuinedPortals, ConfigManager.colorRuinedPortals);
49 public static Setting<Boolean> renderSetting(BoundingBoxType type) {
50 return structureTypeMap.get(type.getName()).shouldRender;
53 public static boolean shouldRender(BoundingBoxType type) {
54 BoundingBoxTypeSettings settings = structureTypeMap.get(type.getName());
55 return settings != null ? settings.shouldRender.get() : false;
58 public static Color getColor(BoundingBoxType type) {
59 BoundingBoxTypeSettings settings = structureTypeMap.get(type.getName());
60 return settings != null ? ColorHelper.getColor(settings.color) : Color.WHITE;
63 private static class BoundingBoxTypeSettings {
64 private final Setting<Boolean> shouldRender;
65 private final Setting<HexColor> color;
67 public BoundingBoxTypeSettings(Setting<Boolean> shouldRender, Setting<HexColor> color) {
68 this.shouldRender = shouldRender;