Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
ICmpTemplateManager Class Referenceabstract

Template manager: Handles the loading of entity template files for the initialisation and deserialization of entity components. More...

#include <ICmpTemplateManager.h>

Inheritance diagram for ICmpTemplateManager:
Collaboration diagram for ICmpTemplateManager:

Public Member Functions

virtual const CParamNodeLoadTemplate (entity_id_t ent, const std::string &templateName)=0
 Loads the template XML file identified by 'templateName' (including inheritance from parent XML files) for use with a new entity 'ent'. More...
 
virtual const CParamNodeGetTemplate (const std::string &templateName)=0
 Loads the template XML file identified by 'templateName' (including inheritance from parent XML files). More...
 
virtual const CParamNodeGetTemplateWithoutValidation (const std::string &templateName)=0
 Like GetTemplate, except without doing the XML validation (so it's faster but may return invalid templates). More...
 
virtual bool TemplateExists (const std::string &templateName) const =0
 Check if the template XML file exists, without trying to load it. More...
 
virtual const CParamNodeLoadLatestTemplate (entity_id_t ent)=0
 Returns the template most recently specified for the entity 'ent'. More...
 
virtual std::string GetCurrentTemplateName (entity_id_t ent) const =0
 Returns the name of the template most recently specified for the entity 'ent'. More...
 
virtual std::vector< entity_id_tGetEntitiesUsingTemplate (const std::string &templateName) const =0
 Returns the list of entities having the specified template. More...
 
virtual std::vector< std::string > FindAllTemplates (bool includeActors) const =0
 Returns a list of strings that could be validly passed as templateName to LoadTemplate. More...
 
virtual std::vector< std::vector< std::wstring > > GetCivData ()=0
 Returns some data of the civs from the templates. More...
 
virtual std::vector< std::string > FindUsedTemplates () const =0
 Returns a list of strings that could be validly passed as templateName to LoadTemplate. More...
 
virtual void DisableValidation ()=0
 Permanently disable XML validation (intended solely for test cases). 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

Template manager: Handles the loading of entity template files for the initialisation and deserialization of entity components.

Template names are intentionally restricted to ASCII strings for storage/serialization efficiency (we have a lot of strings so this is significant); they correspond to filenames so they shouldn't contain non-ASCII anyway.

Member Function Documentation

◆ DisableValidation()

virtual void ICmpTemplateManager::DisableValidation ( )
pure virtual

Permanently disable XML validation (intended solely for test cases).

Implemented in CCmpTemplateManager.

◆ FindAllTemplates()

virtual std::vector< std::string > ICmpTemplateManager::FindAllTemplates ( bool  includeActors) const
pure virtual

Returns a list of strings that could be validly passed as templateName to LoadTemplate.

(This includes "actor|foo" etc names). Intended for use by the map editor. This is likely to be quite slow.

Implemented in CCmpTemplateManager.

◆ FindUsedTemplates()

virtual std::vector< std::string > ICmpTemplateManager::FindUsedTemplates ( ) const
pure virtual

Returns a list of strings that could be validly passed as templateName to LoadTemplate.

Intended for use by the AI manager.

Implemented in CCmpTemplateManager.

◆ GetCivData()

virtual std::vector< std::vector< std::wstring > > ICmpTemplateManager::GetCivData ( )
pure virtual

Returns some data of the civs from the templates.

Intended for use by the map editor.

Implemented in CCmpTemplateManager.

◆ GetCurrentTemplateName()

virtual std::string ICmpTemplateManager::GetCurrentTemplateName ( entity_id_t  ent) const
pure virtual

Returns the name of the template most recently specified for the entity 'ent'.

Implemented in CCmpTemplateManager.

◆ GetEntitiesUsingTemplate()

virtual std::vector< entity_id_t > ICmpTemplateManager::GetEntitiesUsingTemplate ( const std::string &  templateName) const
pure virtual

Returns the list of entities having the specified template.

Implemented in CCmpTemplateManager.

◆ GetTemplate()

virtual const CParamNode * ICmpTemplateManager::GetTemplate ( const std::string &  templateName)
pure virtual

Loads the template XML file identified by 'templateName' (including inheritance from parent XML files).

The templateName syntax is the same as LoadTemplate.

Returns
NULL on error

Implemented in CCmpTemplateManager.

◆ GetTemplateWithoutValidation()

virtual const CParamNode * ICmpTemplateManager::GetTemplateWithoutValidation ( const std::string &  templateName)
pure virtual

Like GetTemplate, except without doing the XML validation (so it's faster but may return invalid templates).

Returns
NULL on error

Implemented in CCmpTemplateManager.

◆ LoadLatestTemplate()

virtual const CParamNode * ICmpTemplateManager::LoadLatestTemplate ( entity_id_t  ent)
pure virtual

Returns the template most recently specified for the entity 'ent'.

Used during deserialization.

Returns
NULL on error

Implemented in CCmpTemplateManager.

◆ LoadTemplate()

virtual const CParamNode * ICmpTemplateManager::LoadTemplate ( entity_id_t  ent,
const std::string &  templateName 
)
pure virtual

Loads the template XML file identified by 'templateName' (including inheritance from parent XML files) for use with a new entity 'ent'.

The returned CParamNode must not be used for any entities other than 'ent'.

If templateName is of the form "actor|foo" then it will load a default stationary entity template that uses actor "foo". (This is a convenience to avoid the need for hundreds of tiny decorative-object entity templates.)

If templateName is of the form "preview|foo" then it will load a template based on entity template "foo" with the non-graphical components removed. (This is for previewing construction/placement of units.)

If templateName is of the form "corpse|foo" then it will load a template like "preview|foo" but with corpse-related components included.

If templateName is of the form "foundation|foo" then it will load a template based on entity template "foo" with various components removed and a few changed and added. (This is for constructing foundations of buildings.)

Returns
NULL on error

Implemented in CCmpTemplateManager.

◆ TemplateExists()

virtual bool ICmpTemplateManager::TemplateExists ( const std::string &  templateName) const
pure virtual

Check if the template XML file exists, without trying to load it.

Implemented in CCmpTemplateManager.


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