函数与函数蒙版

大约 4 分钟约 1178 字

函数与函数蒙版

注意

由基岩版的一些限制,函数蒙版或函数在某些时候可能需要使用双引号括起来。

函数蒙版

/gmask [表达式…]

  此命令可设置全局函数蒙版,影响绝大多数方块操作。当参数为空时清空蒙版,蒙版与玩家绑定。

表达式格式

  所有括号均为小括号。赋值与函数定义语句需要以分号结尾,唯一没有分号结尾的语句在末尾作为输出函数。若函数有任何错误,返回值或部分返回值都会为 0 。

常量

pi/π : 3.141592653589793238462643383279

phi/φ : 0.618033988749894848204586834365

γ : 0.577215664901532860606512090082

e : 2.718281828459045235360287471352

变量

x/y/z : 选区相对归一化坐标,均介于 -1~1 。

rx/ry/rz : 世界坐标。

cx/cy/cz : 相对选区中心方块坐标取整。 ox/oy/oz : 相对玩家方块坐标取整。

运算符

+, -, *, / : 基本四则运算符。

%/mod : 取余数。

^ : 次幂。

<, >, <=, >=, ==, != : 基本比较运算符。

&, ^^, | : 长整型数值与,异或,或。

&&/and, ||/or : 逻辑与,逻辑或。

内置函数

  函数由字母开头,内部可含有数字,下划线,冒号。尾部必须带有完整括号。截至目前,内置函数总共有这么几个:

rand, sin, abs, cos, sign, lg, ln, log2, round, floor, ceil, exp, exp2, sqrt, tan, atan, atan2, asin, acos, sinh, cosh, tanh, gamma, isslimechunk, sum, min, max, id,runtimeid, hsa, biome, hasplayer, noplayer, hasuntickedchunk, chunksfullyloaded, data, issolid, iswaterblocking, issbblock, istop, destroyspeed, thickness, translucency, light, emissive, normalx, normaly, normalz, angle, issurface, issurfacesmooth, simplex, perlin, cubic, value, voronoi,is_xxxx, has_xxxx

  大多为普通的数学函数,接下来介绍部分自定义的函数:

simplex

 simplex(x,y,z,seed,fractalType,octaves,lacunarity,gain,weighted,ppStrength)

   返回 simplex 噪声。

  • fractalType
    • none
    • fbm
    • ridged
    • pingpong

perlin

 perlin(x,y,z,seed,fractalType,octaves,lacunarity,gain,weighted,ppStrength)

   返回 perlin 噪声。

  • fractalType
    • none
    • fbm
    • ridged
    • pingpong

cubic

 cubic(x,y,z,seed,fractalType,octaves,lacunarity,gain,weighted,ppStrength)

   返回 cubic 噪声。

  • fractalType
    • none
    • fbm
    • ridged
    • pingpong

value

 value(x,y,z,seed,fractalType,octaves,lacunarity,gain,weighted,ppStrength)

   返回 value 噪声。

  • fractalType
    • none
    • fbm
    • ridged
    • pingpong

voronoi

 voronoi(x,y,z,seed,returnType,disFunc,jitter,fractalType,octaves,lacunarity,gain,weighted,ppStrength)

   返回 voronoi 噪声。

  • returnType

    • value
    • dis
    • dis1
    • dis2
    • disadd
    • dissub
    • dismul
    • disdiv
  • disFunc

    • sqrted
    • square
    • manhattan
    • hybird
  • fractalType

    • none
    • fbm
    • ridged
    • pingpong

rand

   当函数内无参数时,此函数返回 0~1 的真随机数(若系统支持),每次运行结果不一致。当函数内有两个参数时,返回两个参数之间的随机数。

isslimechunk

  输入参数为区块的 x ,z 坐标,而非方块坐标,返回是否为史莱姆区块。

sum

  支持多个参数,返回所有参数总和。

min

  支持多个参数,返回所有参数中的最小值。

max

  支持多个参数,返回所有参数中的最大值。

id

  若无参数,返回当前方块的 方块Id,若有三个参数,则为相对坐标偏移量位置的 方块Id

相关信息

  偏移量含义下同。

hasplayer

hasplayer(dis)
hasplayer(dis,biasx,,biasy,biasz)

  返回距离内是否有玩家

noplayer

noplayer(dis)
noplayer(dis,biasx,,biasy,biasz)

  返回距离内是否无玩家

hasuntickedchunk

hasuntickedchunk(r)
hasuntickedchunk(r,biasx,,biasy,biasz)

  返回半径内是否有未加载区块

chunksfullyloaded

chunksfullyloaded(r)
chunksfullyloaded(r,biasx,,biasy,biasz)

  返回半径内区块是否全加载

destroyspeed

  返回方块挖掘速度。

thickness

  返回方块厚度。

translucency

  返回方块透光度。

light

  返回方块光。

emissive

  返回方块自发光强。

runtimeid

  返回方块的 runtimeId

hsa

  返回方块所在位置的 HardcodedSpawnArea

biome

  返回方块的 生物群系Id

data

  返回方块的 方块数据值

issolid

  返回方块是否为固体方块。

iswaterblocking

  返回方块是否为挡水方块。

issbblock

  返回方块是否为固体阻挡方块。

istop

  返回方块是否为游戏高度图最高点。

is_xxxx

  xxxx可替换为任意方块名称,可省略 minecraft: 前缀,返回是否为此方块。

has_xxxx

  xxxx可替换为任意字符串,返回方块名称中是否含有此字符串。

normalx

注意

  以下函数不支持偏移量。

  返回当前位置方块归一化法线的 x 分量。

normaly

  返回当前位置方块归一化法线的 y 分量。

normalz

  返回当前位置方块归一化法线的 z 分量。

issurface

  返回当前位置方块是否与空气接触。

issurfacesmooth

  返回平滑过渡的表面函数,值域为 0~1 。

angle

  返回当前位置方块倾斜角,值域为 0~180 。