QuakeServer.Edicts (quake_server v0.1.0)

Copy Markdown View Source

Entities of a running level: making and freeing them, and their fields by name.

{server, entity} = QuakeServer.Edicts.alloc(server)
QuakeServer.Edicts.vector(server, entity, "origin")

A freed entity is reused once half a second has passed, or at once if it was freed in the first two seconds of the level.

Summary

Functions

A fresh entity, its fields all zero, and the server holding it.

entity in use with every field zero except those FTE sets on a new entity (ED_Spawned): dimension_see, dimension_seen, dimension_solid and dimension_hit at dimension_default (255 when the program has none), Version and uniquespawnid at the entity's version count, drawflags 96.

Clear flag flag on entity.

Whether entity has flag flag set.

Field name of entity as a float.

Free entity: unlinked, its model, solidity, thinking, pvsflags and SendEntity cleared (and classname for a QuakeWorld program), and its version counted up so a client program is sent it whole when it is used again. The world, the players and an entity already free are not freed; the attempt is printed.

Whether entity is free (or was never made).

Field name of entity.

Field name of entity as an integer (an entity number or function index).

The entities in use, world and player included, in order.

Set field name of entity.

Set flag flag on entity.

String field name of entity as text.

Vector field name of entity.

Functions

alloc(server)

A fresh entity, its fields all zero, and the server holding it.

clear(server, entity)

entity in use with every field zero except those FTE sets on a new entity (ED_Spawned): dimension_see, dimension_seen, dimension_solid and dimension_hit at dimension_default (255 when the program has none), Version and uniquespawnid at the entity's version count, drawflags 96.

clear_flag(server, entity, flag)

Clear flag flag on entity.

flag?(server, entity, flag)

@spec flag?(QuakeServer.Server.t(), non_neg_integer(), atom()) :: boolean()

Whether entity has flag flag set.

float(server, entity, name)

Field name of entity as a float.

free(server, entity)

Free entity: unlinked, its model, solidity, thinking, pvsflags and SendEntity cleared (and classname for a QuakeWorld program), and its version counted up so a client program is sent it whole when it is used again. The world, the players and an entity already free are not freed; the attempt is printed.

free?(server, entity)

Whether entity is free (or was never made).

get(server, entity, name)

Field name of entity.

int(server, entity, name)

Field name of entity as an integer (an entity number or function index).

live(server)

@spec live(QuakeServer.Server.t()) :: [non_neg_integer()]

The entities in use, world and player included, in order.

put(server, entity, name, value)

Set field name of entity.

set_flag(server, entity, flag)

Set flag flag on entity.

string(server, entity, name)

String field name of entity as text.

vector(server, entity, name)

Vector field name of entity.