From f70b22365aef90947ba1e5f9803f7cb3c03475b2 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 12 Nov 2020 00:30:33 +0300 Subject: [PATCH] Json API fixes --- .../java/ru/betterend/registry/EndBiomes.java | 17 +++++++++++++---- .../java/ru/betterend/util/JsonFactory.java | 15 +++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/betterend/registry/EndBiomes.java b/src/main/java/ru/betterend/registry/EndBiomes.java index 7782379a..92e4b36f 100644 --- a/src/main/java/ru/betterend/registry/EndBiomes.java +++ b/src/main/java/ru/betterend/registry/EndBiomes.java @@ -74,6 +74,7 @@ public class EndBiomes { EndBiomes.MUTABLE.clear(); LAND_BIOMES.clearMutables(); + VOID_BIOMES.clearMutables(); for (EndBiome biome : EndBiomes.LAND_BIOMES.getBiomes()) EndBiomes.MUTABLE.put(biomeRegistry.getOrThrow(EndBiomes.getBiomeKey(biome)), biome); @@ -92,14 +93,22 @@ public class EndBiomes { } float fog = 1F; float chance = 1F; + boolean isVoid = false; JsonElement element = config.get(id.getPath()); - if (element != null) { - fog = element.getAsJsonObject().get("fogDensity").getAsFloat(); - chance = element.getAsJsonObject().get("genChance").getAsFloat(); + if (element != null && element.isJsonObject()) { + fog = JsonFactory.getFloat(element.getAsJsonObject(), "fogDensity", 1); + chance = JsonFactory.getFloat(element.getAsJsonObject(), "genChance", 1); + isVoid = JsonFactory.getString(element.getAsJsonObject(), "type", "land").equals("void"); } EndBiome endBiome = new EndBiome(id, biome, fog, chance); - LAND_BIOMES.addBiomeMutable(endBiome); + if (isVoid) { + VOID_BIOMES.addBiomeMutable(endBiome); + } + else { + LAND_BIOMES.addBiomeMutable(endBiome); + } KEYS.put(endBiome, biomeRegistry.getKey(biome).get()); + ID_MAP.put(id, endBiome); } } }); diff --git a/src/main/java/ru/betterend/util/JsonFactory.java b/src/main/java/ru/betterend/util/JsonFactory.java index 2b28a5c3..56b01130 100644 --- a/src/main/java/ru/betterend/util/JsonFactory.java +++ b/src/main/java/ru/betterend/util/JsonFactory.java @@ -99,4 +99,19 @@ public class JsonFactory { BetterEnd.LOGGER.catching(ex); } } + + public static float getFloat(JsonObject object, String member, float def) { + JsonElement elem = object.get(member); + return elem == null ? def : elem.getAsFloat(); + } + + public static boolean getBoolean(JsonObject object, String member, boolean def) { + JsonElement elem = object.get(member); + return elem == null ? def : elem.getAsBoolean(); + } + + public static String getString(JsonObject object, String member, String def) { + JsonElement elem = object.get(member); + return elem == null ? def : elem.getAsString(); + } }