A framework for imbuing special scripted behaviors into a single specific Scene. Managed scenes are registered in CONFIG.Canvas.managedScenes.

The SceneManager instance is called at various points in the Scene rendering life-cycle.

This also provides a framework for registering additional hook events which are required only for the life-cycle of the managed Scene.

Example: Registering a custom SceneManager

// Define a custom SceneManager subclass
class MyCustomSceneManager extends SceneManager {
async _onInit() {
console.log(`Initializing managed Scene "${this.scene.name}"`);
}

async _onDraw() {
console.log(`Drawing managed Scene "${this.scene.name}"`);
}

async _onReady() {
console.log(`Readying managed Scene "${this.scene.name}"`);
}

async _onTearDown() {
console.log(`Deconstructing managed Scene "${this.scene.name}"`);
}

_registerHooks() {
this.registerHook("updateToken", this.#onUpdateToken.bind(this));
}

#onUpdateToken(document, updateData, options, userId) {
console.log("Updating a token within the managed Scene");
}
}

// Register MyCustomSceneManager to be used for a specific Scene
CONFIG.Canvas.sceneManagers = {
[sceneId]: MyCustomSceneManager
}

Constructors

  • The SceneManager is constructed by passing a reference to the active Scene document.

    Parameters

    • scene: Scene

    Returns SceneManager

Properties

#hooks: Record<string, number> = {}

Registered hook functions used within this specific Scene that are automatically deactivated.

Accessors

  • get scene(): Scene
  • The managed Scene.

    Returns Scene

Methods

  • Internal

    Additional behaviors to perform when the Canvas is first initialized for the Scene.

    Returns Promise<void>

  • Internal

    Additional behaviors to perform after core groups and layers are drawn to the canvas.

    Returns Promise<void>

  • Internal

    Additional behaviors to perform after the Canvas is fully initialized for the Scene.

    Returns Promise<void>

  • Internal

    Additional behaviors to perform when the Scene is deactivated.

    Returns Promise<void>

  • Internal

    Register additional hook functions are only used while this Scene is active and is automatically deactivated. Hooks should be registered in this function by calling this._registerHook(hookName, handler)

    Returns void

  • Register additional hook functions are only used while this Scene is active and is automatically deactivated.

    Parameters

    • hookName: string
    • handler: Function

    Returns void

  • Internal

    Deactivate Hook functions that were added specifically for this Scene.

    Returns void