1[
EntityEditorProps(
category:
"GameScripted/Editor", description:
"Core Editor manager", color:
"251 91 0 255", icon:
"WBData/EntityEditorProps/entityEditor.png")]
31 private bool m_bIsAutoModes;
34 private bool m_bIsAutoInit;
38 private bool m_bIsOpened;
39 private bool m_bIsInTransition;
48 private ref array<SCR_EditorModeEntity>
m_Modes = {};
54 private bool m_bIsModeChangeRequested;
60 private int m_iEventComponent;
61 private int m_iEventAttempt;
62 private float m_iEventProgress;
63 private float m_iEventProgressMax;
64 private float m_fEventAsyncStart;
65 private ref array<SCR_BaseEditorComponent> m_aEventComponentsActivate;
66 private ref array<SCR_BaseEditorComponent> m_aEventComponentsDeactivate;
67 private ref array<EEditorEvent> m_aEvents;
68 private ref array<SCR_VONEntryRadio> editorRadioEntries;
101 if (m_bIsInTransition)
122 void Open(
bool showErrorNotification =
true)
127 if (showErrorNotification)
134 PlayerManager playerManager =
GetGame().GetPlayerManager();
137 IEntity player = playerManager.GetPlayerControlledEntity(playerId);
140 CharacterControllerComponent characterCont = CharacterControllerComponent.Cast(player.
FindComponent(CharacterControllerComponent));
142 characterCont.SetWeaponADS(
false);
146 PlayerController playerController = playerManager.GetPlayerController(playerId);
147 if (playerController)
149 SCR_VONController vonCont = SCR_VONController.Cast(playerController.FindComponent(SCR_VONController));
150 SCR_VoNComponent editorVonComponent = SCR_VoNComponent.Cast(
FindComponent(SCR_VoNComponent));
153 editorVonComponent.ConnectEditorToVoNSystem(
m_iPlayerID);
156 vonCont.SetVONComponent(editorVonComponent);
159 if (!vonCont.m_bIsEditorRadioAdded)
161 vonCont.m_bIsEditorRadioAdded =
true;
163 SCR_RadioComponent radioGadget = SCR_RadioComponent.Cast(
FindComponent(SCR_RadioComponent));
164 radioGadget.OnPostInit(
this);
165 BaseRadioComponent radioComp = radioGadget.GetRadioComponent();
170 int transceiversCount = radioComp.TransceiversCount();
171 editorRadioEntries =
new array<SCR_VONEntryRadio>();
172 editorRadioEntries.Resize(transceiversCount);
173 for (
int i = 0; i < transceiversCount; i++)
176 EditorFactionTransceiver editorFactionTransceiver = EditorFactionTransceiver.Cast(transceiver);
177 if (editorFactionTransceiver)
179 SCR_VONEntryRadio editorRadioEntry =
new SCR_VONEntryRadio();
180 editorRadioEntry.
SetRadioEntry(transceiver, i + 1, radioGadget);
182 vonCont.AddEntry(editorRadioEntry);
184 editorRadioEntries[i] = editorRadioEntry;
188 SCR_VONEntryRadio editorRadioEntry =
new SCR_VONEntryRadio();
189 editorRadioEntry.
SetRadioEntry(transceiver, i + 1, radioGadget);
192 vonCont.AddEntry(editorRadioEntry);
194 editorRadioEntries[i] = editorRadioEntry;
208 void Close(
bool showErrorNotification =
true)
210 if (!m_CurrentModeEntity || m_CurrentModeEntity.GetPreventClose())
218 if (showErrorNotification)
226 PlayerManager playerManager =
GetGame().GetPlayerManager();
227 PlayerController playerController = playerManager.GetPlayerController(playerId);
228 if (playerController)
230 SCR_VONController vonCont = SCR_VONController.Cast(playerController.FindComponent(SCR_VONController));
231 SCR_VoNComponent editorVonComponent = SCR_VoNComponent.Cast(
FindComponent(SCR_VoNComponent));
234 editorVonComponent.DisconnectEditorFromVoNSystem();
236 IEntity player = playerManager.GetPlayerControlledEntity(playerId);
239 SCR_VoNComponent charVonComponent = SCR_VoNComponent.Cast(player.
FindComponent(SCR_VoNComponent));
242 vonCont.SetVONComponent(charVonComponent);
245 if (editorRadioEntries)
247 foreach (SCR_VONEntryRadio entry : editorRadioEntries)
250 vonCont.RemoveEntry(entry);
252 editorRadioEntries.Clear();
255 vonCont.m_bIsEditorRadioAdded =
false;
288 if (m_CurrentModeEntity)
289 m_CurrentModeEntity.ActivateModeServer();
291 Event_OnOpenedServer.Invoke();
295 if (m_CurrentModeEntity)
296 m_CurrentModeEntity.DeactivateModeServer();
298 Event_OnClosedServer.Invoke();
320 Event_OnOpenedServerCallback.Invoke();
322 Event_OnClosedServerCallback.Invoke();
328 int enumCount = enumType.GetVariableCount();
331 for (
int i = 0; i < enumCount; i++)
333 if (enumType.GetVariableType(i) ==
int && enumType.GetVariableValue(null, i, val))
369 return m_CanOpen == m_CanOpenSum;
380 return m_CanOpen & accessType;
393 m_CanOpen = m_CanOpen | accessType;
395 m_CanOpen = m_CanOpen &~ accessType;
408 Event_OnCanOpen.Invoke(m_CanOpen);
415 if (canOpen ==
CanOpen(accessType))
return;
424 return m_CanClose == m_CanCloseSum;
433 return m_CanClose & accessType;
446 m_CanClose = m_CanClose | accessType;
448 m_CanClose = m_CanClose &~ accessType;
457 m_CanClose = canClose;
458 Event_OnCanClose.Invoke(m_CanClose);
465 if (canClose ==
CanClose(accessType))
return;
477 m_bIsAutoInit = isAutoInit;
484 return m_bIsAutoInit;
493 m_bIsAutoModes = isAutoModes;
522 return m_bIsInTransition;
538 static bool IsLimitedInstance()
541 return !editorManager || editorManager.IsLimited();
558 SCR_NotificationsComponent.SendLocal(notificationID,
position, selfID, targetID);
576 if (mode && !mode.IsLimited())
598 NwkMovementComponent nwkComponent = NwkMovementComponent.Cast(FindComponent(NwkMovementComponent));
601 nwkComponent.EnableSimulation(enable);
617 return Event_OnOpened;
623 return Event_OnPreActivate;
629 return Event_OnActivate;
635 return Event_OnPostActivate;
641 return Event_OnDeactivate;
647 return Event_OnClosed;
653 return Event_OnDebug;
659 return Event_OnOpenedServer;
665 return Event_OnOpenedServerCallback;
671 return Event_OnClosedServer;
677 return Event_OnClosedServerCallback;
683 return Event_OnOpenedServer;
689 return Event_OnClosedServer;
695 return Event_OnRequest;
701 return Event_OnCanOpen;
707 return Event_OnCanClose;
713 return Event_OnModeAdd;
719 return Event_OnModeRemove;
725 return Event_OnModeChangeRequest;
731 return Event_OnModeChange;
737 return Event_OnLimitedChange;
743 return Event_OnAsyncLoad;
749 return Event_OnCanEndGameChanged;
758 static bool ToggleInstance()
761 if (!instance)
return false;
769 static bool OpenInstance()
782 static bool CloseInstance()
796 static bool IsOpenedInstance(
bool includeLimited =
true)
800 && instance.IsOpened()
801 && (includeLimited || !instance.IsLimited());
807 static bool CanOpenInstance()
813 return instance.CanOpen();
819 static bool CanCloseInstance()
825 return instance.CanClose();
837 SCR_EditorManagerCore manager = SCR_EditorManagerCore.Cast(SCR_EditorManagerCore.GetInstance(SCR_EditorManagerCore));
861 RplComponent rplEditor = RplComponent.Cast(FindComponent(RplComponent));
877 if (prefab.IsEmpty())
879 array<SCR_EditorModePrefab> modePrefabs = {};
883 if (mode == basePrefab.GetMode())
885 prefab = basePrefab.GetPrefab();
893 if (prefab.IsEmpty())
901 spawnParams.Parent =
this;
906 Print(
string.Format(
"Prefab %1 for editor mode %2 is not SCR_EditorModeEntity!", prefab.GetPath(),
Type().EnumToString(
EEditorMode, mode)),
LogLevel.ERROR);
911 if (!modeEntity.GetParent())
913 Print(
string.Format(
"Prefab %1 for editor mode %2 is missing Hierarchy component!", prefab.GetPath(),
Type().EnumToString(
EEditorMode, mode)),
LogLevel.ERROR);
918 RplComponent rplMode = RplComponent.Cast(modeEntity.FindComponent(RplComponent));
921 Print(
string.Format(
"Prefab %1 for editor mode %2 is missing RplComponent!", prefab.GetPath(),
Type().EnumToString(
EEditorMode, mode)),
LogLevel.ERROR);
926 modeEntity.InitServer(
this);
977 array<EEditorMode>
flags = {};
978 for (
int i, count =
SCR_Enum.BitToIntArray(preActiveModes & ~activeModes,
flags); i < count; i++)
1004 array<EEditorMode>
flags = {};
1016 array<EEditorMode>
flags = {};
1043 if (modeEntity && !modeEntity.IsDeleted())
1044 return modeEntity.GetModeType();
1064 if (modeEntity.IsLimited() == isLimited)
1079 if (m_CurrentMode == mode && m_CurrentModeEntity)
1082 m_bIsModeChangeRequested =
true;
1083 Event_OnModeChangeRequest.Invoke(
FindModeEntity(mode), m_CurrentModeEntity);
1092 if (m_bIsModeChangeRequested && m_CurrentMode == m_ProcessedMode)
1095 return m_CurrentMode;
1103 return m_CurrentModeEntity;
1113 if (modeEntity && modeEntity.GetModeType() == mode)
1126 if (modeEntity && modeEntity.GetModeType() == mode)
return modeEntity;
1138 return modeEntities.Count();
1150 modes.Insert(editorMode.GetModeType());
1152 return modes.Count();
1163 modes = modes | editorMode.GetModeType();
1173 return m_bIsModeChangeRequested;
1180 if (
m_Modes.Find(modeEntity) >= 0)
return;
1182 int order = modeEntity.GetOrder();
1192 for (
int c =
m_Modes.Count() - 1; c >= 0; c--)
1210 if (!modeEntity.SendNotificationLocalOnly())
1211 SCR_NotificationsComponent.SendToUnlimitedEditorPlayersAndPlayer(playerID, modeEntity.GetOnAddNotification(), playerID);
1213 SCR_NotificationsComponent.SendLocal(modeEntity.GetOnAddNotification(), playerID);
1219 Event_OnModeAdd.Invoke(modeEntity);
1225 if (!
m_Modes.Contains(modeEntity))
1230 m_ProcessedMode = modeEntity.GetModeType();
1235 m_Modes.RemoveItem(modeEntity);
1238 Event_OnModeRemove.Invoke(modeEntity);
1246 if (!modeEntity.SendNotificationLocalOnly())
1247 SCR_NotificationsComponent.SendToUnlimitedEditorPlayersAndPlayer(playerID, modeEntity.GetOnRemoveNotification(), playerID);
1249 SCR_NotificationsComponent.SendLocal(modeEntity.GetOnRemoveNotification(), playerID);
1262 if (mode == m_CurrentMode)
1285 if (!modeEntity)
return;
1288 modeEntity.InitOwner();
1290 m_ProcessedMode = mode;
1303 if ((m_CurrentMode == mode && m_CurrentModeEntity) || mode == -1)
1318 if (m_CurrentModeEntity && m_bIsOpened)
1319 m_CurrentModeEntity.DeactivateModeServer();
1322 m_CurrentMode = mode;
1323 m_CurrentModeEntity = modeEntity;
1325 if (m_CurrentModeEntity && m_bIsOpened)
1326 m_CurrentModeEntity.ActivateModeServer();
1337 if (!modeEntity && mode >= 0)
1344 m_ProcessedMode = mode;
1362 foreach (SCR_EditableEntityAuthor author : authors)
1414 string currentMode =
typename.EnumToString(
EEditorMode, m_CurrentMode);
1415 if (!m_CurrentModeEntity)
1416 currentMode +=
" (null)";
1420 m_iEventOperation =
type;
1421 m_iEventProgress = 0;
1437 FindEditorComponents(m_aEventComponentsDeactivate);
1440 if (m_ProcessedMode == m_CurrentMode)
1484 m_iEventProgressMax = 1;
1486 FindEditorComponents(m_aEventComponentsActivate);
1487 if (m_CurrentModeEntity) m_CurrentModeEntity.FindEditorComponents(m_aEventComponentsActivate);
1488 m_aEventComponentsDeactivate = {};
1489 m_bIsInTransition =
true;
1514 m_iEventProgressMax = 1;
1516 FindEditorComponents(m_aEventComponentsDeactivate);
1517 if (m_CurrentModeEntity) m_CurrentModeEntity.FindEditorComponents(m_aEventComponentsDeactivate);
1518 m_aEventComponentsActivate = {};
1519 m_bIsInTransition =
true;
1533 m_iEventProgressMax = 2;
1535 FindModeEntity(m_ProcessedMode).FindEditorComponents(m_aEventComponentsActivate);
1536 m_aEventComponentsDeactivate = {};
1537 if (m_CurrentModeEntity) m_CurrentModeEntity.FindEditorComponents(m_aEventComponentsDeactivate);
1561 FindModeEntity(m_ProcessedMode).FindEditorComponents(m_aEventComponentsActivate);
1578 FindModeEntity(m_ProcessedMode).FindEditorComponents(m_aEventComponentsDeactivate);
1581 if (m_ProcessedMode == m_CurrentMode)
1618 m_iEvent = m_aEvents[0];
1620 if (
DiagMenu.GetBool(
SCR_DebugMenuID.DEBUGUI_EDITOR_ASYNC_LOAD_DEBUG) && m_iEventComponent == 0 && m_iEventAttempt == 0)
1631 component.OnInitBase();
1638 component.OnRequestBase(
true);
1640 Event_OnRequest.Invoke(
true);
1647 if (component) component.OnRequestBase(
false);
1649 Event_OnRequest.Invoke(
false);
1657 if (component) component.OnOpenedBase();
1664 array<SCR_BaseEditorComponent> allComponents;
1669 if (component) component.OnOpenedBase();
1678 if (component) component.OnPreActivateBase();
1683 processedMode.PreActivateMode();
1685 Event_OnPreActivate.Invoke();
1693 if (component) component.OnDeactivateBase();
1695 if (m_ProcessedMode == m_CurrentMode && m_CurrentModeEntity)
1696 m_CurrentModeEntity.DeactivateMode();
1698 Event_OnDeactivate.Invoke();
1704 bool instantContinue;
1708 else if (instantContinue)
1726 component.OnActivateBase();
1729 if (m_CurrentModeEntity)
1730 m_CurrentModeEntity.ActivateMode();
1732 Event_OnActivate.Invoke();
1738 bool instantContinue;
1742 else if (instantContinue)
1760 component.OnPostDeactivateBase();
1769 if (component) component.OnPostActivateBase();
1772 if (m_CurrentModeEntity)
1773 m_CurrentModeEntity.PostActivateMode();
1775 Event_OnPostActivate.Invoke();
1784 component.OnClosedBase();
1794 component.OnDeleteBase();
1801 m_PrevMode = m_CurrentMode;
1802 m_CurrentMode = m_ProcessedMode;
1810 m_bIsInTransition =
false;
1813 switch (m_iEventOperation)
1817 Event_OnAsyncLoad.Invoke(1);
1818 Event_OnOpened.Invoke();
1825 GetGame().UserSettingsChanged();
1827 Event_OnAsyncLoad.Invoke(1);
1828 Event_OnClosed.Invoke();
1834 m_bIsModeChangeRequested =
false;
1835 if (
IsOpened()) Event_OnAsyncLoad.Invoke(1);
1836 Event_OnModeChange.Invoke(m_CurrentModeEntity,
FindModeEntity(m_PrevMode));
1843 m_aEventComponentsActivate = null;
1844 m_aEventComponentsDeactivate = null;
1846 m_ProcessedMode = 0;
1852 m_aEvents.RemoveOrdered(0);
1853 if (!m_aEvents.IsEmpty())
1861 array<SCR_BaseEditorComponent> components;
1863 components = m_aEventComponentsActivate;
1865 components = m_aEventComponentsDeactivate;
1868 if (m_iEventComponent >= components.Count())
1870 m_iEventComponent = 0;
1871 m_iEventAttempt = 0;
1876 GetGame().GetInputManager().ActivateContext(
"DebugContext");
1879 if (m_iEventAttempt == 0)
1880 m_fEventAsyncStart =
GetGame().GetWorld().GetWorldTime();
1893 instantContinue = IsDeleted() || !component.GetOwner() || component.GetOwner().IsDeleted();
1899 instantContinue =
true;
1900 m_iEventAttempt = 0;
1906 if (m_iEventAttempt == 0)
1907 instantContinue =
true;
1909 m_iEventComponent++;
1910 m_iEventAttempt = 0;
1911 m_iEventProgress += 1 / components.Count() / m_iEventProgressMax;
1912 Event_OnAsyncLoad.Invoke(m_iEventProgress);
1915 Print(
string.Format(
"%1 (%2), %3 ms",
Math.Round(m_iEventProgress * 100), component.Type(),
GetGame().GetWorld().GetWorldTime() - m_fEventAsyncStart),
LogLevel.VERBOSE);
1928 FindEditorComponents(outComponents);
1932 mode.FindEditorComponents(outComponents);
1957 cursorManualCameraComponent.TeleportCamera(goToPosition);
1969 array<string> debugTexts =
new array<string>;
1971 debugTexts.Insert(
string.Format(
"CanOpen: %1/%2", m_CanOpen, m_CanOpenSum));
1972 debugTexts.Insert(
string.Format(
"CanClose: %1/%2", m_CanClose, m_CanCloseSum));
1974 string currentModeName =
"N/A";
1975 if (m_CurrentModeEntity)
1976 currentModeName =
typename.EnumToString(
EEditorMode, m_CurrentModeEntity.GetModeType());
1978 debugTexts.Insert(
string.Format(
"Current Mode: %1", currentModeName));
1979 debugTexts.Insert(
string.Format(
"Available Modes: %1",
m_Modes.Count()));
1980 debugTexts.Insert(
string.Format(
"Limited: %1",
m_bIsLimited));
1981 debugTexts.Insert(
string.Format(
"Entity Author name: %1",
GetEntityAuthor()));
1985 DbgUI.Begin(
"SCR_EditorManagerEntity", 0, 0);
1986 foreach (
string text : debugTexts)
2008 return string.Empty;
2044 if (m_CurrentModeEntity)
2099 InitComponents(
true);
2107 if (modeEntity) modeEntity.InitServer(
this);
2128 InitComponents(
false);
2132 core.Event_OnEditorManagerInitOwner.Invoke(
this);
2150 DiagMenu.RegisterBool(
SCR_DebugMenuID.DEBUGUI_EDITOR_SAVE_PHOTO_SCREENSHOT_SHOW,
"",
"Show Screenshot",
"Editor");
2151 DiagMenu.RegisterRange(
SCR_DebugMenuID.DEBUGUI_EDITOR_NETWORK_DELAY,
"",
"Simulated Network Delay",
"Editor",
"0 1000 0 100");
2159 int enumCount = enumType.GetVariableCount();
2160 DiagMenu.RegisterRange(
SCR_DebugMenuID.DEBUGUI_EDITOR_MODE,
"",
"Mode",
"Editor",
string.Format(
"0 %1 0 1", enumCount - 1));
2163 DiagMenu.RegisterItem(
SCR_DebugMenuID.DEBUGUI_EDITOR_BUDGET_TO_CLEAR,
"",
"Budget to clear",
"Editor",
"AI, Vehicles");
2164 DiagMenu.RegisterBool(
SCR_DebugMenuID.DEBUGUI_EDITOR_CLEAR_SELECTED_BUDGET,
"",
"Clear selected budget",
"Editor");
2170 if (m_CurrentMode < 0)
2183 m_bIsAutoInit =
false;
2192 super.EOnInit(owner);
2197 world.RegisterEntityToBeUpdatedWhileGameIsPaused(
this);
2230 if (m_CurrentModeEntity)
2231 m_CurrentModeEntity.DeactivateModeServer();
2234 Event_OnClosedServer.Invoke();
2239 if (GetInstance() ==
this)
2258 world.UnregisterEntityToBeUpdatedWhileGameIsPaused(
this);
SCR_EAIThreatSectorFlags flags
ArmaReforgerScripted GetGame()
RplMode
Mode of replication.
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
SCR_BaseGameMode GetGameMode()
RplComponent m_RplComponent
class SCR_CampaignHintStorage SCR_BaseContainerCustomTitleEnum(EHint, "m_eHintId")
void SendNotification(int msgId, notnull IEntity user, int assetId=-1, int catalogType=-1)
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
override int GetPlayerID()
override ScriptInvoker GetOnPreActivate()
void Action_GoToLatestNotification(float value, EActionTrigger reason)
void SetCanClose(bool canClose, EEditorCanClose accessType)
void RequestAllAuthorsServer()
ScriptInvoker GetOnModeChange()
void SetCurrentModeOwner(EEditorMode mode)
ScriptInvoker GetOnModeChangeRequest()
override ScriptInvoker GetOnActivate()
void RemoveModeServer(EEditorMode mode)
ScriptInvoker GetOnLimitedChange()
override ScriptInvoker GetOnRequest()
SCR_EditorModeEntity GetCurrentModeEntity()
void Diag_RequestDeletionOfEntitiesOfBudget(EEditableEntityBudget budgetType)
void ToggleServer(bool open)
void SetCanOpenOwner(EEditorCanOpen canOpen)
int GetEnumSum(typename enumType)
void AddMode(notnull SCR_EditorModeEntity modeEntity, bool isInit)
void RestorePreviousMode()
Set editor mode to the previously selected one.
bool IsModeChangeRequested()
void ToggleOwnerServerCallback(bool open)
SCR_EditorModeEntity CreateEditorMode(EEditorMode mode, bool isInit, ResourceName prefab="")
ScriptInvoker GetOnAsyncLoad()
ref map< EEditorModeAccess, EEditorMode > m_ModesByAccess
override ScriptInvoker GetOnOpenedServerCallback()
override ScriptInvoker GetOnClosedServerCallback()
ScriptInvoker GetOnModeAdd()
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
override SCR_EditorManagerEntity GetManager()
void FinishAuthorsRequestOwner()
void SetAutoModes(bool isAutoModes=false)
void RegisterAuthorOwner(notnull SCR_EditableEntityAuthor author)
SCR_EditableEntityAuthor GetEntityAuthor()
void Action_EditorToggle(float value, EActionTrigger reason)
string GetEntityAuthorUID()
void RemoveEditorModes(EEditorModeAccess access, EEditorMode modes)
void SetCurrentModeServer(EEditorMode mode)
override ScriptInvoker GetOnClosedServer()
bool SetCurrentMode(bool isLimited)
SCR_EditorModeEntity FindModeEntity(EEditorMode mode)
override ScriptInvoker GetOnDeactivateServer()
EEditorMode GetEditorModes()
bool HasMode(EEditorMode mode)
void SetCanCloseOwner(EEditorCanClose canClose)
void AddEditorModes(EEditorModeAccess access, EEditorMode modes, bool isInit=false)
void RepairEditorModes(bool isInit)
Go thrugh current editor modes and make sure they all have a mode entity.
EEditorMode GetCurrentMode()
override ScriptInvoker GetOnOpened()
override ScriptInvoker GetOnActivateServer()
override ScriptInvoker GetOnPostActivate()
void RemoveMode(notnull SCR_EditorModeEntity modeEntity, bool OnDisconnnect)
void SetAutoInit(bool isAutoInit=false)
void CreateEditorModeOwner(EEditorMode mode, int modeEntityId, bool isInit)
ScriptInvoker GetOnModeRemove()
void SetCanOpenDebug(bool canOpen, EEditorCanOpen accessType=EEditorCanOpen.SCRIPT)
SCR_NotificationsComponent m_NotificationsComponent
void ~SCR_EditorManagerEntity()
void StartEvents(EEditorEventOperation type=EEditorEventOperation.NONE)
void SetCanCloseDebug(bool canClose, EEditorCanClose accessType=EEditorCanClose.SCRIPT)
void GetAllComponents(out array< SCR_BaseEditorComponent > outComponents)
void SetEditorModes(EEditorModeAccess access, EEditorMode modes, bool isInit=false)
EEditorMode GetDefaultMode()
bool ProcessAsyncEvent(bool toActivate, out bool instantContinue)
override ScriptInvoker GetOnDebug()
int GetModeEntities(out notnull array< SCR_EditorModeEntity > modeEntities)
override ScriptInvoker GetOnDeactivate()
void ToggleOwner(bool open)
ScriptInvoker GetOnCanClose()
void SetCanOpen(bool canOpen, EEditorCanOpen accessType)
override ScriptInvoker GetOnClosed()
void InitOwner(int playerID)
void EnableCameraNwkSimulation(bool enable)
override ScriptInvoker GetOnOpenedServer()
void RecreateEditorModes()
void InitServer(int playerID)
ScriptInvoker GetOnCanEndGameChanged()
void ProcessEvent()
This would be so much nicer as a flow chart.
override ScriptInvoker GetOnInit()
ScriptInvoker GetOnCanOpen()
void Toggle()
Toggle hint. Hide it if it's shown, and open it again if it's hidden.
override void EOnFrame(IEntity owner, float timeSlice)
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
void GetChildren(out array< SCR_ScenarioFrameworkLayerBase > children)
proto native void Close()
proto native bool Open(string path, FileMode mode=FileMode.READ)
enum EVehicleType IEntity
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)
proto external Managed FindComponent(typename typeName)
proto external IEntity GetSibling()
Object holding reference to resource. In destructor release the resource.
static SCR_EditableEntityComponent GetFirstEntity(EEditableEntityState state)
sealed bool OnActivateAsyncBase(int attempt)
sealed bool OnDeactivateAsyncBase(int attempt)
SCR_EGameModeState GetState()
static SCR_ManualCamera GetCameraInstance()
SCR_EditableEntityAuthor GetAuthor()
void AddAuthorOnRequest(notnull SCR_EditableEntityAuthor newAuthor)
Do not call this function yourself, this has to be requested by server.
void DeleteAllEntitiesThatHaveBudgetOfType(EEditableEntityBudget budgetToFree)
set< SCR_EditableEntityAuthor > GetAllAuthorsServer()
void OnAuthorRequestFinished()
Core component to manage SCR_EditorManagerEntity.
EEditorMode GetBaseModes(EEditorModeFlag flags=-1, bool coreOnly=false)
bool SetEditorManager(SCR_EditorManagerEntity entity)
SCR_EditorManagerEntity GetEditorManager()
int GetBaseModePrefabs(out notnull array< SCR_EditorModePrefab > outPrefabs, EEditorModeFlag flags=-1, bool coreOnly=false)
SCR_EditorModeUIInfo GetInfo()
EEditorModeFlag GetFlags()
ref SCR_EditorModeUIInfo m_ModeUIInfo
static bool IsAdmin(int playerID)
SCR_BaseManualCameraComponent FindCameraComponent(typename type)
static int GetLocalPlayerId()
Returns either a valid ID of local player or 0.
Teleport the camera to the cursor's world position.
void SetChannelTextOverwrite(string text)
void SetRadioEntry(notnull BaseTransceiver transceiver, int number, SCR_GadgetComponent gadgetComp)
void SetFrequencyTextOverwrite(string text)
override void EOnInit(IEntity owner)
BaseRadioComponentClass BaseTransceiver
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
EEditorMode
Editor mode that defines overall functionality.
EEditorEvent
Editor event processed in components.
EEditorCanClose
Layers allowing editor to be closed. All of them have to be activated.
EEditorEventOperation
Type of event-processing operation.
EEditorCanOpen
Layers allowing editor to be opened. All of them have to be activated (certain exceptions may apply w...
EntityEvent
Various entity events.
EntityFlags
Various entity flags.
SCR_EditorManagerCore m_iPlayerID
void RplRpc(RplChannel channel, RplRcver rcver, RplCondition condition=RplCondition.None, string customConditionName="")
RplChannel
Communication channel. Reliable is guaranteed to be delivered. Unreliable not.