JSON API prototype
This commit is contained in:
parent
7dbea96c46
commit
8ed48f99d0
6 changed files with 29 additions and 10 deletions
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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<EndBiome> SUBBIOMES = Lists.newArrayList();
|
||||
private static final JsonObject EMPTY_JSON = new JsonObject();
|
||||
|
||||
private static Registry<Biome> 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<String, JsonObject> 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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue