Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
Template manager: Handles the loading of entity template files for the initialisation and deserialization of entity components. More...
#include <ICmpTemplateManager.h>
Public Member Functions | |
virtual const CParamNode * | LoadTemplate (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 CParamNode * | GetTemplate (const std::string &templateName)=0 |
Loads the template XML file identified by 'templateName' (including inheritance from parent XML files). More... | |
virtual const CParamNode * | GetTemplateWithoutValidation (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 CParamNode * | LoadLatestTemplate (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_t > | GetEntitiesUsingTemplate (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 ¶mNode)=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 CSimContext & | GetSimContext () const |
void | SetSimContext (const CSimContext &context) |
virtual void | Serialize (ISerializer &serialize)=0 |
virtual void | Deserialize (const CParamNode ¶mNode, 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 () |
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.
|
pure virtual |
Permanently disable XML validation (intended solely for test cases).
Implemented in CCmpTemplateManager.
|
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.
|
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.
|
pure virtual |
Returns some data of the civs from the templates.
Intended for use by the map editor.
Implemented in CCmpTemplateManager.
|
pure virtual |
Returns the name of the template most recently specified for the entity 'ent'.
Implemented in CCmpTemplateManager.
|
pure virtual |
Returns the list of entities having the specified template.
Implemented in CCmpTemplateManager.
|
pure virtual |
Loads the template XML file identified by 'templateName' (including inheritance from parent XML files).
The templateName syntax is the same as LoadTemplate.
Implemented in CCmpTemplateManager.
|
pure virtual |
Like GetTemplate, except without doing the XML validation (so it's faster but may return invalid templates).
Implemented in CCmpTemplateManager.
|
pure virtual |
Returns the template most recently specified for the entity 'ent'.
Used during deserialization.
Implemented in CCmpTemplateManager.
|
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.)
Implemented in CCmpTemplateManager.
|
pure virtual |
Check if the template XML file exists, without trying to load it.
Implemented in CCmpTemplateManager.