mylingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
52 lines (48 loc) • 1.17 kB
text/typescript
import IPositioned, {
positionedDefaults,
positionedSchema
} from "./IPositioned"
import Defaults from "./utils/Defaults"
import { ExtractProps } from "./utils/extractProps"
import Nullable from "./utils/Nullable"
export default interface IAudio extends IPositioned {
src: Nullable<string>
autoplay: boolean
paused: boolean
stopped: boolean
loop: boolean
volume: number
playbackRate: number
distance: number
distanceModel: string
maxDistance: number
rolloffFactor: number
}
export const audioSchema: Required<ExtractProps<IAudio>> = {
...positionedSchema,
src: String,
autoplay: Boolean,
paused: Boolean,
stopped: Boolean,
loop: Boolean,
volume: Number,
playbackRate: Number,
distance: Number,
distanceModel: String,
maxDistance: Number,
rolloffFactor: Number
}
export const audioDefaults: Defaults<IAudio> = {
...positionedDefaults,
src: undefined,
autoplay: false,
paused: false,
stopped: false,
loop: false,
volume: 1,
playbackRate: 1,
distance: 1,
maxDistance: 10000,
distanceModel: "inverse",
rolloffFactor: 1
}