0.4.3
- Add some missing registration APIs
- Remove a useless built-in utility type
- Add a unified
GetDynamicEnumValueRegistryimplementation, 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
- Based on
- 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
XxHash32as 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 customTargetTypeinto the unifiedGetTargetslist - Now
ModCreatureVisualPlaybackand 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
DeathAnimLengthOverrideto set the death animation duration
- This also means that non-Spine characters no longer need to override
- Adjust the implementation details of
RitsuLib-managed GameActionto 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以设置死亡动画时长
- 这也代表非 Spine 角色不再必须覆写
- 调整了
RitsuLib-managed GameAction的实现细节以允许其正确回放,解决其会生成大量日志噪音的问题
Full Changelog: v0.4.2...v0.4.3