Public Member Functions | |
CaServerWorldT (const char *FileName, ModelManagerT &ModelMan, cf::GuiSys::GuiResourcesT &GuiRes) | |
void | RemoveEntity (unsigned long EntityID) |
Removes the entity identified by 'EntityID' from the (server) world. More... | |
unsigned long | InsertHumanPlayerEntityForNextFrame (const char *PlayerName, const char *ModelName, unsigned long ClientInfoNr) |
void | NotifyHumanPlayerEntityOfClientCommand (unsigned long HumanPlayerEntityID, const PlayerCommandT &PlayerCommand) |
unsigned long | WriteClientNewBaseLines (unsigned long OldBaseLineFrameNr, ArrayT< ArrayT< char > > &OutDatas) const |
void | WriteClientDeltaUpdateMessages (const ClientInfoT &ClientInfo, NetDataT &OutData) const |
This method writes a delta update message for the given client into the given OutData . More... | |
void | Think (float FrameTime) |
This method advances the world over the given time FrameTime into the next state. More... | |
void | UpdateFrameInfo (ClientInfoT &ClientInfo) const |
This method must be called after Think() for each client: It updates the client's frame info corresponding to the the new/current server frame. More... | |
Public Member Functions inherited from Ca3DEWorldT | |
Ca3DEWorldT (const char *FileName, ModelManagerT &ModelMan, cf::GuiSys::GuiResourcesT &GuiRes, bool InitForGraphics, WorldT::ProgressFunctionT ProgressFunction) | |
const WorldT & | GetWorld () const |
Vector3fT | GetAmbientLightColorFromBB (const BoundingBox3T< double > &Dimensions, const VectorT &Origin) const |
Returns a "good" ambient light color for an arbitrary object (i.e. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Ca3DEWorldT | |
void | CreateNewEntityFromBasicInfo (IntrusivePtrT< cf::GameSys::EntityT > Ent, unsigned long CreationFrameNr) |
Creates a new entity that is added to the m_EngineEntities array. More... | |
Protected Attributes inherited from Ca3DEWorldT | |
const WorldT * | m_World |
cf::ClipSys::ClipWorldT * | m_ClipWorld |
PhysicsWorldT | m_PhysicsWorld |
cf::UniScriptStateT * | m_ScriptState |
IntrusivePtrT < cf::GameSys::WorldT > | m_ScriptWorld |
The "script world" contains the entity hierarchy and their components. More... | |
ArrayT< EngineEntityT * > | m_EngineEntities |
void CaServerWorldT::RemoveEntity | ( | unsigned long | EntityID | ) |
Removes the entity identified by 'EntityID' from the (server) world.
void CaServerWorldT::Think | ( | float | FrameTime | ) |
This method advances the world over the given time FrameTime
into the next state.
That is, time FrameTime
is applied to all entities in m_EngineEntities
in order to compute the next state, advancing the m_ServerFrameNr
by one.
void CaServerWorldT::UpdateFrameInfo | ( | ClientInfoT & | ClientInfo | ) | const |
This method must be called after Think() for each client: It updates the client's frame info corresponding to the the new/current server frame.
The previous call to Think() brought the entire world (all m_EngineEntities) into the new state with number m_ServerFrameNr. The ClientInfoT instances however know at this time nothing about the new state. Calling this method updates a client's frame info (the list of entities that are relevant for the client in the new frame) accordingly.
void CaServerWorldT::WriteClientDeltaUpdateMessages | ( | const ClientInfoT & | ClientInfo, |
NetDataT & | OutData | ||
) | const |
This method writes a delta update message for the given client into the given OutData
.
Note that this method must only be called after UpdateFrameInfo() has been called, because it relies on the client's frame info being up-to-date for the current frame!
The message consist of an SC1_FrameInfo header and all SC1_EntityUpdate and SC1_EntityRemove (sub-)messages as required for the client to reconstruct the current frame.