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_DeleteSelectedContextAction.c
Go to the documentation of this file.
1
//------------------------------------------------------------------------------------------------
2
[
BaseContainerProps
(),
SCR_BaseContainerCustomTitleUIInfo
(
"m_Info"
)]
3
class
SCR_DeleteSelectedContextAction
:
SCR_SelectedEntitiesContextAction
4
{
5
[
Attribute
(
desc
:
"When enabled, the action will not be available if target entity is a player or a vehicle containing players."
)]
6
protected
bool
m_bCannotDeletePlayer
;
7
8
override
bool
CanBeShown
(
SCR_EditableEntityComponent
selectedEntity,
vector
cursorWorldPosition,
int
flags
)
9
{
10
return
CanBePerformed
(selectedEntity, cursorWorldPosition,
flags
);
11
}
12
13
override
bool
CanBePerformed
(
SCR_EditableEntityComponent
selectedEntity,
vector
cursorWorldPosition,
int
flags
)
14
{
15
//--- Prevent deleting players. Check the entity and compartments directly; don't rely on PLAYER state, as PLAYER filter may not be present in this editor mode.
16
if
(
m_bCannotDeletePlayer
)
17
{
18
SCR_PossessingManagerComponent possessionManager = SCR_PossessingManagerComponent.GetInstance();
19
20
//--- Scan all children; player may be occupying a turret inside a composition
21
set<SCR_EditableEntityComponent> children =
new
set<SCR_EditableEntityComponent>();
22
selectedEntity.
GetChildren
(children);
23
foreach
(
SCR_EditableEntityComponent
child: children)
24
{
25
IEntity
owner = child.GetOwner();
26
SCR_BaseCompartmentManagerComponent compartmentManager = SCR_BaseCompartmentManagerComponent.Cast(owner.
FindComponent
(SCR_BaseCompartmentManagerComponent));
27
if
(compartmentManager)
28
{
29
//--- Entity has compartment manager, check if one of the occupants is a player
30
array<IEntity> occupants = {};
31
compartmentManager.GetOccupants(occupants);
32
foreach
(
IEntity
occupant: occupants)
33
{
34
if
(possessionManager)
35
{
36
if
(possessionManager.GetIdFromMainEntity(occupant) != 0)
37
return
false
;
38
}
39
else
40
{
41
if
((
GetGame
().GetPlayerManager().GetPlayerIdFromControlledEntity(occupant) != 0))
42
return
false
;
43
}
44
}
45
}
46
else
47
{
48
//--- Check if the entity itself is a player
49
if
(possessionManager)
50
{
51
if
(possessionManager.GetIdFromMainEntity(owner) != 0)
52
return
false
;
53
}
54
else
55
{
56
if
((
GetGame
().GetPlayerManager().GetPlayerIdFromControlledEntity(owner) != 0))
57
return
false
;
58
}
59
}
60
}
61
}
62
63
return
selectedEntity
64
&& !selectedEntity.
HasEntityFlag
(
EEditableEntityFlag
.NON_DELETABLE)
65
&& !selectedEntity.
HasEntityFlag
(
EEditableEntityFlag
.NON_INTERACTIVE);
66
//&& !selectedEntity.HasEntityState(EEditableEntityState.PLAYER);
67
}
68
69
override
void
Perform
(
SCR_EditableEntityComponent
selectedEntity,
vector
cursorWorldPosition)
70
{
71
if
(selectedEntity)
72
selectedEntity.
Delete
(
true
,
true
);
73
}
74
};
flags
SCR_EAIThreatSectorFlags flags
Definition
AIControlComponentSerializer.c:16
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
BaseContainerProps
SCR_AIAnimation_Loitering BaseContainerProps
Commanding menu commanding element class.
Definition
SCR_AIAnimationWaypoint.c:14
SCR_BaseContainerCustomTitleUIInfo
class SCR_ArsenalGameModeUIDataHolder SCR_BaseContainerCustomTitleUIInfo("m_UIInfo")
Definition
SCR_ArsenalManagerComponent.c:1752
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
SCR_DeleteSelectedContextAction
Definition
SCR_DeleteSelectedContextAction.c:4
SCR_DeleteSelectedContextAction::CanBeShown
override bool CanBeShown(SCR_EditableEntityComponent selectedEntity, vector cursorWorldPosition, int flags)
Definition
SCR_DeleteSelectedContextAction.c:8
SCR_DeleteSelectedContextAction::m_bCannotDeletePlayer
bool m_bCannotDeletePlayer
Definition
SCR_DeleteSelectedContextAction.c:6
SCR_DeleteSelectedContextAction::Perform
override void Perform(SCR_EditableEntityComponent selectedEntity, vector cursorWorldPosition)
Definition
SCR_DeleteSelectedContextAction.c:69
SCR_DeleteSelectedContextAction::CanBePerformed
override bool CanBePerformed(SCR_EditableEntityComponent selectedEntity, vector cursorWorldPosition, int flags)
Definition
SCR_DeleteSelectedContextAction.c:13
SCR_EditableEntityComponent
Definition
SCR_EditableEntityComponent.c:14
SCR_EditableEntityComponent::GetChildren
void GetChildren(out notnull set< SCR_EditableEntityComponent > entities, bool onlyDirect=false, bool skipIgnored=false)
Definition
SCR_EditableEntityComponent.c:1206
SCR_EditableEntityComponent::HasEntityFlag
bool HasEntityFlag(EEditableEntityFlag flag)
Definition
SCR_EditableEntityComponent.c:1663
SCR_EditableEntityComponent::Delete
bool Delete(bool changedByUser=false, bool updateNavmesh=false)
Definition
SCR_EditableEntityComponent.c:842
SCR_SelectedEntitiesContextAction
Definition
SCR_SelectedEntitiesContextAction.c:11
vector
Definition
vector.c:13
EEditableEntityFlag
EEditableEntityFlag
Unique flags of the entity.
Definition
EEditableEntityFlag.c:6
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
Editor
Containers
Actions
ContextActions
SCR_DeleteSelectedContextAction.c
Generated by
1.17.0