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.

Hierarchy (view full)

Properties

Accessors

Methods

Properties

doorControl: DoorControl

A reference the Door Control icon associated with this Wall, if any

line: Graphics

The line segment that represents the Wall.

endpoints: Graphics

The endpoints of the Wall line segment.

directionIcon: any

The icon that indicates the direction of the Wall.

highlight: Graphics

A Graphics object used to highlight this wall segment. Only used when the wall is controlled.

scene: Scene

Retain a reference to the Scene within which this Placeable Object resides

document: Document

A reference to the Scene embedded Document instance which this object represents

controlIcon: ControlIcon

A control icon for interacting with the object

mouseInteractionManager: MouseInteractionManager

A mouse interaction manager instance which handles mouse workflows related to this object.

#priorDoorState: number

Cache the prior door state so that we can identify changes in the door state.

#original: PlaceableObject

The object that this object is a preview of if this object is a preview.

#lastQuadtreeBounds: Rectangle

The bounds that the placeable was added to the quadtree with.

#drawing: Promise<PlaceableObject> = ...

An internal reference to a Promise in-progress to draw the Placeable Object.

#drawn: boolean = false

Has this Placeable Object been drawn and is there no drawing in progress?

embeddedName: string = "Wall"

Identify the official Document name for this PlaceableObject class

RENDER_FLAGS: {
    redraw: {
        propagate: string[];
    };
    refresh: {
        propagate: string[];
        alias: boolean;
    };
    refreshState: {
        propagate: string[];
    };
    refreshLine: {
        propagate: string[];
    };
    refreshEndpoints: {};
    refreshDirection: {};
    refreshHighlight: {};
} = ...

Type declaration

  • redraw: {
        propagate: string[];
    }
    • propagate: string[]
  • refresh: {
        propagate: string[];
        alias: boolean;
    }
    • propagate: string[]
    • alias: boolean
  • refreshState: {
        propagate: string[];
    }
    • propagate: string[]
  • refreshLine: {
        propagate: string[];
    }
    • propagate: string[]
  • refreshEndpoints: {}
    • refreshDirection: {}
      • refreshHighlight: {}

        Accessors

        • get coords(): number[]
        • A convenience reference to the coordinates Array for the Wall endpoints, [x0,y0,x1,y1].

          Returns number[]

        • get edge(): Edge
        • The Edge instance which represents this Wall. The Edge is re-created when data for the Wall changes.

          Returns Edge

        • get bounds(): Rectangle
        • The bounding box for this PlaceableObject. This is required if the layer uses a Quadtree, otherwise it is optional

          Returns Rectangle

        • get isDoor(): boolean
        • A boolean for whether this wall contains a door

          Returns boolean

        • get isOpen(): boolean
        • A boolean for whether the wall contains an open door

          Returns boolean

        • get midpoint(): number[]
        • Return the coordinates [x,y] at the midpoint of the wall segment

          Returns number[]

        • get center(): any
        • The central coordinate pair of the placeable object based on it's own width and height

          Returns any

        • get direction(): number
        • Get the direction of effect for a directional Wall

          Returns number

        • get soundRadius(): number
        • Customize the audible radius of sounds emitted by this wall, for example when a door opens or closes.

          Returns number

        • get _original(): PlaceableObject
        • The object that this object is a preview of if this object is a preview.

          Returns PlaceableObject

        • get isOwner(): boolean
        • A convenient reference for whether the current User has full control over the document.

          Returns boolean

        • get interactionState(): {
              NONE: number;
              HOVER: number;
              CLICKED: number;
              GRABBED: number;
              DRAG: number;
              DROP: number;
          }
        • The mouse interaction state of this placeable.

          Returns {
              NONE: number;
              HOVER: number;
              CLICKED: number;
              GRABBED: number;
              DRAG: number;
              DROP: number;
          }

          • NONE: number
          • HOVER: number
          • CLICKED: number
          • GRABBED: number
          • DRAG: number
          • DROP: number
        • get id(): string
        • The id of the corresponding Document which this PlaceableObject represents.

          Returns string

        • get objectId(): string
        • A unique identifier which is used to uniquely identify elements on the canvas related to this object.

          Returns string

        • get sourceId(): string
        • 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.

          Returns string

        • get isPreview(): boolean
        • Is this placeable object a temporary preview?

          Returns boolean

        • get hasPreview(): boolean
        • Does there exist a temporary preview of this placeable object?

          Returns boolean

        • get layer(): PlaceablesLayer
        • Provide a reference to the CanvasLayer which contains this PlaceableObject.

          Returns PlaceablesLayer

        • get sheet(): FormApplication
        • A Form Application which is used to configure the properties of this Placeable Object or the Document it represents.

          Returns FormApplication

        • get controlled(): boolean
        • An indicator for whether the object is currently controlled

          Returns boolean

        • get hover(): boolean
        • An indicator for whether the object is currently a hover target

          Returns boolean

        • get hasActiveHUD(): boolean
        • Is the HUD display active for this Placeable?

          Returns boolean

        Methods

        • Initialize the edge which represents this Wall.

          Parameters

          • Optional options: {
                deleted: boolean;
            } = {}

            Options which modify how the edge is initialized

            • deleted: boolean

              Has the edge been deleted?

          Returns void

        • This helper converts the wall segment to a Ray

          Returns Ray

          The wall in Ray representation

        • Parameters

          • options: any

          Returns Promise<void>

        • Draw a control icon that is used to manipulate the door's open/closed state

          Returns DoorControl

        • Clear the door control if it exists.

          Returns void

        • Assume control over a PlaceableObject, flagging it as controlled and enabling downstream behaviors

          Parameters

          • __namedParameters: {
                chain: boolean;
            } = {}

            Additional options which modify the control request

            • chain: boolean

          Returns boolean

          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

          Parameters

          • lower: number

            The lower-bound limiting angle in radians

          • upper: number

            The upper-bound limiting angle in radians

          Returns boolean

        • A simple test for whether a Ray can intersect a directional wall

          Parameters

          • ray: Ray

            The ray to test

          Returns boolean

          Can an intersection occur?

        • Get an Array of Wall objects which are linked by a common coordinate

          Returns Object

          An object reporting ids and endpoints of the linked segments

        • Register pending canvas operations which should occur after a new PlaceableObject of this type is created

          Parameters

          • data: any
          • options: any
          • userId: any

          Returns void

        • Define additional steps taken when an existing placeable object of this type is updated with new data

          Parameters

          • changed: any
          • options: any
          • userId: any

          Returns void

        • Define additional steps taken when an existing placeable object of this type is deleted

          Parameters

          • options: any
          • userId: any

          Returns void

        • Does the User have permission to control the Placeable Object?

          Parameters

          • user: any

            The User performing the action.

          • event: any

            The event object.

          Returns boolean

          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.

          Parameters

          • event: any

            The triggering canvas interaction event

          • options: any

            Options which customize event handling

          Returns false | void

          See

          MouseInteractionManager##handlePointerOver

        • Actions that should be taken for this Placeable Object when a mouseout event occurs

          Parameters

          • event: any

            The triggering canvas interaction event

          Returns void

          See

          MouseInteractionManager##handlePointerOut

        • Callback actions which occur on a single left-click event to assume control of the object

          Parameters

          • event: any

            The triggering canvas interaction event

          Returns boolean | void

          See

          MouseInteractionManager##handleClickLeft

        • Callback actions which occur when a mouse-drag action is first begun.

          Parameters

          • event: any

            The triggering canvas interaction event

          Returns void

          See

          MouseInteractionManager##handleDragStart

        • Draw the placeable object into its parent container

          Parameters

          • Optional options: object = {}

            Options which may modify the draw and refresh workflow

          Returns Promise<PlaceableObject>

          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.

          Parameters

          • Optional options: object = {}

            Options which may modify the refresh workflow

          Returns PlaceableObject

          The refreshed object

        • Release control over a PlaceableObject, removing it from the controlled set

          Parameters

          • options: object = {}

            Options which modify the releasing workflow

          Returns boolean

          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.

          Returns PlaceableObject

          A new object with identical data

        • Rotate the PlaceableObject to a certain angle of facing

          Parameters

          • angle: number

            The desired angle of rotation

          • snap: number

            Snap the angle of rotation to a certain target degree increment

          Returns Promise<PlaceableObject>

          The rotated object

        • Internal

          Determine a new angle of rotation for a PlaceableObject either from an explicit angle or from a delta offset.

          Parameters

          • options: {
                angle: number;
                delta: number;
                snap: number;
            } = {}

            An object which defines the rotation update parameters

            • angle: number

              An explicit angle, either this or delta must be provided

            • delta: number

              A relative angle delta, either this or the angle must be provided

            • snap: number

              A precision (in degrees) to which the resulting angle should snap. Default is 0.

          Returns number

          The new rotation angle for the object

        • Internal

          Obtain a shifted position for the Placeable Object

          Parameters

          • dx: -1 | 0 | 1

            The number of grid units to shift along the X-axis

          • dy: -1 | 0 | 1

            The number of grid units to shift along the Y-axis

          Returns Point

          The shifted target coordinates

        • Test whether a user can perform a certain interaction regarding a Placeable Object

          Parameters

          • user: User

            The User performing the action

          • action: string

            The named action being attempted

          Returns boolean

          Does the User have rights to perform the action?

        • Protected

          Refresh the displayed position of the wall which refreshes when the wall coordinates or type changes.

          Returns void

        • Protected

          Refresh the display of wall endpoints which refreshes when the wall position or state changes.

          Returns void

        • Protected

          Draw a directional prompt icon for one-way walls to illustrate their direction of effect.

          Returns boolean

        • Protected

          Refresh the appearance of the wall control highlight graphic. Occurs when wall control or position changes.

          Returns void

        • Protected

          Refresh the displayed state of the Wall.

          Returns void

        • Protected

          Given the properties of the wall - decide upon a color to render the wall for display on the WallsLayer

          Returns number

        • Protected Internal

          Play a door interaction sound. This plays locally, each client independently applies this workflow.

          Parameters

          • interaction: string

            The door interaction: "open", "close", "lock", "unlock", or "test".

          Returns void

        • Protected

          Get the target opacity that should be used for a Placeable Object depending on its preview state.

          Returns number

        • Protected

          Additional events which trigger once control of the object is established

          Parameters

          • options: Object

            Optional parameters which apply for specific implementations

          Returns void

        • Protected

          Additional events which trigger once control of the object is released

          Parameters

          • options: object

            Options which modify the releasing workflow

          Returns void

        • Protected

          Can the User access the HUD for this Placeable Object?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Does the User have permission to configure the Placeable Object?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Does the User have permission to view details of the Placeable Object?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Does the User have permission to create the underlying Document?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Does the User have permission to drag this Placeable Object?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Does the User have permission to left-click drag this Placeable Object?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Does the User have permission to hover on this Placeable Object?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Does the User have permission to update the underlying Document?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Does the User have permission to delete the underlying Document?

          Parameters

          • user: User

            The User performing the action.

          • event: object

            The event object.

          Returns boolean

          The returned status.

        • Protected

          Should the placeable propagate left click downstream?

          Parameters

          • event: FederatedEvent

          Returns boolean

        • Protected

          Callback actions which occur on a single left-unclick event to assume control of the object

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns void

        • Protected

          Should the placeable propagate right click downstream?

          Parameters

          • event: FederatedEvent

          Returns boolean

        • Protected

          Callback actions which occur on a single right-click event to configure properties of the object

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns void

          See

          MouseInteractionManager##handleClickRight

        • Protected

          Callback actions which occur on a single right-unclick event

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns void

        • Protected

          Begin a drag operation from the perspective of the preview clone. Modify the appearance of both the clone (this) and the original (_original) object.

          Returns void

        • Protected

          Conclude a drag operation from the perspective of the preview clone. Modify the appearance of both the clone (this) and the original (_original) object.

          Returns void

        • Protected

          Callback actions which occur on a mouse-move operation.

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns boolean

          See

          MouseInteractionManager##handleDragDrop

        • Protected

          Callback actions which occur on a mouse-move operation.

          Parameters

          • event: FederatedEvent

            The triggering mouse click event

          Returns void

          See

          MouseInteractionManager##handleDragCancel

        • Protected

          Callback actions which occur on a right mouse-drag operation.

          Parameters

          • event: FederatedEvent

            The triggering mouse click event

          Returns any

          See

          MouseInteractionManager##handleDragStart

        • Protected

          Callback actions which occur on a right mouse-drag operation.

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns any

          See

          MouseInteractionManager##handleDragMove

        • Protected

          Callback actions which occur on a right mouse-drag operation.

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns Promise<any>

          See

          MouseInteractionManager##handleDragDrop

        • Protected

          Callback actions which occur on a right mouse-drag operation.

          Parameters

          • event: FederatedEvent

            The triggering mouse click event

          Returns any

          See

          MouseInteractionManager##handleDragCancel

        • Protected

          Callback action which occurs on a long press.

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          • origin: Point

            The local canvas coordinates of the mousepress.

          Returns any

          See

          MouseInteractionManager##handleLongPress

        • Create an Edge from the Wall placeable.

          Returns Edge

        • Draw a directional prompt icon for one-way walls to illustrate their direction of effect.

          Returns any

          The drawn icon

        • Compute an approximate Polygon which encloses the line segment providing a specific hitArea for the line

          Parameters

          • pad: number

            The amount of padding to apply

          Returns Polygon

          A constructed Polygon for the line

        • Callback actions when a wall that contains a door is moved or its state is changed

          Parameters

          • doorChange: boolean = false

            Update vision and sound restrictions

          Returns void

        • Perform database updates using the result of a drag-left-drop operation.

          Parameters

          • updates: object[]

            The database updates for documents in this collection

          Returns Promise<void>

        • Adapt the width that the wall should be rendered based on the grid size.

          Returns number