基本静态粒子

基本静态粒子

一个数据打包实用模组,增加了服务器与客户端之间更多有用的交互功能。

⚠️ 注意:本描述仅适用于最新版本

已实现2种粒子类型

粒子

static_particle(静态粒子)

  • 可配置参数:color(颜色)、alpha(透明度)、size(大小)、lifetime(生命周期)、texture(纹理)
  • 自发光(在黑暗中发光)

static_oriented(静态定向粒子)

  • 可配置参数:color、alpha、sizeX(横向大小)、sizeY(纵向大小)、lifetime、rotation(旋转)、post_rotation(二次旋转)、cull(剔除)、texture
  • 自发光
注意 需要了解的重要一点是,所有数值参数实际上是字符串参数,由于 Minecraft 代码库的限制,这样设计是为了使下列功能得以实现

⠀

  • 所有数值参数(粒子参数)支持范围值("x..y"=从 x 到 y 的随机值),旋转参数还支持 ~,该符号将使用命令中对应轴的旋转上下文

  • 除 lifetime 外的所有数值参数支持动画序列("x->y->z" = 从 x 到 y 到 z 的动画),支持任意数量的关键帧,可以通过添加更多破折号来控制关键帧的时间

  • 旋转参数支持 billboard(公告牌)作为值,这将使粒子在指定轴上始终面向玩家的摄像机

  • 另外,如果你好奇的话,post_rotation 只是第二次旋转处理,技术上来说是多余的,只是为了方便

纹理 目前已实现8种纹理:

dot(点)

dither(抖动)

smooth(平滑)

pixel(像素)

shockwave(冲击波)

spark(火花)

dither_beam(抖动光束)

smooth_beam(平滑光束)

有5个独立命令

命令

/fov <add|multiply|set|query> <目标> <浮点数> [插值类型] [插值持续时间]

  • 更改/获取目标的客户端视场角(FOV)

/setperspective <目标> <视角索引|距离> [摄像机距离]

  • 更改目标的客户端视角

/rendertext <目标> <旋转> <文本> <对齐方式> <横向大小> <纵向大小> [持续时间] [透明度] [独立于GUI缩放] [与HUD同时隐藏] [叠加] [阴影颜色(RGBA十六进制)]

  • 在目标屏幕上输入的位置显示文本
  • 布尔参数用于使文本大小独立于客户端的GUI缩放设置
  • 布尔参数用于强制显示文本,即使HUD被隐藏(F1)
  • 布尔参数用于使大小乘以客户端窗口宽高比

/log <client|server> [目标] <日志名称> <消息>

  • 在客户端/服务器的控制台(不是聊天栏)中以指定日志名称发送消息

/camerarot <目标> <俯仰角> <偏航角> <翻滚角> [持续时间]

  • 为客户端摄像机添加旋转偏移(线性插值)
注意 (翻滚角完美工作,俯仰角和偏航角理论上也可以,只是不太直观,在大多数情况下,使用实际实体旋转更合适)

该模组为谓词添加了3个条件

谓词

鼠标条件

{
  "condition": "staticparticle:player_action",
  "action": "attack"/"pick_item"/"use",
  "context": "in_game"/"in_menu"
}
  • 当谓词目标在对应上下文中按下对应按钮时为真

按键条件

  • 该模组添加了5个新按键绑定,这些按键不会执行任何操作,只会告知服务器客户端已按下它们
{ 
  "condition": "staticparticle:special_key",
  "key": 0/1/2/3/4
}
  • 当谓词目标按下对应按键时为真

移动输入条件

{ 
  "condition": "staticparticle:input",
  "action": "forward/back/left/right/jump/sprint/sneak"
}