[MD]
哦耶~ v0.0.63 版本终于发布了!🎉 本次更新首次引入了方块实体的概念。但很遗憾,原定于 v0.0.63 版本进行的家具重构工作将推迟至 v0.0.64 版本。
在 v0.0.64 版本完成家具系统的全面重构后,我计划于 v0.0.65 版本推出方块实体更新的第二阶段。请注意,当前方块实体的 tick 功能在 Folia 环境中运行异常,且其基于实体的方块渲染机制与 FastAsyncWorldEdit 插件的操作存在兼容性问题。这些问题将在 v0.0.65 版本中得到修复与优化。
新功能
- 新增方块行为: `change_over_time_block`, `simple_storage_block`, `toggleable_lamp_block`, `bouncing_block`, `liquid_flowable_block`
- 新增物品行为: `wall_block_item`
- 新增方块实体类型: `simple_storage`, `simple_particle`, `wall_torch_particle`
- 新增视觉配方结果的选项
- 新增高斯分布(正态分布)的数字类型
- 新增物品数据: `max-damage`
- 新增方块设置: `friction`, `jump-factor`, `speed-factor`
- 新增条件类型: `worldguard:region`
- 新增函数类型: `teleport`, `toast`
- 新增默认配置: `safe_block`, `amethyst_torch`, `sofa`
- 新增严格校验玩家UUID的选项
错误修复
- 修复了锻造配方中的 `keep_components` 产生的报错
- 修复了混淆时候低于 1.21.4 客户端的玩家头颅物品错误的问题
- 修复了混淆时候低于 1.21.4 客户端使用基于方块的物品无法显示模型的问题
- 修复了部分情况下方块声音未于方块中心发出
- 修复了默认配置的棕榈木门没有配方的问题
- 修复了部分默认语言文件键不匹配的问题
- 修复了 `BlockBreakEvent` 在取消掉落物的情况下插件仍然掉落原版战利品的问题
- 修复了部分版本方块行为的 `onPlace` 未正确匹配的问题
- 修复了在 1.21.2 部分路径下使用 `item_model` 组件的模型生成错误
- 修复了下界合金铁砧可能摔死的问题
- 修复了 `concrete_block` 未能在与液面接触时立刻变成固体状态的问题
- 修复了在 `minecraft:condition` 类型的物品模型使用 `minecraft:component` 属性的问题
- 修复了在 1.20.1-1.20.4 使用工作台修复工具报错
性能优化
- 优化了玩家点击配方书时服务端的物品放置处理
- 优化了区块和世界读写性能与线程安全
- `<global>` 现在已经支持在其他插件中使用
- 略微调整了 `config.yml` 部分选项的位置
- 改进了 `attribute-modifiers` 随机 ID 生成的逻辑
- 改进了 `enchantable` 选项,现在也可以禁止物品在铁砧中被附魔
- 改进了 `command` 函数,新增 `as-event` 和 `as-op` 选项
- 改进了 `match_block_property` 条件,支持原版方块状态的匹配
- 改进了 `liquid_collision_block_item` 的判断
- 改进了光照系统 tick 逻辑,新增异步光照更新的选项
- 改进了 `external-item` 构造逻辑,检测可能存在循环构建问题
- `category` 现在支持添加重复的物品 ID
兼容性与集成性
- 新增的物品来源支持: `Zaphkiel`, `Slimefun`, `SX-Item`, `HeadDatabase`
- 兼容了最新的 `lobfile` 接口
- 重新兼容 MythicMobs 物品生成以支持变量解析
重构与接口
- 重构了客户端模组,请及时更新你的客户端模组与服务端插件
- 重构了配方系统,现在的配方系统性能更高,判断更准确(唯一的缺陷是所有配方性能消耗会在 `spark` 中统计为本插件产生的 :<)
- 重新整理了默认配置的文件结构,使其更加清晰易懂
- 严格划分依赖作用范围的类加载器,避免被其他插件引用到非接口相关的库
- 为 `CraftEngineReloadEvent` 新增 `isFirstReload` 方法
- 为 `CraftEngineBlocks/Items/Furniture` 新增获取全部已加载配置的方法
- 新增方块实体渲染、tick、存储相关接口
- 新增 `AsyncResourcePackCacheEvent` 以支持其他插件在 CraftEngine 中缓存自己的资源包并参与资源包生成
[/MD]