minecraft-src/net/minecraft/world/level/levelgen/flat/FlatLayerInfo.java
2025-07-04 01:41:11 +03:00

41 lines
1.3 KiB
Java

package net.minecraft.world.level.levelgen.flat;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.dimension.DimensionType;
public class FlatLayerInfo {
public static final Codec<FlatLayerInfo> CODEC = RecordCodecBuilder.create(
instance -> instance.group(
Codec.intRange(0, DimensionType.Y_SIZE).fieldOf("height").forGetter(FlatLayerInfo::getHeight),
BuiltInRegistries.BLOCK.byNameCodec().fieldOf("block").orElse(Blocks.AIR).forGetter(flatLayerInfo -> flatLayerInfo.getBlockState().getBlock())
)
.apply(instance, FlatLayerInfo::new)
);
private final Block block;
private final int height;
public FlatLayerInfo(int height, Block block) {
this.height = height;
this.block = block;
}
/**
* Return the amount of layers for this set of layers.
*/
public int getHeight() {
return this.height;
}
public BlockState getBlockState() {
return this.block.defaultBlockState();
}
public String toString() {
return (this.height != 1 ? this.height + "*" : "") + BuiltInRegistries.BLOCK.getKey(this.block);
}
}