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_ResourceConsumerServicePoint.c
Go to the documentation of this file.
1
[
BaseContainerProps
(configRoot:
true
)]
2
class
SCR_ResourceConsumerServicePoint
: SCR_ResourceConsumer
3
{
4
protected
SCR_ServicePointComponent
m_ServicePointComponent
;
5
protected
ref set<SCR_ResourceConsumerMilitaryBase>
m_aBaseConsumers
;
6
7
//------------------------------------------------------------------------------------------------
8
override
bool
CanInteractWith
(notnull
SCR_ResourceContainer
container)
9
{
10
if
(
m_aBaseConsumers
)
11
{
12
foreach
(
SCR_ResourceConsumerMilitaryBase
baseConsumer :
m_aBaseConsumers
)
13
{
14
if
(baseConsumer && container.IsInteractorLinked(baseConsumer))
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_aBaseConsumers
)
26
{
27
foreach
(
SCR_ResourceConsumerMilitaryBase
baseConsumer :
m_aBaseConsumers
)
28
{
29
if
(baseConsumer)
30
grid.UpdateInteractor(baseConsumer);
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_ResourceConsumerMilitaryBase
baseConsumer =
SCR_ResourceConsumerMilitaryBase
.Cast(baseResourceComponent.GetConsumer(m_eGeneratorIdentifier,
m_eResourceType
));
50
51
if
(!baseConsumer)
52
return
;
53
54
if
(!
m_aBaseConsumers
)
55
m_aBaseConsumers
=
new
set<SCR_ResourceConsumerMilitaryBase>();
56
57
m_aBaseConsumers
.Insert(baseConsumer);
58
baseConsumer.
GetOnBaseContainerRegistered
().Insert(
OnBaseContainerRegistered
);
59
baseConsumer.
GetOnBaseContainerUnregistered
().Insert(
OnBaseContainerUnregistered
);
60
61
SCR_ResourceContainerQueueBase
containerQueue = baseConsumer.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
(baseConsumer, 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_ResourceConsumerMilitaryBase
baseConsumer =
SCR_ResourceConsumerMilitaryBase
.Cast(baseResourceComponent.GetConsumer(m_eGeneratorIdentifier,
m_eResourceType
));
88
89
if
(!baseConsumer)
90
return
;
91
92
if
(
m_aBaseConsumers
)
93
m_aBaseConsumers
.RemoveItem(baseConsumer);
94
95
baseConsumer.
GetOnBaseContainerRegistered
().Remove(
OnBaseContainerRegistered
);
96
baseConsumer.
GetOnBaseContainerUnregistered
().Remove(
OnBaseContainerUnregistered
);
97
98
SCR_ResourceContainerQueueBase
containerQueue = baseConsumer.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
(baseConsumer, container);
109
}
110
}
111
112
//------------------------------------------------------------------------------------------------
117
protected
void
OnBaseContainerRegistered
(notnull
SCR_ResourceConsumerMilitaryBase
consumer, notnull
SCR_ResourceContainer
container)
118
{
119
if
(!
m_aBaseConsumers
)
120
return
;
121
122
if
(!container.IsInteractorLinked(
this
))
123
RegisterContainer(container);
124
}
125
126
//------------------------------------------------------------------------------------------------
131
protected
void
OnBaseContainerUnregistered
(notnull
SCR_ResourceConsumerMilitaryBase
consumer, notnull
SCR_ResourceContainer
container)
132
{
133
if
(!
m_aBaseConsumers
)
134
return
;
135
136
foreach
(
SCR_ResourceConsumerMilitaryBase
baseConsumer :
m_aBaseConsumers
)
137
{
138
if
(baseConsumer && container.IsInteractorLinked(baseConsumer))
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_ResourceConsumerMilitaryBase
Definition
SCR_ResourceConsumerMilitaryBase.c:3
SCR_ResourceConsumerMilitaryBase::GetOnBaseContainerRegistered
ScriptInvoker< SCR_ResourceConsumerMilitaryBase, SCR_ResourceContainer > GetOnBaseContainerRegistered()
Definition
SCR_ResourceConsumerMilitaryBase.c:9
SCR_ResourceConsumerMilitaryBase::GetOnBaseContainerUnregistered
ScriptInvoker< SCR_ResourceConsumerMilitaryBase, SCR_ResourceContainer > GetOnBaseContainerUnregistered()
Definition
SCR_ResourceConsumerMilitaryBase.c:19
SCR_ResourceConsumerServicePoint
Definition
SCR_ResourceConsumerServicePoint.c:3
SCR_ResourceConsumerServicePoint::m_aBaseConsumers
ref set< SCR_ResourceConsumerMilitaryBase > m_aBaseConsumers
Definition
SCR_ResourceConsumerServicePoint.c:5
SCR_ResourceConsumerServicePoint::Initialize
override void Initialize(notnull IEntity owner)
Definition
SCR_ResourceConsumerServicePoint.c:146
SCR_ResourceConsumerServicePoint::Clear
override void Clear()
Definition
SCR_ResourceConsumerServicePoint.c:160
SCR_ResourceConsumerServicePoint::OnBaseUnregistered
void OnBaseUnregistered(notnull SCR_ServicePointComponent servicePoint, notnull SCR_MilitaryBaseComponent base)
Definition
SCR_ResourceConsumerServicePoint.c:80
SCR_ResourceConsumerServicePoint::CanInteractWith
override bool CanInteractWith(notnull SCR_ResourceContainer container)
Definition
SCR_ResourceConsumerServicePoint.c:8
SCR_ResourceConsumerServicePoint::OnBaseRegistered
void OnBaseRegistered(notnull SCR_ServicePointComponent servicePoint, notnull SCR_MilitaryBaseComponent base)
Definition
SCR_ResourceConsumerServicePoint.c:42
SCR_ResourceConsumerServicePoint::OnBaseContainerUnregistered
void OnBaseContainerUnregistered(notnull SCR_ResourceConsumerMilitaryBase consumer, notnull SCR_ResourceContainer container)
Definition
SCR_ResourceConsumerServicePoint.c:131
SCR_ResourceConsumerServicePoint::OnResourceGridUpdated
override void OnResourceGridUpdated(notnull SCR_ResourceGrid grid)
Definition
SCR_ResourceConsumerServicePoint.c:23
SCR_ResourceConsumerServicePoint::m_ServicePointComponent
SCR_ServicePointComponent m_ServicePointComponent
Definition
SCR_ResourceConsumerServicePoint.c:4
SCR_ResourceConsumerServicePoint::OnBaseContainerRegistered
void OnBaseContainerRegistered(notnull SCR_ResourceConsumerMilitaryBase consumer, notnull SCR_ResourceContainer container)
Definition
SCR_ResourceConsumerServicePoint.c:117
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_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
Consumer
SCR_ResourceConsumerServicePoint.c
Generated by
1.17.0