import java.util.concurrent.ConcurrentHashMap;
public class CustomBoxProvider implements IBoundingBoxProvider<BoundingBoxCuboid> {
- private final static Map<Integer, Map<Integer, BoundingBoxCuboid>> dimensionCache = new HashMap<>();
+ private static final Map<Integer, Map<Integer, BoundingBoxCuboid>> dimensionCache = new HashMap<>();
private static int getHashKey(Coords minCoords, Coords maxCoords) {
return (31 + minCoords.hashCode()) * 31 + maxCoords.hashCode();
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 Custom = register(Color.WHITE, "Custom", ConfigManager.drawCustomBoxes);
private static BoundingBoxType register(Color color, String name, Setting<Boolean> shouldRenderSetting) {
public static final Color DARK_GREEN = new Color(0, 96, 0);
public static final Color BROWN = new Color(139, 69, 19);
public static final Color PURPLE = new Color(128, 0, 128);
+ public static final Color COOL_PURPLE = new Color(200, 0, 255);
}
public static Setting<Boolean> renderOnlyCurrentBiome;
public static Setting<Integer> biomeBordersRenderDistance;
public static Setting<Integer> biomeBordersMaxY;
+ public static Setting<Boolean> drawNetherFossils;
+ public static Setting<Boolean> drawBastionRemnants;
+ public static Setting<Boolean> drawRuinedPortals;
public static void loadConfig(File mcConfigDir) {
configDir = new File(mcConfigDir, "config");
drawOceanRuins = setup(config, "structures", "drawOceanRuins", true, "If set to true ocean ruins will be drawn.");
drawBuriedTreasure = setup(config, "structures", "drawBuriedTreasures", true, "If set to true buried treasure will be drawn.");
drawPillagerOutposts = setup(config, "structures", "drawPillagerOutposts", true, "If set to true pillager outposts will be drawn.");
+ drawNetherFossils = setup(config, "structures", "drawNetherFossils", true, "If set to true nether fossils will be drawn.");
+ drawBastionRemnants = setup(config, "structures", "drawBastionRemnants", true, "If set to true bastion remnants will be drawn.");
+ drawRuinedPortals = setup(config, "structures", "drawRuinedPortals", true, "If set to true ruined portals will be drawn.");
drawSlimeChunks = setup(config, "slimeChunks", "drawSlimeChunks", true, "If set to true slime chunks bounding boxes are drawn.");
slimeChunkMaxY = setup(config, "slimeChunks", "slimeChunkMaxY", -1, "The maximum top of the slime chunk bounding box. If set to -1 it will use the value when activated, if set to 0 it will always track the player's feet.");
"bbor.structures.pillagerOutposts": "Pillager Outposts",
"bbor.structures.villages": "Villages",
"bbor.structures.fortresses": "Fortresses",
+ "bbor.structures.endCities": "End Cities",
+ "bbor.structures.netherFossils": "Nether Fossils",
+ "bbor.structures.bastionRemnants": "Bastion Remnants",
+ "bbor.structures.ruinedPortal": "Ruined Portals",
"bbor.features.villageSpheres": "Village Spheres",
"bbor.features.villageSpheres.doorLines": "Door Lines",