Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
ICmpCommandQueue Class Referenceabstract

Command queue, for sending orders to entities. More...

#include <ICmpCommandQueue.h>

Inheritance diagram for ICmpCommandQueue:
Collaboration diagram for ICmpCommandQueue:

Public Member Functions

virtual void PushLocalCommand (player_id_t player, JS::HandleValue cmd)=0
 Pushes a new command onto the local queue. More...
 
virtual void PostNetworkCommand (JS::HandleValue cmd)=0
 Send a command associated with the current player to the networking system. More...
 
virtual void FlushTurn (const std::vector< SimulationCommand > &commands)=0
 Calls the ProcessCommand(player, cmd) global script function for each command in the local queue and in commands, and empties the local queue. More...
 
- Public Member Functions inherited from IComponent
virtual ~IComponent ()
 
virtual void Init (const CParamNode &paramNode)=0
 
virtual void Deinit ()=0
 
virtual void HandleMessage (const CMessage &msg, bool global)
 
CEntityHandle GetEntityHandle () const
 
void SetEntityHandle (CEntityHandle ent)
 
entity_id_t GetEntityId () const
 
CEntityHandle GetSystemEntity () const
 
const CSimContextGetSimContext () const
 
void SetSimContext (const CSimContext &context)
 
virtual void Serialize (ISerializer &serialize)=0
 
virtual void Deserialize (const CParamNode &paramNode, IDeserializer &deserialize)=0
 
virtual bool NewJSObject (const ScriptInterface &scriptInterface, JS::MutableHandleObject out) const
 Returns false by default, indicating that a scripted wrapper of this IComponent is not supported. More...
 
virtual JS::Value GetJSInstance () const
 
virtual int GetComponentTypeId () const =0
 

Additional Inherited Members

- Public Types inherited from IComponent
using AllocFunc = IComponent *(*)(const ScriptInterface &scriptInterface, JS::HandleValue ctor)
 
using DeallocFunc = void(*)(IComponent *)
 
- Static Public Member Functions inherited from IComponent
static std::string GetSchema ()
 
static void RegisterComponentType (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema)
 
static void RegisterComponentTypeScriptWrapper (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema)
 
static u8 GetSerializationVersion ()
 

Detailed Description

Command queue, for sending orders to entities.

Each command is associated with a player ID (who triggered the command, in some sense) and an arbitrary script value.

Commands can be added to the local queue at any time, and will all be executed at the start of the next turn. (This will typically be used by AI scripts.)

Alternatively, commands can be sent to the networking system, and they will be executed at the start of some later turn by all players simultaneously. (This will typically be used for user inputs.)

Member Function Documentation

◆ FlushTurn()

virtual void ICmpCommandQueue::FlushTurn ( const std::vector< SimulationCommand > &  commands)
pure virtual

Calls the ProcessCommand(player, cmd) global script function for each command in the local queue and in commands, and empties the local queue.

Implemented in CCmpCommandQueue.

◆ PostNetworkCommand()

virtual void ICmpCommandQueue::PostNetworkCommand ( JS::HandleValue  cmd)
pure virtual

Send a command associated with the current player to the networking system.

Implemented in CCmpCommandQueue.

◆ PushLocalCommand()

virtual void ICmpCommandQueue::PushLocalCommand ( player_id_t  player,
JS::HandleValue  cmd 
)
pure virtual

Pushes a new command onto the local queue.

cmd does not need to be rooted.

Implemented in CCmpCommandQueue.


The documentation for this class was generated from the following file: