feat(plugins): 迁移非 1.13c 原版「光照预设 (Lighting Presets)」至 plugins/lighting-presets #715

Closed
opened 2026-10-03 05:52:56 +00:00 by troytt · 1 comment
Owner

背景

Diablo II v1.13c 原版环境光由关卡与昼夜循环(auto)决定。当前仓库中的手动光照预设(noon | dusk | night | torch | cold | fullbright)属于非 1.13c 原版的客户端视觉增强功能。

当前核心代码位置

  • src/client/scene/lighting-presets.ts / src/client/settings/client-settings.ts:ClientLightingPreset
  • src/client/toolbar/toolbar.ts:工具栏 #d2-toolbar-lighting-select 下拉框
  • src/client/render/world-renderer.ts & src/client/main.ts:光照预设应用逻辑

迁移目标

  • 依赖顶层 plugins/ 插件框架与 PluginHost 落地后,将手动光照预设拆分为独立插件 plugins/lighting-presets/。
  • 插件关闭时严格使用 1.13c 原版关卡/环境光照(auto);启用后可在插件配置菜单中选择预设。

验收标准

  • plugins/lighting-presets/index.ts 实现 D2WebPlugin 契约并通过 tests/arch/boundaries.test.ts 插件边界检查
  • 插件禁用时立即回退至 auto 原版光照
  • npm run typecheck 与 npx vitest run 100% 通过
## 背景 Diablo II v1.13c 原版环境光由关卡与昼夜循环(`auto`)决定。当前仓库中的手动光照预设(`noon | dusk | night | torch | cold | fullbright`)属于非 1.13c 原版的客户端视觉增强功能。 ## 当前核心代码位置 - `src/client/scene/lighting-presets.ts` / `src/client/settings/client-settings.ts`:`ClientLightingPreset` - `src/client/toolbar/toolbar.ts`:工具栏 `#d2-toolbar-lighting-select` 下拉框 - `src/client/render/world-renderer.ts` & `src/client/main.ts`:光照预设应用逻辑 ## 迁移目标 - 依赖顶层 `plugins/` 插件框架与 `PluginHost` 落地后,将手动光照预设拆分为独立插件 `plugins/lighting-presets/`。 - 插件关闭时严格使用 1.13c 原版关卡/环境光照(`auto`);启用后可在插件配置菜单中选择预设。 ## 验收标准 - [ ] `plugins/lighting-presets/index.ts` 实现 `D2WebPlugin` 契约并通过 `tests/arch/boundaries.test.ts` 插件边界检查 - [ ] 插件禁用时立即回退至 `auto` 原版光照 - [ ] `npm run typecheck` 与 `npx vitest run` 100% 通过
Author
Owner

Fixed in commit fdde06b (origin/main): migrated the non-1.13c manual Lighting Presets (auto | noon | dusk | night | torch | cold | fullbright) selector out of core src/client/toolbar/toolbar.ts into plugins/lighting-presets/index.ts. When lighting-presets is disabled, PluginHost releases the capability claim and strictly enforces 1.13c native level lighting (lightingPreset = "auto") while removing #d2-toolbar-lighting-select from the toolbar.

Fixed in commit `fdde06b` (`origin/main`): migrated the non-1.13c manual Lighting Presets (`auto | noon | dusk | night | torch | cold | fullbright`) selector out of core `src/client/toolbar/toolbar.ts` into `plugins/lighting-presets/index.ts`. When `lighting-presets` is disabled, `PluginHost` releases the capability claim and strictly enforces 1.13c native level lighting (`lightingPreset = "auto"`) while removing `#d2-toolbar-lighting-select` from the toolbar.
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#715
No description provided.