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
@spec alloc(QuakeServer.Server.t()) :: {QuakeServer.Server.t(), non_neg_integer()}
A fresh entity, its fields all zero, and the server holding it.
@spec clear(QuakeServer.Server.t(), non_neg_integer()) :: QuakeServer.Server.t()
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.
@spec clear_flag(QuakeServer.Server.t(), non_neg_integer(), atom()) :: QuakeServer.Server.t()
Clear flag flag on entity.
@spec flag?(QuakeServer.Server.t(), non_neg_integer(), atom()) :: boolean()
Whether entity has flag flag set.
@spec float(QuakeServer.Server.t(), non_neg_integer(), String.t()) :: float()
Field name of entity as a float.
@spec free(QuakeServer.Server.t(), non_neg_integer()) :: QuakeServer.Server.t()
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.
@spec free?(QuakeServer.Server.t(), non_neg_integer()) :: boolean()
Whether entity is free (or was never made).
@spec get(QuakeServer.Server.t(), non_neg_integer(), String.t()) :: QuakeC.value()
Field name of entity.
@spec int(QuakeServer.Server.t(), non_neg_integer(), String.t()) :: integer()
Field name of entity as an integer (an entity number or function index).
@spec live(QuakeServer.Server.t()) :: [non_neg_integer()]
The entities in use, world and player included, in order.
@spec put( QuakeServer.Server.t(), non_neg_integer(), String.t(), QuakeC.value() | QuakeC.vector() ) :: QuakeServer.Server.t()
Set field name of entity.
@spec set_flag(QuakeServer.Server.t(), non_neg_integer(), atom()) :: QuakeServer.Server.t()
Set flag flag on entity.
@spec string(QuakeServer.Server.t(), non_neg_integer(), String.t()) :: String.t()
String field name of entity as text.
@spec vector(QuakeServer.Server.t(), non_neg_integer(), String.t()) :: QuakeC.vector()
Vector field name of entity.