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

Hierarchy (view full)

Properties

sound: any

The Sound which manages playback for this AmbientSound effect

source: PointSoundSource

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

field: Graphics

The area that is affected by this ambient sound.

controlIcon: ControlIcon

A control icon for interacting with the object

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

mouseInteractionManager: MouseInteractionManager

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

#baseEffect: BaseSoundEffect

A sound effect attached to the managed Sound instance.

#muffledEffect: BaseSoundEffect

A sound effect attached to the managed Sound instance when the sound source is muffled.

#effectsInitialized: boolean = false

Track whether audio effects have been initialized.

#muffled: boolean = false

Is this AmbientSound currently muffled?

#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 = "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: {};
    refreshElevation: {};
} = ...

Type declaration

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

        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

        • 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 radius(): number
        • A convenience accessor for the sound radius in pixels

          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

        • Update the set of effects which are applied to the managed Sound.

          Parameters

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

              Is the sound currently muffled?

          Returns void

        • Toggle playback of the sound depending on whether it is audible.

          Parameters

          • isAudible: boolean

            Is the sound audible?

          • Optional volume: number

            The target playback volume

          • Optional options: {
                fade: number;
                muffled: boolean;
            } = {}

            Additional options which affect sound synchronization

            • fade: number

              A duration in milliseconds to fade volume transition

            • muffled: boolean

              Is the sound current muffled?

          Returns Promise<void>

          A promise which resolves once sound playback is synchronized

        • Parameters

          • options: any

          Returns Promise<void>

        • Refresh the display of the ControlIcon for this AmbientSound source.

          Returns void

        • Compute the field-of-vision for an object, determining its effective line-of-sight and field-of-vision polygons

          Parameters

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

            Options which modify how the audio source is updated

            • deleted: boolean

              Indicate that this SoundSource has been deleted.

          Returns 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

        • 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

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

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

        • 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

        • 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

          Create a Sound used to play this AmbientSound object

          Returns any

        • Protected

          Refresh the shape of the sound field-of-effect. This is refreshed when the SoundSource fov polygon changes.

          Returns void

        • Protected

          Refresh the position of the AmbientSound. Called with the coordinates change.

          Returns void

        • Protected

          Refresh the state of the light. Called when the disabled state or darkness conditions change.

          Returns void

        • Protected

          Refresh the elevation of the control icon.

          Returns void

        • Protected

          Get the sound source data.

          Returns BaseEffectSourceData

        • Protected Internal

          Is this PlaceableObject within the selection rectangle?

          Parameters

          • rectangle: Rectangle

            The selection rectangle

          Returns any

        • 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

          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-click event to assume control of the object

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns void

          See

          MouseInteractionManager##handleClickLeft

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

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

          Parameters

          • event: FederatedEvent

            The triggering canvas interaction event

          Returns void

          See

          MouseInteractionManager##handleDragStart

        • 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 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 special effect nodes for the Sound. This only happens once the first time the AmbientSound is synced and again if the effect data changes.

          Returns void

        • Create a new point sound source for this AmbientSound.

          Returns PointSoundSource

          The created source

        • Destroy the point sound source for this AmbientSound.

          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>