6class SCR_MailboxComponent : AICommunicationComponent
8 #ifdef AI_MAILBOX_OVERFLOW_DETECTION
9 protected int m_iMailboxOverflowCount = 0;
57 for (
int i = 0; i < msgCount; i++)
62 typename msgFinalType = msg.Type();
63 int nMsgsOfType = msgTypeCount.Get(msgFinalType);
65 msgTypeCount.Set(msgFinalType, nMsgsOfType);
68 Print(
string.Format(
"SCR_MailboxComponent statistics: count: %1, %2, %3",
GetMessageCount(),
this, GetAIAgent()), logLevel);
69 foreach (
typename t,
int count : msgTypeCount)
71 Print(
string.Format(
" %1: %2", t, count), logLevel);
88 void DebugLogBroadcastMessage(AIMessage
message)
90 AIAgent agent = GetAIAgent();
91 SCR_AIMessageBase msgBase = SCR_AIMessageBase.Cast(
message);
93 string debugTextBasic =
string.Format(
"----> SendMessage: %1 --> %2:\n", agent,
message.GetReceiver());
97 debugText = debugTextBasic + msgBase.GetDebugText();
99 debugText = debugTextBasic +
string.Format(
"\t%1",
message);
101 SCR_AIDebug.DebugLog(debugText);
102 AddDebugMessage(debugText);
108 void DebugLogOnReceived(AIMessage
message)
110 AIAgent agent = GetAIAgent();
112 AIAgent sender =
message.GetSender();
114 string debugTextBasic =
string.Format(
"<---- RecvMessage: %1 <-- %2\n", agent, sender);
116 SCR_AIMessageBase msgBase = SCR_AIMessageBase.Cast(
message);
120 debugText = debugTextBasic + msgBase.GetDebugText();
122 debugText = debugTextBasic +
string.Format(
"\t%1",
message);
124 SCR_AIDebug.DebugLog(debugText);
125 AddDebugMessage(debugText);
129 protected void AddDebugMessage(
string str)
131 SCR_AIInfoBaseComponent infoComp = SCR_AIInfoBaseComponent.Cast(GetAIAgent().FindComponent(SCR_AIInfoBaseComponent));
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
void LogMessageStatistics(LogLevel logLevel=LogLevel.NORMAL)
SCR_MailboxComponentClass AICommunicationComponentClass ReadMessage(bool remove)
AIOrder ReadOrder(bool remove)
bool IsCommunicationEnabled()
Base class for all messages related to AI.
Specialized message to send orders between AI agents.
proto external void RemoveMessage(int id)
proto external int GetMessageCount()
proto external AIMessage GetMessage(int id)
proto external void RemoveOrder(int id)
HYBRID_COMPONENT_ICON
Default icon for all components written in script that don't inherit ScriptComponent.
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.