Biome config
This commit is contained in:
parent
69d11c0e5a
commit
a2dec40b0a
6 changed files with 44 additions and 7 deletions
|
@ -24,6 +24,7 @@ import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
|
||||||
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
import net.minecraft.world.level.levelgen.feature.ConfiguredFeature;
|
||||||
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature;
|
import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import ru.bclib.config.Configs;
|
||||||
import ru.bclib.util.MHelper;
|
import ru.bclib.util.MHelper;
|
||||||
import ru.bclib.world.biomes.BCLBiome;
|
import ru.bclib.world.biomes.BCLBiome;
|
||||||
import ru.bclib.world.biomes.FabricBiomesData;
|
import ru.bclib.world.biomes.FabricBiomesData;
|
||||||
|
@ -85,6 +86,11 @@ public class BiomeAPI {
|
||||||
* @return {@link BCLBiome}
|
* @return {@link BCLBiome}
|
||||||
*/
|
*/
|
||||||
public static BCLBiome registerBiome(BCLBiome biome) {
|
public static BCLBiome registerBiome(BCLBiome biome) {
|
||||||
|
String biomePath = biome.getID().getNamespace() + "." + biome.getID().getPath();
|
||||||
|
if (!Configs.BIOMES_CONFIG.getBoolean(biomePath, "enabled", true)) {
|
||||||
|
return biome;
|
||||||
|
}
|
||||||
|
|
||||||
if (BuiltinRegistries.BIOME.get(biome.getID()) == null) {
|
if (BuiltinRegistries.BIOME.get(biome.getID()) == null) {
|
||||||
Registry.register(BuiltinRegistries.BIOME, biome.getID(), biome.getBiome());
|
Registry.register(BuiltinRegistries.BIOME, biome.getID(), biome.getBiome());
|
||||||
}
|
}
|
||||||
|
@ -93,6 +99,11 @@ public class BiomeAPI {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BCLBiome registerSubBiome(BCLBiome parent, BCLBiome subBiome) {
|
public static BCLBiome registerSubBiome(BCLBiome parent, BCLBiome subBiome) {
|
||||||
|
String biomePath = subBiome.getID().getNamespace() + "." + subBiome.getID().getPath();
|
||||||
|
if (!Configs.BIOMES_CONFIG.getBoolean(biomePath, "enabled", true)) {
|
||||||
|
return subBiome;
|
||||||
|
}
|
||||||
|
|
||||||
registerBiome(subBiome);
|
registerBiome(subBiome);
|
||||||
parent.addSubBiome(subBiome);
|
parent.addSubBiome(subBiome);
|
||||||
return subBiome;
|
return subBiome;
|
||||||
|
|
|
@ -11,18 +11,17 @@ public class Configs {
|
||||||
public static final ClientConfig CLIENT_CONFIG = new ClientConfig();
|
public static final ClientConfig CLIENT_CONFIG = new ClientConfig();
|
||||||
public static final ServerConfig SERVER_CONFIG = new ServerConfig();
|
public static final ServerConfig SERVER_CONFIG = new ServerConfig();
|
||||||
|
|
||||||
|
|
||||||
public static final PathConfig GENERATOR_CONFIG = new PathConfig(BCLib.MOD_ID, "generator", false);
|
public static final PathConfig GENERATOR_CONFIG = new PathConfig(BCLib.MOD_ID, "generator", false);
|
||||||
public static final PathConfig MAIN_CONFIG = new PathConfig(BCLib.MOD_ID, "main", true, true);
|
public static final PathConfig MAIN_CONFIG = new PathConfig(BCLib.MOD_ID, "main", true, true);
|
||||||
public static final String MAIN_PATCH_CATEGORY = "patches";
|
public static final String MAIN_PATCH_CATEGORY = "patches";
|
||||||
|
|
||||||
public static final PathConfig RECIPE_CONFIG = new PathConfig(BCLib.MOD_ID, "recipes");
|
public static final PathConfig RECIPE_CONFIG = new PathConfig(BCLib.MOD_ID, "recipes");
|
||||||
|
public static final PathConfig BIOMES_CONFIG = new PathConfig(BCLib.MOD_ID, "biomes", false);
|
||||||
|
|
||||||
|
|
||||||
public static void save() {
|
public static void save() {
|
||||||
MAIN_CONFIG.saveChanges();
|
MAIN_CONFIG.saveChanges();
|
||||||
RECIPE_CONFIG.saveChanges();
|
RECIPE_CONFIG.saveChanges();
|
||||||
GENERATOR_CONFIG.saveChanges();
|
GENERATOR_CONFIG.saveChanges();
|
||||||
|
BIOMES_CONFIG.saveChanges();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,8 @@ import com.google.gson.JsonObject;
|
||||||
import net.minecraft.core.Registry;
|
import net.minecraft.core.Registry;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.level.biome.Biome;
|
import net.minecraft.world.level.biome.Biome;
|
||||||
|
import net.minecraft.world.level.biome.Biomes;
|
||||||
|
import ru.bclib.config.Configs;
|
||||||
import ru.bclib.util.JsonFactory;
|
import ru.bclib.util.JsonFactory;
|
||||||
import ru.bclib.util.StructureHelper;
|
import ru.bclib.util.StructureHelper;
|
||||||
import ru.bclib.util.WeightedList;
|
import ru.bclib.util.WeightedList;
|
||||||
|
@ -38,6 +40,7 @@ public class BCLBiome {
|
||||||
private Biome actualBiome;
|
private Biome actualBiome;
|
||||||
|
|
||||||
public BCLBiome(BCLBiomeDef definition) {
|
public BCLBiome(BCLBiomeDef definition) {
|
||||||
|
definition.loadConfigValues(Configs.BIOMES_CONFIG);
|
||||||
this.mcID = definition.getID();
|
this.mcID = definition.getID();
|
||||||
this.readStructureList();
|
this.readStructureList();
|
||||||
if (structuresFeature != null) {
|
if (structuresFeature != null) {
|
||||||
|
@ -53,8 +56,15 @@ public class BCLBiome {
|
||||||
public BCLBiome(ResourceLocation id, Biome biome, float fogDensity, float genChance) {
|
public BCLBiome(ResourceLocation id, Biome biome, float fogDensity, float genChance) {
|
||||||
this.mcID = id;
|
this.mcID = id;
|
||||||
this.biome = biome;
|
this.biome = biome;
|
||||||
this.genChance = genChance;
|
if (id.equals(Biomes.THE_VOID.location())) {
|
||||||
this.fogDensity = fogDensity;
|
this.genChance = fogDensity;
|
||||||
|
this.fogDensity = genChance;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
String biomePath = id.getNamespace() + "." + id.getPath();
|
||||||
|
this.genChance = Configs.BIOMES_CONFIG.getFloat(biomePath, "generation_chance", genChance);
|
||||||
|
this.fogDensity = Configs.BIOMES_CONFIG.getFloat(biomePath, "fog_density", fogDensity);
|
||||||
|
}
|
||||||
this.readStructureList();
|
this.readStructureList();
|
||||||
this.customData = Maps.newHashMap();
|
this.customData = Maps.newHashMap();
|
||||||
subbiomes.add(this, 1);
|
subbiomes.add(this, 1);
|
||||||
|
|
|
@ -32,6 +32,7 @@ import net.minecraft.world.level.levelgen.surfacebuilders.ConfiguredSurfaceBuild
|
||||||
import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilder;
|
import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilder;
|
||||||
import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderBaseConfiguration;
|
import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderBaseConfiguration;
|
||||||
import ru.bclib.config.IdConfig;
|
import ru.bclib.config.IdConfig;
|
||||||
|
import ru.bclib.config.PathConfig;
|
||||||
import ru.bclib.util.ColorUtil;
|
import ru.bclib.util.ColorUtil;
|
||||||
import ru.bclib.world.features.BCLFeature;
|
import ru.bclib.world.features.BCLFeature;
|
||||||
import ru.bclib.world.structures.BCLStructureFeature;
|
import ru.bclib.world.structures.BCLStructureFeature;
|
||||||
|
@ -113,7 +114,6 @@ public class BCLBiomeDef {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to load biome settings from config.
|
* Used to load biome settings from config.
|
||||||
*
|
|
||||||
* @param config - {@link IdConfig}.
|
* @param config - {@link IdConfig}.
|
||||||
* @return this {@link BCLBiomeDef}.
|
* @return this {@link BCLBiomeDef}.
|
||||||
*/
|
*/
|
||||||
|
@ -124,9 +124,21 @@ public class BCLBiomeDef {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to load biome settings from config.
|
||||||
|
* @param config - {@link PathConfig}.
|
||||||
|
* @return this {@link BCLBiomeDef}.
|
||||||
|
*/
|
||||||
|
public BCLBiomeDef loadConfigValues(PathConfig config) {
|
||||||
|
String biomePath = id.getNamespace() + "." + id.getPath();
|
||||||
|
this.fogDensity = config.getFloat(biomePath, "fog_density", this.fogDensity);
|
||||||
|
this.genChance = config.getFloat(biomePath, "generation_chance", this.genChance);
|
||||||
|
this.edgeSize = config.getInt(biomePath, "edge_size", this.edgeSize);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set category of the biome.
|
* Set category of the biome.
|
||||||
*
|
|
||||||
* @param category - {@link BiomeCategory}.
|
* @param category - {@link BiomeCategory}.
|
||||||
* @return this {@link BCLBiomeDef}.
|
* @return this {@link BCLBiomeDef}.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -14,6 +14,7 @@ import net.minecraft.world.level.levelgen.WorldgenRandom;
|
||||||
import net.minecraft.world.level.levelgen.synth.SimplexNoise;
|
import net.minecraft.world.level.levelgen.synth.SimplexNoise;
|
||||||
import ru.bclib.BCLib;
|
import ru.bclib.BCLib;
|
||||||
import ru.bclib.api.BiomeAPI;
|
import ru.bclib.api.BiomeAPI;
|
||||||
|
import ru.bclib.config.Configs;
|
||||||
import ru.bclib.noise.OpenSimplexNoise;
|
import ru.bclib.noise.OpenSimplexNoise;
|
||||||
import ru.bclib.world.biomes.BCLBiome;
|
import ru.bclib.world.biomes.BCLBiome;
|
||||||
|
|
||||||
|
@ -62,6 +63,8 @@ public class BCLibEndBiomeSource extends BiomeSource {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Configs.BIOMES_CONFIG.saveChanges();
|
||||||
|
|
||||||
BiomeAPI.END_LAND_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry));
|
BiomeAPI.END_LAND_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry));
|
||||||
BiomeAPI.END_VOID_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry));
|
BiomeAPI.END_VOID_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry));
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ import net.minecraft.world.level.biome.Biome.BiomeCategory;
|
||||||
import net.minecraft.world.level.biome.BiomeSource;
|
import net.minecraft.world.level.biome.BiomeSource;
|
||||||
import ru.bclib.BCLib;
|
import ru.bclib.BCLib;
|
||||||
import ru.bclib.api.BiomeAPI;
|
import ru.bclib.api.BiomeAPI;
|
||||||
|
import ru.bclib.config.Configs;
|
||||||
import ru.bclib.world.biomes.BCLBiome;
|
import ru.bclib.world.biomes.BCLBiome;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
@ -52,6 +53,7 @@ public class BCLibNetherBiomeSource extends BiomeSource {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Configs.BIOMES_CONFIG.saveChanges();
|
||||||
BiomeAPI.NETHER_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry));
|
BiomeAPI.NETHER_BIOME_PICKER.getBiomes().forEach(biome -> biome.updateActualBiomes(biomeRegistry));
|
||||||
BiomeAPI.NETHER_BIOME_PICKER.rebuild();
|
BiomeAPI.NETHER_BIOME_PICKER.rebuild();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue