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

40 lines
1.3 KiB
Java

package net.minecraft.world.level.levelgen.feature;
import com.mojang.serialization.Codec;
import net.minecraft.core.BlockPos;
import net.minecraft.world.level.ServerLevelAccessor;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration;
public class EndPlatformFeature extends Feature<NoneFeatureConfiguration> {
public EndPlatformFeature(Codec<NoneFeatureConfiguration> codec) {
super(codec);
}
@Override
public boolean place(FeaturePlaceContext<NoneFeatureConfiguration> context) {
createEndPlatform(context.level(), context.origin(), false);
return true;
}
public static void createEndPlatform(ServerLevelAccessor level, BlockPos pos, boolean dropBlocks) {
BlockPos.MutableBlockPos mutableBlockPos = pos.mutable();
for (int i = -2; i <= 2; i++) {
for (int j = -2; j <= 2; j++) {
for (int k = -1; k < 3; k++) {
BlockPos blockPos = mutableBlockPos.set(pos).move(j, k, i);
Block block = k == -1 ? Blocks.OBSIDIAN : Blocks.AIR;
if (!level.getBlockState(blockPos).is(block)) {
if (dropBlocks) {
level.destroyBlock(blockPos, true, null);
}
level.setBlock(blockPos, block.defaultBlockState(), 3);
}
}
}
}
}
}