Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_PlayerModesEditorAttribute.c
Go to the documentation of this file.
3{
5 {
6 SCR_EditablePlayerDelegateComponent delegate = SCR_EditablePlayerDelegateComponent.Cast(item);
7 if (!delegate)
8 return null;
9
11 if (!core)
12 return null;
13
14 return core.GetEditorManager(delegate.GetPlayerID());
15 }
16
17 override SCR_BaseEditorAttributeVar ReadVariable(Managed item, SCR_AttributesManagerEditorComponent manager)
18 {
19 EEditorMode modes;
20
21 //--- Player modes, affects specific editor manager
22 SCR_EditorManagerEntity editorManager = GetEditorManager(item);
23 if (!editorManager)
24 return null;
25
26 if (SCR_Global.IsAdmin(editorManager.GetPlayerID()))
27 return null;
28
29 modes = editorManager.GetModes();
30
31 super.ReadVariable(item, manager);
32 SetFlags(modes);
34 }
35
36 override void UpdateInterlinkedVariables(SCR_BaseEditorAttributeVar var, SCR_AttributesManagerEditorComponent manager, bool isInit = false)
37 {
38 if (isInit)
39 {
40 manager.SetAttributeAsSubAttribute(SCR_PlayerBudgetPropEnableEditorAttribute);
41 manager.SetAttributeAsSubAttribute(SCR_PlayerBudgetVehicleEnableEditorAttribute);
42 manager.SetAttributeAsSubAttribute(SCR_PlayerBudgetAIEnableEditorAttribute);
43 manager.SetAttributeAsSubAttribute(SCR_PlayerBudgetSystemEnableEditorAttribute);
44 }
45
46 if (!var)
47 {
48 manager.SetAttributeEnabled(SCR_PlayerBudgetPropEnableEditorAttribute, false);
49 manager.SetAttributeEnabled(SCR_PlayerBudgetVehicleEnableEditorAttribute, false);
50 manager.SetAttributeEnabled(SCR_PlayerBudgetAIEnableEditorAttribute, false);
51 manager.SetAttributeEnabled(SCR_PlayerBudgetSystemEnableEditorAttribute, false);
52 }
53 else
54 {
55 int flags = var.GetVector()[0];
56 bool enableBudget = flags & EEditorMode.EDIT;
57
58 manager.SetAttributeEnabled(SCR_PlayerBudgetPropEnableEditorAttribute, enableBudget);
59 manager.SetAttributeEnabled(SCR_PlayerBudgetVehicleEnableEditorAttribute, enableBudget);
60 manager.SetAttributeEnabled(SCR_PlayerBudgetAIEnableEditorAttribute, enableBudget);
61 manager.SetAttributeEnabled(SCR_PlayerBudgetSystemEnableEditorAttribute, enableBudget);
62 }
63 }
64
65 override void WriteVariable(Managed item, SCR_BaseEditorAttributeVar var, SCR_AttributesManagerEditorComponent manager, int playerID)
66 {
67 if (!var)
68 return;
69
70 super.WriteVariable(item, var, manager, playerID);
71
72 //--- Player modes
73 SCR_EditorManagerEntity editorManager = GetEditorManager(item);
74 if (!editorManager)
75 return;
76
77 if (SCR_Global.IsAdmin(editorManager.GetPlayerID()))
78 return;
79
80 int flags = GetFlags(0);
81 editorManager.SetEditorModes(EEditorModeAccess.BASE, flags, false);
82 }
83
84 protected override void CreatePresets()
85 {
87 if (!core) return;
88
89 m_aValues.Clear();
90
92 SCR_SortedArray<SCR_EditorModePrefab> modePrefabs = new SCR_SortedArray<SCR_EditorModePrefab>;
93 for (int i, count = core.GetBaseModePrefabs(modePrefabs, EEditorModeFlag.EDITABLE, true); i < count; i++)
94 {
95 mode = modePrefabs[i];
97 value.SetWithUIInfo(mode.GetInfo(), mode.GetMode());
98 m_aValues.Insert(value);
99 }
100 }
101
102};
SCR_EAIThreatSectorFlags flags
EEditorModeAccess
EEditorModeFlag
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
SCR_EditorManagerEntity GetEditorManager()
void SCR_EditorManagerEntity(IEntitySource src, IEntity parent)
static SCR_BaseEditorAttributeVar CreateVector(vector value)
ref array< ref SCR_EditorAttributeFloatStringValueHolder > m_aValues
Core component to manage SCR_EditorManagerEntity.
SCR_EditorManagerEntity GetEditorManager()
int GetBaseModePrefabs(out notnull array< SCR_EditorModePrefab > outPrefabs, EEditorModeFlag flags=-1, bool coreOnly=false)
SCR_EditorModeUIInfo GetInfo()
static bool IsAdmin(int playerID)
Definition Functions.c:1927
override SCR_BaseEditorAttributeVar ReadVariable(Managed item, SCR_AttributesManagerEditorComponent manager)
override void UpdateInterlinkedVariables(SCR_BaseEditorAttributeVar var, SCR_AttributesManagerEditorComponent manager, bool isInit=false)
override void WriteVariable(Managed item, SCR_BaseEditorAttributeVar var, SCR_AttributesManagerEditorComponent manager, int playerID)
SCR_EditorManagerEntity GetEditorManager(Managed item)
EEditorMode
Editor mode that defines overall functionality.
Definition EEditorMode.c:6