Moved memeber
This commit is contained in:
parent
a64e437c3c
commit
3bc2018333
3 changed files with 16 additions and 17 deletions
|
@ -8,6 +8,7 @@ import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.world.level.biome.Biome;
|
import net.minecraft.world.level.biome.Biome;
|
||||||
import net.minecraft.world.level.biome.BiomeSource;
|
import net.minecraft.world.level.biome.BiomeSource;
|
||||||
|
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||||
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
|
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
|
||||||
import org.betterx.bclib.api.biomes.BiomeAPI;
|
import org.betterx.bclib.api.biomes.BiomeAPI;
|
||||||
import org.betterx.bclib.mixin.common.NoiseGeneratorSettingsMixin;
|
import org.betterx.bclib.mixin.common.NoiseGeneratorSettingsMixin;
|
||||||
|
@ -73,4 +74,17 @@ public class SurfaceRuleUtil {
|
||||||
SURFACE_RULES.put(biomeID, source);
|
SURFACE_RULES.put(biomeID, source);
|
||||||
//NOISE_GENERATOR_SETTINGS.forEach(BiomeAPI::changeSurfaceRulesForGenerator);
|
//NOISE_GENERATOR_SETTINGS.forEach(BiomeAPI::changeSurfaceRulesForGenerator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static RuleSource addRulesForBiomeSource(RuleSource org, BiomeSource biomeSource) {
|
||||||
|
List<RuleSource> additionalRules = getRuleSources(biomeSource);
|
||||||
|
if (org instanceof SurfaceRules.SequenceRuleSource sequenceRule) {
|
||||||
|
List<RuleSource> existingSequence = sequenceRule.sequence();
|
||||||
|
additionalRules = additionalRules.stream().filter(r -> existingSequence.indexOf(r) < 0).collect(Collectors.toList());
|
||||||
|
additionalRules.addAll(sequenceRule.sequence());
|
||||||
|
} else {
|
||||||
|
additionalRules.add(org);
|
||||||
|
}
|
||||||
|
|
||||||
|
return SurfaceRules.sequence(additionalRules.toArray(new RuleSource[additionalRules.size()]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,6 @@ import net.minecraft.world.level.chunk.ChunkGenerator;
|
||||||
import net.minecraft.world.level.dimension.DimensionType;
|
import net.minecraft.world.level.dimension.DimensionType;
|
||||||
import net.minecraft.world.level.dimension.LevelStem;
|
import net.minecraft.world.level.dimension.LevelStem;
|
||||||
import net.minecraft.world.level.levelgen.NoiseGeneratorSettings;
|
import net.minecraft.world.level.levelgen.NoiseGeneratorSettings;
|
||||||
import net.minecraft.world.level.levelgen.SurfaceRules;
|
|
||||||
import net.minecraft.world.level.levelgen.SurfaceRules.RuleSource;
|
|
||||||
import net.minecraft.world.level.levelgen.WorldGenSettings;
|
import net.minecraft.world.level.levelgen.WorldGenSettings;
|
||||||
import net.minecraft.world.level.levelgen.presets.WorldPreset;
|
import net.minecraft.world.level.levelgen.presets.WorldPreset;
|
||||||
import net.minecraft.world.level.levelgen.structure.StructureSet;
|
import net.minecraft.world.level.levelgen.structure.StructureSet;
|
||||||
|
@ -37,10 +35,8 @@ import org.betterx.bclib.world.generator.BCLBiomeSource;
|
||||||
import org.betterx.bclib.world.generator.BCLibEndBiomeSource;
|
import org.betterx.bclib.world.generator.BCLibEndBiomeSource;
|
||||||
import org.betterx.bclib.world.generator.BCLibNetherBiomeSource;
|
import org.betterx.bclib.world.generator.BCLibNetherBiomeSource;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
@ -388,16 +384,4 @@ public class WorldGenUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static RuleSource addRulesForBiomeSource(RuleSource org, BiomeSource biomeSource) {
|
|
||||||
List<RuleSource> additionalRules = SurfaceRuleUtil.getRuleSources(biomeSource);
|
|
||||||
if (org instanceof SurfaceRules.SequenceRuleSource sequenceRule) {
|
|
||||||
List<RuleSource> existingSequence = sequenceRule.sequence();
|
|
||||||
additionalRules = additionalRules.stream().filter(r -> existingSequence.indexOf(r) < 0).collect(Collectors.toList());
|
|
||||||
additionalRules.addAll(sequenceRule.sequence());
|
|
||||||
} else {
|
|
||||||
additionalRules.add(org);
|
|
||||||
}
|
|
||||||
|
|
||||||
return SurfaceRules.sequence(additionalRules.toArray(new RuleSource[additionalRules.size()]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||||
import org.betterx.bclib.BCLib;
|
import org.betterx.bclib.BCLib;
|
||||||
import org.betterx.bclib.api.worldgen.BCLChunkGenerator;
|
import org.betterx.bclib.api.worldgen.BCLChunkGenerator;
|
||||||
|
import org.betterx.bclib.api.worldgen.SurfaceRuleUtil;
|
||||||
import org.betterx.bclib.api.worldgen.WorldGenUtil;
|
import org.betterx.bclib.api.worldgen.WorldGenUtil;
|
||||||
import org.betterx.bclib.interfaces.ChunkGeneratorAccessor;
|
import org.betterx.bclib.interfaces.ChunkGeneratorAccessor;
|
||||||
import org.betterx.bclib.interfaces.NoiseGeneratorSettingsProvider;
|
import org.betterx.bclib.interfaces.NoiseGeneratorSettingsProvider;
|
||||||
|
@ -114,7 +115,7 @@ public class BCLWorldPresetSettings extends WorldPresetSettings {
|
||||||
old.defaultBlock(),
|
old.defaultBlock(),
|
||||||
old.defaultFluid(),
|
old.defaultFluid(),
|
||||||
old.noiseRouter(),
|
old.noiseRouter(),
|
||||||
WorldGenUtil.addRulesForBiomeSource(old.surfaceRule(), biomeSource),
|
SurfaceRuleUtil.addRulesForBiomeSource(old.surfaceRule(), biomeSource),
|
||||||
old.spawnTarget(),
|
old.spawnTarget(),
|
||||||
old.seaLevel(),
|
old.seaLevel(),
|
||||||
old.disableMobGeneration(),
|
old.disableMobGeneration(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue