LightingLayer

LightingLayer

The Lighting Layer which displays darkness and light within the rendered Scene. Lighting Layer (Container) Illumination Container [MULTIPLY] Background (Graphics) Light (Container) [LOS Mask] Source 1, ..., Source N (Container) Darkness (Container) Source 1, ..., Source N (Container) Coloration Container [ADD_NPM]

Constructor

new LightingLayer()

Source:
Example

The lightingRefresh hook

Hooks.on("lightingRefresh", layer => {});

Extends

Members

(static) layerOptions

Source:

_animatedSources :Array.<PointSource>

Source:

An array of light sources which are currently animated

Type:

_animating :boolean

Source:

A flag for whether the darkness level is currently animating

Type:
  • boolean

_blurDistance :number

Source:

The blur distance for soft shadows

Type:
  • number

_controlled :Object

Source:
Overrides:

Track the set of PlaceableObjects on this layer which are currently controlled by their id

Type:
  • Object

_copy :Array.<object>

Source:
Overrides:

Keep track of an object copied with CTRL+C which can be pasted later

Type:

_hover :PlaceableObject

Source:
Overrides:

Track the PlaceableObject on this layer which is currently being hovered upon

Type:

coloration :PIXI.Container

Source:

The coloration container which visualizes the effect of light sources

Type:
  • PIXI.Container

controlled

Source:
Overrides:

An Array of placeable objects in this layer which have the _controlled attribute

globalLight :boolean

Source:

The current client setting for whether global illumination is used or not

Type:
  • boolean

gridPrecision

Source:
Overrides:

Return the precision relative to the Scene grid with which Placeable objects should be snapped

history :Array.<object>

Source:
Overrides:

Keep track of history so that CTRL+Z can undo changes

Type:

hud :BasePlaceableHUD|null

Source:
Overrides:

If objects on this PlaceableLayer have a HUD UI, provide a reference to its instance

Type:

illumination :PIXI.Container

Source:

The illumination container which visualizes darkness and light

Type:
  • PIXI.Container

objects :PIXI.Container

Source:
Overrides:

Placeable Layer Objects

Type:
  • PIXI.Container

options :Object

Source:
Overrides:

PlaceableObject layer options

Type:
  • Object

placeables :Array.<PlaceableObject>

Source:
Overrides:

A convenience method for accessing the placeable object instances contained in this layer

Type:

preview

Source:
Overrides:

Preview Object Placement

quadtree :Quadtree|null

Source:
Overrides:

A Quadtree which partitions and organizes Walls into quadrants for efficient target identification.

Type:

sources :Collection.<string, PointSource>

Source:

A mapping of light sources which are active within the rendered Scene

Type:

Methods

_onClickLeft()

Source:
Overrides:
See:
  • {Canvas#_onClickLeft}

Handle left mouse-click events which originate from the Canvas stage and are dispatched to this Layer.

_onClickLeft2()

Source:
Overrides:
See:

Handle double left-click events which originate from the Canvas stage and are dispatched to this Layer.

_onClickRight()

Source:
Overrides:
See:
  • {Canvas#_onClickRight}

Handle right mouse-click events which originate from the Canvas stage and are dispatched to this Layer.

_onDragLeftCancel()

Source:
Overrides:
See:
  • {Canvas#_onDragLeftDrop}

Cancel a left-click drag workflow originating from the Canvas stage.

_onDragLeftDrop()

Source:
Overrides:
See:
  • {Canvas#_onDragLeftDrop}

Conclude a left-click drag workflow originating from the Canvas stage.

_onDragLeftMove()

Source:
Overrides:
See:
  • {Canvas#_onDragLeftMove}

Continue a left-click drag workflow originating from the Canvas stage.

_onDragLeftStart()

Source:
Overrides:
See:
  • {Canvas#_onDragLeftStart}

Start a left-click drag workflow originating from the Canvas stage.

_onMouseWheel(event)

Source:
Overrides:

Handle mouse-wheel events at the PlaceableObjects layer level to rotate multiple objects at once. This handler will rotate all controlled objects by some incremental angle.

Parameters:
Name Type Description
event MouseWheelEvent

The mousewheel event which originated the request

activate()

Source:
Inherited From:

activateAnimation()

Source:

Activate light source animation for AmbientLight objects within this layer

(async) animateDarkness(target, duration) → {Promise.<void>}

Source:

Animate a smooth transition of the darkness overlay to a target value. Only begin animating if another animation is not already in progress.

Parameters:
Name Type Default Description
target number 1

The target darkness level between 0 and 1

duration number

The desired animation time in milliseconds. Default is 10 seconds

Returns:

A Promise which resolves once the animation is complete

Type
Promise.<void>

controlAll(options) → {Array.<PlaceableObject>}

Source:
Overrides:

Acquire control over all PlaceableObject instances which are visible and controllable within the layer.

Parameters:
Name Type Description
options object

Options passed to the control method of each object

Returns:

An array of objects that were controlled

Type
Array.<PlaceableObject>

copyObjects() → {Array.<PlaceableObject>}

Source:
Overrides:

Copy currently controlled PlaceableObjects to a temporary Array, ready to paste back into the scene later

Returns:

The Array of copied PlaceableObject instances

Type
Array.<PlaceableObject>

(async) createMany(data, options) → {Promise.<Array.<object>>}

Source:
Overrides:

Create multiple embedded entities in a parent Entity collection using an Array of provided data

Parameters:
Name Type Description
data Array.<object>

An Array of update data Objects which provide incremental data

options object

Additional options which customize the update workflow

Returns:

A Promise which resolves to the returned socket response (if successful)

Type
Promise.<Array.<object>>

createObject() → {PlaceableObject}

Source:
Overrides:

Draw a single placeable object

Returns:
Type
PlaceableObject

deactivate()

Source:
Inherited From:

deactivateAnimation()

Source:

Deactivate light source animation for AmbientLight objects within this layer

deleteAll()

Source:
Overrides:

A helper method to prompt for deletion of all PlaceableObject instances within the Scene Renders a confirmation dialogue to confirm with the requester that all objects will be deleted

(async) deleteMany(ids, options) → {Promise.<Array.<string>>}

Source:
Overrides:

Simultaneously delete multiple PlaceableObjects. This executes a single database operation using Scene.update. If deleting only a single object, this will delegate to PlaceableObject.delete for performance reasons.

Parameters:
Name Type Description
ids Array.<string>

An Array of object IDs to target for deletion

options object

Additional options which customize the update workflow

Returns:

A Promise which resolves to the returned socket response (if successful)

Type
Promise.<Array.<string>>

(async) draw()

Source:
Overrides:

get(objectId) → {PlaceableObject}

Source:
Overrides:

Get a PlaceableObject contained in this layer by it's ID

Parameters:
Name Type Description
objectId string

The ID of the contained object to retrieve

Returns:

The object instance, or undefined

Type
PlaceableObject

(async) moveMany(dx, dy, rotate, ids) → {Promise.<Scene>}

Source:
Overrides:

Simultaneously move multiple PlaceableObjects via keyboard movement offsets. This executes a single database operation using Scene.update. If moving only a single object, this will delegate to PlaceableObject.update for performance reasons.

Parameters:
Name Type Description
dx number

The number of incremental grid units in the horizontal direction

dy number

The number of incremental grid units in the vertical direction

rotate boolean

Rotate the token to the keyboard direction instead of moving

ids Array | Set

An Array or Set of object IDs to target for rotation

Returns:

The resulting Promise from the Scene.update operation

Type
Promise.<Scene>

(async) pasteObjects(position, hiddenopt, snapopt) → {Promise.<Array.<PlaceableObject>>}

Source:
Overrides:

Paste currently copied PlaceableObjects back to the layer by creating new copies

Parameters:
Name Type Attributes Description
position Point

The destination position for the copied data.

hidden boolean <optional>

Paste data in a hidden state, if applicable. Default is false.

snap boolean <optional>

Snap the resulting objects to the grid. Default is true.

Returns:

An Array of created PlaceableObject instances

Type
Promise.<Array.<PlaceableObject>>

refresh(darkness)

Source:

Refresh the active display of the LightingLayer. Update the scene background color, light sources, and darkness sources

Parameters:
Name Type Description
darkness

releaseAll(options) → {number}

Source:
Overrides:

Release all controlled PlaceableObject instance from this layer.

Parameters:
Name Type Description
options object

Options passed to the release method of each object

Returns:

The number of PlaceableObject instances which were released

Type
number

(async) rotateMany(angle, delta, snap, ids) → {Promise.<Scene>}

Source:
Overrides:

Simultaneously rotate multiple PlaceableObjects using a provided angle or incremental. This executes a single database operation using Scene.update. If rotating only a single object, it is better to use the PlaceableObject.rotate instance method.

Parameters:
Name Type Description
angle number

A target angle of rotation (in degrees) where zero faces "south"

delta number

An incremental angle of rotation (in degrees)

snap number

Snap the resulting angle to a multiple of some increment (in degrees)

ids Array | Set

An Array or Set of object IDs to target for rotation

Returns:

The resulting Promise from the Scene.update operation

Type
Promise.<Scene>

selectObjects(x, y, width, height, releaseOptions, controlOptions) → {boolean}

Source:
Overrides:

Select all PlaceableObject instances which fall within a coordinate rectangle.

Parameters:
Name Type Description
x number

The top-left x-coordinate of the selection rectangle

y number

The top-left y-coordinate of the selection rectangle

width number

The width of the selection rectangle

height number

The height of the selection rectangle

releaseOptions Object

Optional arguments provided to any called release() method

controlOptions Object

Optional arguments provided to any called control() method

Returns:

A boolean for whether the controlled set was changed in the operation

Type
boolean

storeHistory(type, data)

Source:
Overrides:

Record a new CRUD event in the history log so that it can be undone later

Parameters:
Name Type Description
type string

The event type (create, update, delete)

data Object

The object data

(async) tearDown()

Source:
Overrides:

(async) undoHistory() → {Promise.<Scene>}

Source:
Overrides:

Undo a change to the objects in this layer This method is typically activated using CTRL+Z while the layer is active

Returns:
Type
Promise.<Scene>

update()

Source:
Deprecated:
  • since 0.7.3
See:

(async) updateMany(data, options) → {Promise.<Array.<object>>}

Source:
Overrides:

Update multiple embedded entities in a parent Entity collection using an Array of provided data

Parameters:
Name Type Description
data Array.<object>

An Array of update data Objects which provide incremental data

options object

Additional options which customize the update workflow

Returns:

A Promise which resolves to the returned socket response (if successful)

Type
Promise.<Array.<object>>