Code/net/minecraft/world/level/levelgen/structure/StructureSpawnOverride.java

37 lines
1.5 KiB
Java
Raw Permalink Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.world.level.levelgen.structure;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import com.mojang.serialization.codecs.RecordCodecBuilder.Instance;
import net.minecraft.util.StringRepresentable;
import net.minecraft.util.random.WeightedList;
import net.minecraft.world.level.biome.MobSpawnSettings;
public record StructureSpawnOverride(StructureSpawnOverride.BoundingBoxType boundingBox, WeightedList<MobSpawnSettings.SpawnerData> spawns) {
public static final Codec<StructureSpawnOverride> CODEC = RecordCodecBuilder.create(
p_391067_ -> p_391067_.group(
StructureSpawnOverride.BoundingBoxType.CODEC.fieldOf("bounding_box").forGetter(StructureSpawnOverride::boundingBox),
WeightedList.codec(MobSpawnSettings.SpawnerData.CODEC).fieldOf("spawns").forGetter(StructureSpawnOverride::spawns)
)
.apply(p_391067_, StructureSpawnOverride::new)
);
public static enum BoundingBoxType implements StringRepresentable {
PIECE("piece"),
STRUCTURE("full");
public static final Codec<StructureSpawnOverride.BoundingBoxType> CODEC = StringRepresentable.fromEnum(
StructureSpawnOverride.BoundingBoxType::values
);
private final String id;
private BoundingBoxType(final String p_210067_) {
this.id = p_210067_;
}
@Override
public String getSerializedName() {
return this.id;
}
}
}