94 lines
3.7 KiB
Java
94 lines
3.7 KiB
Java
package ru.betterend.registry;
|
|
|
|
import net.minecraft.core.Registry;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import net.minecraft.world.level.biome.Biome;
|
|
import net.minecraft.world.level.levelgen.GenerationStep.Decoration;
|
|
import net.minecraft.world.level.levelgen.feature.StructurePieceType;
|
|
import ru.bclib.api.biomes.BiomeAPI;
|
|
import ru.bclib.world.structures.BCLStructureFeature;
|
|
import ru.betterend.BetterEnd;
|
|
import ru.betterend.world.structures.features.EternalPortalStructure;
|
|
import ru.betterend.world.structures.features.GiantIceStarStructure;
|
|
import ru.betterend.world.structures.features.GiantMossyGlowshroomStructure;
|
|
import ru.betterend.world.structures.features.MegaLakeSmallStructure;
|
|
import ru.betterend.world.structures.features.MegaLakeStructure;
|
|
import ru.betterend.world.structures.features.MountainStructure;
|
|
import ru.betterend.world.structures.features.PaintedMountainStructure;
|
|
import ru.betterend.world.structures.piece.CavePiece;
|
|
import ru.betterend.world.structures.piece.CrystalMountainPiece;
|
|
import ru.betterend.world.structures.piece.LakePiece;
|
|
import ru.betterend.world.structures.piece.NBTPiece;
|
|
import ru.betterend.world.structures.piece.PaintedMountainPiece;
|
|
import ru.betterend.world.structures.piece.VoxelPiece;
|
|
|
|
public class EndStructures {
|
|
public static final StructurePieceType VOXEL_PIECE = register("voxel", VoxelPiece::new);
|
|
public static final StructurePieceType MOUNTAIN_PIECE = register("mountain_piece", CrystalMountainPiece::new);
|
|
public static final StructurePieceType CAVE_PIECE = register("cave_piece", CavePiece::new);
|
|
public static final StructurePieceType LAKE_PIECE = register("lake_piece", LakePiece::new);
|
|
public static final StructurePieceType PAINTED_MOUNTAIN_PIECE = register("painted_mountain_piece", PaintedMountainPiece::new);
|
|
public static final StructurePieceType NBT_PIECE = register("nbt_piece", NBTPiece::new);
|
|
|
|
public static final BCLStructureFeature GIANT_MOSSY_GLOWSHROOM = new BCLStructureFeature(
|
|
BetterEnd.makeID("giant_mossy_glowshroom"),
|
|
new GiantMossyGlowshroomStructure(),
|
|
Decoration.SURFACE_STRUCTURES,
|
|
16,
|
|
8
|
|
);
|
|
public static final BCLStructureFeature MEGALAKE = new BCLStructureFeature(
|
|
BetterEnd.makeID("megalake"),
|
|
new MegaLakeStructure(),
|
|
Decoration.RAW_GENERATION,
|
|
4,
|
|
1
|
|
);
|
|
public static final BCLStructureFeature MEGALAKE_SMALL = new BCLStructureFeature(
|
|
BetterEnd.makeID("megalake_small"),
|
|
new MegaLakeSmallStructure(),
|
|
Decoration.RAW_GENERATION,
|
|
4,
|
|
1
|
|
);
|
|
public static final BCLStructureFeature MOUNTAIN = new BCLStructureFeature(
|
|
BetterEnd.makeID("mountain"),
|
|
new MountainStructure(),
|
|
Decoration.RAW_GENERATION,
|
|
3,
|
|
2
|
|
);
|
|
public static final BCLStructureFeature PAINTED_MOUNTAIN = new BCLStructureFeature(
|
|
BetterEnd.makeID("painted_mountain"),
|
|
new PaintedMountainStructure(),
|
|
Decoration.RAW_GENERATION,
|
|
3,
|
|
2
|
|
);
|
|
public static final BCLStructureFeature ETERNAL_PORTAL = new BCLStructureFeature(
|
|
BetterEnd.makeID("eternal_portal"),
|
|
new EternalPortalStructure(),
|
|
Decoration.SURFACE_STRUCTURES,
|
|
16,
|
|
6
|
|
);
|
|
public static final BCLStructureFeature GIANT_ICE_STAR = new BCLStructureFeature(
|
|
BetterEnd.makeID("giant_ice_star"),
|
|
new GiantIceStarStructure(),
|
|
Decoration.SURFACE_STRUCTURES,
|
|
16,
|
|
8
|
|
);
|
|
|
|
public static void register() {}
|
|
|
|
private static StructurePieceType register(String id, StructurePieceType pieceType) {
|
|
return Registry.register(Registry.STRUCTURE_PIECE, BetterEnd.makeID(id), pieceType);
|
|
}
|
|
|
|
public static void addBiomeStructures(ResourceLocation biomeID, Biome biome) {
|
|
if (!biomeID.getPath().contains("mountain") && !biomeID.getPath().contains("lake")) {
|
|
BiomeAPI.addBiomeStructure(BiomeAPI.getBiomeKey(biome), ETERNAL_PORTAL);
|
|
}
|
|
}
|
|
}
|