diff --git a/src/main/java/ru/betterend/compat/rei/REIAlloyingCategory.java b/src/main/java/ru/betterend/compat/rei/REIAlloyingCategory.java index a752c266..f3ea48b9 100644 --- a/src/main/java/ru/betterend/compat/rei/REIAlloyingCategory.java +++ b/src/main/java/ru/betterend/compat/rei/REIAlloyingCategory.java @@ -8,7 +8,6 @@ import org.jetbrains.annotations.NotNull; import com.google.common.collect.Lists; import it.unimi.dsi.fastutil.ints.IntList; - import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.EntryStack; @@ -17,12 +16,10 @@ import me.shedaniel.rei.api.widgets.Widgets; import me.shedaniel.rei.gui.entries.RecipeEntry; import me.shedaniel.rei.gui.entries.SimpleRecipeEntry; import me.shedaniel.rei.gui.widget.Widget; - import net.minecraft.client.gui.DrawableHelper; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; - import ru.betterend.recipe.builders.AlloyingRecipe; import ru.betterend.registry.EndBlocks; import ru.betterend.util.LangUtil; diff --git a/src/main/java/ru/betterend/compat/rei/REIInfusionCategory.java b/src/main/java/ru/betterend/compat/rei/REIInfusionCategory.java index f3ee122a..6782269d 100644 --- a/src/main/java/ru/betterend/compat/rei/REIInfusionCategory.java +++ b/src/main/java/ru/betterend/compat/rei/REIInfusionCategory.java @@ -7,7 +7,6 @@ import org.jetbrains.annotations.NotNull; import com.google.common.collect.Lists; import it.unimi.dsi.fastutil.ints.IntList; - import me.shedaniel.math.Point; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.EntryStack; @@ -16,11 +15,9 @@ import me.shedaniel.rei.api.widgets.Widgets; import me.shedaniel.rei.gui.entries.RecipeEntry; import me.shedaniel.rei.gui.entries.SimpleRecipeEntry; import me.shedaniel.rei.gui.widget.Widget; - import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.TranslatableText; import net.minecraft.util.Identifier; - import ru.betterend.recipe.builders.InfusionRecipe; import ru.betterend.registry.EndBlocks; import ru.betterend.util.LangUtil; diff --git a/src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java b/src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java index 763800a6..324e6072 100644 --- a/src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java +++ b/src/main/java/ru/betterend/recipe/builders/InfusionRecipe.java @@ -17,7 +17,6 @@ import net.minecraft.util.JsonHelper; import net.minecraft.util.collection.DefaultedList; import net.minecraft.util.registry.Registry; import net.minecraft.world.World; - import ru.betterend.BetterEnd; import ru.betterend.recipe.EndRecipeManager; import ru.betterend.rituals.InfusionRitual; diff --git a/src/main/java/ru/betterend/registry/EndBiomes.java b/src/main/java/ru/betterend/registry/EndBiomes.java index bded0d14..7782379a 100644 --- a/src/main/java/ru/betterend/registry/EndBiomes.java +++ b/src/main/java/ru/betterend/registry/EndBiomes.java @@ -1,5 +1,6 @@ package ru.betterend.registry; +import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -7,6 +8,8 @@ import java.util.Optional; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -19,6 +22,7 @@ import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome.Category; import net.minecraft.world.biome.BiomeKeys; +import ru.betterend.util.JsonFactory; import ru.betterend.world.biome.BiomeChorusForest; import ru.betterend.world.biome.BiomeCrystalMountains; import ru.betterend.world.biome.BiomeDustWastelands; @@ -40,6 +44,7 @@ public class EndBiomes { public static final BiomePicker LAND_BIOMES = new BiomePicker(); public static final BiomePicker VOID_BIOMES = new BiomePicker(); public static final List SUBBIOMES = Lists.newArrayList(); + private static final JsonObject EMPTY_JSON = new JsonObject(); private static Registry biomeRegistry; @@ -75,11 +80,24 @@ public class EndBiomes { for (EndBiome biome : EndBiomes.VOID_BIOMES.getBiomes()) EndBiomes.MUTABLE.put(biomeRegistry.getOrThrow(EndBiomes.getBiomeKey(biome)), biome); + Map configs = Maps.newHashMap(); biomeRegistry.forEach((biome) -> { if (biome.getCategory() == Category.THEEND) { Identifier id = biomeRegistry.getId(biome); if (!MUTABLE.containsKey(biome) && !ID_MAP.containsKey(id)) { - EndBiome endBiome = new EndBiome(id, biome, 1, 1); + JsonObject config = configs.get(id.getNamespace()); + if (config == null) { + config = loadJsonConfig(id.getNamespace()); + configs.put(id.getNamespace(), config); + } + float fog = 1F; + float chance = 1F; + JsonElement element = config.get(id.getPath()); + if (element != null) { + fog = element.getAsJsonObject().get("fogDensity").getAsFloat(); + chance = element.getAsJsonObject().get("genChance").getAsFloat(); + } + EndBiome endBiome = new EndBiome(id, biome, fog, chance); LAND_BIOMES.addBiomeMutable(endBiome); KEYS.put(endBiome, biomeRegistry.getKey(biome).get()); } @@ -89,6 +107,16 @@ public class EndBiomes { CLIENT.clear(); } + private static JsonObject loadJsonConfig(String namespace) { + InputStream inputstream = EndBiomes.class.getResourceAsStream("/data/" + namespace + "/end_biome_properties.json"); + if (inputstream != null) { + return JsonFactory.getJsonObject(inputstream); + } + else { + return EMPTY_JSON; + } + } + /** * Initialize registry if it was not initialized in world generation (when using mods/datapacks, that overrides the End generation) * @param server diff --git a/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java b/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java index d72bb1bf..acb4c4f8 100644 --- a/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java +++ b/src/main/java/ru/betterend/registry/EndBlockEntityRenders.java @@ -3,7 +3,6 @@ package ru.betterend.registry; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.rendereregistry.v1.BlockEntityRendererRegistry; - import ru.betterend.blocks.entities.render.EndChestBlockEntityRenderer; import ru.betterend.blocks.entities.render.EndSignBlockEntityRenderer; import ru.betterend.blocks.entities.render.PedestalItemRenderer; diff --git a/src/main/java/ru/betterend/rituals/InfusionRitual.java b/src/main/java/ru/betterend/rituals/InfusionRitual.java index 938754c5..96e3df69 100644 --- a/src/main/java/ru/betterend/rituals/InfusionRitual.java +++ b/src/main/java/ru/betterend/rituals/InfusionRitual.java @@ -14,7 +14,6 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; - import ru.betterend.blocks.entities.InfusionPedestalEntity; import ru.betterend.blocks.entities.PedestalBlockEntity; import ru.betterend.recipe.builders.InfusionRecipe;