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_ResourceGeneratorServicePoint.c
Go to the documentation of this file.
1
[
BaseContainerProps
(configRoot:
true
)]
2
class
SCR_ResourceGeneratorServicePoint
:
SCR_ResourceGenerator
3
{
4
protected
SCR_ServicePointComponent
m_ServicePointComponent
;
5
protected
ref set<SCR_ResourceGeneratorMilitaryBase>
m_aBaseGenerators
;
6
7
//------------------------------------------------------------------------------------------------
8
override
bool
CanInteractWith
(notnull
SCR_ResourceContainer
container)
9
{
10
if
(
m_aBaseGenerators
)
11
{
12
foreach
(
SCR_ResourceGeneratorMilitaryBase
baseGenerator :
m_aBaseGenerators
)
13
{
14
if
(baseGenerator && container.IsInteractorLinked(baseGenerator))
15
return
super.CanInteractWith(container);
16
}
17
}
18
19
return
super.CanInteractWith(container);
20
}
21
22
//------------------------------------------------------------------------------------------------
23
override
void
OnResourceGridUpdated
(notnull
SCR_ResourceGrid
grid)
24
{
25
if
(
m_aBaseGenerators
)
26
{
27
foreach
(
SCR_ResourceGeneratorMilitaryBase
baseGenerator :
m_aBaseGenerators
)
28
{
29
if
(baseGenerator)
30
grid.UpdateInteractor(baseGenerator);
31
}
32
}
33
34
super.OnResourceGridUpdated(grid);
35
}
36
37
//------------------------------------------------------------------------------------------------
42
void
OnBaseRegistered
(notnull SCR_ServicePointComponent servicePoint, notnull SCR_MilitaryBaseComponent
base
)
43
{
44
SCR_ResourceComponent baseResourceComponent = SCR_ResourceComponent.Cast(
base
.GetOwner().FindComponent(SCR_ResourceComponent));
45
46
if
(!baseResourceComponent)
47
return
;
48
49
SCR_ResourceGeneratorMilitaryBase
baseGenerator =
SCR_ResourceGeneratorMilitaryBase
.Cast(baseResourceComponent.GetGenerator(m_eIdentifier,
m_eResourceType
));
50
51
if
(!baseGenerator)
52
return
;
53
54
if
(!
m_aBaseGenerators
)
55
m_aBaseGenerators
=
new
set<SCR_ResourceGeneratorMilitaryBase>();
56
57
m_aBaseGenerators
.Insert(baseGenerator);
58
baseGenerator.
GetOnBaseContainerRegistered
().Insert(
OnBaseContainerRegistered
);
59
baseGenerator.
GetOnBaseContainerUnregistered
().Insert(
OnBaseContainerUnregistered
);
60
61
SCR_ResourceContainerQueueBase
containerQueue = baseGenerator.GetContainerQueue();
62
SCR_ResourceContainer
container;
63
64
for
(
int
idx
= containerQueue.
GetContainerCount
() - 1;
idx
>= 0; --
idx
)
65
{
66
container = containerQueue.
GetContainerAt
(
idx
);
67
68
if
(!container)
69
continue
;
70
71
OnBaseContainerRegistered
(baseGenerator, container);
72
}
73
}
74
75
//------------------------------------------------------------------------------------------------
80
void
OnBaseUnregistered
(notnull SCR_ServicePointComponent servicePoint, notnull SCR_MilitaryBaseComponent
base
)
81
{
82
SCR_ResourceComponent baseResourceComponent = SCR_ResourceComponent.Cast(
base
.GetOwner().FindComponent(SCR_ResourceComponent));
83
84
if
(!baseResourceComponent)
85
return
;
86
87
SCR_ResourceGeneratorMilitaryBase
baseGenerator =
SCR_ResourceGeneratorMilitaryBase
.Cast(baseResourceComponent.GetGenerator(m_eIdentifier,
m_eResourceType
));
88
89
if
(!baseGenerator)
90
return
;
91
92
if
(
m_aBaseGenerators
)
93
m_aBaseGenerators
.RemoveItem(baseGenerator);
94
95
baseGenerator.
GetOnBaseContainerRegistered
().Remove(
OnBaseContainerRegistered
);
96
baseGenerator.
GetOnBaseContainerUnregistered
().Remove(
OnBaseContainerUnregistered
);
97
98
SCR_ResourceContainerQueueBase
containerQueue = baseGenerator.GetContainerQueue();
99
SCR_ResourceContainer
container;
100
101
for
(
int
idx
= containerQueue.
GetContainerCount
() - 1;
idx
>= 0; --
idx
)
102
{
103
container = containerQueue.
GetContainerAt
(
idx
);
104
105
if
(!container)
106
continue
;
107
108
OnBaseContainerUnregistered
(baseGenerator, container);
109
}
110
}
111
112
//------------------------------------------------------------------------------------------------
117
protected
void
OnBaseContainerRegistered
(notnull
SCR_ResourceGeneratorMilitaryBase
generator, notnull
SCR_ResourceContainer
container)
118
{
119
if
(!
m_aBaseGenerators
)
120
return
;
121
122
if
(!container.IsInteractorLinked(
this
))
123
RegisterContainer
(container);
124
}
125
126
//------------------------------------------------------------------------------------------------
131
protected
void
OnBaseContainerUnregistered
(notnull
SCR_ResourceGeneratorMilitaryBase
generator, notnull
SCR_ResourceContainer
container)
132
{
133
if
(!
m_aBaseGenerators
)
134
return
;
135
136
foreach
(
SCR_ResourceGeneratorMilitaryBase
baseGenerator :
m_aBaseGenerators
)
137
{
138
if
(baseGenerator && container.IsInteractorLinked(baseGenerator))
139
return
;
140
}
141
142
UnregisterContainer
(container);
143
}
144
145
//------------------------------------------------------------------------------------------------
146
override
void
Initialize
(notnull
IEntity
owner)
147
{
148
super.Initialize(owner);
149
150
m_ServicePointComponent
= SCR_ServicePointComponent.Cast(
GetOwner
().FindComponent(SCR_ServicePointComponent));
151
152
if
(!
m_ServicePointComponent
)
153
return
;
154
155
m_ServicePointComponent
.GetOnBaseRegistered().Insert(
OnBaseRegistered
);
156
m_ServicePointComponent
.GetOnBaseUnregistered().Insert(
OnBaseUnregistered
);
157
}
158
159
//------------------------------------------------------------------------------------------------
160
override
void
Clear
()
161
{
162
super.Clear();
163
164
if
(!
m_ServicePointComponent
)
165
return
;
166
167
m_ServicePointComponent
.GetOnBaseRegistered().Remove(
OnBaseRegistered
);
168
m_ServicePointComponent
.GetOnBaseUnregistered().Remove(
OnBaseUnregistered
);
169
}
170
}
idx
int idx
Definition
AIControlComponentSerializer.c:13
BaseContainerProps
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
Definition
SCR_AIAnimationWaypoint.c:14
base
around base
Definition
SCR_HoldCampaignMilitaryBaseTaskEntity.c:9
m_eResourceType
EResourceType m_eResourceType
Definition
SCR_ResourceComponentSerializer.c:0
IEntity
Definition
IEntity.c:13
SCR_ResourceContainer
Definition
SCR_ResourceContainer.c:35
SCR_ResourceContainerQueueBase
Definition
SCR_ResourceContainerQueue.c:3
SCR_ResourceContainerQueueBase::GetContainerAt
SCR_ResourceContainer GetContainerAt(int index)
Definition
SCR_ResourceContainerQueue.c:131
SCR_ResourceContainerQueueBase::GetContainerCount
int GetContainerCount()
Definition
SCR_ResourceContainerQueue.c:176
SCR_ResourceGenerator
Definition
SCR_ResourceGenerator.c:80
SCR_ResourceGenerator::UnregisterContainer
override bool UnregisterContainer(int containerIndex)
Definition
SCR_ResourceGenerator.c:206
SCR_ResourceGenerator::RegisterContainer
override bool RegisterContainer(notnull SCR_ResourceContainer container)
Definition
SCR_ResourceGenerator.c:178
SCR_ResourceGeneratorMilitaryBase
Definition
SCR_ResourceGeneratorMilitaryBase.c:3
SCR_ResourceGeneratorMilitaryBase::GetOnBaseContainerUnregistered
ScriptInvoker< SCR_ResourceGeneratorMilitaryBase, SCR_ResourceContainer > GetOnBaseContainerUnregistered()
Definition
SCR_ResourceGeneratorMilitaryBase.c:19
SCR_ResourceGeneratorMilitaryBase::GetOnBaseContainerRegistered
ScriptInvoker< SCR_ResourceGeneratorMilitaryBase, SCR_ResourceContainer > GetOnBaseContainerRegistered()
Definition
SCR_ResourceGeneratorMilitaryBase.c:9
SCR_ResourceGeneratorServicePoint
Definition
SCR_ResourceGeneratorServicePoint.c:3
SCR_ResourceGeneratorServicePoint::OnBaseRegistered
void OnBaseRegistered(notnull SCR_ServicePointComponent servicePoint, notnull SCR_MilitaryBaseComponent base)
Definition
SCR_ResourceGeneratorServicePoint.c:42
SCR_ResourceGeneratorServicePoint::OnBaseContainerUnregistered
void OnBaseContainerUnregistered(notnull SCR_ResourceGeneratorMilitaryBase generator, notnull SCR_ResourceContainer container)
Definition
SCR_ResourceGeneratorServicePoint.c:131
SCR_ResourceGeneratorServicePoint::m_ServicePointComponent
SCR_ServicePointComponent m_ServicePointComponent
Definition
SCR_ResourceGeneratorServicePoint.c:4
SCR_ResourceGeneratorServicePoint::Initialize
override void Initialize(notnull IEntity owner)
Definition
SCR_ResourceGeneratorServicePoint.c:146
SCR_ResourceGeneratorServicePoint::OnBaseContainerRegistered
void OnBaseContainerRegistered(notnull SCR_ResourceGeneratorMilitaryBase generator, notnull SCR_ResourceContainer container)
Definition
SCR_ResourceGeneratorServicePoint.c:117
SCR_ResourceGeneratorServicePoint::m_aBaseGenerators
ref set< SCR_ResourceGeneratorMilitaryBase > m_aBaseGenerators
Definition
SCR_ResourceGeneratorServicePoint.c:5
SCR_ResourceGeneratorServicePoint::OnBaseUnregistered
void OnBaseUnregistered(notnull SCR_ServicePointComponent servicePoint, notnull SCR_MilitaryBaseComponent base)
Definition
SCR_ResourceGeneratorServicePoint.c:80
SCR_ResourceGeneratorServicePoint::Clear
override void Clear()
Definition
SCR_ResourceGeneratorServicePoint.c:160
SCR_ResourceGeneratorServicePoint::CanInteractWith
override bool CanInteractWith(notnull SCR_ResourceContainer container)
Definition
SCR_ResourceGeneratorServicePoint.c:8
SCR_ResourceGeneratorServicePoint::OnResourceGridUpdated
override void OnResourceGridUpdated(notnull SCR_ResourceGrid grid)
Definition
SCR_ResourceGeneratorServicePoint.c:23
SCR_ResourceGrid
Definition
SCR_ResourceGrid.c:2
GetOwner
IEntity GetOwner()
Owner entity of the fuel tank.
Definition
SCR_FuelNode.c:128
scripts
Game
GameMode
Components
Resources
Generator
SCR_ResourceGeneratorServicePoint.c
Generated by
1.17.0