3[
ComponentEditorProps(
category:
"GameScripted/Editor", description:
"Attribute for managing access keys. Works only with SCR_EditorBaseEntity!", icon:
"WBData/ComponentEditorProps/componentEditor.png")]
21 private bool m_bIsAdmin =
true;
49 m_AccessKey = m_AccessKey | accessKey;
60 m_AccessKey = m_AccessKey &~ accessKey;
68 m_AccessKey = accessKey;
86 return m_AccessKey & accessKey;
137 int enumCount = enumType.GetVariableCount();
138 for (
int i = 0; i < enumCount; i++)
141 if (enumType.GetVariableType(i) ==
int && enumType.GetVariableValue(null, i, val))
145 if (!output.IsEmpty())
148 output += enumType.GetVariableName(i);
153 return string.Format(
"Editor access keys: %1", output);
164 Print(
"--------------------------------------------------",
LogLevel.DEBUG);
165 set<SCR_EditableEntityComponent> entities =
new set<SCR_EditableEntityComponent>();
169 if (entity.IsLayer())
170 entity.Log(
"", m_AccessKey);
172 Print(
"--------------------------------------------------",
LogLevel.DEBUG);
186 return m_bIsAdmin && super.IsAdmin();
215 keysType.GetVariableValue(null,
DiagMenu.GetRangeValue(
SCR_DebugMenuID.DEBUGUI_EDITOR_ENTITIES_ACCESS_KEY), keyValue);
233 m_AccessKey =
int.MAX;
246 writer.Write(m_AccessKey, 32);
254 reader.Read(m_AccessKey, 32);
271 int keysCount = keysType.GetVariableCount();
275 m_AccessKey =
int.MAX;
277 DiagMenu.RegisterBool(
SCR_DebugMenuID.DEBUGUI_EDITOR_ENTITIES_LOG_AVAILABLE,
"",
"Log Available",
"Editable Entities");
278 DiagMenu.RegisterBool(
SCR_DebugMenuID.DEBUGUI_EDITOR_ENTITIES_LOG_ACCESS_KEYS,
"",
"Log Access Keys",
"Editable Entities");
279 DiagMenu.RegisterRange(
SCR_DebugMenuID.DEBUGUI_EDITOR_ENTITIES_ACCESS_KEY,
"",
"Access Key",
"Editable Entities",
string.Format(
"0, %1, 0, 1", keysCount - 1));
280 DiagMenu.RegisterBool(
SCR_DebugMenuID.DEBUGUI_EDITOR_ENTITIES_ACCESS_KEY_TOGGLE,
"",
"Access Key: Toggle",
"Editable Entities");
288 DiagMenu.RegisterBool(
SCR_DebugMenuID.DEBUGUI_EDITOR_ENTITIES_ACCESS_KEY_ADMIN,
"",
"Admin Access",
"Editable Entities");
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
void LogAccessKey()
Print out access keys.
void AddEntityAccessKey(SCR_EditableEntityComponent entity, EEditableEntityAccessKey accessKey)
void LogAvailableEntities()
Print out all entities with compatible access keys.
EEditableEntityAccessKey GetAccessKey()
void AddAccessKeyServer(EEditableEntityAccessKey accessKey)
bool HasAccess(EEditableEntityAccessKey accessKey)
void RemoveAccessKeyServer(EEditableEntityAccessKey accessKey)
void RemoveEntityAccessKey(SCR_EditableEntityComponent entity, EEditableEntityAccessKey accessKey)
void RemoveEntityAccessKeyServer(int entityID, EEditableEntityAccessKey accessKey)
void AccessKeyChangedOwner(EEditableEntityAccessKey accessKey)
ref ScriptInvoker Event_OnChanged
void AddEntityAccessKeyServer(int entityID, EEditableEntityAccessKey accessKey)
void RemoveAccessKey(EEditableEntityAccessKey accessKey)
void AddAccessKey(EEditableEntityAccessKey accessKey)
proto external int SetEventMask(notnull IEntity owner, int mask)
void Rpc(func method, void p0=NULL, void p1=NULL, void p2=NULL, void p3=NULL, void p4=NULL, void p5=NULL, void p6=NULL, void p7=NULL)
void EOnEditorDelete()
When the entity is destroyed.
void EOnEditorInit()
When the entity is created.
void EOnEditorDebug(array< string > debugTexts)
Every frame while the editor is opened and debug menu is shown.
void RemoveAccessKey(EEditableEntityAccessKey accessKey)
void AddAccessKey(EEditableEntityAccessKey accessKey)
void GetAllEntities(out notnull set< SCR_EditableEntityComponent > entities, bool onlyDirect=false, bool skipIgnored=false)
void EOnFrame(IEntity owner, float timeSlice)
proto external GenericEntity GetOwner()
Get owner entity.
bool RplLoad(ScriptBitReader reader)
bool RplSave(ScriptBitWriter writer)
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
SCR_FieldOfViewSettings Attribute
EntityEvent
Various entity events.
void RplRpc(RplChannel channel, RplRcver rcver, RplCondition condition=RplCondition.None, string customConditionName="")
RplChannel
Communication channel. Reliable is guaranteed to be delivered. Unreliable not.