Skip to main content

Class: BaseGameObject<VariablesType>

Defined in: gameObjects/baseGameObject.ts:34

Base class for all game entities in the text game engine.

Provides automatic registration with the Game registry, reactive state management via Valtio proxies, and persistence through the Storage system using JSONPath.

Example

class Player extends BaseGameObject<{ health: number; name: string }> {
constructor() {
super({
id: 'player',
variables: { health: 100, name: 'Hero' }
});
}

takeDamage(amount: number) {
this._variables.health -= amount;
this.save();
}
}

const player = new Player();

Type Parameters

VariablesType

VariablesType extends InitVarsType = InitVarsType

The type definition for entity variables, must extend InitVarsType

Constructors

Constructor

new BaseGameObject<VariablesType>(props): BaseGameObject<VariablesType>

Defined in: gameObjects/baseGameObject.ts:56

Creates a new game object and automatically registers it with the Game registry.

Parameters

props

Configuration object for the game object

id

string

Unique identifier for this object

variables?

VariablesType

Optional initial variables for this object

Returns

BaseGameObject<VariablesType>

Properties

_variables

protected _variables: VariablesType

Defined in: gameObjects/baseGameObject.ts:47

Internal storage for entity variables. Protected to allow derived classes to modify state directly.


id

readonly id: string

Defined in: gameObjects/baseGameObject.ts:41

Unique identifier for this game object. Used for registry lookup and storage path generation.

Accessors

variables

Get Signature

get variables(): VariablesType

Defined in: gameObjects/baseGameObject.ts:67

Read-only accessor for entity variables.

Returns

VariablesType

The current variables object for this entity

Methods

load()

load(): void

Defined in: gameObjects/baseGameObject.ts:92

Loads this object's variables from the Storage system.

If saved data exists, it merges into the current variables. If no saved data exists, clears all variables.

Returns

void

Example

player.load(); // Restores player state from storage

save()

save(): void

Defined in: gameObjects/baseGameObject.ts:114

Saves this object's current variables to the Storage system.

Uses Valtio's snapshot to create a plain object copy before saving.

Returns

void

Example

player._variables.health = 50;
player.save(); // Persists the change