Releases: MrXiaoM/VectorDisplays
Releases · MrXiaoM/VectorDisplays
1.0.3
1.0.2
重大变更
- 修复在 Paper 1.21.x 服务端下,因为弃用了 Spigot 的 NMS 方法导致运行不正常问题
- 添加贝塞尔曲线变速动画的动画机,与 CSS 的
cubic-bezier用法类似 - 添加 Vivecraft-Spigot-Extension 支持,对 VR 玩家使用主手而不是玩家视角作为射线
- 允许以矩阵(Matrix4f)的形式,设定展示实体(EntityDisplay)的旋转、缩放、位移变换
- 添加新元素
Triangle,即三角形,感谢 TheCymaera 的开源实现! - 为
Triangle元素支持准心悬停事件和点击事件
新增
- 为 Element 添加
enable标记,当元素未启用时,不会响应悬停事件和点击事件,以减少遍历时的运算损耗 - 为 Element 增加
collectEntities()方法,以收集该元素中可能存在的多个虚拟实体 - 增加实体ID提供器,以便有需要的开发者可复用虚拟实体ID,并添加默认的实体ID缓存池实现(不默认启用)
- 玩家眼睛(视角)位置、射线适配器
- 添加不生成任何实体的虚拟实体(EntityNone)作为占位,以便一个元素需要多个虚拟实体实现
- 增加实体样式(EntityStyle),以便可以同时为多个虚拟实体更新元数据
优化与修复
- 为 Terminal 增加解析所有虚拟实体的方法
- 实际上可以异步发包,故删除强制同步发包机制,以免生成大量虚拟实体时卡服
- 将玩家可视状态更新定时器移到 HologramManager
- 允许以 Component 而不是只能以 String 设置 Label 和 Button 的文本
- 使用更好的方法读取文本的长宽大小
- 将点击判定移到 Element 中,以便其他开发者自行实现的元素可修改点击判定逻辑
- 优化构建脚本和工作流文件
1.0.1
重大变更
- 将
Element.performClick的参数移到ClickMeta,原有的方法弃用,可能会在未来的版本中删除 - 实用工具
.utils包中的一些方法已弃用,一些方法已删除,可能存在破坏性变更 - 添加新元素
ScrollBar,即滚动条 - 添加新元素
ProgressBar,即进度条 - 添加新元素
Panel,即面板,面板可以嵌套容纳其它元素,使得其中元素的坐标系变化简单来说,就是在更改面板位置,或者更改其额外旋转量时,都会使得其中的元素也更改位置
- 修复与
1.21.4+版本的兼容性,猜测是版本间存在方法签名变更,但代码用法没变所致 - 支持
1.21.10服务端 - 储存
EntityMeta实例,而不是每当需要更新虚拟实体时创建一个新的,以此修复原先 HologramAPI 的内存泄漏问题
新增
- 现在可以使用
.removeElement()删除 Terminal 中的元素了 - 现在可以使用像素为单位,设置 Terminal 的大小了(使用
double类型作为宽高的构造函数) - 现在可以通过
ClickMeta获取玩家点击的元素的相对位置了 - 因为发现不同版本的渲染行为不一致,导致存在一些高度计算不正确的问题,现在可以在配置文件中设置
HologramUtils.LINE_HEIGHT的值了 - 支持为虚拟实体添加/清除药水效果
- 支持设置虚拟实体的
Silent、Glowing、Pose属性
优化与修复
- 在传送/生成虚拟实体时,去除 EntityDisplay 的
yaw和patch,以免应用了错误的旋转变换 - 修改一些实体的默认参数,使其能够更好地服务于本项目的目标
- 现在
/vd命令有 TAB 补全了 - 默认为
ItemElement旋转180.0度,修正其错误的朝向 - 处理
HoverStateChange事件,计算射线时,应该遍历可视 Terminal 的玩家计算,而不是遍历所有玩家计算 - 添加一些预制的
HoverStateChange实现,如hoverScale可以在玩家悬停时缩放悬浮字,hoverGlow可以在玩家悬停时为悬浮字添加发光轮廓
其他变更
- 升级 EntityLib 到最新版 (df6fe0f084)