Skip to content

0.4.3

Choose a tag to compare

@github-actions github-actions released this 02 Jun 03:47
· 93 commits to main since this release
v0.4.3
62d0ea2
  • Add some missing registration APIs
  • Remove a useless built-in utility type
  • Add a unified GetDynamicEnumValueRegistry implementation, to allow managing dynamic enum values in a unified way, avoiding duplicate implementations
    • Based on DynamicEnumValueMinter, and unify the scattered Minter implementations into this interface
    • To keep the value result consistent, the old Minter rules are implemented as a special case, and other enum types will use the enum value name as the category name
    • Add a set of get value APIs that ignore collision detection, to allow getting values even when collision occurs, only for debugging or special scenarios
  • Add audit logs for dynamic enum value generation and registration, and detect collision cases
    • Since RitsuLib's design intention, when collision occurs, no automatic avoidance will be generated, and collision resolution needs to be explicitly adjusted to solve the collision problem
    • Although the collision probability is extremely low due to the use of XxHash32 as the hash function, you still need to be aware that it is possible to occur
  • Optimize the gamepad operation and focus display logic in the settings UI
  • Now correctly parse BaseLib's custom TargetType into the unified GetTargets list
  • Now ModCreatureVisualPlayback and other state machines allow deriving the duration and remaining time of the animation, to allow more accurate control of death animations, etc.
    • This also means that non-Spine characters no longer need to override DeathAnimLengthOverride to set the death animation duration
  • Adjust the implementation details of RitsuLib-managed GameAction to allow it to be correctly replayed, solving the problem of generating a lot of log noise

  • 补充了部分缺失的注册 API
  • 删除了一个无用的内置工具类型
  • 补充了一个统一的 GetDynamicEnumValueRegistry 实现,以允许用统一的方式管理动态枚举值,避免分别重复实现
    • 基于 DynamicEnumValueMinter 实现,并将原本分散的各个 Minter 统一到这个接口中
    • 为了保持值结果一致,老的 Minter 规则作为特例实现专门处理,其他的枚举类型将会使用枚举值名称作为分类名
    • 补充了一组无视碰撞检查的获取值 API,以允许在发生碰撞时也能获取到值,仅用于调试或特殊场景
  • 补充了动态枚举值生成并注册后,检测到发生碰撞时的审计日志
    • 由于 RitsuLib 的设计意图,发生碰撞时不会产生自动避让,发生碰撞时需要明确的自主调整以解决碰撞问题
    • 尽管由于使用 XxHash32 作为哈希函数,碰撞概率极低,但你仍然需要明确知道这一点是有可能发生的
  • 优化了设置界面的手柄操作和焦点显示逻辑
  • 现在能正确将 BaseLib 的自定义 TargetType 也纳入统一的解析方式获取 Targets 列表
  • 现在 ModCreatureVisualPlayback 和其他的状态机均允许推导获取动画的时长和剩余时间,以允许更准确的控制死亡动画等时长
    • 这也代表非 Spine 角色不再必须覆写 DeathAnimLengthOverride 以设置死亡动画时长
  • 调整了 RitsuLib-managed GameAction 的实现细节以允许其正确回放,解决其会生成大量日志噪音的问题

Full Changelog: v0.4.2...v0.4.3