Code/net/minecraft/world/level/levelgen/placement/PlacementContext.java

53 lines
1.7 KiB
Java

package net.minecraft.world.level.levelgen.placement;
import java.util.Optional;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.WorldGenLevel;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.chunk.CarvingMask;
import net.minecraft.world.level.chunk.ChunkGenerator;
import net.minecraft.world.level.chunk.ProtoChunk;
import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.levelgen.WorldGenerationContext;
public class PlacementContext extends WorldGenerationContext {
private final WorldGenLevel level;
private final ChunkGenerator generator;
private final Optional<PlacedFeature> topFeature;
public PlacementContext(WorldGenLevel p_191818_, ChunkGenerator p_191819_, Optional<PlacedFeature> p_191820_) {
super(p_191819_, p_191818_);
this.level = p_191818_;
this.generator = p_191819_;
this.topFeature = p_191820_;
}
public int getHeight(Heightmap.Types p_191825_, int p_191826_, int p_191827_) {
return this.level.getHeight(p_191825_, p_191826_, p_191827_);
}
public CarvingMask getCarvingMask(ChunkPos p_191822_) {
return ((ProtoChunk)this.level.getChunk(p_191822_.x, p_191822_.z)).getOrCreateCarvingMask();
}
public BlockState getBlockState(BlockPos p_191829_) {
return this.level.getBlockState(p_191829_);
}
public int getMinY() {
return this.level.getMinY();
}
public WorldGenLevel getLevel() {
return this.level;
}
public Optional<PlacedFeature> topFeature() {
return this.topFeature;
}
public ChunkGenerator generator() {
return this.generator;
}
}