Story 4.2 completed
This commit is contained in:
@@ -24,6 +24,7 @@ import { VisibilityManager } from './src/core/VisibilityManager.js';
|
||||
import { ScryingPoolController } from './src/core/ScryingPoolController.js';
|
||||
import { ScenePresetManager } from './src/core/ScenePresetManager.js';
|
||||
import { PlayerPrivacyManager } from './src/core/PlayerPrivacyManager.js';
|
||||
import { PortraitFallbackHandler } from './src/core/PortraitFallbackHandler.js';
|
||||
import { AVTileAdapter } from './src/ui/shared/AVTileAdapter.js';
|
||||
import { RoleRenderer } from './src/ui/RoleRenderer.js';
|
||||
import { VisibilityBadge } from './src/ui/player/VisibilityBadge.js';
|
||||
@@ -43,6 +44,7 @@ let visibilityManager;
|
||||
let scryingPoolController;
|
||||
let scenePresetManager;
|
||||
let playerPrivacyManager;
|
||||
let portraitFallbackHandler;
|
||||
let avTileAdapter;
|
||||
let roleRenderer;
|
||||
let visibilityBadge;
|
||||
@@ -193,6 +195,10 @@ Hooks.once("ready", () => {
|
||||
// Story 4.1: Create PlayerPrivacyManager for automation opt-ins
|
||||
playerPrivacyManager = new PlayerPrivacyManager(adapter);
|
||||
|
||||
// Story 4.2: Create PortraitFallbackHandler for custom portrait fallback
|
||||
portraitFallbackHandler = new PortraitFallbackHandler(adapter, playerPrivacyManager);
|
||||
portraitFallbackHandler.init();
|
||||
|
||||
// Story 3.2: Create StripOverlayLayer (shared infrastructure for UI components)
|
||||
stripOverlayLayer = new StripOverlayLayer(adapter);
|
||||
stripOverlayLayer.init();
|
||||
@@ -228,7 +234,8 @@ Hooks.once("ready", () => {
|
||||
|
||||
// Story 1.5: AV tile integration + GM control UI
|
||||
avTileAdapter = new AVTileAdapter(adapter);
|
||||
roleRenderer = new RoleRenderer(stateStore, scryingPoolController, avTileAdapter, adapter);
|
||||
// Story 4.2: Pass portraitFallbackHandler for custom portrait display
|
||||
roleRenderer = new RoleRenderer(stateStore, scryingPoolController, avTileAdapter, adapter, portraitFallbackHandler);
|
||||
roleRenderer.init();
|
||||
if (adapter.users.isGM() && game.webrtc !== null) {
|
||||
roleRenderer.openStrip();
|
||||
@@ -273,11 +280,13 @@ Hooks.once("ready", () => {
|
||||
}
|
||||
|
||||
// Story 4.1: Initialize PlayerPrivacyPanelMenu with DI dependencies
|
||||
initPlayerPrivacyPanelMenu(adapter, playerPrivacyManager);
|
||||
// Story 4.2: Pass portraitFallbackHandler for portrait selection
|
||||
initPlayerPrivacyPanelMenu(adapter, playerPrivacyManager, portraitFallbackHandler);
|
||||
|
||||
// Story 4.1: Register GM-only Player Privacy Selector (Task 5.2)
|
||||
// Allows GM to select any player and view their privacy settings in read-only mode
|
||||
initGMPlayerPrivacySelector(adapter, playerPrivacyManager);
|
||||
// Story 4.2: Pass portraitFallbackHandler for portrait display
|
||||
initGMPlayerPrivacySelector(adapter, playerPrivacyManager, portraitFallbackHandler);
|
||||
|
||||
// Story 4.1: Register PlayerPrivacyPanel in module settings (Task 5.1)
|
||||
// Note: Must be registered AFTER init calls to avoid race conditions
|
||||
|
||||
Reference in New Issue
Block a user