Skip to content

gg-world overview


Table of contents


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