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:
- Array.<object>
_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:
- Array.<object>
hud :BasePlaceableHUD|null
- Source:
- Overrides:
If objects on this PlaceableLayer have a HUD UI, provide a reference to its instance
Type:
- BasePlaceableHUD | null
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:
- Quadtree | null
sources :Collection.<string, PointSource>
- Source:
A mapping of light sources which are active within the rendered Scene
Type:
- Collection.<string, PointSource>
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>>