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_FactionBaseResourceComponent.c
Go to the documentation of this file.
1
class
SCR_FactionBaseResourceComponentClass
:
SCR_MilitaryBaseLogicComponentClass
2
{
3
}
4
5
class
SCR_FactionBaseResourceComponent : SCR_MilitaryBaseLogicComponent
6
{
7
protected
FactionAffiliationComponent
m_FactionAffiliationComp
;
8
9
//------------------------------------------------------------------------------------------------
10
Faction
GetFaction
()
11
{
12
if
(!
m_FactionAffiliationComp
)
13
return
null;
14
15
Faction
faction =
m_FactionAffiliationComp
.GetAffiliatedFaction();
16
if
(faction)
17
return
faction;
18
19
return
m_FactionAffiliationComp
.GetDefaultAffiliatedFaction();
20
}
21
22
//------------------------------------------------------------------------------------------------
23
override
protected
void
OnBaseFactionChanged
(
Faction
faction)
24
{
25
if
(!
m_FactionAffiliationComp
|| !faction)
26
return
;
27
28
if
(
m_FactionAffiliationComp
.GetAffiliatedFaction() == faction)
29
return
;
30
31
m_FactionAffiliationComp
.SetAffiliatedFaction(faction);
32
}
33
34
//------------------------------------------------------------------------------------------------
35
protected
void
RegisterBaseLogic
()
36
{
37
if
(!
m_FactionAffiliationComp
)
38
return
;
39
40
SCR_MilitaryBaseSystem
baseManager =
SCR_MilitaryBaseSystem
.
GetInstance
();
41
if
(!baseManager)
42
return
;
43
44
baseManager.
RegisterLogicComponent
(
this
);
45
}
46
47
//------------------------------------------------------------------------------------------------
48
protected
void
FetchFactionAffiliation
()
49
{
50
IEntity
owner =
GetOwner
();
51
IEntity
parent = owner.
GetParent
();
52
while
(parent && !
m_FactionAffiliationComp
)
53
{
54
m_FactionAffiliationComp
= FactionAffiliationComponent.Cast(parent.
FindComponent
(FactionAffiliationComponent));
55
if
(
m_FactionAffiliationComp
)
56
owner = parent;
57
58
parent = parent.
GetParent
();
59
}
60
61
if
(!
m_FactionAffiliationComp
)
62
{
63
m_FactionAffiliationComp
= FactionAffiliationComponent.Cast(owner.
FindComponent
(FactionAffiliationComponent));
64
if
(!
m_FactionAffiliationComp
)
65
return
;
66
}
67
68
// In conflict we have to discard bases which come from the command post composition, as they are not used
69
bool
isCampaign =
SCR_GameModeCampaign
.Cast(
GetGame
().
GetGameMode
()) != null;
70
71
vector
ownerPos = owner.
GetOrigin
();
72
float
closestDistance =
float
.MAX;
73
SCR_MilitaryBaseComponent closestBase;
74
SCR_CampaignMilitaryBaseComponent
campaignBase;
75
foreach
(SCR_MilitaryBaseComponent
base
:
m_aBases
)
76
{
77
if
(
base
.GetOwner() == owner)
78
return
;
79
80
campaignBase =
SCR_CampaignMilitaryBaseComponent
.Cast(
base
);
81
if
(isCampaign && !campaignBase)
82
continue
;
83
84
if
(campaignBase && campaignBase.
GetType
() !=
SCR_ECampaignBaseType
.BASE)
85
continue
;
86
87
float
distance
=
vector
.DistanceSqXZ(
base
.GetOwner().GetOrigin(), ownerPos);
88
if
(
distance
< closestDistance)
89
{
90
closestDistance =
distance
;
91
closestBase =
base
;
92
}
93
}
94
95
if
(closestBase)
96
OnBaseFactionChanged
(closestBase.GetFaction());
97
}
98
99
//------------------------------------------------------------------------------------------------
100
override
protected
void
EOnInit
(
IEntity
owner)
101
{
102
super.EOnInit(owner);
103
104
SCR_EditorLinkComponent linkComponent = SCR_EditorLinkComponent.Cast(
SCR_EntityHelper
.
GetMainParent
(
GetOwner
(),
true
).FindComponent(SCR_EditorLinkComponent));
105
if
(linkComponent)
106
{
107
linkComponent.GetOnLinkedEntitiesSpawned().Insert(
FetchFactionAffiliation
);
108
linkComponent.GetOnLinkedEntitiesSpawned().Insert(
RegisterBaseLogic
);
109
return
;
110
}
111
112
FetchFactionAffiliation
();
113
}
114
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
GetGameMode
SCR_BaseGameMode GetGameMode()
Definition
SCR_BaseGameModeComponent.c:15
OnBaseFactionChanged
void OnBaseFactionChanged(notnull SCR_MilitaryBaseComponent base, Faction faction)
Definition
SCR_CampaignFeedbackComponent.c:1029
SCR_ECampaignBaseType
SCR_ECampaignBaseType
Definition
SCR_CampaignMilitaryBaseComponent.c:2966
GetFaction
SCR_CampaignFaction GetFaction()
Definition
SCR_CampaignMobileAssemblyStandaloneComponent.c:164
distance
float distance
Definition
SCR_DestructibleTreeV2.c:29
m_FactionAffiliationComp
SCR_FactionBaseResourceComponentClass m_FactionAffiliationComp
RegisterBaseLogic
void RegisterBaseLogic()
Definition
SCR_FactionBaseResourceComponent.c:35
FetchFactionAffiliation
void FetchFactionAffiliation()
Definition
SCR_FactionBaseResourceComponent.c:48
SCR_GameModeCampaign
void SCR_GameModeCampaign(IEntitySource src, IEntity parent)
Definition
SCR_GameModeCampaign.c:1812
base
around base
Definition
SCR_HoldCampaignMilitaryBaseTaskEntity.c:9
m_aBases
SCR_MilitaryBaseLogicComponentClass m_aBases
Faction
Definition
Faction.c:13
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
IEntity::GetOrigin
proto external vector GetOrigin()
IEntity::GetParent
proto external IEntity GetParent()
SCR_CampaignMilitaryBaseComponent
Definition
SCR_CampaignMilitaryBaseComponent.c:38
SCR_CampaignMilitaryBaseComponent::GetType
SCR_ECampaignBaseType GetType()
Returns type of this base.
Definition
SCR_CampaignMilitaryBaseComponent.c:2190
SCR_EntityHelper
Definition
SCR_EntityHelper.c:2
SCR_EntityHelper::GetMainParent
static IEntity GetMainParent(IEntity entity, bool self=false)
Definition
SCR_EntityHelper.c:325
SCR_FactionBaseResourceComponentClass
Definition
SCR_FactionBaseResourceComponent.c:2
SCR_MilitaryBaseLogicComponentClass
Definition
SCR_MilitaryBaseLogicComponent.c:2
SCR_MilitaryBaseSystem
Definition
SCR_MilitaryBaseSystem.c:18
SCR_MilitaryBaseSystem::GetInstance
static SCR_MilitaryBaseSystem GetInstance()
Definition
SCR_MilitaryBaseSystem.c:37
SCR_MilitaryBaseSystem::RegisterLogicComponent
void RegisterLogicComponent(notnull SCR_MilitaryBaseLogicComponent component)
Definition
SCR_MilitaryBaseSystem.c:342
vector
Definition
vector.c:13
GetOwner
IEntity GetOwner()
Owner entity of the fuel tank.
Definition
SCR_FuelNode.c:128
EOnInit
override void EOnInit(IEntity owner)
Definition
SCR_AIConfigComponent.c:87
scripts
Game
GameMode
Components
SCR_FactionBaseResourceComponent.c
Generated by
1.17.0