From dc7a87567954fcb31ff3c3ef69c4539b32c81a28 Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 13 May 2022 20:51:42 +0200 Subject: [PATCH] Some simplification for Structure Codec handling --- .../bclib/world/structures/BCLStructure.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/main/java/ru/bclib/world/structures/BCLStructure.java b/src/main/java/ru/bclib/world/structures/BCLStructure.java index 80400f6f..934e8351 100644 --- a/src/main/java/ru/bclib/world/structures/BCLStructure.java +++ b/src/main/java/ru/bclib/world/structures/BCLStructure.java @@ -12,9 +12,6 @@ import net.minecraft.world.entity.MobCategory; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.structure.*; -import net.minecraft.world.level.levelgen.feature.configurations.FeatureConfiguration; -import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import net.minecraft.world.level.levelgen.structure.pieces.PieceGeneratorSupplier; import net.minecraft.world.level.levelgen.structure.placement.RandomSpreadStructurePlacement; import net.minecraft.world.level.levelgen.structure.placement.RandomSpreadType; @@ -42,6 +39,8 @@ public class BCLStructure { public final StructureType structureType; + public final Codec STRUCTURE_CODEC; + private static HolderSet biomes(TagKey tagKey) { return BuiltinRegistries.BIOME.getOrCreateTag(tagKey); @@ -54,21 +53,18 @@ public class BCLStructure { return structure(tagKey, Map.of(), decoration, terrainAdjustment); } - public static StructureType registerStructureType(ResourceLocation id, Codec codec) { + private static StructureType registerStructureType(ResourceLocation id, Codec codec) { return Registry.register(Registry.STRUCTURE_TYPES, id, () -> codec); } - public BCLStructure(ResourceLocation id, Function structureBuilder, GenerationStep.Decoration step, int spacing, int separation, Codec codec) { - this(id, structureBuilder, step, spacing, separation, false, codec); + public BCLStructure(ResourceLocation id, Function structureBuilder, GenerationStep.Decoration step, int spacing, int separation) { + this(id, structureBuilder, step, spacing, separation, false); } - public BCLStructure(ResourceLocation id, Function structureBuilder, GenerationStep.Decoration step, int spacing, int separation, boolean adaptNoise, Codec codec) { - this(id, structureBuilder, step, spacing, separation, adaptNoise, registerStructureType(id, codec)); - } - public BCLStructure(ResourceLocation id, Function structureBuilder, GenerationStep.Decoration step, int spacing, int separation, StructureType structureType) { - this(id, structureBuilder, step, spacing, separation, false, structureType); - } - public BCLStructure(ResourceLocation id, Function structureBuilder, GenerationStep.Decoration step, int spacing, int separation, boolean adaptNoise, StructureType structureType) { + + public BCLStructure(ResourceLocation id, Function structureBuilder, GenerationStep.Decoration step, int spacing, int separation, boolean adaptNoise) { this.id = id; this.featureStep = step; + + this.STRUCTURE_CODEC = Structure.simpleCodec(structureBuilder); //parts from vanilla for Structure generation //public static final ResourceKey> JUNGLE_TEMPLE = // BuiltinStructures.createKey("jungle_pyramid"); @@ -83,7 +79,7 @@ public class BCLStructure { this.spreadConfig = new RandomSpreadStructurePlacement(spacing, separation, RandomSpreadType.LINEAR, RANDOM.nextInt(8192)); this.structureKey = ResourceKey.create(Registry.STRUCTURE_REGISTRY, id); this.structureSetKey = ResourceKey.create(Registry.STRUCTURE_SET_REGISTRY, id); - this.structureType = structureType; + this.structureType = registerStructureType(id, STRUCTURE_CODEC); this.biomeTag = TagAPI.makeBiomeTag(id.getNamespace(), "has_structure/"+id.getPath()); this.baseStructure = structureBuilder.apply(structure(biomeTag, featureStep, TerrainAdjustment.NONE));