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_OpenVehicleStorageAction.c
Go to the documentation of this file.
1
class
SCR_OpenVehicleStorageAction
:
SCR_InventoryAction
2
{
3
#ifndef DISABLE_INVENTORY
4
[
Attribute
(
"1"
)]
5
protected
bool
m_bShowFromOutside
;
6
7
[
Attribute
(
"1"
)]
8
protected
bool
m_bShowInside
;
9
10
[
Attribute
(
"0"
,
desc
:
"If true will get Inventory from self even if parent (eg vehicle) also has an inventory."
)]
11
protected
bool
m_bForceInventoryFromSelf
;
12
13
protected
IEntity
m_Vehicle
;
14
protected
IEntity
m_InventoryOwner
;
15
protected
DamageManagerComponent
m_DamageManager
;
16
protected
FactionAffiliationComponent
m_VehicleAffiliation
;
17
18
//------------------------------------------------------------------------------------------------
19
override
protected
void
PerformActionInternal
(SCR_InventoryStorageManagerComponent manager,
IEntity
pOwnerEntity,
IEntity
pUserEntity)
20
{
21
manager.SetStorageToOpen(
m_InventoryOwner
);
22
manager.OpenInventory();
23
}
24
25
//------------------------------------------------------------------------------------------------
26
override
bool
CanBeShownScript
(
IEntity
user)
27
{
28
if
(!user || !
m_Vehicle
|| !
m_InventoryOwner
)
29
return
false
;
30
31
if
(
m_DamageManager
&&
m_DamageManager
.GetState() ==
EDamageState
.DESTROYED)
32
return
false
;
33
34
ChimeraCharacter
character =
ChimeraCharacter
.Cast(user);
35
if
(character)
36
{
37
CompartmentAccessComponent compAccess = character.GetCompartmentAccessComponent();
38
if
(compAccess && (compAccess.IsGettingIn() || compAccess.IsGettingOut()))
39
return
false
;
40
41
if
(!
m_bShowFromOutside
&& !character.IsInVehicle())
42
return
false
;
43
44
if
(!
m_bShowInside
&& character.IsInVehicle())
45
return
false
;
46
}
47
48
if
(!
m_VehicleAffiliation
)
49
return
true
;
50
51
Faction
vehicleFaction =
m_VehicleAffiliation
.GetAffiliatedFaction();
52
if
(!vehicleFaction)
53
return
true
;
54
55
FactionAffiliationComponent userAffiliation = FactionAffiliationComponent.Cast(user.
FindComponent
(FactionAffiliationComponent));
56
if
(!userAffiliation)
57
return
true
;
58
59
Faction
userFaction = userAffiliation.GetAffiliatedFaction();
60
if
(!userFaction)
61
return
true
;
62
63
return
!vehicleFaction.IsFactionEnemy(userFaction);
64
}
65
66
//------------------------------------------------------------------------------------------------
67
override
void
Init
(
IEntity
pOwnerEntity,
GenericComponent
pManagerComponent)
68
{
69
//~ Call one frame later as otherwise client slotted entity does not know yet who the vehicle is on init
70
GetGame
().GetCallqueue().CallLater(
DelayedInit
,
param1
: pOwnerEntity,
param2
: pManagerComponent);
71
}
72
73
//------------------------------------------------------------------------------------------------
74
protected
void
DelayedInit
(
IEntity
pOwnerEntity,
GenericComponent
pManagerComponent)
75
{
76
if
(!pOwnerEntity)
77
return
;
78
79
if
(!
Vehicle
.Cast(pOwnerEntity) && pOwnerEntity.
GetParent
())
80
m_Vehicle
= pOwnerEntity.
GetParent
();
81
else
82
m_Vehicle
= pOwnerEntity;
83
84
//~ Set inventory owner the same as vehicle
85
if
(!
m_bForceInventoryFromSelf
)
86
m_InventoryOwner
=
m_Vehicle
;
87
//~ Set inventory owner as self
88
else
89
m_InventoryOwner
= pOwnerEntity;
90
91
if
(!
m_Vehicle
)
92
return
;
93
94
m_DamageManager
=
DamageManagerComponent
.Cast(
m_Vehicle
.FindComponent(
DamageManagerComponent
));
95
m_VehicleAffiliation
= FactionAffiliationComponent.Cast(
m_Vehicle
.FindComponent(FactionAffiliationComponent));
96
}
97
#endif
98
};
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
ChimeraCharacter
Definition
ChimeraCharacter.c:13
DamageManagerComponent
Definition
DamageManagerComponent.c:13
Faction
Definition
Faction.c:13
GenericComponent
Definition
GenericComponent.c:13
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
IEntity::GetParent
proto external IEntity GetParent()
SCR_InventoryAction
modded version for to be used with the inventory 2.0
Definition
SCR_InventoryAction.c:4
SCR_OpenVehicleStorageAction
Definition
SCR_OpenVehicleStorageAction.c:2
SCR_OpenVehicleStorageAction::DelayedInit
void DelayedInit(IEntity pOwnerEntity, GenericComponent pManagerComponent)
Definition
SCR_OpenVehicleStorageAction.c:74
SCR_OpenVehicleStorageAction::Init
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
Definition
SCR_OpenVehicleStorageAction.c:67
SCR_OpenVehicleStorageAction::m_InventoryOwner
IEntity m_InventoryOwner
Definition
SCR_OpenVehicleStorageAction.c:14
SCR_OpenVehicleStorageAction::m_bForceInventoryFromSelf
bool m_bForceInventoryFromSelf
Definition
SCR_OpenVehicleStorageAction.c:11
SCR_OpenVehicleStorageAction::m_bShowFromOutside
bool m_bShowFromOutside
Definition
SCR_OpenVehicleStorageAction.c:5
SCR_OpenVehicleStorageAction::m_VehicleAffiliation
FactionAffiliationComponent m_VehicleAffiliation
Definition
SCR_OpenVehicleStorageAction.c:16
SCR_OpenVehicleStorageAction::m_Vehicle
IEntity m_Vehicle
Definition
SCR_OpenVehicleStorageAction.c:13
SCR_OpenVehicleStorageAction::CanBeShownScript
override bool CanBeShownScript(IEntity user)
Definition
SCR_OpenVehicleStorageAction.c:26
SCR_OpenVehicleStorageAction::m_DamageManager
DamageManagerComponent m_DamageManager
Definition
SCR_OpenVehicleStorageAction.c:15
SCR_OpenVehicleStorageAction::m_bShowInside
bool m_bShowInside
Definition
SCR_OpenVehicleStorageAction.c:8
SCR_OpenVehicleStorageAction::PerformActionInternal
void PerformActionInternal(SCR_InventoryStorageManagerComponent manager, IEntity pOwnerEntity, IEntity pUserEntity)
Definition
SCR_OpenVehicleStorageAction.c:19
Vehicle
enum EPhysicsLayerPresets Vehicle
Definition
gameLib.c:24
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
EDamageState
EDamageState
Definition
EDamageState.c:13
param2
T2 param2
Definition
tuple.c:92
param1
Tuple param1
scripts
Game
UserActions
SCR_OpenVehicleStorageAction.c
Generated by
1.17.0