1 package com.irtimaled.bbor.common;
3 import com.irtimaled.bbor.common.models.Colors;
4 import com.irtimaled.bbor.config.ConfigManager;
5 import com.irtimaled.bbor.config.Setting;
8 import java.util.HashMap;
11 public class BoundingBoxType {
12 private final static Map<Integer, BoundingBoxType> structureTypeMap = new HashMap<>();
14 public final static BoundingBoxType JungleTemple = register(Colors.DARK_GREEN, "Jungle_Pyramid", ConfigManager.drawJungleTemples);
15 public final static BoundingBoxType DesertTemple = register(Color.ORANGE, "Desert_Pyramid", ConfigManager.drawDesertTemples);
16 public final static BoundingBoxType WitchHut = register(Color.BLUE, "Swamp_Hut", ConfigManager.drawWitchHuts);
17 public final static BoundingBoxType OceanMonument = register(Color.CYAN, "Monument", ConfigManager.drawOceanMonuments);
18 public final static BoundingBoxType Shipwreck = register(Color.CYAN, "Shipwreck", ConfigManager.drawShipwrecks);
19 public final static BoundingBoxType OceanRuin = register(Color.CYAN, "Ocean_Ruin", ConfigManager.drawOceanRuins);
20 public final static BoundingBoxType BuriedTreasure = register(Color.CYAN, "Buried_Treasure", ConfigManager.drawBuriedTreasure);
21 public final static BoundingBoxType Stronghold = register(Color.YELLOW, "Stronghold", ConfigManager.drawStrongholds);
22 public final static BoundingBoxType MineShaft = register(Color.LIGHT_GRAY, "Mineshaft", ConfigManager.drawMineShafts);
23 public final static BoundingBoxType NetherFortress = register(Color.RED, "Fortress", ConfigManager.drawNetherFortresses);
24 public final static BoundingBoxType EndCity = register(Color.MAGENTA, "EndCity", ConfigManager.drawEndCities);
25 public final static BoundingBoxType Mansion = register(Colors.BROWN, "Mansion", ConfigManager.drawMansions);
26 public final static BoundingBoxType Igloo = register(Color.WHITE, "Igloo", ConfigManager.drawIgloos);
27 public final static BoundingBoxType PillagerOutpost = register(Color.DARK_GRAY, "Pillager_Outpost", ConfigManager.drawPillagerOutposts);
28 public final static BoundingBoxType WorldSpawn = register(Color.RED, "World_Spawn", ConfigManager.drawWorldSpawn);
29 public final static BoundingBoxType SpawnChunks = register(Color.RED, "Spawn_Chunks", ConfigManager.drawWorldSpawn);
30 public final static BoundingBoxType LazySpawnChunks = register(Color.RED, "Lazy_Chunks", ConfigManager.drawLazySpawnChunks);
31 public final static BoundingBoxType MobSpawner = register(Color.GREEN, "Mob_Spawner", ConfigManager.drawMobSpawners);
32 public final static BoundingBoxType SlimeChunks = register(Colors.DARK_GREEN, "Slime_Chunks", ConfigManager.drawSlimeChunks);
33 public final static BoundingBoxType Village = register(Colors.PURPLE, "Village", ConfigManager.drawVillages);
34 public final static BoundingBoxType VillageSpheres = register(null, "Village Sphere", ConfigManager.drawVillageSpheres);
35 public final static BoundingBoxType AFKSphere = register(Color.RED, "AFK Sphere", ConfigManager.drawAFKSpheres);
37 private static BoundingBoxType register(Color color, String name, Setting<Boolean> shouldRenderSetting) {
38 return structureTypeMap.computeIfAbsent(name.hashCode(), k -> new BoundingBoxType(color, name, shouldRenderSetting));
41 public static BoundingBoxType getByNameHash(Integer nameHash) {
42 return structureTypeMap.get(nameHash);
45 private final Color color;
46 private final String name;
47 public final Setting<Boolean> shouldRenderSetting;
49 private BoundingBoxType(Color color, String name, Setting<Boolean> shouldRenderSetting) {
52 this.shouldRenderSetting = shouldRenderSetting;
55 public Color getColor() {
59 public String getName() {
63 public Boolean shouldRender() {
64 return shouldRenderSetting.get();