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_GroupSubMenuPlayerlist.c
Go to the documentation of this file.
1
class
SCR_GroupSubMenuPlayerlist
:
SCR_GroupSubMenuBase
2
{
3
protected
SCR_InputButtonComponent
m_VolunteerForGroupLeaderButton
;
4
protected
SCR_InputButtonComponent
m_ViewProfileButton
;
5
6
protected
int
m_iLastSelectedPlayerId
;
7
8
//------------------------------------------------------------------------------------------------
9
override
void
OnMenuUpdate
(
float
tDelta)
10
{
11
GetGame
().GetInputManager().ActivateContext(
"GroupMenuContext"
);
12
}
13
14
//------------------------------------------------------------------------------------------------
15
override
void
OnTabCreate
(
Widget
menuRoot,
ResourceName
buttonsLayout,
int
index
)
16
{
17
super.OnTabCreate(menuRoot, buttonsLayout,
index
);
18
19
CreateVolunteerForGroupLeaderButton
();
20
CreateViewProfileButton
();
21
}
22
23
//------------------------------------------------------------------------------------------------
24
override
void
OnTabShow
()
25
{
26
super.OnTabShow();
27
28
UpdateViewProfileButton
(
true
);
29
30
SCR_AIGroup
.
GetOnPlayerLeaderChanged
().Insert(
UpdateGroupSettingsButtons
);
31
SCR_GroupTileButton
.
GetOnPlayerTileFocus
().Insert(
OnPlayerTileFocus
);
32
SCR_GroupTileButton
.
GetOnPlayerTileFocusLost
().Insert(
OnPlayerTileFocusLost
);
33
}
34
35
//------------------------------------------------------------------------------------------------
36
override
void
OnTabHide
()
37
{
38
super.OnTabHide();
39
40
SCR_AIGroup
.
GetOnPlayerLeaderChanged
().Remove(
UpdateGroupSettingsButtons
);
41
SCR_GroupTileButton
.
GetOnPlayerTileFocus
().Remove(
OnPlayerTileFocus
);
42
SCR_GroupTileButton
.
GetOnPlayerTileFocusLost
().Remove(
OnPlayerTileFocusLost
);
43
}
44
45
//------------------------------------------------------------------------------------------------
46
override
protected
void
UpdateGroups
(SCR_PlayerControllerGroupComponent playerGroupController)
47
{
48
super.UpdateGroups(playerGroupController);
49
50
if
(playerGroupController ==
m_PlayerGroupController
)
51
UpdateGroupSettingsButtons
();
52
}
53
54
//------------------------------------------------------------------------------------------------
55
protected
void
CreateVolunteerForGroupLeaderButton
()
56
{
57
m_VolunteerForGroupLeaderButton
=
CreateNavigationButton
(
"MenuVolunteerLeaderGroup"
,
"#AR-Player_Groups_Leader_Volunteer"
,
true
,
false
);
58
if
(!
m_VolunteerForGroupLeaderButton
)
59
return
;
60
61
m_VolunteerForGroupLeaderButton
.m_OnActivated.Insert(
OpenVolunteerForGroupLeaderDialog
);
62
}
63
64
//------------------------------------------------------------------------------------------------
65
protected
void
CreateViewProfileButton
()
66
{
67
m_ViewProfileButton
=
CreateNavigationButton
(
"MenuViewProfile"
,
""
,
true
);
68
if
(!
m_ViewProfileButton
)
69
return
;
70
71
// Dynamically add the component to update the button label dpending on platform. TODO: allow sub menus to create different layouts of buttons
72
SCR_ViewProfileButtonComponent
handler =
new
SCR_ViewProfileButtonComponent
();
73
if
(!handler)
74
return
;
75
76
m_ViewProfileButton
.GetRootWidget().AddHandler(handler);
77
handler.
Init
();
78
79
UpdateViewProfileButton
(
true
);
80
81
m_ViewProfileButton
.GetRootWidget().SetZOrder(0);
82
m_ViewProfileButton
.m_OnActivated.Insert(
OnViewProfile
);
83
}
84
85
//------------------------------------------------------------------------------------------------
86
protected
void
OnPlayerTileFocus
(
int
id
)
87
{
88
m_iLastSelectedPlayerId
=
id
;
89
UpdateViewProfileButton
();
90
}
91
92
//------------------------------------------------------------------------------------------------
93
protected
void
OnPlayerTileFocusLost
(
int
id
)
94
{
95
UpdateViewProfileButton
(
true
);
96
}
97
98
//------------------------------------------------------------------------------------------------
99
protected
void
OnViewProfile
()
100
{
101
GetGame
().GetPlayerManager().ShowUserProfile(
m_iLastSelectedPlayerId
);
102
}
103
104
//------------------------------------------------------------------------------------------------
105
protected
void
UpdateViewProfileButton
(
bool
forceHidden =
false
)
106
{
107
if
(!
m_ViewProfileButton
)
108
return
;
109
110
SetNavigationButtonVisible
(
m_ViewProfileButton
, !forceHidden &&
GetGame
().GetPlayerManager().IsUserProfileAvailable(
m_iLastSelectedPlayerId
));
111
}
112
113
//------------------------------------------------------------------------------------------------
115
protected
void
UpdateGroupSettingsButtons
()
116
{
117
if
(!
m_PlayerGroupController
|| !
m_GroupManager
)
118
return
;
119
120
int
groupId =
m_PlayerGroupController
.GetGroupID();
121
122
// Selected group is not player's group, hide both buttons
123
if
(groupId !=
m_PlayerGroupController
.GetSelectedGroupID())
124
{
125
m_GroupSettingsButton
.SetVisible(
false
,
false
);
126
m_VolunteerForGroupLeaderButton
.SetVisible(
false
,
false
);
127
return
;
128
}
129
130
SCR_AIGroup
group =
m_GroupManager
.FindGroup(groupId);
131
if
(!group)
132
return
;
133
134
bool
isGroupLeader = group.
GetLeaderID
() ==
m_PlayerGroupController
.GetPlayerID();
135
136
// Group leader can see Group Settings button, other group members can see Volunteer button
137
m_GroupSettingsButton
.SetVisible(isGroupLeader,
false
);
138
139
// If volunteering for Group Leader is not enabled, disable and hide the button
140
if
(!
m_GroupManager
.IsGroupLeaderVolunteeringAllowed())
141
{
142
m_VolunteerForGroupLeaderButton
.SetVisible(
false
,
false
);
143
m_VolunteerForGroupLeaderButton
.SetEnabled(
false
);
144
return
;
145
}
146
147
m_VolunteerForGroupLeaderButton
.SetVisible(!isGroupLeader,
false
);
148
149
if
(isGroupLeader)
150
return
;
151
152
SCR_VotingManagerComponent
manager =
SCR_VotingManagerComponent
.GetInstance();
153
if
(!manager)
154
return
;
155
156
// Volunteer button is enabled only when player does not have voting cooldown
157
if
(manager.GetCurrentVoteCooldownForLocalPlayer(
EVotingType
.GROUP_LEADER) > 0)
158
m_VolunteerForGroupLeaderButton
.SetEnabled(
false
);
159
else
160
m_VolunteerForGroupLeaderButton
.SetEnabled(
true
);
161
}
162
}
id
AddonBuildInfoTool id
EVotingType
EVotingType
Definition
EVotingType.c:2
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
index
SCR_DestructionSynchronizationComponentClass ScriptComponentClass int index
Definition
SCR_DestructionSynchronizationComponent.c:17
SCR_VotingManagerComponent
void SCR_VotingManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition
SCR_VotingManagerComponent.c:1083
ResourceName
Definition
ResourceName.c:13
SCR_AIGroup
Definition
SCR_AIGroup.c:75
SCR_AIGroup::GetOnPlayerLeaderChanged
static ScriptInvoker GetOnPlayerLeaderChanged()
Definition
SCR_AIGroup.c:1084
SCR_AIGroup::GetLeaderID
int GetLeaderID()
Definition
SCR_AIGroup.c:499
SCR_GroupSubMenuBase
Definition
SCR_GroupSubMenuBase.c:2
SCR_GroupSubMenuBase::m_GroupManager
SCR_GroupsManagerComponent m_GroupManager
Definition
SCR_GroupSubMenuBase.c:19
SCR_GroupSubMenuBase::m_GroupSettingsButton
SCR_InputButtonComponent m_GroupSettingsButton
Definition
SCR_GroupSubMenuBase.c:27
SCR_GroupSubMenuBase::OpenVolunteerForGroupLeaderDialog
void OpenVolunteerForGroupLeaderDialog()
Definition
SCR_GroupSubMenuBase.c:420
SCR_GroupSubMenuBase::m_PlayerGroupController
SCR_PlayerControllerGroupComponent m_PlayerGroupController
Definition
SCR_GroupSubMenuBase.c:20
SCR_GroupSubMenuPlayerlist
Definition
SCR_GroupSubMenuPlayerlist.c:2
SCR_GroupSubMenuPlayerlist::OnPlayerTileFocusLost
void OnPlayerTileFocusLost(int id)
Definition
SCR_GroupSubMenuPlayerlist.c:93
SCR_GroupSubMenuPlayerlist::CreateVolunteerForGroupLeaderButton
void CreateVolunteerForGroupLeaderButton()
Definition
SCR_GroupSubMenuPlayerlist.c:55
SCR_GroupSubMenuPlayerlist::OnViewProfile
void OnViewProfile()
Definition
SCR_GroupSubMenuPlayerlist.c:99
SCR_GroupSubMenuPlayerlist::OnTabCreate
override void OnTabCreate(Widget menuRoot, ResourceName buttonsLayout, int index)
Definition
SCR_GroupSubMenuPlayerlist.c:15
SCR_GroupSubMenuPlayerlist::CreateViewProfileButton
void CreateViewProfileButton()
Definition
SCR_GroupSubMenuPlayerlist.c:65
SCR_GroupSubMenuPlayerlist::OnTabHide
override void OnTabHide()
Definition
SCR_GroupSubMenuPlayerlist.c:36
SCR_GroupSubMenuPlayerlist::UpdateGroups
void UpdateGroups(SCR_PlayerControllerGroupComponent playerGroupController)
Definition
SCR_GroupSubMenuPlayerlist.c:46
SCR_GroupSubMenuPlayerlist::OnTabShow
override void OnTabShow()
Definition
SCR_GroupSubMenuPlayerlist.c:24
SCR_GroupSubMenuPlayerlist::UpdateGroupSettingsButtons
void UpdateGroupSettingsButtons()
Displays or hides Volunteer button and Group Settings button based on the player role in group.
Definition
SCR_GroupSubMenuPlayerlist.c:115
SCR_GroupSubMenuPlayerlist::m_iLastSelectedPlayerId
int m_iLastSelectedPlayerId
Definition
SCR_GroupSubMenuPlayerlist.c:6
SCR_GroupSubMenuPlayerlist::OnMenuUpdate
override void OnMenuUpdate(float tDelta)
Definition
SCR_GroupSubMenuPlayerlist.c:9
SCR_GroupSubMenuPlayerlist::m_ViewProfileButton
SCR_InputButtonComponent m_ViewProfileButton
Definition
SCR_GroupSubMenuPlayerlist.c:4
SCR_GroupSubMenuPlayerlist::m_VolunteerForGroupLeaderButton
SCR_InputButtonComponent m_VolunteerForGroupLeaderButton
Definition
SCR_GroupSubMenuPlayerlist.c:3
SCR_GroupSubMenuPlayerlist::UpdateViewProfileButton
void UpdateViewProfileButton(bool forceHidden=false)
Definition
SCR_GroupSubMenuPlayerlist.c:105
SCR_GroupSubMenuPlayerlist::OnPlayerTileFocus
void OnPlayerTileFocus(int id)
Definition
SCR_GroupSubMenuPlayerlist.c:86
SCR_GroupTileButton
Definition
SCR_GroupTileButton.c:106
SCR_GroupTileButton::GetOnPlayerTileFocusLost
static ScriptInvokerInt GetOnPlayerTileFocusLost()
Definition
SCR_GroupTileButton.c:1258
SCR_GroupTileButton::GetOnPlayerTileFocus
static ScriptInvokerInt GetOnPlayerTileFocus()
Definition
SCR_GroupTileButton.c:1249
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
SCR_SubMenuBase::CreateNavigationButton
SCR_InputButtonComponent CreateNavigationButton(string actionName, string label, bool rightFooter=false, bool show=true)
Definition
SCR_SubMenuBase.c:151
SCR_SubMenuBase::SetNavigationButtonVisible
void SetNavigationButtonVisible(SCR_InputButtonComponent button, bool show, bool animate=false)
Definition
SCR_SubMenuBase.c:129
SCR_ViewProfileButtonComponent
Definition
SCR_ViewProfileButtonComponent.c:3
SCR_ViewProfileButtonComponent::Init
void Init()
Definition
SCR_ViewProfileButtonComponent.c:19
Widget
Definition
Widget.c:13
scripts
Game
Groups
SCR_GroupSubMenuPlayerlist.c
Generated by
1.17.0