gg-world overview
Table of contents
- utils
- AudioTypeDocRepo (type alias)
- GgWorld (class)
- init (method)
- start (method)
- pauseWorld (method)
- resumeWorld (method)
- createClock (method)
- dispose (method)
- addPrimitiveRigidBody (method)
- addEntity (method)
- removeEntity (method)
- getEntityByName (method)
- maybeBindAudioListener (method)
- onGgStaticInitialized (method)
- registerConsoleCommands (method)
- visualScene (property)
- physicsWorld (property)
- audioScene (property)
- worldClock (property)
- keyboardInput (property)
- name (property)
- children (property)
- tickListeners (property)
- tickStarted$ (property)
- tickForwardTo$ (property)
- tickForwardedTo$ (property)
- paused$ (property)
- disposed$ (property)
- GgWorldSceneTypeDocAPatch (type alias)
- GgWorldSceneTypeDocPPatch (type alias)
- GgWorldSceneTypeDocVPatch (type alias)
- GgWorldSceneTypeRepo (type alias)
- GgWorldTypeDocAPatch (type alias)
- GgWorldTypeDocPPatch (type alias)
- GgWorldTypeDocRepo (type alias)
- GgWorldTypeDocVPatch (type alias)
- PhysicsTypeDocRepo (type alias)
- SceneTypeDocOf (type alias)
- TypeDocOf (type alias)
- VisualTypeDocRepo (type alias)
utils
AudioTypeDocRepo (type alias)
Signature
export type AudioTypeDocRepo<D, R> = {
factory: IAudioSourceComponentFactory<D, R>
source: IAudioSourceComponent<D, R>
clip: unknown
}
GgWorld (class)
Signature
export declare class GgWorld<D, R, TypeDoc, SceneTypeDoc> {
protected constructor(args: {
visualScene?: SceneTypeDoc['visualScene']
physicsWorld?: SceneTypeDoc['physicsWorld']
audioScene?: SceneTypeDoc['audioScene']
})
}
init (method)
Signature
public async init()
start (method)
Signature
public start()
pauseWorld (method)
Signature
public pauseWorld()
resumeWorld (method)
Signature
public resumeWorld()
createClock (method)
Signature
public createClock(autoStart: boolean): PausableClock
dispose (method)
Signature
public dispose(): void
addPrimitiveRigidBody (method)
Signature
abstract addPrimitiveRigidBody(
descr: unknown, // type defined in subclasses
position?: D,
rotation?: R,
material?: unknown, // type defined in subclasses
): IPositionable<D, R> & IRenderableEntity<D, R, TypeDoc>;
addEntity (method)
Signature
public addEntity(entity: IEntity): void
removeEntity (method)
Signature
public removeEntity(entity: IEntity, dispose = false): void
getEntityByName (method)
Find an entity anywhere in the world by name. children is a flat list of every entity ever
added via addEntity (nested entities included - addChildren/onSpawned cascade into it
too), so this is a plain linear scan, not a tree walk; to search inside one particular
entity's own subtree instead, use IEntity.getChildEntityByName.
Signature
public getEntityByName<T extends IEntity = IEntity>(name: string): T
maybeBindAudioListener (method)
Signature
private maybeBindAudioListener(entity: IEntity): void
onGgStaticInitialized (method)
Signature
private onGgStaticInitialized()
registerConsoleCommands (method)
Signature
protected registerConsoleCommands(ggstatic: {
registerConsoleCommand: (
world: GgWorld<any, any> | null,
command: string,
handler: (...args: string[]) => Promise<string>,
doc?: string,
) => void;
})
visualScene (property)
Signature
readonly visualScene: SceneTypeDoc["visualScene"]
physicsWorld (property)
Signature
readonly physicsWorld: SceneTypeDoc["physicsWorld"]
audioScene (property)
Signature
readonly audioScene: SceneTypeDoc["audioScene"]
worldClock (property)
Signature
readonly worldClock: PausableClock
keyboardInput (property)
Signature
readonly keyboardInput: KeyboardInput
name (property)
Signature
name: string
children (property)
Signature
readonly children: IEntity<any, any, GgWorldTypeDocRepo<any, any>>[]
tickListeners (property)
Signature
readonly tickListeners: IEntity<any, any, GgWorldTypeDocRepo<any, any>>[]
tickStarted$ (property)
Signature
readonly tickStarted$: any
tickForwardTo$ (property)
Signature
readonly tickForwardTo$: any
tickForwardedTo$ (property)
Signature
readonly tickForwardedTo$: any
paused$ (property)
Signature
readonly paused$: any
disposed$ (property)
Signature
readonly disposed$: any
GgWorldSceneTypeDocAPatch (type alias)
Signature
export type GgWorldSceneTypeDocAPatch<
D,
R,
ATypeDoc extends AudioTypeDocRepo<D, R>,
AS extends IAudioSceneComponent<D, R, ATypeDoc> | null
> = Omit<GgWorldSceneTypeRepo<D, R>, 'audioScene'> & { audioScene: AS }
GgWorldSceneTypeDocPPatch (type alias)
Signature
export type GgWorldSceneTypeDocPPatch<
D,
R,
PTypeDoc extends PhysicsTypeDocRepo<D, R>,
PW extends IPhysicsWorldComponent<D, R, PTypeDoc> | null
> = Omit<GgWorldSceneTypeRepo<D, R>, 'physicsWorld'> & { physicsWorld: PW }
GgWorldSceneTypeDocVPatch (type alias)
Signature
export type GgWorldSceneTypeDocVPatch<
D,
R,
VTypeDoc extends VisualTypeDocRepo2D,
VS extends IVisualScene2dComponent<VTypeDoc> | null
> = Omit<GgWorldSceneTypeRepo<D, R>, 'visualScene'> & { visualScene: VS }
GgWorldSceneTypeRepo (type alias)
Signature
export type GgWorldSceneTypeRepo<D, R, TypeDoc extends GgWorldTypeDocRepo<D, R> = GgWorldTypeDocRepo<D, R>> = {
visualScene: IVisualSceneComponent<D, R, TypeDoc['vTypeDoc']> | null
physicsWorld: IPhysicsWorldComponent<D, R, TypeDoc['pTypeDoc']> | null
audioScene: IAudioSceneComponent<D, R, TypeDoc['aTypeDoc']> | null
}
GgWorldTypeDocAPatch (type alias)
Signature
export type GgWorldTypeDocAPatch<D, R, ATypeDoc extends AudioTypeDocRepo<D, R>> = Omit<
GgWorldTypeDocRepo<D, R>,
'aTypeDoc'
> & {
aTypeDoc: ATypeDoc
}
GgWorldTypeDocPPatch (type alias)
Signature
export type GgWorldTypeDocPPatch<D, R, PTypeDoc extends PhysicsTypeDocRepo<D, R>> = Omit<
GgWorldTypeDocRepo<D, R>,
'pTypeDoc'
> & {
pTypeDoc: PTypeDoc
}
GgWorldTypeDocRepo (type alias)
Signature
export type GgWorldTypeDocRepo<D, R> = {
vTypeDoc: VisualTypeDocRepo<D, R>
pTypeDoc: PhysicsTypeDocRepo<D, R>
aTypeDoc: AudioTypeDocRepo<D, R>
}
GgWorldTypeDocVPatch (type alias)
Signature
export type GgWorldTypeDocVPatch<D, R, VTypeDoc extends VisualTypeDocRepo<D, R>> = Omit<
GgWorldTypeDocRepo<D, R>,
'vTypeDoc'
> & {
vTypeDoc: VTypeDoc
}
PhysicsTypeDocRepo (type alias)
Signature
export type PhysicsTypeDocRepo<D, R> = {
factory: unknown
rigidBody: IRigidBodyComponent<D, R>
trigger: ITriggerComponent<D, R>
}
SceneTypeDocOf (type alias)
Signature
export type SceneTypeDocOf<W extends GgWorld<any, any>> = W extends GgWorld<
infer D,
infer R,
infer TypeDoc,
infer SceneTypeDoc
>
? SceneTypeDoc
: never
TypeDocOf (type alias)
Signature
export type TypeDocOf<W extends GgWorld<any, any>> = W extends GgWorld<infer D, infer R, infer TypeDoc>
? TypeDoc
: never
VisualTypeDocRepo (type alias)
Signature
export type VisualTypeDocRepo<D, R> = {
factory: unknown
displayObject: IDisplayObjectComponent<D, R>
renderer: IRendererComponent<D, R>
rendererExtraOpts: {}
camera: IPositionable<D, R>
}