Class: alife_simulator
Access point for ALife simulation objects and registries.
Source
C++ class alife_simulator
Custom Constructor
alife_simulator
Remarks
This is the active single-player ALife simulator. Most methods expect ids that are already registered in ALife.
Constructors
Constructor
new alife_simulator(): alife_simulator;Returns
alife_simulator
Methods
actor()
actor<T>(): T;Get the ALife actor server object.
Type Parameters
| Type Parameter |
|---|
T extends cse_alife_creature_actor |
Returns
T
Actor object registered in the ALife graph.
Throws
If no active ALife simulator exists.
add_in_restriction()
add_in_restriction(monster: cse_alife_monster_abstract, restrictorId: number): void;Add an inside-space restriction to an offline monster.
Parameters
| Parameter | Type | Description |
|---|---|---|
monster | cse_alife_monster_abstract | Monster server object to restrict. |
restrictorId | number | Restrictor object id. |
Returns
void
Remarks
monster must be a registered monster server object. restrictorId should point to a space restrictor.
add_out_restriction()
add_out_restriction(monster: cse_alife_monster_abstract, restrictorId: number): void;Add an outside-space restriction to an offline monster.
Parameters
| Parameter | Type | Description |
|---|---|---|
monster | cse_alife_monster_abstract | Monster server object to restrict. |
restrictorId | number | Restrictor object id. |
Returns
void
Remarks
monster must be a registered monster server object. restrictorId should point to a space restrictor.
clone_weapon()
Call Signature
clone_weapon(
object: cse_abstract,
section: string,
position: vector,
level_vertex_id: number,
game_vertex_id: number,
parent_id: number): Nullable<cse_abstract>;Clone a registered magazined weapon server object.
Parameters
| Parameter | Type | Description |
|---|---|---|
object | cse_abstract | Source server weapon object. |
section | string | Section to spawn for the clone. |
position | vector | Clone position. |
level_vertex_id | number | Clone level vertex id. |
game_vertex_id | number | Clone game graph vertex id. |
parent_id | number | Parent object id, or 65535 for no parent. |
Returns
Nullable<cse_abstract>
Spawned clone object, or null.
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
Source
src/xrGame/alife_simulator_script.cpp, alife_simulator.clone_weapon binding.
Remarks
Returns null when the source object is not a magazined weapon or when the clone cannot be spawned as a magazined weapon. By default the clone is reprocessed through the spawn packet path and registered.
Call Signature
clone_weapon(
object: cse_abstract,
section: string,
position: vector,
level_vertex_id: number,
game_vertex_id: number,
parent_id: number,
should_register: boolean): Nullable<cse_abstract>;Clone a registered magazined weapon server object with explicit registration control.
Parameters
| Parameter | Type | Description |
|---|---|---|
object | cse_abstract | Source server weapon object. |
section | string | Section to spawn for the clone. |
position | vector | Clone position. |
level_vertex_id | number | Clone level vertex id. |
game_vertex_id | number | Clone game graph vertex id. |
parent_id | number | Parent object id, or 65535 for no parent. |
should_register | boolean | Whether to reprocess and register the cloned object before returning it. |
Returns
Nullable<cse_abstract>
Spawned clone object, or null.
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
Source
src/xrGame/alife_simulator_script.cpp, alife_simulator.clone_weapon binding.
create()
Call Signature
create<T>(spawn_id: number): T;Create an object from a spawn graph id.
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends cse_alife_object | cse_alife_object |
Parameters
| Parameter | Type | Description |
|---|---|---|
spawn_id | number | Spawn graph id. |
Returns
T
Created server object.
Throws
If spawn_id does not exist or does not resolve to a dynamic ALife object.
Call Signature
create<T>(
section: string,
position: vector,
level_vertex_id: number,
game_vertex_id: number,
parent_object_id?: number): T;Spawn a server object by section.
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends cse_alife_object | cse_alife_object |
Parameters
| Parameter | Type | Description |
|---|---|---|
section | string | Object section name. |
position | vector | Spawn position. |
level_vertex_id | number | Level vertex id at the spawn position. |
game_vertex_id | number | Game graph vertex id at the spawn position. |
parent_object_id? | number | Optional parent inventory or container id. |
Returns
T
Created server object, or null when a non-empty parent id is invalid.
Remarks
If a non-empty parent id is invalid, the engine logs the error and returns null.
Call Signature
create<T>(
section: string,
position: vector,
level_vertex_id: number,
game_vertex_id: number,
parent_object_id: number,
reg: boolean): T;Spawn a server object and optionally defer network registration.
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends cse_alife_object | cse_alife_object |
Parameters
| Parameter | Type | Description |
|---|---|---|
section | string | Object section name. |
position | vector | Spawn position. |
level_vertex_id | number | Level vertex id at the spawn position. |
game_vertex_id | number | Game graph vertex id at the spawn position. |
parent_object_id | number | Parent inventory or container id. |
reg | boolean | Whether to register the object immediately. |
Returns
T
Created server object, or null when a non-empty parent id is invalid.
Remarks
Passing reg = false returns the unregistered server object so scripts can edit its packet before registering it manually. If a non-empty parent id is invalid, the engine logs the error and returns null.
create_ammo()
create_ammo(
section: string,
position: vector,
level_vertex_id: number,
game_vertex_id: number,
parent_object_id: number,
count: number): cse_abstract;Spawn ammo with a custom amount left in the box.
Parameters
| Parameter | Type | Description |
|---|---|---|
section | string | Ammo section name. |
position | vector | Spawn position. |
level_vertex_id | number | Level vertex id at the spawn position. |
game_vertex_id | number | Game graph vertex id at the spawn position. |
parent_object_id | number | Parent inventory or container id, or 65535 for no parent. |
count | number | Amount of ammo in the spawned box. |
Returns
Spawned server object, or null when a non-empty parent id is invalid.
Remarks
The section must spawn a server ammo object, and count must not exceed the ammo box size.
Throws
If the spawned section is not ammo, or if count is larger than the box size.
dont_has_info()
dont_has_info(object_id: number, info_id: string): boolean;Check that an object does not know an info portion.
Parameters
| Parameter | Type | Description |
|---|---|---|
object_id | number | ALife object id. |
info_id | string | Info portion id. |
Returns
boolean
Whether the object does not have the info portion.
get_children()
get_children(object: cse_abstract): LuaIterable<number>;Get child object ids for a server object.
Parameters
| Parameter | Type | Description |
|---|---|---|
object | cse_abstract | Server object whose child id list should be exposed. |
Returns
LuaIterable<number>
Iterable child object ids.
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
Source
src/xrGame/alife_simulator_script.cpp, alife_simulator.get_children binding.
has_info()
has_info(object_id: number, info_id: string): boolean;Check that an object knows an info portion.
Parameters
| Parameter | Type | Description |
|---|---|---|
object_id | number | ALife object id. |
info_id | string | Info portion id. |
Returns
boolean
Whether the object has the info portion.
iterate_info()
iterate_info(object_id: number, cb: (this: void, object_id: number, info_id: string) => void): void;Iterate info portions known by an ALife object.
Parameters
| Parameter | Type | Description |
|---|---|---|
object_id | number | ALife object id. |
cb | (this: void, object_id: number, info_id: string) => void | Callback called with the object id and each known info portion id. |
Returns
void
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
Source
src/xrGame/alife_simulator_script.cpp, alife_simulator.iterate_info binding.
Remarks
Does nothing when the object has no info registry.
iterate_objects()
iterate_objects(cb: (this: void, object: cse_alife_object) => boolean | void): void;Iterate over registered ALife objects until the callback returns true.
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | (this: void, object: cse_alife_object) => boolean | void | Callback called for every server object. |
Returns
void
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
Remarks
Returning true from the callback stops iteration early.
kill_entity()
kill_entity(
monster: cse_alife_monster_abstract,
graph_id?: number,
schedulable?: cse_alife_monster_abstract): void;Kill an offline monster.
Parameters
| Parameter | Type | Description |
|---|---|---|
monster | cse_alife_monster_abstract | Monster server object. |
graph_id? | number | Optional game graph vertex id used as death location. |
schedulable? | cse_alife_monster_abstract | Optional killer or source object. |
Returns
void
Remarks
Use only for monster server objects registered in ALife.
Throws
If monster is not a valid ALife monster object.
level_id()
level_id(): number;Get the current level id from the active ALife graph.
Returns
number
Current level id.
level_name()
level_name<T>(level_id: number): T;Method to get level name based on level ID. Easy way to get level is to get it by game vertex ID graph or iterate over all levels in graphs.
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends string | string |
Parameters
| Parameter | Type | Description |
|---|---|---|
level_id | number | ID of the level. |
Returns
T
Level name based on level ID provided.
Throws
If level_id is not present in the game graph header.
object()
Call Signature
object<T>(object_id: number, no_assert?: boolean): Nullable<T>;Get a server object by id.
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends cse_alife_object | cse_alife_object |
Parameters
| Parameter | Type | Description |
|---|---|---|
object_id | number | ALife object id. |
no_assert? | boolean | Return null instead of asserting when the object is missing. |
Returns
Nullable<T>
Matching server object, or null.
Remarks
With the default id overload, an invalid id is logged and returns null. Pass no_assert to use the raw engine lookup mode.
Call Signature
object<T>(name: string): Nullable<T>;Get a server object by its engine replacement name.
Type Parameters
| Type Parameter | Default type |
|---|---|
T extends cse_alife_object | cse_alife_object |
Parameters
| Parameter | Type | Description |
|---|---|---|
name | string | Server object replacement name. |
Returns
Nullable<T>
Matching server object, or null.
register()
register(object: cse_abstract): cse_abstract;Reprocess and register a server object through the spawn packet path.
Parameters
| Parameter | Type | Description |
|---|---|---|
object | cse_abstract | Server object to reprocess. |
Returns
Registered replacement server object.
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
Source
src/xrGame/alife_simulator_script.cpp, alife_simulator.register binding.
Remarks
The native helper serializes the object, frees its current id, destroys the old instance, and processes a new spawn packet. The returned object is the registered replacement.
release()
release(object: Nillable<cse_alife_object>, flag: boolean): void;Release an ALife object from the simulator.
Parameters
| Parameter | Type | Description |
|---|---|---|
object | Nillable<cse_alife_object> | Object to remove. |
flag | boolean | Compatibility flag accepted by the engine binding. |
Returns
void
Remarks
Online objects are destroyed through a network event. Offline objects are removed from ALife immediately.
Throws
If object is null or is not an ALife object.
remove_all_restrictions()
remove_all_restrictions(objectId: number, type: TXR_dynamic_restrictor_type): void;Remove all restrictions of one type from an object.
Parameters
| Parameter | Type | Description |
|---|---|---|
objectId | number | Restricted object id. |
type | TXR_dynamic_restrictor_type | Restriction type. |
Returns
void
Remarks
objectId must resolve to an ALife object that has restriction storage.
remove_in_restriction()
remove_in_restriction(monster: cse_alife_monster_abstract, restrictorId: number): void;Remove an inside-space restriction from an offline monster.
Parameters
| Parameter | Type | Description |
|---|---|---|
monster | cse_alife_monster_abstract | Monster server object to update. |
restrictorId | number | Restrictor object id. |
Returns
void
Remarks
monster must be a registered monster server object.
remove_out_restriction()
remove_out_restriction(monster: cse_alife_monster_abstract, restrictorId: number): void;Remove an outside-space restriction from an offline monster.
Parameters
| Parameter | Type | Description |
|---|---|---|
monster | cse_alife_monster_abstract | Monster server object to update. |
restrictorId | number | Restrictor object id. |
Returns
void
Remarks
monster must be a registered monster server object.
set_interactive()
set_interactive(objectId: number, enabled: boolean): void;Enable or disable interaction for an ALife object.
Parameters
| Parameter | Type | Description |
|---|---|---|
objectId | number | ALife object id. |
enabled | boolean | New interaction state. |
Returns
void
Remarks
objectId must resolve to a registered ALife object.
set_objects_per_update()
set_objects_per_update(count: number): void;Set count of object updated in alife per one tick.
Parameters
| Parameter | Type | Description |
|---|---|---|
count | number | Count of objects to update per tick. |
Returns
void
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
set_process_time()
set_process_time(microseconds: number): void;Set ALife processing time budget in microseconds.
Parameters
| Parameter | Type | Description |
|---|---|---|
microseconds | number | Processing time budget. |
Returns
void
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
Source
src/xrGame/alife_simulator_script.cpp, alife_simulator.set_process_time binding.
set_switch_distance()
set_switch_distance(distance: number): void;Set the online/offline switch distance.
Parameters
| Parameter | Type | Description |
|---|---|---|
distance | number | Switch distance in meters. |
Returns
void
Since
OpenXRay 2022-06-29, 09598fe7, PR #1033
set_switch_offline()
set_switch_offline(objectId: number, enabled: boolean): void;Allow or forbid switching an ALife object offline.
Parameters
| Parameter | Type | Description |
|---|---|---|
objectId | number | ALife object id. |
enabled | boolean | New offline switching state. |
Returns
void
Remarks
objectId must resolve to a registered ALife object.
set_switch_online()
set_switch_online(objectId: number, enabled: boolean): void;Allow or forbid switching an ALife object online.
Parameters
| Parameter | Type | Description |
|---|---|---|
objectId | number | ALife object id. |
enabled | boolean | New online switching state. |
Returns
void
Remarks
objectId must resolve to a registered ALife object.
spawn_id()
spawn_id(spawnStoryId: number): number;Resolve a spawn story id to a spawn graph id.
Parameters
| Parameter | Type | Description |
|---|---|---|
spawnStoryId | number | Spawn story id. |
Returns
number
Spawn graph id.
story_object()
story_object(storyId: number): Nullable<cse_alife_object>;Get a server object by story id.
Parameters
| Parameter | Type | Description |
|---|---|---|
storyId | number | Story id. |
Returns
Nullable<cse_alife_object>
Matching server object, or null when it is not registered.
switch_distance()
Call Signature
switch_distance(): number;Returns
number
Alife server-client switch distance.
Call Signature
switch_distance(distance: number): void;Set alife server-client switch distance.
Parameters
| Parameter | Type | Description |
|---|---|---|
distance | number | Distance to set. |
Returns
void
teleport_object()
teleport_object(
object_id: number,
game_vertex_id: number,
level_vertex_id: number,
position: vector): void;Move a server object to another graph and level vertex.
Parameters
| Parameter | Type | Description |
|---|---|---|
object_id | number | Object id to teleport. |
game_vertex_id | number | Destination game graph vertex id. |
level_vertex_id | number | Destination level vertex id. |
position | vector | Destination position. |
Returns
void
Since
OpenXRay 2017-08-15, 565b39e5
valid_object_id()
valid_object_id(object_id: number): boolean;Check whether an object id is usable.
Parameters
| Parameter | Type | Description |
|---|---|---|
object_id | number | ALife object id. |
Returns
boolean
Whether the id is not the engine invalid id.
Remarks
This only checks the engine invalid id value. It does not prove that an object with this id is registered.