🏗️ 生成(Generation)#

#bs.generation:help

生成包含自然地貌的多样化地形和景观。

../../_images/generation-light.png ../../_images/generation-dark.png

“美是数的和谐。”

—佚名

观看演示


🔧 函数#

你可以在下方找到此模块中的所有可用函数。


二维平面形状#

#bs.generation:gen_shape_2d

以指定位置为原点遍历二维平面。每一步运行都有回调,用户可以直接在回调中操作 X 和 Y 坐标。

输入:

执行 at <实体>positioned <x> <y> <z> rotated <rot>:形状的原点。

函数宏

  • 参数

    • run: 每一步运行的回调命令,每一步调用中可以读取这些分数:

      • $generation.x bs.lambda: 这一步的x坐标。

      • $generation.y bs.lambda: 这一步的y坐标。

    • width: 生成形状的宽度。

    • height: 生成形状的高度。

    • with: 形状设置

      • direction: 形状的生成平面(xzxy,或zy,默认:xz)。

      • spacing: 生成形状中方块的间隔(默认:1)。

      • limit: 限制每tick最多运行多少步(默认:256)。

输出:

状态:回调在世界中的适当坐标处执行。

#bs.generation:gen_simplex_shape_2d

以指定位置为原点,使用单纯形噪声算法,在二维平面上生成形状。每一步生成都有回调,可以在这个过程中自定义行为。

输入:

执行 at <实体>positioned <x> <y> <z> rotated <rot>:形状的原点。

函数宏

  • 参数

    • run: 每一步运行的回调命令,每一步调用中可以读取这些分数:

      • $generation.noise bs.lambda: 噪声值,范围在[-1000, 1000]。

      • $generation.x bs.lambda: 这一步的x坐标。

      • $generation.y bs.lambda: 这一步的y坐标。

    • width: 生成形状的宽度。

    • height: 生成形状的高度。

    • with: 形状设置

      • direction: 形状的生成平面(xzxy,或zy,默认:xz)。

      • spacing: 生成形状中方块的间隔(默认:1)。

      • limit: 限制每tick最多运行多少步(默认:256)。

      • size: 噪声的粒度,数字越低细节越多(默认:32)。

      • seed: 噪声的种子,方便重现结果(默认:随机)。

输出:

状态:回调在世界中的适当坐标处执行。

#bs.generation:gen_fractal_shape_2d

以指定位置为原点,使用分形噪声算法,在二维平面上生成形状。每一步生成都有回调,可以在这个过程中自定义行为。

输入:

执行 at <实体>positioned <x> <y> <z> rotated <rot>:形状的原点。

函数宏

  • 参数

    • run: 每一步运行的回调命令,每一步调用中可以读取这些分数:

      • $generation.noise bs.lambda: 噪声值,范围在[-1000, 1000]。

      • $generation.x bs.lambda: 这一步的x坐标。

      • $generation.y bs.lambda: 这一步的y坐标。

    • width: 生成形状的宽度。

    • height: 生成形状的高度。

    • with: 形状设置

      • direction: 形状的生成平面(xzxy,或zy,默认:xz)。

      • spacing: 生成形状中方块的间隔(默认:1)。

      • limit: 限制每tick最多运行多少步(默认:256)。

      • size: 噪声的粒度,数字越低细节越多(默认:32)。

      • seed: 噪声的种子,方便重现结果(默认:随机)。

      • 分数 $random.fractal_noise_2d.octaves bs.in:要组合的噪声层数(默认:2)。频程越多细节越多。

      • persistence: 每个倍频程的贡献,更高的值细节更多(默认:0.5)。

      • lacunarity: 每个倍频程的频率增长,值越高频率增长越快(默认:2.0)。

输出:

状态:回调在世界中的适当坐标处执行。

示例:使用高度图生成3D地形。此函数采用线性方法;为了生成更有趣的地形,考虑根据不同范围对噪声值进行缩放。查看此视频以获取有关地形生成的更多见解:

# Once
function #bs.generation:gen_fractal_shape_2d {width:64,height:64,run:"function mypack:generate",with:{}}

# mypack:generate
execute store result storage bs:ctx y int .01 run scoreboard players add $random.fractal_noise_2d bs.out 1000
function mypack:fill with storage bs:ctx

# mypack:fill
$fill ~ ~ ~ ~ ~$(y) ~ stone

制作人员:Aksiome


💬 这对你有帮助吗?

欢迎在下方留下你的问题和反馈!