A reference to an overhead Tile that is a roof, interior to which this wall is contained
A Graphics object used to highlight this wall segment. Only used when the wall is controlled.
A set which tracks other Wall instances that this Wall intersects with (excluding shared endpoints)
Retain a reference to the Scene within which this Placeable Object resides
A reference to the Scene embedded Document instance which this object represents
Track the field of vision for the placeable object. This is necessary to determine whether a player has line-of-sight towards a placeable object or vice-versa
A control icon for interacting with the object
A mouse interaction manager instance which handles mouse workflows related to this object.
A reference the Door Control icon associated with this Wall, if any
Passthrough certain drag operations on locked objects.
Know if a placeable is in the hover-in state.
Cache the prior door state so that we can identify changes in the door state.
The bounds that the placeable was added to the quadtree with.
Has this placeable been drawn yet?
Identify the official Document name for this PlaceableObject class
A convenience reference to the coordinates Array for the Wall endpoints, [x0,y0,x1,y1].
The endpoints of the wall expressed as {@link PolygonVertex} instances.
The initial endpoint of the Wall.
The second endpoint of the Wall.
A set of vertex sort keys which identify this Wall's endpoints.
A boolean for whether this wall contains a door
A boolean for whether the wall contains an open door
Is this Wall interior to a non-occluded roof Tile?
Return the coordinates [x,y] at the midpoint of the wall segment
Get the direction of effect for a directional Wall
The mouse interaction state of this placeable.
The id of the corresponding Document which this PlaceableObject represents.
A unique identifier which is used to uniquely identify elements on the canvas related to this object.
The named identified for the source object associated with this PlaceableObject. This differs from the objectId because the sourceId is the same for preview objects as for the original.
Is this placeable object a temporary preview?
Does there exist a temporary preview of this placeable object?
The field-of-vision polygon for the object, if it has been computed
Provide a reference to the CanvasLayer which contains this PlaceableObject.
The line-of-sight polygon for the object, if it has been computed
A Form Application which is used to configure the properties of this Placeable Object or the Document it represents.
An indicator for whether the object is currently controlled
An indicator for whether the object is currently a hover target
An indicator for whether the object is currently a hover target
This helper converts the wall segment to a Ray
The wall in Ray representation
Draw a control icon that is used to manipulate the door's open/closed state
Clear the door control if it exists.
Determine the orientation of this wall with respect to a reference point
Some reference point, relative to which orientation is determined
An orientation in CONST.WALL_DIRECTIONS which indicates whether the Point is left, right, or collinear (both) with the Wall
Test whether to apply a configured threshold of this wall. When the proximity threshold is met, this wall is excluded as an edge in perception calculations.
Sense type for the source
The origin or position of the source on the canvas
True if the wall has a threshold greater than 0 for the source type, and the source type is within that distance.
Assume control over a PlaceableObject, flagging it as controlled and enabling downstream behaviors
Additional options which modify the control request
A flag denoting whether control was successful
Test whether the Wall direction lies between two provided angles This test is used for collision and vision checks against one-directional walls
The lower-bound limiting angle in radians
The upper-bound limiting angle in radians
A simple test for whether a Ray can intersect a directional wall
The ray to test
Can an intersection occur?
Get an Array of Wall objects which are linked by a common coordinate
An object reporting ids and endpoints of the linked segments
Determine whether this wall is beneath a roof tile, and is considered "interior", or not. Tiles which are hidden do not count as roofs for the purposes of defining interior walls.
Update any intersections with this wall.
Record the intersection points between this wall and another, if any.
The other wall.
Register pending canvas operations which should occur after a new PlaceableObject of this type is created
Define additional steps taken when an existing placeable object of this type is deleted
Create a standard MouseInteractionManager for the PlaceableObject
Activate interactivity for the Placeable Object
Does the User have permission to control the Placeable Object?
The User performing the action.
The event object.
The returned status.
Actions that should be taken for this Placeable Object when a mouseover event occurs. Hover events on PlaceableObject instances allow event propagation by default.
The triggering canvas interaction event
Options which customize event handling
True if the event was handled, otherwise false
Actions that should be taken for this Placeable Object when a mouseout event occurs
The triggering canvas interaction event
True if the event was handled, otherwise false
Callback actions which occur on a single left-click event to assume control of the object
The triggering canvas interaction event
Callback actions which occur when a mouse-drag action is first begun.
The triggering canvas interaction event
Draw the placeable object into its parent container
The drawn object
Refresh all incremental render flags for the PlaceableObject. This method is no longer used by the core software but provided for backwards compatibility.
The refreshed object
Update the quadtree.
Release control over a PlaceableObject, removing it from the controlled set
Options which modify the releasing workflow
A Boolean flag confirming the object was released.
Clone the placeable object, returning a new object with identical attributes. The returned object is non-interactive, and has no assigned ID. If you plan to use it permanently you should call the create method.
A new object with identical data
Rotate the PlaceableObject to a certain angle of facing
The desired angle of rotation
Snap the angle of rotation to a certain target degree increment
The rotated object
Determine a new angle of rotation for a PlaceableObject either from an explicit angle or from a delta offset.
An object which defines the rotation update parameters
The new rotation angle for the object
Obtain a shifted position for the Placeable Object
The number of grid units to shift along the X-axis
The number of grid units to shift along the Y-axis
The shifted target coordinates
Test whether a user can perform a certain interaction regarding a Placeable Object
The User performing the action
The named action being attempted
Does the User have rights to perform the action?
Given the properties of the wall - decide upon a color to render the wall for display on the WallsLayer
Play a door interaction sound. This plays locally, each client independently applies this workflow.
The door interaction: "open", "close", "lock", "unlock", or "test".
Handle mouse-hover events on the line segment itself, pulling the Wall to the front of the container stack
Get the target opacity that should be used for a Placeable Object depending on its preview state.
Additional events which trigger once control of the object is established
Optional parameters which apply for specific implementations
Additional events which trigger once control of the object is released
Options which modify the releasing workflow
Can the User access the HUD for this Placeable Object?
The User performing the action.
The event object.
The returned status.
Does the User have permission to configure the Placeable Object?
The User performing the action.
The event object.
The returned status.
Does the User have permission to view details of the Placeable Object?
The User performing the action.
The event object.
The returned status.
Does the User have permission to create the underlying Document?
The User performing the action.
The event object.
The returned status.
Does the User have permission to drag this Placeable Object?
The User performing the action.
The event object.
The returned status.
Does the User have permission to hover on this Placeable Object?
The User performing the action.
The event object.
The returned status.
Does the User have permission to update the underlying Document?
The User performing the action.
The event object.
The returned status.
Does the User have permission to delete the underlying Document?
The User performing the action.
The event object.
The returned status.
Should the placeable propagate left click downstream?
Should the placeable propagate right click downstream?
Callback actions which occur on a single right-click event to configure properties of the object
The triggering canvas interaction event
Callback actions which occur on a double right-click event to configure properties of the object
The triggering canvas interaction event
Begin a drag operation from the perspective of the preview clone. Modify the appearance of both the clone (this) and the original (_original) object.
Conclude a drag operation from the perspective of the preview clone. Modify the appearance of both the clone (this) and the original (_original) object.
Callback actions which occur on a mouse-move operation.
The triggering mouse click event
Callback action which occurs on a long press.
The triggering canvas interaction event
The local canvas coordinates of the mousepress.
Create PolygonVertex instances for the Wall endpoints and register the set of vertex keys.
Draw a directional prompt icon for one-way walls to illustrate their direction of effect.
The drawn icon
Compute an approximate Polygon which encloses the line segment providing a specific hitArea for the line
The amount of padding to apply
A constructed Polygon for the line
Remove this wall's intersections.
Refresh the displayed position of the wall which refreshes when the wall coordinates or type changes.
Refresh the display of wall endpoints which refreshes when the wall position or state changes.
Draw a directional prompt icon for one-way walls to illustrate their direction of effect.
The drawn icon
Refresh the appearance of the wall control highlight graphic. Occurs when wall control or position changes.
Refresh the displayed state of the Wall.
Callback actions when a wall that contains a door is moved or its state is changed
Update vision and sound restrictions
Adapt the width that the wall should be rendered based on the grid size.
A Wall is an implementation of PlaceableObject which represents a physical or visual barrier within the Scene. Walls are used to restrict Token movement or visibility as well as to define the areas of effect for ambient lights and sounds.
WallDocument
WallsLayer