Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_SlotManagerComponent.c
Go to the documentation of this file.
1
[
EntityEditorProps
(insertable:
false
)]
2
class
SCR_SpawnerSlotManagerClass
: GenericEntityClass
3
{
4
}
5
7
class
SCR_SpawnerSlotManager :
GenericEntity
8
{
9
protected
static
SCR_SpawnerSlotManager s_Instance;
10
11
protected
ref array <SCR_EntitySpawnerSlotComponent>
m_aSlots
= {};
12
protected
SCR_EditableEntityCore
m_EditableEntityCore
;
13
14
protected
ref
ScriptInvoker
m_OnSlotCreated
;
15
protected
ref
ScriptInvoker
m_OnSlotRemoved
;
16
protected
ref
ScriptInvoker
m_OnSlotUpdated
;
17
18
//------------------------------------------------------------------------------------------------
20
ScriptInvoker
GetOnSlotCreated
()
21
{
22
if
(!
m_OnSlotCreated
)
23
m_OnSlotCreated
=
new
ScriptInvoker
();
24
25
return
m_OnSlotCreated
;
26
}
27
28
//------------------------------------------------------------------------------------------------
30
ScriptInvoker
GetOnSlotRemoved
()
31
{
32
if
(!
m_OnSlotRemoved
)
33
m_OnSlotRemoved
=
new
ScriptInvoker
();
34
35
return
m_OnSlotRemoved
;
36
}
37
38
//------------------------------------------------------------------------------------------------
40
ScriptInvoker
GetOnSlotUpdated
()
41
{
42
if
(!
m_OnSlotUpdated
)
43
m_OnSlotUpdated
=
new
ScriptInvoker
();
44
45
return
m_OnSlotUpdated
;
46
}
47
48
//------------------------------------------------------------------------------------------------
50
static
SCR_SpawnerSlotManager GetInstance()
51
{
52
if
(
s_Instance
)
53
return
s_Instance
;
54
55
s_Instance
= SCR_SpawnerSlotManager.Cast(
GetGame
().
SpawnEntity
(SCR_SpawnerSlotManager,
GetGame
().GetWorld()));
56
if
(!
s_Instance
)
57
return
null;
58
59
s_Instance
.SetupSlotUpdatedInvoker();
60
return
s_Instance
;
61
}
62
63
//------------------------------------------------------------------------------------------------
64
protected
void
SetupSlotUpdatedInvoker
()
65
{
66
SCR_EditableEntityCore
core =
SCR_EditableEntityCore
.Cast(
SCR_EditableEntityCore
.GetInstance(
SCR_EditableEntityCore
));
67
if
(core)
68
core.Event_OnEntityTransformChanged.Insert(
OnSlotUpdated
);
69
}
70
71
//------------------------------------------------------------------------------------------------
74
void
RegisterSlot
(SCR_EntitySpawnerSlotComponent slot)
75
{
76
m_aSlots
.Insert(slot);
77
78
if
(
m_EditableEntityCore
)
79
m_EditableEntityCore
.Event_OnEntityTransformChanged.Insert(
OnSlotUpdated
);
80
81
if
(
m_OnSlotCreated
)
82
m_OnSlotCreated
.Invoke(slot);
83
}
84
85
//------------------------------------------------------------------------------------------------
88
void
UnregisterSlot
(notnull SCR_EntitySpawnerSlotComponent slot)
89
{
90
if
(
m_aSlots
.Contains(slot))
91
m_aSlots
.RemoveItem(slot);
92
93
if
(
m_OnSlotRemoved
)
94
m_OnSlotRemoved
.Invoke(slot);
95
}
96
97
//------------------------------------------------------------------------------------------------
99
void
OnSlotUpdated
(notnull
SCR_EditableEntityComponent
editableComponent)
100
{
101
IEntity
slotOwner = editableComponent.GetOwner();
102
if
(!slotOwner)
103
return
;
104
105
SCR_EntitySpawnerSlotComponent slot = SCR_EntitySpawnerSlotComponent.Cast(slotOwner.
FindComponent
(SCR_EntitySpawnerSlotComponent));
106
if
(slot &&
m_OnSlotUpdated
)
107
m_OnSlotUpdated
.Invoke(slot, slotOwner.
GetOrigin
());
108
}
109
110
//------------------------------------------------------------------------------------------------
111
protected
override
void
EOnInit
(
IEntity
owner)
112
{
113
super.EOnInit(owner);
114
115
SCR_EditableEntityCore
core =
SCR_EditableEntityCore
.Cast(
SCR_EditableEntityCore
.GetInstance(
SCR_EditableEntityCore
));
116
if
(core)
117
core.Event_OnEntityTransformChanged.Insert(
OnSlotUpdated
);
118
else
119
Print
(
"SCR_EditableEntityCore not found! Slot transformation won't be updated!"
,
LogLevel
.WARNING);
120
}
121
122
//------------------------------------------------------------------------------------------------
123
// destructor
124
void
~SCR_SpawnerSlotManager
()
125
{
126
if
(s_Instance ==
this
)
127
s_Instance = null;
128
}
129
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
RegisterSlot
void RegisterSlot(SCR_WeaponRackSlotEntity slot)
Definition
SCR_ArsenalDisplayComponent.c:30
m_aSlots
ref array< SCR_WeaponRackSlotEntity > m_aSlots
Definition
SCR_ArsenalDisplayComponent.c:13
SpawnEntity
IEntity SpawnEntity(ResourceName entityResourceName, notnull IEntity slotOwner)
Definition
SCR_CatalogEntitySpawnerComponent.c:1008
EntityEditorProps
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
Definition
SCR_CompassComponent.c:10
~SCR_SpawnerSlotManager
void ~SCR_SpawnerSlotManager()
Definition
SCR_SlotManagerComponent.c:124
GetOnSlotCreated
ScriptInvoker GetOnSlotCreated()
Definition
SCR_SlotManagerComponent.c:20
m_OnSlotRemoved
ref ScriptInvoker m_OnSlotRemoved
Definition
SCR_SlotManagerComponent.c:15
OnSlotUpdated
void OnSlotUpdated(notnull SCR_EditableEntityComponent editableComponent)
Definition
SCR_SlotManagerComponent.c:99
m_OnSlotUpdated
ref ScriptInvoker m_OnSlotUpdated
Definition
SCR_SlotManagerComponent.c:16
m_OnSlotCreated
ref ScriptInvoker m_OnSlotCreated
Definition
SCR_SlotManagerComponent.c:14
GetOnSlotUpdated
ScriptInvoker GetOnSlotUpdated()
Definition
SCR_SlotManagerComponent.c:40
UnregisterSlot
void UnregisterSlot(notnull SCR_EntitySpawnerSlotComponent slot)
Definition
SCR_SlotManagerComponent.c:88
GetOnSlotRemoved
ScriptInvoker GetOnSlotRemoved()
Definition
SCR_SlotManagerComponent.c:30
s_Instance
SCR_SpawnerSlotManagerClass s_Instance
Class used for managing changes and removals of slots present in world.
m_EditableEntityCore
SCR_EditableEntityCore m_EditableEntityCore
Definition
SCR_SlotManagerComponent.c:12
SetupSlotUpdatedInvoker
void SetupSlotUpdatedInvoker()
Definition
SCR_SlotManagerComponent.c:64
GenericEntity
Definition
GenericEntity.c:16
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
IEntity::GetOrigin
proto external vector GetOrigin()
SCR_EditableEntityComponent
Definition
SCR_EditableEntityComponent.c:14
SCR_EditableEntityCore
Definition
SCR_EditableEntityCore.c:20
SCR_SpawnerSlotManagerClass
Definition
SCR_SlotManagerComponent.c:3
EOnInit
override void EOnInit(IEntity owner)
Definition
SCR_AIConfigComponent.c:87
Print
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
LogLevel
Enum with severity of the logging message.
Definition
LogLevel.c:14
ScriptInvoker
ScriptInvokerBase< func > ScriptInvoker
Definition
tools.c:134
scripts
Game
Components
Spawner
SCR_SlotManagerComponent.c
Generated by
1.17.0