A Tile is an implementation of PlaceableObject which represents a static piece of artwork or prop within the Scene. Tiles are drawn inside the TilesLayer container.

Hierarchy (view full)

Properties

Accessors

Methods

Properties

frame: Container

The Tile border frame

texture: Texture

The primary tile image texture

bg: Graphics

A Tile background which is displayed if no valid image texture is present

A reference to the SpriteMesh which displays this Tile in the PrimaryCanvasGroup.

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.

#unlinkedVideo: boolean = false

A flag to capture whether this Tile has an unlinked video texture

#hudVideoOptions: object = ...

Video options passed by the HUD

#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 = "Tile"

Identify the official Document name for this PlaceableObject class

RENDER_FLAGS: {
    redraw: {
        propagate: string[];
    };
    refresh: {
        propagate: string[];
        alias: boolean;
    };
    refreshState: {
        propagate: string[];
    };
    refreshTransform: {
        propagate: string[];
        alias: boolean;
    };
    refreshPosition: {
        propagate: string[];
    };
    refreshRotation: {
        propagate: string[];
    };
    refreshSize: {
        propagate: string[];
    };
    refreshMesh: {};
    refreshFrame: {};
    refreshElevation: {
        propagate: string[];
    };
    refreshPerception: {};
    refreshVideo: {};
    refreshShape: {
        propagate: string[];
        deprecated: {
            since: number;
            until: number;
            alias: boolean;
        };
    };
} = ...

Type declaration

  • redraw: {
        propagate: string[];
    }
    • propagate: string[]
  • refresh: {
        propagate: string[];
        alias: boolean;
    }
    • propagate: string[]
    • alias: boolean
  • refreshState: {
        propagate: string[];
    }
    • propagate: string[]
  • refreshTransform: {
        propagate: string[];
        alias: boolean;
    }
    • propagate: string[]
    • alias: boolean
  • refreshPosition: {
        propagate: string[];
    }
    • propagate: string[]
  • refreshRotation: {
        propagate: string[];
    }
    • propagate: string[]
  • refreshSize: {
        propagate: string[];
    }
    • propagate: string[]
  • refreshMesh: {}
    • refreshFrame: {}
      • refreshElevation: {
            propagate: string[];
        }
        • propagate: string[]
      • refreshPerception: {}
        • refreshVideo: {}
          • refreshShape: {
                propagate: string[];
                deprecated: {
                    since: number;
                    until: number;
                    alias: boolean;
                };
            }

            Deprecated

            since v12

            • propagate: string[]
            • deprecated: {
                  since: number;
                  until: number;
                  alias: boolean;
              }
              • since: number
              • until: number
              • alias: boolean

          Accessors

          • get aspectRatio(): number
          • Get the native aspect ratio of the base texture for the Tile sprite

            Returns number

          • get bounds(): Rectangle
          • Returns Rectangle

          • get sourceElement(): HTMLImageElement | HTMLVideoElement
          • The HTML source element for the primary Tile texture

            Returns HTMLImageElement | HTMLVideoElement

          • get isVideo(): boolean
          • Does this Tile depict an animated video texture?

            Returns boolean

          • get isVisible(): boolean
          • Is this Tile currently visible on the Canvas?

            Returns boolean

          • get occluded(): boolean
          • Is this tile occluded?

            Returns boolean

          • get playing(): boolean
          • Is the tile video playing?

            Returns boolean

          • get volume(): number
          • The effective volume at which this Tile should be playing, including the global ambient volume modifier

            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 center(): Point
          • The central coordinate pair of the placeable object based on it's own width and height

            Returns Point

          • 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

          • Parameters

            • options: {} = {}

              Returns Promise<void>

            • Clear the display of the existing object.

              Parameters

              • options: any

              Returns void

              The cleared object

            • The inner _destroy method which may optionally be defined by each PlaceableObject subclass.

              Parameters

              • options: any

                Options passed to the initial destroy call

              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

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

            • Callback actions which occur on a mouse-move operation.

              Parameters

              • event: any

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handleDragMove

            • Callback actions which occur on a mouse-move operation.

              Parameters

              • event: any

                The triggering canvas interaction event

              Returns boolean | void

              See

              MouseInteractionManager##handleDragDrop

            • Callback actions which occur on a mouse-move operation.

              Parameters

              • event: any

                The triggering mouse click event

              Returns void

              See

              MouseInteractionManager##handleDragCancel

            • Get the snapped position for a given position or the current position.

              Parameters

              • Optional position: Point

                The position to be used instead of the current position

              Returns Point

              The snapped position

            • 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

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

              Parameters

              • options: {
                    releaseOthers: boolean;
                } = {}

                Additional options which modify the control request

                • releaseOthers: boolean

                  Release any other controlled objects first

              Returns boolean

              A flag denoting whether control was successful

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

            • Perform the database updates that should occur as the result of a drag-left-drop operation.

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns object[]

              An array of database updates to perform for documents in this collection

            • Protected

              Refresh the position.

              Returns void

            • Protected

              Refresh the rotation.

              Returns any

            • Protected

              Refresh the size.

              Returns any

            • Protected

              Refresh the displayed state of the Tile. Updated when the tile interaction state changes, when it is hidden, or when its elevation changes.

              Returns void

            • Protected

              Refresh the appearance of the tile.

              Returns void

            • Protected

              Refresh the elevation.

              Returns void

            • Protected

              Refresh the border frame that encloses the Tile.

              Returns void

            • Protected

              Refresh changes to the video playback state.

              Returns void

            • Protected

              Handle mouse-over event on a control handle

              Parameters

              • event: FederatedEvent

                The mouseover event

              Returns void

            • Protected

              Handle mouse-out event on a control handle

              Parameters

              • event: FederatedEvent

                The mouseout event

              Returns void

            • Protected

              Handle the beginning of a drag event on a resize handle.

              Parameters

              • event: FederatedEvent

                The mousedown event

              Returns void

            • Protected

              Handle mousemove while dragging a tile scale handler

              Parameters

              • event: FederatedEvent

                The mousemove event

              Returns void

            • Protected

              Handle mouseup after dragging a tile scale handler

              Parameters

              • event: FederatedEvent

                The mouseup event

              Returns void

            • Protected

              Handle cancellation of a drag event for one of the resizing handles

              Parameters

              • event: FederatedEvent

                The mouseup event

              Returns void

            • Protected

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

              Returns number

            • 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

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

              Parameters

              • options: object
              • userId: string

              Returns void

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

              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: FederatedEvent

                The triggering canvas interaction event

              • options: {
                    hoverOutOthers: boolean;
                } = {}

                Options which customize event handling

                • hoverOutOthers: boolean

                  Trigger hover-out behavior on sibling objects

              Returns void

              See

              MouseInteractionManager##handlePointerOver

            • Protected

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

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handlePointerOut

            • 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

              Callback actions which occur on a double left-click event to activate

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handleClickLeft2

            • 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

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

              Parameters

              • event: FederatedEvent

                The triggering canvas interaction event

              Returns void

              See

              MouseInteractionManager##handleClickRight2

            • 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 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 elements for the Tile border and handles

              Returns Container

            • Refresh the tiles.

              Returns void

            • Get resized Tile dimensions

              Parameters

              • event: FederatedEvent

              Returns {
                  x: number;
                  y: number;
                  width: number;
                  height: number;
                  sx: number;
                  sy: number;
              }

              • x: number
              • y: number
              • width: number
              • height: number
              • sx: number
              • sy: number
            • 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>

            • Create a preview tile with a background texture instead of an image

              Parameters

              • data: object

                Initial data with which to create the preview Tile

              Returns PlaceableObject