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_GroupMenu.c
Go to the documentation of this file.
1
class
SCR_GroupMenu
:
SCR_SuperMenuBase
2
{
3
protected
static
ref
ScriptInvoker
s_OnGroupMenuShow
=
new
ScriptInvoker
();
4
5
//------------------------------------------------------------------------------------------------
6
static
ScriptInvoker
GetOnGroupMenuShown
()
7
{
8
return
s_OnGroupMenuShow
;
9
}
10
11
//------------------------------------------------------------------------------------------------
12
override
void
OnMenuOpen
()
13
{
14
super.OnMenuOpen();
15
16
SCR_InputButtonComponent
cancel =
SCR_InputButtonComponent
.
GetInputButtonComponent
(
UIConstants
.BUTTON_BACK,
GetRootWidget
());
17
if
(cancel)
18
cancel.
m_OnActivated
.Insert(
Close
);
19
20
SCR_AIGroup
.
GetOnJoinPrivateGroupRequest
().Insert(
UpdateTabs
);
21
SCR_AIGroup
.
GetOnPlayerLeaderChanged
().Insert(
UpdateTabs
);
22
}
23
24
//------------------------------------------------------------------------------------------------
25
override
void
OnMenuShow
()
26
{
27
super.OnMenuShow();
28
29
s_OnGroupMenuShow
.Invoke();
30
31
UpdateTabs
();
32
}
33
34
//------------------------------------------------------------------------------------------------
35
override
void
OnMenuClose
()
36
{
37
super.OnMenuClose();
38
39
SCR_AIGroup
.
GetOnJoinPrivateGroupRequest
().Remove(
UpdateTabs
);
40
SCR_AIGroup
.
GetOnPlayerLeaderChanged
().Remove(
UpdateTabs
);
41
}
42
43
// TODO: move tab related stuff to super menu component and use an enum instead of magic numbers
44
//------------------------------------------------------------------------------------------------
45
void
UpdateTabs
()
46
{
47
SCR_GroupsManagerComponent
groupsManager =
SCR_GroupsManagerComponent
.GetInstance();
48
if
(!groupsManager)
49
return
;
50
51
int
playerID =
GetGame
().GetPlayerController().GetPlayerId();
52
53
SCR_AIGroup
group = groupsManager.GetPlayerGroup(playerID);
54
if
(!group)
55
return
;
56
57
if
(!groupsManager.IsPlayerInAnyGroup(playerID) || !group.
IsPlayerLeader
(playerID))
58
{
59
m_SuperMenuComponent
.GetTabView().EnableTab(1,
false
,
true
);
60
return
;
61
}
62
63
m_SuperMenuComponent
.GetTabView().EnableTab(1,
true
,
true
);
64
65
array<int> requesters = {};
66
group.
GetRequesterIDs
(requesters);
67
68
if
(requesters.IsEmpty())
69
{
70
m_SuperMenuComponent
.GetTabView().ShowIcon(1,
false
);
71
m_SuperMenuComponent
.GetTabView().EnableTab(1,
false
,
true
);
72
}
73
else
74
{
75
m_SuperMenuComponent
.GetTabView().ShowIcon(1,
true
);
76
m_SuperMenuComponent
.GetTabView().EnableTab(1,
true
,
true
);
77
78
Widget
notificationIcon =
m_SuperMenuComponent
.GetTabView().GetEntryIcon(1);
79
if
(!notificationIcon)
80
return
;
81
82
TextWidget
text =
TextWidget
.Cast(notificationIcon.FindAnyWidget(
"NotificationCount"
));
83
if
(!text)
84
return
;
85
86
if
(requesters.Count() > 99)
87
text.SetText(
"99+"
);
88
else
89
text.SetText(requesters.Count().ToString());
90
}
91
}
92
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_GroupsManagerComponent
void SCR_GroupsManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition
SCR_GroupsManagerComponent.c:1747
GetRootWidget
Widget GetRootWidget()
Definition
SCR_ModularButtonComponent.c:189
Close
proto native void Close()
Definition
SCR_WorkshopDialogs.c:77
SCR_AIGroup
Definition
SCR_AIGroup.c:75
SCR_AIGroup::IsPlayerLeader
bool IsPlayerLeader(int playerID)
Definition
SCR_AIGroup.c:493
SCR_AIGroup::GetRequesterIDs
int GetRequesterIDs(out array< int > valueArray)
Definition
SCR_AIGroup.c:393
SCR_AIGroup::GetOnPlayerLeaderChanged
static ScriptInvoker GetOnPlayerLeaderChanged()
Definition
SCR_AIGroup.c:1084
SCR_AIGroup::GetOnJoinPrivateGroupRequest
static ScriptInvoker GetOnJoinPrivateGroupRequest()
Definition
SCR_AIGroup.c:460
SCR_GroupMenu
Definition
SCR_GroupMenu.c:2
SCR_GroupMenu::OnMenuOpen
override void OnMenuOpen()
Definition
SCR_GroupMenu.c:12
SCR_GroupMenu::GetOnGroupMenuShown
static ScriptInvoker GetOnGroupMenuShown()
Definition
SCR_GroupMenu.c:6
SCR_GroupMenu::UpdateTabs
void UpdateTabs()
Definition
SCR_GroupMenu.c:45
SCR_GroupMenu::OnMenuClose
override void OnMenuClose()
Definition
SCR_GroupMenu.c:35
SCR_GroupMenu::OnMenuShow
override void OnMenuShow()
Definition
SCR_GroupMenu.c:25
SCR_GroupMenu::s_OnGroupMenuShow
static ref ScriptInvoker s_OnGroupMenuShow
Definition
SCR_GroupMenu.c:3
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
SCR_InputButtonComponent::m_OnActivated
ref ScriptInvoker m_OnActivated
Definition
SCR_InputButtonComponent.c:153
SCR_InputButtonComponent::GetInputButtonComponent
static SCR_InputButtonComponent GetInputButtonComponent(string name, notnull Widget parent, bool searchAllChildren=true)
Definition
SCR_InputButtonComponent.c:1212
SCR_SuperMenuBase
Definition
SCR_SuperMenuBase.c:7
SCR_SuperMenuBase::m_SuperMenuComponent
SCR_SuperMenuComponent m_SuperMenuComponent
Definition
SCR_SuperMenuBase.c:8
TextWidget
Definition
TextWidget.c:16
UIConstants
Definition
Constants.c:151
Widget
Definition
Widget.c:13
ScriptInvoker
ScriptInvokerBase< func > ScriptInvoker
Definition
tools.c:134
scripts
Game
UI
HUD
SCR_GroupMenu.c
Generated by
1.17.0