Options
All
  • Public
  • Public/Protected
  • All
Menu

An AmbientSound is an implementation of PlaceableObject which represents a dynamic audio source within the Scene.

see

AmbientSoundDocument

see

SoundsLayer

Hierarchy

Index

Constructors

Properties

sound: Sound = ...

The Sound which manages playback for this AmbientSound effect

source: SoundSource = ...

A SoundSource object which manages the area of effect for this ambient sound

controlIcon: ControlIcon

A control icon for interacting with the object

field: any
alpha: number
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

vision: { fov: Circle; los: PointSourcePolygon }

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

Type declaration

mouseInteractionManager: MouseInteractionManager

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

cullable: boolean
visible: any
renderable: any
_preview: any
_dragPassthrough: boolean = false

Passthrough certain drag operations on locked objects.

_isHoverIn: boolean = false

Know if a placeable is in the hover-in state.

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

#controlled: boolean = false
#hover: boolean = false
embeddedName: string = "AmbientSound"

Identify the official Document name for this PlaceableObject class

RENDER_FLAGS: { redraw: { propagate: string[] }; refresh: { propagate: string[]; alias: boolean }; refreshField: { propagate: string[] }; refreshPosition: {}; refreshState: {} } = ...
override

Type declaration

  • redraw: { propagate: string[] }
    • propagate: string[]
  • refresh: { propagate: string[]; alias: boolean }
    • propagate: string[]
    • alias: boolean
  • refreshField: { propagate: string[] }
    • propagate: string[]
  • refreshPosition: {}
    • refreshState: {}

      Accessors

      • get isAudible(): boolean
      • Is this ambient sound is currently audible based on its hidden state and the darkness level of the Scene?

        Returns boolean

      • inheritdoc

        Returns Rectangle

      • get radius(): number
      • A convenience accessor for the sound radius in pixels

        Returns number

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

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

        • NONE: number
        • HOVER: number
        • CLICKED: 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

      • The field-of-vision polygon for the object, if it has been computed

        Returns Circle

      • Provide a reference to the CanvasLayer which contains this PlaceableObject.

        Returns PlaceablesLayer

      • The line-of-sight polygon for the object, if it has been computed

        Returns PointSourcePolygon

      • 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
      • set hover(state: boolean): void
      • An indicator for whether the object is currently a hover target

        Returns boolean

      • An indicator for whether the object is currently a hover target

        Parameters

        • state: boolean

        Returns void

      Methods

      • sync(isAudible: boolean, volume: number, [options={}]?: { fade: number }): void
      • Toggle playback of the sound depending on whether it is audible.

        Parameters

        • isAudible: boolean

          Is the sound audible?

        • volume: number

          The target playback volume

        • [options={}]: { fade: number } = {}

          Additional options which affect sound synchronization

          • fade: number

        Returns void

      • _draw(): Promise<void>
      • _destroy(options: any): void
      • _applyRenderFlags(flags: any): void
      • refreshControl(): void
      • Refresh the display of the ControlIcon for this AmbientSound source.

        Returns void

      • updateSource([options={}]?: { defer: boolean; deleted: boolean }): void
      • Compute the field-of-vision for an object, determining its effective line-of-sight and field-of-vision polygons

        Parameters

        • [options={}]: { defer: boolean; deleted: boolean } = {}

          Options which modify how the audio source is updated

          • defer: boolean
          • deleted: boolean

        Returns void

      • _onCreate(data: any, options: any, userId: any): void
      • 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

      • _onUpdate(data: any, options: any, userId: any): void
      • _onDelete(options: any, userId: any): void
      • Define additional steps taken when an existing placeable object of this type is deleted

        Parameters

        • options: any
        • userId: any

        Returns void

      • _canHUD(user: any, event: any): any
      • Can the User access the HUD for this Placeable Object?

        Parameters

        • user: any

          The User performing the action.

        • event: any

          The event object.

        Returns any

        The returned status.

      • _canConfigure(user: any, event: any): boolean
      • Does the User have permission to configure the Placeable Object?

        Parameters

        • user: any

          The User performing the action.

        • event: any

          The event object.

        Returns boolean

        The returned status.

      • _onClickRight(event: any): void
      • _onDragLeftMove(event: any): void
      • _onDragEnd(): void
      • 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

      • applyRenderFlags(): void
      • destroy(options: any): any
      • Refresh all incremental render flags for the PlaceableObject. This method is no longer used by the core software but provided for backwards compatibility.

        Parameters

        • options: any = {}

        Returns PlaceableObject

        The refreshed object

      • _updateQuadtree(): void
      • control(options?: { releaseOthers: boolean }): boolean
      • 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(options?: any): boolean
      • Release control over a PlaceableObject, removing it from the controlled set

        Parameters

        • options: any = {}

          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

      • _updateRotation(options?: { angle: number; delta: number; snap: number }): number
      • 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
          • delta: number
          • snap: number

        Returns number

        The new rotation angle for the object

      • _getShiftedPosition(dx: number, dy: number): { x: number; y: number }
      • Obtain a shifted position for the Placeable Object

        Parameters

        • dx: number

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

        • dy: number

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

        Returns { x: number; y: number }

        The shifted target coordinates

        • x: number
        • y: number
      • activateListeners(): void
      • can(user: User, action: string): boolean
      • 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?

      • _getTargetAlpha(): number
      • Get the target opacity that should be used for a Placeable Object depending on its preview state.

        Returns number

      • _onControl(options: any): void
      • Additional events which trigger once control of the object is established

        Parameters

        • options: any

          Optional parameters which apply for specific implementations

        Returns void

      • _onRelease(options: any): void
      • Additional events which trigger once control of the object is released

        Parameters

        • options: any

          Options which modify the releasing workflow

        Returns void

      • _canControl(user: User, event: any): boolean
      • Does the User have permission to control the Placeable Object?

        Parameters

        • user: User

          The User performing the action.

        • event: any

          The event object.

        Returns boolean

        The returned status.

      • _canView(user: User, event: any): boolean
      • Does the User have permission to view details of the Placeable Object?

        Parameters

        • user: User

          The User performing the action.

        • event: any

          The event object.

        Returns boolean

        The returned status.

      • _canCreate(user: User, event: any): boolean
      • Does the User have permission to create the underlying Document?

        Parameters

        • user: User

          The User performing the action.

        • event: any

          The event object.

        Returns boolean

        The returned status.

      • _canDrag(user: User, event: any): boolean
      • Does the User have permission to drag this Placeable Object?

        Parameters

        • user: User

          The User performing the action.

        • event: any

          The event object.

        Returns boolean

        The returned status.

      • _canHover(user: User, event: any): boolean
      • Does the User have permission to hover on this Placeable Object?

        Parameters

        • user: User

          The User performing the action.

        • event: any

          The event object.

        Returns boolean

        The returned status.

      • _canUpdate(user: User, event: any): boolean
      • Does the User have permission to update the underlying Document?

        Parameters

        • user: User

          The User performing the action.

        • event: any

          The event object.

        Returns boolean

        The returned status.

      • _canDelete(user: User, event: any): boolean
      • Does the User have permission to delete the underlying Document?

        Parameters

        • user: User

          The User performing the action.

        • event: any

          The event object.

        Returns boolean

        The returned status.

      • _onHoverIn(event: FederatedEvent, options?: { hoverOutOthers: boolean }): boolean
      • Actions that should be taken for this Placeable Object when a mouseover event occurs. Hover events on PlaceableObject instances allow event propagation by default.

        see

        MouseInteractionManager##handleMouseOver

        Parameters

        • event: FederatedEvent

          The triggering canvas interaction event

        • options: { hoverOutOthers: boolean } = {}

          Options which customize event handling

          • hoverOutOthers: boolean

        Returns boolean

        True if the event was handled, otherwise false

      • _onHoverOut(event: FederatedEvent): boolean
      • Actions that should be taken for this Placeable Object when a mouseout event occurs

        see

        MouseInteractionManager##handleMouseOut

        Parameters

        • event: FederatedEvent

          The triggering canvas interaction event

        Returns boolean

        True if the event was handled, otherwise false

      • _propagateLeftClick(event: FederatedEvent): boolean
      • _onClickLeft(event: FederatedEvent): void
      • Callback actions which occur on a single left-click event to assume control of the object

        see

        MouseInteractionManager##handleClickLeft

        Parameters

        • event: FederatedEvent

          The triggering canvas interaction event

        Returns void

      • _onClickLeft2(event: FederatedEvent): void
      • Callback actions which occur on a double left-click event to activate

        see

        MouseInteractionManager##handleClickLeft2

        Parameters

        • event: FederatedEvent

          The triggering canvas interaction event

        Returns void

      • _propagateRightClick(event: FederatedEvent): boolean
      • _onClickRight2(event: FederatedEvent): void
      • Callback actions which occur on a double right-click event to configure properties of the object

        see

        MouseInteractionManager##handleClickRight2

        Parameters

        • event: FederatedEvent

          The triggering canvas interaction event

        Returns void

      • _onDragLeftStart(event: FederatedEvent): any
      • Callback actions which occur when a mouse-drag action is first begun.

        see

        MouseInteractionManager##handleDragStart

        Parameters

        • event: FederatedEvent

          The triggering canvas interaction event

        Returns any

      • _onDragStart(): void
      • 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

      • _onDragLeftDrop(event: FederatedEvent): Promise<any>
      • Callback actions which occur on a mouse-move operation.

        see

        MouseInteractionManager##handleDragDrop

        Parameters

        • event: FederatedEvent

          The triggering canvas interaction event

        Returns Promise<any>

      • _onDragLeftCancel(event: FederatedEvent): any
      • Callback actions which occur on a mouse-move operation.

        see

        MouseInteractionManager##handleDragCancel

        Parameters

        • event: FederatedEvent

          The triggering mouse click event

        Returns any

      • _onLongPress(event: FederatedEvent, origin: Point): any
      • Callback action which occurs on a long press.

        see

        MouseInteractionManager##handleLongPress

        Parameters

        • event: FederatedEvent

          The triggering canvas interaction event

        • origin: Point

          The local canvas coordinates of the mousepress.

        Returns any

      • Create a Sound used to play this AmbientSound object

        Returns Sound

      • Draw the ControlIcon for the AmbientLight

        Returns ControlIcon

      • #refreshField(): void
      • Refresh the shape of the sound field-of-effect. This is refreshed when the SoundSource fov polygon changes.

        Returns void

      • #refreshPosition(): void
      • Refresh the position of the AmbientSound. Called with the coordinates change.

        Returns void

      • #refreshState(): void
      • Refresh the state of the light. Called when the disabled state or darkness conditions change.

        Returns void