Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_VehicleEditableEntityUIComponent.c
Go to the documentation of this file.
2{
3 [Attribute(defvalue: "Name")]
4 protected string m_sNameTextWidgetName;
5
6 [Attribute(defvalue: "#AR-Editor_PlayerVehicle_Name")]
7 protected string m_sVehicleNameText;
8
10
11 protected SCR_EditableVehicleComponent m_VehicleComponent;
12 protected SCR_EditableCharacterComponent m_VehicleOwningPlayer;
13 protected BaseWorld m_World;
14
16
17 //------------------------------------------------------------------------------------------------
20 {
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 //------------------------------------------------------------------------------------------------
41 {
44 {
45 Print("SCR_VehicleEditableEntityUIComponent: Failed to find Name Widget: " + m_sNameTextWidgetName, LogLevel.ERROR);
46 return;
47 }
48
49 m_World = GetGame().GetWorld();
51 if (entitiesManager)
53
54 OnRefresh(slot);
55 }
56
57 //------------------------------------------------------------------------------------------------
59 {
60 if (!slot)
61 return;
62
64 {
65 m_VehicleComponent = SCR_EditableVehicleComponent.Cast(slot.GetEntity());
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}
ArmaReforgerScripted GetGame()
Definition game.c:1398
Widget GetWidget()
proto external Managed FindComponent(typename typeName)
SCR_BaseEditableEntityFilter GetFilter(EEditableEntityState state, bool showError=false)
override void OnRefresh(SCR_EditableEntityBaseSlotUIComponent slot)
override void OnInit(SCR_EditableEntityComponent entity, SCR_UIInfo info, SCR_EditableEntityBaseSlotUIComponent slot)
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
Definition LogLevel.c:14
EEditableEntityState
SCR_FieldOfViewSettings Attribute