]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/config/BoundingBoxTypeHelper.java
1.18.1
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / config / BoundingBoxTypeHelper.java
1 package com.irtimaled.bbor.client.config;
2
3 import com.irtimaled.bbor.common.BoundingBoxType;
4
5 import java.awt.*;
6 import java.util.HashMap;
7 import java.util.Map;
8
9 public class BoundingBoxTypeHelper {
10     private static final Map<String, BoundingBoxTypeSettings> structureTypeMap = new HashMap<>();
11
12     private static void registerType(BoundingBoxType type, Setting<Boolean> shouldRender, Setting<HexColor> color) {
13         structureTypeMap.put(type.getName(), new BoundingBoxTypeSettings(shouldRender, color));
14     }
15
16     static {
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);
30
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);
49     }
50
51     public static Setting<Boolean> renderSetting(BoundingBoxType type) {
52         return structureTypeMap.get(type.getName()).shouldRender;
53     }
54
55     public static boolean shouldRender(BoundingBoxType type) {
56         BoundingBoxTypeSettings settings = structureTypeMap.get(type.getName());
57         return settings != null ? settings.shouldRender.get() : false;
58     }
59
60     public static Color getColor(BoundingBoxType type) {
61         BoundingBoxTypeSettings settings = structureTypeMap.get(type.getName());
62         return settings != null ? ColorHelper.getColor(settings.color) : Color.WHITE;
63     }
64
65     private static class BoundingBoxTypeSettings {
66         private final Setting<Boolean> shouldRender;
67         private final Setting<HexColor> color;
68
69         public BoundingBoxTypeSettings(Setting<Boolean> shouldRender, Setting<HexColor> color) {
70             this.shouldRender = shouldRender;
71             this.color = color;
72         }
73     }
74 }