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_VehicleEditableEntityUIComponent.c
Go to the documentation of this file.
1
class
SCR_VehicleEditableEntityUIComponent
:
SCR_BaseEditableEntityUIComponent
2
{
3
[
Attribute
(defvalue:
"Name"
)]
4
protected
string
m_sNameTextWidgetName
;
5
6
[
Attribute
(defvalue:
"#AR-Editor_PlayerVehicle_Name"
)]
7
protected
string
m_sVehicleNameText
;
8
9
protected
RichTextWidget
m_wNameTextWidget
;
10
11
protected
SCR_EditableVehicleComponent
m_VehicleComponent
;
12
protected
SCR_EditableCharacterComponent
m_VehicleOwningPlayer
;
13
protected
BaseWorld
m_World
;
14
15
protected
SCR_RenderedEditableEntityFilter
m_RenderFilter
;
16
17
//------------------------------------------------------------------------------------------------
19
void
DetermineNameVisibility
()
20
{
21
if
(!
m_World
|| !
m_VehicleComponent
|| !
m_VehicleOwningPlayer
|| !
m_wNameTextWidget
|| !
m_RenderFilter
)
22
return
;
23
24
vector
cameraMatrix[4];
25
vector
playerPosition;
26
float
playerMaxViewDistance =
m_VehicleOwningPlayer
.GetMaxDrawDistanceSq();
27
28
m_VehicleOwningPlayer
.GetPos(playerPosition);
29
m_World
.GetCurrentCamera(cameraMatrix);
30
31
float
distanceSquared =
vector
.DistanceSq(playerPosition, cameraMatrix[3]);
32
33
if
(distanceSquared < playerMaxViewDistance *
m_RenderFilter
.GetCameraDisCoef())
34
m_wNameTextWidget
.SetVisible(
false
);
35
else
36
m_wNameTextWidget
.SetVisible(
true
);
37
}
38
39
//------------------------------------------------------------------------------------------------
40
override
void
OnInit
(
SCR_EditableEntityComponent
entity,
SCR_UIInfo
info,
SCR_EditableEntityBaseSlotUIComponent
slot)
41
{
42
m_wNameTextWidget
=
RichTextWidget
.Cast(
GetWidget
().FindAnyWidget(
m_sNameTextWidgetName
));
43
if
(!
m_wNameTextWidget
)
44
{
45
Print
(
"SCR_VehicleEditableEntityUIComponent: Failed to find Name Widget: "
+
m_sNameTextWidgetName
,
LogLevel
.ERROR);
46
return
;
47
}
48
49
m_World
=
GetGame
().GetWorld();
50
SCR_EntitiesManagerEditorComponent
entitiesManager =
SCR_EntitiesManagerEditorComponent
.Cast(
SCR_EntitiesManagerEditorComponent
.GetInstance(
SCR_EntitiesManagerEditorComponent
));
51
if
(entitiesManager)
52
m_RenderFilter
=
SCR_RenderedEditableEntityFilter
.Cast(entitiesManager.
GetFilter
(
EEditableEntityState
.RENDERED));
53
54
OnRefresh
(slot);
55
}
56
57
//------------------------------------------------------------------------------------------------
58
override
void
OnRefresh
(
SCR_EditableEntityBaseSlotUIComponent
slot)
59
{
60
if
(!slot)
61
return
;
62
63
if
(!
m_VehicleComponent
)
64
{
65
m_VehicleComponent
= SCR_EditableVehicleComponent.Cast(slot.
GetEntity
());
66
if
(!
m_VehicleComponent
)
67
return
;
68
}
69
70
int
playerID =
m_VehicleComponent
.GetPlayerID();
71
if
(playerID <= 0)
72
return
;
73
74
PlayerManager
playerManager =
GetGame
().GetPlayerManager();
75
IEntity
playerEntity = playerManager.GetPlayerControlledEntity(playerID);
76
if
(playerEntity)
77
m_VehicleOwningPlayer
= SCR_EditableCharacterComponent.Cast(playerEntity.
FindComponent
(SCR_EditableCharacterComponent));
78
79
string
playerName =
SCR_PlayerNamesFilterCache
.GetInstance().GetPlayerDisplayName(playerID);
80
int
playerCount =
m_VehicleComponent
.GetPlayerCountInVehicle();
81
82
if
(playerCount > 1)
83
m_wNameTextWidget
.SetTextFormat(
m_sVehicleNameText
, playerName, playerCount - 1);
84
else
85
m_wNameTextWidget
.SetText(playerName);
86
}
87
88
//------------------------------------------------------------------------------------------------
89
override
bool
OnUpdate
(
Widget
w)
90
{
91
// Making changes to the Widget during OnUpdate() isn't advised by Peter Čimo.
92
GetGame
().GetCallqueue().CallLater(
DetermineNameVisibility
, 0,
false
);
93
94
return
false
;
95
}
96
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
GetWidget
Widget GetWidget()
Definition
SCR_VonDisplay.c:162
BaseWorld
Definition
BaseWorld.c:13
IEntity
Definition
IEntity.c:13
IEntity::FindComponent
proto external Managed FindComponent(typename typeName)
PlayerManager
Definition
PlayerManager.c:13
RichTextWidget
Definition
RichTextWidget.c:13
SCR_BaseEditableEntityUIComponent
Definition
SCR_BaseEditableEntityUIComponent.c:9
SCR_EditableEntityBaseSlotUIComponent
Definition
SCR_EditableEntityBaseSlotUIComponent.c:7
SCR_EditableEntityBaseSlotUIComponent::GetEntity
SCR_EditableEntityComponent GetEntity()
Definition
SCR_EditableEntityBaseSlotUIComponent.c:23
SCR_EditableEntityComponent
Definition
SCR_EditableEntityComponent.c:14
SCR_EntitiesManagerEditorComponent
Definition
SCR_EntitiesManagerEditorComponent.c:14
SCR_EntitiesManagerEditorComponent::GetFilter
SCR_BaseEditableEntityFilter GetFilter(EEditableEntityState state, bool showError=false)
Definition
SCR_EntitiesManagerEditorComponent.c:34
SCR_PlayerNamesFilterCache
Definition
SCR_PlayerNamesFilterCache.c:3
SCR_RenderedEditableEntityFilter
Definition
SCR_RenderedEditableEntityFilter.c:8
SCR_UIInfo
Definition
SCR_UIInfo.c:8
SCR_VehicleEditableEntityUIComponent
Definition
SCR_VehicleEditableEntityUIComponent.c:2
SCR_VehicleEditableEntityUIComponent::m_RenderFilter
SCR_RenderedEditableEntityFilter m_RenderFilter
Definition
SCR_VehicleEditableEntityUIComponent.c:15
SCR_VehicleEditableEntityUIComponent::m_wNameTextWidget
RichTextWidget m_wNameTextWidget
Definition
SCR_VehicleEditableEntityUIComponent.c:9
SCR_VehicleEditableEntityUIComponent::m_sNameTextWidgetName
string m_sNameTextWidgetName
Definition
SCR_VehicleEditableEntityUIComponent.c:4
SCR_VehicleEditableEntityUIComponent::OnRefresh
override void OnRefresh(SCR_EditableEntityBaseSlotUIComponent slot)
Definition
SCR_VehicleEditableEntityUIComponent.c:58
SCR_VehicleEditableEntityUIComponent::m_World
BaseWorld m_World
Definition
SCR_VehicleEditableEntityUIComponent.c:13
SCR_VehicleEditableEntityUIComponent::OnUpdate
override bool OnUpdate(Widget w)
Definition
SCR_VehicleEditableEntityUIComponent.c:89
SCR_VehicleEditableEntityUIComponent::m_sVehicleNameText
string m_sVehicleNameText
Definition
SCR_VehicleEditableEntityUIComponent.c:7
SCR_VehicleEditableEntityUIComponent::DetermineNameVisibility
void DetermineNameVisibility()
Definition
SCR_VehicleEditableEntityUIComponent.c:19
SCR_VehicleEditableEntityUIComponent::m_VehicleOwningPlayer
SCR_EditableCharacterComponent m_VehicleOwningPlayer
Definition
SCR_VehicleEditableEntityUIComponent.c:12
SCR_VehicleEditableEntityUIComponent::OnInit
override void OnInit(SCR_EditableEntityComponent entity, SCR_UIInfo info, SCR_EditableEntityBaseSlotUIComponent slot)
Definition
SCR_VehicleEditableEntityUIComponent.c:40
SCR_VehicleEditableEntityUIComponent::m_VehicleComponent
SCR_EditableVehicleComponent m_VehicleComponent
Definition
SCR_VehicleEditableEntityUIComponent.c:11
Widget
Definition
Widget.c:13
vector
Definition
vector.c:13
Print
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
LogLevel
Enum with severity of the logging message.
Definition
LogLevel.c:14
EEditableEntityState
EEditableEntityState
Definition
EEditableEntityState.c:38
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
Editor
UI
Components
EditableEntities
SCR_VehicleEditableEntityUIComponent.c
Generated by
1.17.0