package luckyblock.action.triggers; import luckyblock.action.LuckyActionHolder; import net.minecraft.core.BlockPos; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; public class TrappedRoomTrigger implements ILuckyTrigger { @Override public String getName() { return "trapped_room"; } @Override public void execute(ServerLevel level, BlockPos pos, LuckyActionHolder holder, RandomSource random) { Block block = BuiltInRegistries.BLOCK.get(new ResourceLocation(holder.wall_block)); BlockState wallState = (block != null) ? block.defaultBlockState() : Blocks.STONE_BRICKS.defaultBlockState(); int r = holder.radius; for (int x = -r; x <= r; x++) { for (int y = 0; y <= r * 2; y++) { for (int z = -r; z <= r; z++) { BlockPos targetPos = pos.offset(x, y, z); if (Math.abs(x) == r || Math.abs(z) == r || y == 0 || y == r * 2) { level.setBlock(targetPos, wallState, 3); } else { level.setBlock(targetPos, Blocks.AIR.defaultBlockState(), 3); } } } } } }