40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
// @ts-nocheck — Module entry point with FoundryVTT globals, no exports needed
|
|
/**
|
|
* module.js — Entry point and wiring diagram for Video View Manager (Scrying Pool).
|
|
*
|
|
* This file is the wiring diagram ONLY. It imports all modules, constructs them
|
|
* with injected dependencies, and holds NO business logic.
|
|
*
|
|
* Initialisation order:
|
|
* Hooks.once('init') → register world settings → construct FoundryAdapter
|
|
* → StateStore → SocketHandler (queue+drain)
|
|
* Hooks.once('ready') → VisibilityManager → SocketHandler.setReady()
|
|
* → NotificationBus → RoleRenderer → RosterStrip
|
|
* → DirectorsBoard (lazy, GM only)
|
|
*/
|
|
|
|
Hooks.once("init", () => {
|
|
console.log("[ScryingPool] init — module loading");
|
|
|
|
// OQ-1 resolved (Story 1.2 spike): probe result is 'css-fallback' — see FoundryAdapter.js
|
|
game.settings.register("scrying-pool", "webrtcMode", {
|
|
scope: "world",
|
|
config: false,
|
|
type: String,
|
|
default: "css-fallback",
|
|
choices: {
|
|
"track-disable": "Track Disable (bandwidth-saving)",
|
|
"css-fallback": "CSS Fallback (cosmetic hiding)",
|
|
"unsupported": "Unsupported (AV not available)",
|
|
},
|
|
});
|
|
|
|
// Story 1.3+: register remaining world settings, construct FoundryAdapter, StateStore, SocketHandler
|
|
});
|
|
|
|
Hooks.once("ready", () => {
|
|
console.log("[ScryingPool] ready — module active");
|
|
// Story 1.3+: construct VisibilityManager, NotificationBus, RoleRenderer, RosterStrip
|
|
// Story 1.5+: register DirectorsBoard (lazy, GM only)
|
|
});
|