Moved features from Highlands into separate biome
This commit is contained in:
parent
ad6a29936a
commit
f7b1f6baff
6 changed files with 36 additions and 8 deletions
|
@ -14,6 +14,7 @@ import net.minecraft.world.biome.Biome;
|
||||||
import net.minecraft.world.biome.Biome.Category;
|
import net.minecraft.world.biome.Biome.Category;
|
||||||
import net.minecraft.world.biome.BiomeKeys;
|
import net.minecraft.world.biome.BiomeKeys;
|
||||||
import ru.betterend.world.biome.BiomeChorusForest;
|
import ru.betterend.world.biome.BiomeChorusForest;
|
||||||
|
import ru.betterend.world.biome.BiomeCrystalMountains;
|
||||||
import ru.betterend.world.biome.BiomeDustWastelands;
|
import ru.betterend.world.biome.BiomeDustWastelands;
|
||||||
import ru.betterend.world.biome.BiomeFoggyMushroomland;
|
import ru.betterend.world.biome.BiomeFoggyMushroomland;
|
||||||
import ru.betterend.world.biome.BiomeMegalake;
|
import ru.betterend.world.biome.BiomeMegalake;
|
||||||
|
@ -33,13 +34,15 @@ public class BiomeRegistry {
|
||||||
|
|
||||||
public static final EndBiome END = registerBiome(BiomeKeys.THE_END, BiomeType.LAND, true);
|
public static final EndBiome END = registerBiome(BiomeKeys.THE_END, BiomeType.LAND, true);
|
||||||
public static final EndBiome END_BARRENS = registerBiome(BiomeKeys.END_BARRENS, BiomeType.VOID, true);
|
public static final EndBiome END_BARRENS = registerBiome(BiomeKeys.END_BARRENS, BiomeType.VOID, true);
|
||||||
public static final EndBiome END_HIGHLANDS = registerBiome(BiomeKeys.END_HIGHLANDS, BiomeType.LAND, true);
|
public static final EndBiome END_HIGHLANDS = registerBiome(BiomeKeys.END_HIGHLANDS, BiomeType.LAND, false);
|
||||||
public static final EndBiome END_MIDLANDS = registerBiome(BiomeKeys.END_MIDLANDS, BiomeType.LAND, false);
|
public static final EndBiome END_MIDLANDS = registerBiome(BiomeKeys.END_MIDLANDS, BiomeType.LAND, false);
|
||||||
public static final EndBiome SMALL_END_ISLANDS = registerBiome(BiomeKeys.SMALL_END_ISLANDS, BiomeType.VOID, true);
|
public static final EndBiome SMALL_END_ISLANDS = registerBiome(BiomeKeys.SMALL_END_ISLANDS, BiomeType.VOID, true);
|
||||||
|
|
||||||
public static final EndBiome FOGGY_MUSHROOMLAND = registerBiome(new BiomeFoggyMushroomland(), BiomeType.LAND);
|
public static final EndBiome FOGGY_MUSHROOMLAND = registerBiome(new BiomeFoggyMushroomland(), BiomeType.LAND);
|
||||||
public static final EndBiome CHORUS_FOREST = registerBiome(new BiomeChorusForest(), BiomeType.LAND);
|
public static final EndBiome CHORUS_FOREST = registerBiome(new BiomeChorusForest(), BiomeType.LAND);
|
||||||
public static final EndBiome DUST_WASTELANDS = registerBiome(new BiomeDustWastelands(), BiomeType.LAND);
|
public static final EndBiome DUST_WASTELANDS = registerBiome(new BiomeDustWastelands(), BiomeType.LAND);
|
||||||
public static final EndBiome MEGALAKE = registerBiome(new BiomeMegalake(), BiomeType.LAND);
|
public static final EndBiome MEGALAKE = registerBiome(new BiomeMegalake(), BiomeType.LAND);
|
||||||
|
public static final EndBiome CRYSTAL_MOUNTAINS = registerBiome(new BiomeCrystalMountains(), BiomeType.LAND);
|
||||||
|
|
||||||
public static void register() {}
|
public static void register() {}
|
||||||
|
|
||||||
|
@ -117,4 +120,9 @@ public class BiomeRegistry {
|
||||||
}
|
}
|
||||||
return endBiome;
|
return endBiome;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Identifier getBiomeID(Biome biome) {
|
||||||
|
Identifier id = biomeRegistry.getId(biome);
|
||||||
|
return id == null ? END.getID() : id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,9 +69,9 @@ public class FeatureRegistry {
|
||||||
|
|
||||||
public static void registerBiomeFeatures(Identifier id, Biome biome, List<List<Supplier<ConfiguredFeature<?, ?>>>> features) {
|
public static void registerBiomeFeatures(Identifier id, Biome biome, List<List<Supplier<ConfiguredFeature<?, ?>>>> features) {
|
||||||
if (id.getNamespace().equals("minecraft")) {
|
if (id.getNamespace().equals("minecraft")) {
|
||||||
if (id.getPath().equals("end_highlands")) {
|
String path = id.getPath();
|
||||||
|
if (path.equals("end_highlands") || path.equals("end_midlands") || path.equals("small_end_islands")) {
|
||||||
features.get(GenerationStep.Feature.VEGETAL_DECORATION.ordinal()).clear();
|
features.get(GenerationStep.Feature.VEGETAL_DECORATION.ordinal()).clear();
|
||||||
addFeature(ROUND_CAVE, features);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,12 +36,12 @@ public class StructureRegistry {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerBiomeStructures(Identifier id, Biome biome, Collection<Supplier<ConfiguredStructureFeature<?, ?>>> structures) {
|
public static void registerBiomeStructures(Identifier id, Biome biome, Collection<Supplier<ConfiguredStructureFeature<?, ?>>> structures) {
|
||||||
if (id.getNamespace().equals("minecraft")) {
|
/*if (id.getNamespace().equals("minecraft")) {
|
||||||
if (id.getPath().equals("end_highlands")) {
|
if (id.getPath().equals("end_highlands")) {
|
||||||
structures.clear();
|
structures.clear();
|
||||||
addStructure(MOUNTAIN, structures);
|
addStructure(MOUNTAIN, structures);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addStructure(EndStructureFeature feature, Collection<Supplier<ConfiguredStructureFeature<?, ?>>> collection) {
|
private static void addStructure(EndStructureFeature feature, Collection<Supplier<ConfiguredStructureFeature<?, ?>>> collection) {
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
package ru.betterend.world.biome;
|
||||||
|
|
||||||
|
import net.minecraft.entity.EntityType;
|
||||||
|
import ru.betterend.registry.FeatureRegistry;
|
||||||
|
import ru.betterend.registry.StructureRegistry;
|
||||||
|
|
||||||
|
public class BiomeCrystalMountains extends EndBiome {
|
||||||
|
public BiomeCrystalMountains() {
|
||||||
|
super(new BiomeDefinition("crystal_mountains")
|
||||||
|
.addStructureFeature(StructureRegistry.MOUNTAIN)
|
||||||
|
.addFeature(FeatureRegistry.ROUND_CAVE)
|
||||||
|
.addMobSpawn(EntityType.ENDERMAN, 50, 1, 2));
|
||||||
|
}
|
||||||
|
}
|
|
@ -32,7 +32,7 @@ public class StructureMountain extends StructureFeatureBase {
|
||||||
if (y > 50) {
|
if (y > 50) {
|
||||||
float radius = MHelper.randRange(50, 100, random);
|
float radius = MHelper.randRange(50, 100, random);
|
||||||
float height = radius * MHelper.randRange(0.8F, 1.2F, random);
|
float height = radius * MHelper.randRange(0.8F, 1.2F, random);
|
||||||
MountainPiece piece = new MountainPiece(new BlockPos(x, y, z), radius, height, random.nextInt());
|
MountainPiece piece = new MountainPiece(new BlockPos(x, y, z), radius, height, random.nextInt(), biome);
|
||||||
this.children.add(piece);
|
this.children.add(piece);
|
||||||
}
|
}
|
||||||
this.setBoundingBoxFromChildren();
|
this.setBoundingBoxFromChildren();
|
||||||
|
|
|
@ -9,6 +9,7 @@ import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtHelper;
|
import net.minecraft.nbt.NbtHelper;
|
||||||
import net.minecraft.structure.StructureManager;
|
import net.minecraft.structure.StructureManager;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.math.BlockBox;
|
import net.minecraft.util.math.BlockBox;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.BlockPos.Mutable;
|
import net.minecraft.util.math.BlockPos.Mutable;
|
||||||
|
@ -17,6 +18,7 @@ import net.minecraft.util.math.MathHelper;
|
||||||
import net.minecraft.world.Heightmap;
|
import net.minecraft.world.Heightmap;
|
||||||
import net.minecraft.world.Heightmap.Type;
|
import net.minecraft.world.Heightmap.Type;
|
||||||
import net.minecraft.world.StructureWorldAccess;
|
import net.minecraft.world.StructureWorldAccess;
|
||||||
|
import net.minecraft.world.biome.Biome;
|
||||||
import net.minecraft.world.chunk.Chunk;
|
import net.minecraft.world.chunk.Chunk;
|
||||||
import net.minecraft.world.gen.StructureAccessor;
|
import net.minecraft.world.gen.StructureAccessor;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
||||||
|
@ -34,14 +36,16 @@ public class MountainPiece extends BasePiece {
|
||||||
private float radius;
|
private float radius;
|
||||||
private float height;
|
private float height;
|
||||||
private float r2;
|
private float r2;
|
||||||
|
private Identifier biomeID;
|
||||||
|
|
||||||
public MountainPiece(BlockPos center, float radius, float height, int id) {
|
public MountainPiece(BlockPos center, float radius, float height, int id, Biome biome) {
|
||||||
super(StructureRegistry.MOUNTAIN_PIECE, id);
|
super(StructureRegistry.MOUNTAIN_PIECE, id);
|
||||||
this.center = center;
|
this.center = center;
|
||||||
this.radius = radius;
|
this.radius = radius;
|
||||||
this.height = height;
|
this.height = height;
|
||||||
this.r2 = radius * radius;
|
this.r2 = radius * radius;
|
||||||
this.noise = new OpenSimplexNoise(MHelper.getSeed(534, center.getX(), center.getZ()));
|
this.noise = new OpenSimplexNoise(MHelper.getSeed(534, center.getX(), center.getZ()));
|
||||||
|
this.biomeID = BiomeRegistry.getBiomeID(biome);
|
||||||
makeBoundingBox();
|
makeBoundingBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +59,7 @@ public class MountainPiece extends BasePiece {
|
||||||
tag.put("center", NbtHelper.fromBlockPos(center));
|
tag.put("center", NbtHelper.fromBlockPos(center));
|
||||||
tag.putFloat("radius", radius);
|
tag.putFloat("radius", radius);
|
||||||
tag.putFloat("height", height);
|
tag.putFloat("height", height);
|
||||||
|
tag.putString("biome", biomeID.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -62,6 +67,7 @@ public class MountainPiece extends BasePiece {
|
||||||
center = NbtHelper.toBlockPos(tag.getCompound("center"));
|
center = NbtHelper.toBlockPos(tag.getCompound("center"));
|
||||||
radius = tag.getFloat("radius");
|
radius = tag.getFloat("radius");
|
||||||
height = tag.getFloat("height");
|
height = tag.getFloat("height");
|
||||||
|
biomeID = new Identifier(tag.getString("biome"));
|
||||||
r2 = radius * radius;
|
r2 = radius * radius;
|
||||||
noise = new OpenSimplexNoise(MHelper.getSeed(534, center.getX(), center.getZ()));
|
noise = new OpenSimplexNoise(MHelper.getSeed(534, center.getX(), center.getZ()));
|
||||||
}
|
}
|
||||||
|
@ -151,7 +157,7 @@ public class MountainPiece extends BasePiece {
|
||||||
return h;
|
return h;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BiomeRegistry.getFromBiome(world.getBiome(pos)) != BiomeRegistry.END_HIGHLANDS) {
|
if (!BiomeRegistry.getBiomeID(world.getBiome(pos)).equals(biomeID)) {
|
||||||
heightmap.put(p, -4);
|
heightmap.put(p, -4);
|
||||||
return -4;
|
return -4;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue