Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_PlayerEditableEntityUIComponent.c
Go to the documentation of this file.
1//#define FAKE_PLAYER //--- Allow placing AIs which are pretending to be players. Used for video capture.
2
4{
5 [Attribute("1 1 1 1")]
6 protected ref Color m_ColorPossessed;
7
8 [Attribute("Name")]
9 protected string m_sPlayerNameWidgetName;
10
11 [Attribute("PlatformIcon")]
12 protected string m_sPlatformIconWidgetName;
13
14 //------------------------------------------------------------------------------------------------
15 protected void SetName(TextWidget nameWidget, int playerID)
16 {
17 string playerName = SCR_PlayerNamesFilterCache.GetInstance().GetPlayerDisplayName(playerID);
18 if (playerName.IsEmpty())
19 return;
20
21 nameWidget.SetText(playerName);
22 GetGame().GetCallqueue().Remove(SetName);
23 }
24
25 override void OnShownOffScreen(bool offScreen)
26 {
27 Widget nameWidget = GetWidget().FindAnyWidget(m_sPlayerNameWidgetName);
28 if (!nameWidget)
29 return;
30
31 if (offScreen)
32 nameWidget.SetOpacity(0);
33 else
34 nameWidget.SetOpacity(1);
35 }
36
37 //------------------------------------------------------------------------------------------------
39 {
40 Widget widget = GetWidget();
41 if (!widget)
42 return;
43
44 TextWidget nameWidget = TextWidget.Cast(widget.FindAnyWidget(m_sPlayerNameWidgetName));
45 if (!nameWidget)
46 return;
47
48 int playerID;
49 SCR_EditablePlayerDelegateComponent delegate = SCR_EditablePlayerDelegateComponent.Cast(entity);
50 if (delegate)
51 {
52 playerID = delegate.GetPlayerID();
53 }
54 else
55 {
57 if (playersManager)
58 {
59 playerID = playersManager.GetPlayerID(entity);
60 if (playersManager.IsPossessed(entity))
61 widget.SetColor(m_ColorPossessed);
62 }
63 }
64
65 if (playerID == 0)
66 return;
67
68 ArmaReforgerScripted game = GetGame();
69 if (!game)
70 return;
71
72 //--- Assign name after it's been initialized (ToDo: Better solution? Callback?)
73 if (game.GetCallqueue())
74 game.GetCallqueue().CallLater(SetName, 0, true, nameWidget, playerID);
75
76 ImageWidget platformImage = ImageWidget.Cast(widget.FindAnyWidget(m_sPlatformIconWidgetName));
77 if (platformImage)
78 SCR_PlayerController.Cast(game.GetPlayerController()).SetPlatformImageTo(playerID, platformImage);
79
81 if (sceneSlot && sceneSlot.GetOffScreenWidget())
82 sceneSlot.GetOffScreenWidget().SetColor(widget.GetColor());
83 }
84}
ref DSGameConfig game
Definition DSConfig.c:81
ArmaReforgerScripted GetGame()
Definition game.c:1398
Widget GetWidget()
Definition Color.c:13
void SetName(TextWidget nameWidget, int playerID)
override void OnInit(SCR_EditableEntityComponent entity, SCR_UIInfo info, SCR_EditableEntityBaseSlotUIComponent slot)
bool IsPossessed(SCR_EditableEntityComponent entity)
int GetPlayerID(SCR_EditableEntityComponent entity)
SCR_FieldOfViewSettings Attribute