Foundry Virtual Tabletop - API Documentation - Version 14
    Preparing search index...

    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 Summary)

    Index

    Properties

    Accessors

    Methods

    Properties

    _previewType:
        | "wheel"
        | "controls"
        | "dragging"
        | "creation"
        | "config"
        | "api"
        | null

    The preview type, if any.

    controlIcon: ControlIcon | null

    A control icon for interacting with the object

    directionIcon: Sprite | null

    The icon that indicates the direction of the Wall.

    document: CanvasDocument

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

    doorControl: any

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

    endpoints: Graphics

    The endpoints of the Wall line segment.

    highlight: Graphics

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

    line: Graphics

    The line segment that represents the Wall.

    mouseInteractionManager: MouseInteractionManager | null

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

    renderFlags: RenderFlags

    Status flags which are applied at render-time to update the PlaceableObject. If an object defines RenderFlags, it should at least include flags for "redraw" and "refresh".

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

    embeddedName: string = "Wall"

    Identify the official Document name for this PlaceableObject class

    RENDER_FLAG_PRIORITY: string = "OBJECTS"

    The ticker priority when RenderFlags of this class are handled. Valid values are OBJECTS or PERCEPTION.

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

    Accessors

    • get _original(): PlaceableObject | undefined

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

      Returns PlaceableObject | undefined

    • get bounds(): any

      The bounding box for this PlaceableObject. This is required if the layer uses a Quadtree, otherwise it is optional

      Returns any

    • get center(): Point

      The central coordinate pair of the placeable object based on it's own width and height

      Returns Point

    • get controlled(): boolean

      An indicator for whether the object is currently controlled

      Returns boolean

    • get coords(): number[]

      A convenience reference to the coordinates Array for the Wall endpoints, [x0,y0,x1,y1].

      Returns number[]

    • get direction(): number | null

      Get the direction of effect for a directional Wall

      Returns number | null

    • get doorMeshes(): Set<DoorMesh>

      A set of optional DoorMesh instances used to render a door animation for this Wall.

      Returns Set<DoorMesh>

    • get edge(): any

      The Edge instance which represents this Wall.

      Returns any

    • get hasActiveHUD(): boolean

      Is the HUD display active for this Placeable?

      Returns boolean

    • get hasDoorMesh(): boolean

      Should this Wall have a corresponding DoorMesh?

      Returns boolean

    • get hasPreview(): boolean

      Does there exist a temporary preview of this placeable object?

      Returns boolean

    • get hover(): boolean

      An indicator for whether the object is currently a hover target

      Returns boolean

    • get id(): string

      The id of the corresponding Document which this PlaceableObject represents.

      Returns string

    • get interactionState(): | {
          CLICKED: number;
          DRAG: number;
          DROP: number;
          GRABBED: number;
          HOVER: number;
          NONE: number;
      }
      | undefined

      The mouse interaction state of this placeable.

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

    • get isDoor(): boolean

      A boolean for whether this wall contains a door

      Returns boolean

    • get isInteractable(): boolean

      Returns boolean

    • get isOpen(): boolean

      A boolean for whether the wall contains an open door

      Returns boolean

    • get isOwner(): boolean

      A convenient reference for whether the current User has full control over the document.

      Returns boolean

    • get isPreview(): boolean

      Is this placeable object a temporary preview?

      Returns boolean

    • get isVisible(): boolean

      Is this placeable currently visible?

      Returns boolean

    • get layer(): PlaceablesLayer

      Provide a reference to the CanvasLayer which contains this PlaceableObject.

      Returns PlaceablesLayer

    • get midpoint(): number[]

      Return the coordinates [x,y] at the midpoint of the wall segment

      Returns number[]

    • get objectId(): string

      A unique identifier which is used to uniquely identify elements on the canvas related to this object.

      Returns string

    • get previewType(): "dragging" | "controls|"

      The preview type, if any.

      Returns "dragging" | "controls|"

    • get sheet(): DocumentSheetV2

      A document sheet used to configure the properties of this Placeable Object or the Document it represents.

      Returns DocumentSheetV2

    • get soundRadius(): number

      Customize the audible radius of sounds emitted by this wall, for example when a door opens or closes.

      Returns number

    • 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 implementation(): typeof PlaceableObject

      Return a reference to the configured subclass of this base PlaceableObject type.

      Returns typeof PlaceableObject

    Methods

    • Apply render flags before a render occurs.

      Parameters

      • flags: any

        The render flags which must be applied

      Returns void

    • Parameters

      • options: any

      Returns Promise<void>

    • 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

      • dz: -1 | 0 | 1

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

      Returns object

      The shifted target coordinates

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

      Parameters

      • options: any
      • userId: any

      Returns void

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

      Parameters

      • event: any

        The triggering canvas interaction event

      Returns boolean | void

      If false, the start if prevented

    • 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 or DOM interaction event

      • options: any

        Options which customize event handling

      Returns boolean | void

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

      Parameters

      • event: any

        The triggering canvas or DOM interaction event

      • options: any

        Options which customize event handling

      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

    • Parameters

      • offset: any
      • _options: any

      Returns { c: any[]; levels: any[] }

    • 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

        • Optionalangle?: number

          An explicit angle, either this or delta must be provided

        • Optionaldelta?: number

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

        • Optionalsnap?: number

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

      Returns number

      The new rotation angle for the object

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

      Parameters

      • user: documents.User

        The User performing the action. Must be equal to game.user.

      • action:
            | "view"
            | "create"
            | "update"
            | "delete"
            | "control"
            | "hover"
            | "drag"
            | "configure"
            | "HUD"

        The named action being attempted

      Returns boolean

      Does the User have rights to perform the action?

    • 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?

    • Clear the door control if it exists.

      Returns void

    • 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

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

      Parameters

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

        Additional options which modify the control request

      Returns boolean

      A flag denoting whether control was successful

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

      Returns DoorControl

    • Create and add a DoorMesh to the PrimaryCanvasContainer.

      Returns Promise<void>

    • Remove and destroy a DoorMesh from the PrimaryCanvasContainer.

      Returns void

    • Draw the placeable object into its parent container

      Parameters

      • Optionaloptions: object = {}

        Options which may modify the draw and refresh workflow

      Returns Promise<PlaceableObject>

      The drawn object

    • 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

    • 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

    • Refresh all incremental render flags for the PlaceableObject. This method is no longer used by the core software but provided for backwards compatibility.

      Parameters

      • Optionaloptions: 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: { renderSidebar?: boolean } = {}

        Options which modify the releasing workflow

        • OptionalrenderSidebar?: boolean

          Re-render the sidebar.

      Returns boolean

      A Boolean flag confirming the object was released.

    • 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

    • This helper converts the wall segment to a Ray

      Returns Ray

      The wall in Ray representation

    • Protected

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

      Parameters

      • user: documents.User

        The User performing the action. Always equal to game.user.

      • event: FederatedEvent<UIEvent | PixiTouch>

        The pointer event

      • Optionaloptions: { notify: boolean } = {}

        Options, used internally

      Returns boolean

    • Protected

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

      Parameters

      Returns boolean

    • Protected

      Finalize the left-drag operation.

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering mouse click event

      Returns void

    • Protected

      Finalize the right-drag operation.

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering mouse click event

      Returns void

    • Protected

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

      Returns number

    • Protected

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

      Returns number

    • Protected

      Initialize the left-drag operation.

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      Returns void

    • Protected

      Initialize the right-drag operation.

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      Returns void

    • Protected

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

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      Returns void

    • Protected

      Additional events that trigger once control of the object is established

      Parameters

      • options: object

        Optional parameters which apply for specific implementations

      Returns void

    • Protected

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

      Parameters

      • data: object
      • options: object
      • userId: string

      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<UIEvent | PixiTouch>

        The triggering mouse click event

      Returns boolean | void

      If false, the cancellation is prevented

    • Protected

      Callback actions which occur on a mouse-move operation.

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      Returns false | undefined

    • Protected

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

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering mouse click event

      Returns boolean | void

      If false, the cancellation is prevented

    • Protected

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

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      Returns void

    • Protected

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

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      Returns void

    • Protected

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

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering mouse click event

      Returns false | void

      If false, the start if prevented

    • 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

      Callback action which occurs on a long press.

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      • origin: Point

        The local canvas coordinates of the mousepress.

      Returns any

    • Protected

      Additional events which trigger once control of the object is released

      Parameters

      • options: object

        Options which modify the releasing workflow

      Returns void

    • Protected

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

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      Returns void

    • Protected

      Callback actions which occur on a single right-unclick event

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering canvas interaction event

      Returns void

    • Protected

      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

      Should the placeable propagate left click downstream?

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

      Returns boolean

    • Protected

      Should the placeable propagate right click downstream?

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

      Returns boolean

    • Protected

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

      Returns false | undefined

    • Protected

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

      Returns void

    • Protected

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

      Returns void

    • Protected

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

      Returns void

    • Protected

      Refresh the displayed state of the placeable. Used to update aspects of the placeable which change based on the user interaction state.

      Returns void

    • Protected

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

      Parameters

      • event: FederatedEvent<UIEvent | PixiTouch>

        The triggering mouse click event

      Returns false | void

      If false, the start if prevented

    • Internal

      Obtain the shifted position.

      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

      • dz: -1 | 0 | 1

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

      • position: ElevatedPoint

        The unsnapped position

      • snapped: ElevatedPoint

        The snapped position

      • grid: BaseGrid<GridCoordinates2D, GridCoordinates3D>

        The grid

      Returns ElevatedPoint

      The shifted target coordinates