Skip to content

v1.7.7 - ScalableLux 兼容性修复 / ScalableLux Compatibility Fix

Choose a tag to compare

@OLKMO OLKMO released this 29 Jul 19:42

ScalableLux 兼容性修复 / ScalableLux Compatibility Fix

修复 ScalableLux 与 Sable 的光照引擎不兼容问题(Issue #8)。

Fixed ScalableLux incompatibility with Sable''s light engine (Issue #8).

根因 / Root cause: Sable 的 ServerLevelPlot 构造函数从主世界 LevelLightEngine 读取 blockEngine/skyEngine 字段判断 SubLevel 是否有方块光/天空光。ScalableLux 的 LevelLightEngineMixin.construct 清空了这两个字段(用 StarLightInterface 替代 vanilla 光照引擎),导致 Sable 误判 SubLevel 无方块光、无天空光,SubLevel 光照完全失效。

Sable''s ServerLevelPlot constructor reads blockEngine/skyEngine fields of the main world LevelLightEngine to determine SubLevel light type. ScalableLux''s LevelLightEngineMixin.construct clears these fields (replaced by StarLightInterface), causing Sable to misjudge SubLevel as having no light, completely disabling SubLevel lighting.

修复 / Fix: 新增 scalablelux-compat 修复项,拦截 new LevelLightEngine(...) 调用,当 ScalableLux 存在时通过 StarLightInterface.hasBlockLight()/hasSkyLight() 重新计算正确的光照参数。

Added scalablelux-compat fix: intercepts new LevelLightEngine(...) call, recalculates correct light parameters via StarLightInterface.hasBlockLight()/hasSkyLight() when ScalableLux is present.

物理结构崩溃修复 / Physics Crash Fix

修复 RuntimeException: Body has been removed 崩溃。新增 RigidBodyHandleMixin,拦截 getLinearVelocity/getAngularVelocity,捕获异常返回零向量,复用 panic-guard 开关。

Fixed RuntimeException: Body has been removed crash. Added RigidBodyHandleMixin: intercepts getLinearVelocity/getAngularVelocity, catches exception and returns zero vector, reuses panic-guard toggle.

配置文件修复 / Config Fix

修复配置文件不存在时未重新生成、命令修改配置后未立即保存的问题。

Fixed config not regenerating when missing, and not saving immediately after command modification.


兼容性 / Compatibility: Sable 1.x/2.x, NeoForge 1.21.1, ScalableLux, c2me, Mohist/Youer