Code/net/minecraft/world/level/levelgen/flat/FlatLayerInfo.java

40 lines
1.4 KiB
Java

package net.minecraft.world.level.levelgen.flat;
import com.mojang.serialization.Codec;
import com.mojang.serialization.codecs.RecordCodecBuilder;
import com.mojang.serialization.codecs.RecordCodecBuilder.Instance;
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(
p_360619_ -> p_360619_.group(
Codec.intRange(0, DimensionType.Y_SIZE).fieldOf("height").forGetter(FlatLayerInfo::getHeight),
BuiltInRegistries.BLOCK.byNameCodec().fieldOf("block").orElse(Blocks.AIR).forGetter(p_161902_ -> p_161902_.getBlockState().getBlock())
)
.apply(p_360619_, FlatLayerInfo::new)
);
private final Block block;
private final int height;
public FlatLayerInfo(int p_70335_, Block p_70336_) {
this.height = p_70335_;
this.block = p_70336_;
}
public int getHeight() {
return this.height;
}
public BlockState getBlockState() {
return this.block.defaultBlockState();
}
@Override
public String toString() {
return (this.height != 1 ? this.height + "*" : "") + BuiltInRegistries.BLOCK.getKey(this.block);
}
}