Skip to content

@relu-interactives/spatial-ecs


@relu-interactives/spatial-ecs / index / World

Class: World

Defined in: World.ts:59

Constructors

Constructor

ts
new World(options): World;

Defined in: World.ts:90

Parameters

ParameterType
options{ scene: Scene; camera: PerspectiveCamera; renderer: WebGLRenderer; featureFlags?: WorldFeatureFlags; }
options.sceneScene
options.cameraPerspectiveCamera
options.rendererWebGLRenderer
options.featureFlags?WorldFeatureFlags

Returns

World

Methods

createEntity()

ts
createEntity(): number;

Defined in: World.ts:109

Returns

number


destroyEntity()

ts
destroyEntity(entityId): void;

Defined in: World.ts:117

Parameters

ParameterType
entityIdnumber

Returns

void


hasEntity()

ts
hasEntity(entityId): boolean;

Defined in: World.ts:144

Parameters

ParameterType
entityIdnumber

Returns

boolean


getEntities()

ts
getEntities(): number[];

Defined in: World.ts:148

Returns

number[]


getEntityCount()

ts
getEntityCount(): number;

Defined in: World.ts:152

Returns

number


addComponent()

ts
addComponent<T>(entityId, component): void;

Defined in: World.ts:156

Type Parameters

Type Parameter
T extends Component

Parameters

ParameterType
entityIdnumber
componentT

Returns

void


addComponents()

ts
addComponents<T>(entityId, components): void;

Defined in: World.ts:171

Type Parameters

Type Parameter
T extends Component

Parameters

ParameterType
entityIdnumber
componentsT[]

Returns

void


removeComponent()

ts
removeComponent<T>(entityId, componentType): void;

Defined in: World.ts:192

Type Parameters

Type Parameter
T extends Component

Parameters

ParameterType
entityIdnumber
componentTypeComponentClass<T>

Returns

void


getComponent()

ts
getComponent<T>(entityId, componentType): T | undefined;

Defined in: World.ts:200

Type Parameters

Type Parameter
T extends Component

Parameters

ParameterType
entityIdnumber
componentTypeComponentClass<T>

Returns

T | undefined


hasComponent()

ts
hasComponent<T>(entityId, componentType): boolean;

Defined in: World.ts:207

Type Parameters

Type Parameter
T extends Component

Parameters

ParameterType
entityIdnumber
componentTypeComponentClass<T>

Returns

boolean


query()

ts
query(...componentTypes): number[];

Defined in: World.ts:214

Parameters

ParameterType
...componentTypesComponentClass<Component>[]

Returns

number[]


isEntityVisible()

ts
isEntityVisible(entityId): boolean;

Defined in: World.ts:228

Returns true if the entity is currently visible (its Object3DRef.visibility is true), or if the entity has no Object3DRef component (entities without a scene object are always considered active). Systems use this to skip per-entity updates for hidden objects.

Parameters

ParameterType
entityIdnumber

Returns

boolean


getInputSystem()

ts
getInputSystem(): EcsSystem | null;

Defined in: World.ts:233

Returns

EcsSystem | null


getKeyDown()

ts
getKeyDown(key): boolean;

Defined in: World.ts:245

Parameters

ParameterType
keyKeyboardKey

Returns

boolean


getKeyUp()

ts
getKeyUp(key): boolean;

Defined in: World.ts:254

Parameters

ParameterType
keyKeyboardKey

Returns

boolean


getKey()

ts
getKey(key): boolean;

Defined in: World.ts:263

Parameters

ParameterType
keyKeyboardKey

Returns

boolean


getMouse()

ts
getMouse(button): boolean;

Defined in: World.ts:272

Parameters

ParameterType
buttonstring | number

Returns

boolean


getMouseDown()

ts
getMouseDown(button): boolean;

Defined in: World.ts:281

Parameters

ParameterType
buttonstring | number

Returns

boolean


getMouseUp()

ts
getMouseUp(button): boolean;

Defined in: World.ts:290

Parameters

ParameterType
buttonstring | number

Returns

boolean


getScrollClick()

ts
getScrollClick(): boolean;

Defined in: World.ts:299

Returns

boolean


getScrollClickDown()

ts
getScrollClickDown(): boolean;

Defined in: World.ts:308

Returns

boolean


getScrollClickUp()

ts
getScrollClickUp(): boolean;

Defined in: World.ts:317

Returns

boolean


getScrollDelta()

ts
getScrollDelta(): {
  x: number;
  y: number;
};

Defined in: World.ts:326

Returns

ts
{
  x: number;
  y: number;
}
NameTypeDefined in
xnumberWorld.ts:326
ynumberWorld.ts:326

consumeScrollDelta()

ts
consumeScrollDelta(): {
  x: number;
  y: number;
};

Defined in: World.ts:335

Returns

ts
{
  x: number;
  y: number;
}
NameTypeDefined in
xnumberWorld.ts:335
ynumberWorld.ts:335

getMousePosition()

ts
getMousePosition(): {
  x: number;
  y: number;
};

Defined in: World.ts:344

Returns

ts
{
  x: number;
  y: number;
}
NameTypeDefined in
xnumberWorld.ts:344
ynumberWorld.ts:344

getMouseDelta()

ts
getMouseDelta(): {
  x: number;
  y: number;
};

Defined in: World.ts:353

Returns

ts
{
  x: number;
  y: number;
}
NameTypeDefined in
xnumberWorld.ts:353
ynumberWorld.ts:353

consumeMouseDelta()

ts
consumeMouseDelta(): {
  x: number;
  y: number;
};

Defined in: World.ts:362

Returns

ts
{
  x: number;
  y: number;
}
NameTypeDefined in
xnumberWorld.ts:362
ynumberWorld.ts:362

getRapierModule()

ts
getRapierModule(): Promise<__module>;

Defined in: World.ts:371

Returns

Promise<__module>


getPhysicsWorld()

ts
getPhysicsWorld(): World | null;

Defined in: World.ts:389

Returns

World | null


setPhysicsWorld()

ts
setPhysicsWorld(physicsWorld): void;

Defined in: World.ts:393

Parameters

ParameterType
physicsWorldWorld | null

Returns

void


createPhysicsWorld()

ts
createPhysicsWorld(options?): Promise<World | null>;

Defined in: World.ts:397

Parameters

ParameterType
options?{ gravity?: { x?: number; y?: number; z?: number; }; }
options.gravity?{ x?: number; y?: number; z?: number; }
options.gravity.x?number
options.gravity.y?number
options.gravity.z?number

Returns

Promise<World | null>


lockMousePointer()

ts
lockMousePointer(): boolean;

Defined in: World.ts:416

Returns

boolean


unlockMousePointer()

ts
unlockMousePointer(): boolean;

Defined in: World.ts:447

Returns

boolean


isMousePointerLocked()

ts
isMousePointerLocked(): boolean;

Defined in: World.ts:468

Returns

boolean


getSystem()

ts
getSystem<T>(system): T;

Defined in: World.ts:484

Type Parameters

Type Parameter
T extends EcsSystem

Parameters

ParameterType
systemT

Returns

T


hasSystem()

ts
hasSystem<T>(system): boolean;

Defined in: World.ts:501

Type Parameters

Type Parameter
T extends EcsSystem

Parameters

ParameterType
systemT

Returns

boolean


addSystem()

ts
addSystem(system): void;

Defined in: World.ts:510

Parameters

ParameterType
systemEcsSystem

Returns

void


addSystems()

ts
addSystems(systems): void;

Defined in: World.ts:514

Parameters

ParameterType
systemsEcsSystem[]

Returns

void


setup()

ts
setup(__namedParameters): {
  objectManagementSystem: ObjectManagementSystem;
  transformSyncSystem: TransformSyncSystem;
  renderSystem: RenderSystem;
};

Defined in: World.ts:520

Parameters

ParameterType
__namedParameters{ systems: EcsSystem[]; isEditor?: boolean; }
__namedParameters.systemsEcsSystem[]
__namedParameters.isEditor?boolean

Returns

ts
{
  objectManagementSystem: ObjectManagementSystem;
  transformSyncSystem: TransformSyncSystem;
  renderSystem: RenderSystem;
}
NameTypeDefined in
objectManagementSystemObjectManagementSystemWorld.ts:521
transformSyncSystemTransformSyncSystemWorld.ts:522
renderSystemRenderSystemWorld.ts:523

isEditorMode()

ts
isEditorMode(): boolean;

Defined in: World.ts:608

Returns

boolean


pause()

ts
pause(): void;

Defined in: World.ts:619

Pauses world simulation. While paused, update() skips all system ticks so physics, animation, scripts, and rendering stop advancing. The last rendered frame remains frozen on-screen.

Call resume to continue.

Returns

void


resume()

ts
resume(): void;

Defined in: World.ts:627

Resumes world simulation after a previous pause call. Has no effect if the world is not paused.

Returns

void


isPaused()

ts
isPaused(): boolean;

Defined in: World.ts:641

Returns true if the world is currently paused.

Returns

boolean

Example

ts
if (this.world.isPaused()) {
  this.world.resume();
}

getScene()

ts
getScene(): Scene;

Defined in: World.ts:645

Returns

Scene


getCamera()

ts
getCamera(): PerspectiveCamera;

Defined in: World.ts:649

Returns

PerspectiveCamera


getRenderer()

ts
getRenderer(): WebGLRenderer;

Defined in: World.ts:653

Returns

WebGLRenderer


update()

ts
update(deltaTime): void;

Defined in: World.ts:657

Parameters

ParameterType
deltaTimenumber

Returns

void


dispose()

ts
dispose(): void;

Defined in: World.ts:664

Returns

void


setSelectedEntity()

ts
setSelectedEntity(entityId): void;

Defined in: World.ts:676

Parameters

ParameterType
entityIdnumber | null

Returns

void


getSelectedEntity()

ts
getSelectedEntity(): number | null;

Defined in: World.ts:698

Returns

number | null


getEntitiesByComponent()

ts
getEntitiesByComponent(component): WorldEntityView[];

Defined in: World.ts:758

Parameters

ParameterType
componentComponent

Returns

WorldEntityView[]


getEntitiesByName()

ts
getEntitiesByName(name): WorldEntityView[];

Defined in: World.ts:772

Parameters

ParameterType
namestring

Returns

WorldEntityView[]


getEntityByName()

ts
getEntityByName(name): WorldEntityView | null;

Defined in: World.ts:781

Parameters

ParameterType
namestring

Returns

WorldEntityView | null


getEntityById()

ts
getEntityById(entityId): WorldEntityView | null;

Defined in: World.ts:786

Parameters

ParameterType
entityIdnumber

Returns

WorldEntityView | null


getObjectManagementSystem()

ts
getObjectManagementSystem(): ObjectManagementSystem;

Defined in: World.ts:794

Returns

ObjectManagementSystem


getEnvironmentComponent()

ts
getEnvironmentComponent(): Environment | undefined;

Defined in: World.ts:822

Returns the singleton Environment component for the scene, or undefined if no environment entity exists yet.

Mutate component.values directly to change skybox, fog, or gravity at runtime — EnvironmentSyncSystem picks up the changes next frame.

Returns

Environment | undefined

Example

ts
const env = this.world.getEnvironmentComponent();
if (env) {
  env.values.fog.type = "exponential";
  env.values.fog.exponential.density = 0.01;
}

getPostprocessingComponent()

ts
getPostprocessingComponent(): 
  | Postprocessing
  | undefined;

Defined in: World.ts:845

Returns the singleton Postprocessing component for the scene, or undefined if no postprocessing entity exists yet.

Mutate component.values directly to enable/disable effects or tweak parameters at runtime — PostprocessingSyncSystem picks up the changes next frame.

Returns

| Postprocessing | undefined

Example

ts
const pp = this.world.getPostprocessingComponent();
if (pp) {
  pp.values.bloom.enabled = true;
  pp.values.bloom.intensity = 2.0;
}

raycast()

ts
raycast(
   origin, 
   direction, 
   near?, 
   far?): IntersectionResult[];

Defined in: World.ts:875

Cast a ray from origin along direction and return every intersected entity-bound mesh, sorted by distance. Each result is a standard THREE.Intersection augmented with the owning entityId (or null if the hit object is not part of any tracked entity).

Parameters

ParameterTypeDefault valueDescription
originVec3undefinedWorld-space origin of the ray (THREE.Vector3 or { x, y, z }).
directionVec3undefinedWorld-space direction of the ray. Will be normalized internally; magnitude is ignored.
nearnumber0Minimum hit distance from the origin. Defaults to 0.
farnumberInfinityMaximum hit distance from the origin. Defaults to Infinity.

Returns

IntersectionResult[]

Example

ts
const hits = world.raycast(
  { x: 0, y: 1, z: 0 },
  { x: 0, y: 0, z: -1 },
);
if (hits[0]?.entityId !== null) {
  console.log("hit entity", hits[0].entityId, "at", hits[0].point);
}

raycastFrom()

ts
raycastFrom(
   entityId, 
   near?, 
   far?): IntersectionResult[];

Defined in: World.ts:926

Cast a ray from an entity's world-space position along its forward direction (the +Z axis of its world matrix). Returns intersected entity-bound meshes sorted by distance, with the source entity itself filtered out so the ray does not hit the caster.

Parameters

ParameterTypeDefault valueDescription
entityIdnumberundefinedEntity to cast the ray from. Must have an Object3DRef.
nearnumber0Minimum hit distance from the origin. Defaults to 0.
farnumberInfinityMaximum hit distance from the origin. Defaults to Infinity.

Returns

IntersectionResult[]

Example

ts
const hits = world.raycastFrom(this.entityId, 0, 50);
const closest = hits[0];
if (closest && closest.entityId !== null) {
  console.log("looking at", closest.entityId);
}

getEntityScript()

ts
getEntityScript<T>(entityId): T | null;

Defined in: World.ts:1009

Type Parameters

Type ParameterDefault type
Tunknown

Parameters

ParameterType
entityIdnumber

Returns

T | null


getScripts()

ts
getScripts<T>(className): T[];

Defined in: World.ts:1022

Type Parameters

Type ParameterDefault type
Tunknown

Parameters

ParameterType
classNamestring

Returns

T[]


getScript()

ts
getScript<T>(className): T | null;

Defined in: World.ts:1063

Type Parameters

Type ParameterDefault type
Tunknown

Parameters

ParameterType
classNamestring

Returns

T | null


getAllEntities()

ts
getAllEntities(): WorldEntityView[];

Defined in: World.ts:1068

Returns

WorldEntityView[]


onSelectionChanged()

ts
onSelectionChanged(listener): () => void;

Defined in: World.ts:1074

Parameters

ParameterType
listenerSelectionListener

Returns

() => void


subscribe()

ts
subscribe(listener): () => void;

Defined in: World.ts:1082

Parameters

ParameterType
listenerStoreListener

Returns

() => void


getDebugSnapshot()

ts
getDebugSnapshot(maxDepth?): unknown;

Defined in: World.ts:1090

Parameters

ParameterTypeDefault value
maxDepthnumber3

Returns

unknown


getDebugSignature()

ts
getDebugSignature(maxDepth?): string;

Defined in: World.ts:1140

Parameters

ParameterTypeDefault value
maxDepthnumber3

Returns

string


createHistorySnapshot()

ts
createHistorySnapshot(): WorldHistorySnapshot;

Defined in: World.ts:1144

Returns

WorldHistorySnapshot


applyHistorySnapshot()

ts
applyHistorySnapshot(snapshot): void;

Defined in: World.ts:1165

Parameters

ParameterType
snapshotWorldHistorySnapshot

Returns

void