IFlowGraph

Refers to NFlowSystemUtils::IFlowSystemTyped to see extra per-flow system type functions that are added to this interface. More...

#include

Inherits IFlowSystemTyped.

Public Types

enum EFlowGraphType {
eFGT_Default = 0, eFGT_AIAction, eFGT_UIAction, eFGT_Module,
eFGT_CustomAction, eFGT_MaterialFx
}

Public Member Functions

virtual void AddRef ()=0
virtual void Release ()=0
virtual IFlowGraphPtr Clone ()=0
virtual void Clear ()=0
Clears flow graph, deletes all nodes and edges.
virtual void RegisterHook (IFlowGraphHookPtr)=0
virtual void UnregisterHook (IFlowGraphHookPtr)=0
virtual IFlowNodeIteratorPtr CreateNodeIterator ()=0
virtual IFlowEdgeIteratorPtr CreateEdgeIterator ()=0
virtual void SetGraphEntity (EntityId id, int nIndex=0)=0
Assigns id of the default entity associated with this flow graph.
virtual EntityId GetGraphEntity (int nIndex) const =0
Retrieves id of the default entity associated with this flow graph.
virtual void SetEnabled (bool bEnable)=0
Enables/disables the flowgraph - used from editor.
virtual bool IsEnabled () const =0
Checks if flowgraph is currently enabled.
virtual void SetActive (bool bActive)=0
Activates/deactivates the flowgraph - used from FlowGraphProxy during Runtime.
virtual bool IsActive () const =0
Checks if flowgraph is currently active.
virtual void UnregisterFromFlowSystem ()=0
virtual void SetType (IFlowGraph::EFlowGraphType type)=0
virtual IFlowGraph::EFlowGraphType GetType () const =0
virtual const char * GetDebugName () const =0
Get a human readable name for debug purposes.
virtual void SetDebugName (const char *sName)=0
Set a human readable name for debug purposes.
virtual void Update ()=0
Primary game interface.
virtual bool SerializeXML (const XmlNodeRef &root, bool reading)=0
virtual void Serialize (TSerialize ser)=0
virtual void PostSerialize ()=0
virtual void InitializeValues ()=0
Similar to Update, but sends an eFE_Initialize instead of an eFE_Update.
virtual void PrecacheResources ()=0
Send eFE_PrecacheResources event to all flow graph nodes, so they can cache thierinternally used assets.
virtual void EnsureSortedEdges ()=0
virtual void RegisterFlowNodeActivationListener (SFlowNodeActivationListener *listener)=0
virtual void RemoveFlowNodeActivationListener (SFlowNodeActivationListener *listener)=0
Removes hypergraph/editor listeners for visual flowgraph debugging.
virtual bool NotifyFlowNodeActivationListeners (TFlowNodeId srcNode, TFlowPortId srcPort, TFlowNodeId toNode, TFlowPortId toPort, const char *value)=0
virtual void SetEntityId (TFlowNodeId, EntityId)=0
virtual EntityId GetEntityId (TFlowNodeId)=0
virtual IFlowGraphPtr GetClonedFlowGraph () const =0
virtual void GetNodeConfiguration (TFlowNodeId id, SFlowNodeConfig &)=0
virtual void SetRegularlyUpdated (TFlowNodeId, bool)=0
Node-graph interface.
virtual void RequestFinalActivation (TFlowNodeId)=0
virtual void ActivateNode (TFlowNodeId)=0
virtual void ActivatePortAny (SFlowAddress output, const TFlowInputData &)=0
virtual void ActivatePortCString (SFlowAddress output, const char *cstr)=0
virtual bool SetInputValue (TFlowNodeId node, TFlowPortId port, const TFlowInputData &)=0
virtual bool IsOutputConnected (SFlowAddress output)=0
virtual const TFlowInputData * GetInputValue (TFlowNodeId node, TFlowPortId port)=0
virtual bool GetActivationInfo (const char *nodeName, IFlowNode::SActivationInfo &actInfo)=0
virtual void SetSuspended (bool suspend=true)=0
virtual bool IsSuspended () const =0
Checks if the flow graph is suspended.
virtual bool IsInInitializationPhase () const =0
virtual void SetAIAction (IAIAction *pAIAction)=0
Sets an AI Action.
virtual IAIAction * GetAIAction () const =0
Gets an AI Action.
virtual void SetCustomAction (ICustomAction *pCustomAction)=0
Sets a Custom Action.
virtual ICustomAction * GetCustomAction () const =0
Gets a Custom Action.
virtual void GetMemoryUsage (ICrySizer *s) const =0
template
ILINE void ActivatePort (const SFlowAddress output, const T &value)
ILINE void ActivatePort (SFlowAddress output, const TFlowInputData &value)
void ActivateStringOutput (TFlowNodeId nodeId, int nPort, const string &value)
void ActivateIntOutput (TFlowNodeId nodeId, int nPort, const int &value)
void ActivateBoolOutput (TFlowNodeId nodeId, int nPort, const bool &value)
void ActivateAnyOutput (TFlowNodeId nodeId, int nPort)
virtual size_t GetGraphTokenCount () const =0
virtual const IFlowGraph::SGraphToken * GetGraphToken (size_t index) const =0
Get the number of graph tokens for this graph.
virtual const char * GetGlobalNameForGraphToken (const char *tokenName) const =0
Get a graph token by index.
virtual bool AddGraphToken (const SGraphToken &token)=0
Get the corresponding name for the GTS registry.
virtual void RemoveGraphTokens ()=0
Add a token from the SGraphToken definition to this graph and to the GTS.
virtual TFlowGraphId GetGraphId () const =0
Delete all token definitions from the graph and the corresponding tokens from the GTS registry.
virtual SFlowAddress ResolveAddress (const char *addr, bool isOutput)=0
virtual TFlowNodeId ResolveNode (const char *name)=0
virtual TFlowNodeId CreateNode (TFlowNodeTypeId typeId, const char *name, void *pUserData=0)=0
Deprecated.
virtual TFlowNodeId CreateNode (const char *typeName, const char *name, void *pUserData=0)=0
virtual IFlowNodeData * GetNodeData (TFlowNodeId id)=0
virtual bool SetNodeName (TFlowNodeId id, const char *sName)=0
virtual const char * GetNodeName (TFlowNodeId id)=0
virtual TFlowNodeTypeId GetNodeTypeId (TFlowNodeId id)=0
virtual const char * GetNodeTypeName (TFlowNodeId id)=0
virtual void RemoveNode (const char *name)=0
virtual void RemoveNode (TFlowNodeId id)=0
virtual void SetUserData (TFlowNodeId id, const XmlNodeRef &data)=0
virtual XmlNodeRef GetUserData (TFlowNodeId id)=0
virtual bool LinkNodes (SFlowAddress from, SFlowAddress to)=0
virtual void UnlinkNodes (SFlowAddress from, SFlowAddress to)=0

Detailed Description

Refers to NFlowSystemUtils::IFlowSystemTyped to see extra per-flow system type functions that are added to this interface.

Member Function Documentation

◆ ActivatePortCString()

virtual void IFlowGraph::ActivatePortCString ( SFlowAddress output,
const char * cstr
)
pure virtual

Special function to activate port from other dll module and pass const char* string to avoid passing string class across dll boundaries

◆ GetNodeConfiguration()

virtual void IFlowGraph::GetNodeConfiguration ( TFlowNodeId id,
SFlowNodeConfig &
)
pure virtual

Gets node configuration.

Note
Low level functions.

◆ RegisterFlowNodeActivationListener()

virtual void IFlowGraph::RegisterFlowNodeActivationListener ( SFlowNodeActivationListener * listener)
pure virtual

Registers hypergraph/editor listeners for visual flowgraph debugging.

◆ ResolveAddress()

virtual SFlowAddress IFlowGraph::ResolveAddress ( const char * addr,
bool isOutput
)
pure virtual

Node manipulation.

.

◆ SetSuspended()

virtual void IFlowGraph::SetSuspended ( bool suspend = true)
pure virtual

Suspended flow graphs were needed for AI Action flow graphs. Suspended flow graphs shouldn't be updated! Nodes in suspended flow graphs should ignore OnEntityEvent notifications!