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_RequestToJoinSubMenu.c
Go to the documentation of this file.
1
class
SCR_RequestToJoinSubmenu
:
SCR_SubMenuBase
2
{
3
protected
ref
ScriptInvokerVoid
m_OnJoinRequestRespond
;
4
protected
ref array<Widget>
m_aEntryWidgets
= {};
5
protected
VerticalLayoutWidget
m_wContent
;
6
7
protected
const
string
REQUESTER_ENTRY_LAYOUT
=
"{B3381965FF7747CE}UI/layouts/Menus/GroupSlection/GroupRequestEntry.layout"
;
8
protected
const
string
INPUT_CONTEXT_NAME
=
"GroupMenuContext"
;
9
protected
const
string
CONTENT_HOLDER_WIDGET
=
"Content"
;
10
protected
const
string
PLAYER_NAME_WIDGET
=
"PlayerName"
;
11
protected
const
string
PLATFORM_ICON_WIDGET
=
"PlatformImage"
;
12
13
//------------------------------------------------------------------------------------------------
14
override
void
OnTabShow
()
15
{
16
super.OnTabShow();
17
18
UpdateRequesters
();
19
20
GetOnJoinRequestRespond
().Insert(
UpdateRequesters
);
21
SCR_AIGroup
.
GetOnJoinPrivateGroupRequest
().Insert(
UpdateRequesters
);
22
}
23
24
//------------------------------------------------------------------------------------------------
25
override
void
OnTabRemove
()
26
{
27
super.OnTabRemove();
28
29
GetOnJoinRequestRespond
().Remove(
UpdateRequesters
);
30
SCR_AIGroup
.
GetOnJoinPrivateGroupRequest
().Remove(
UpdateRequesters
);
31
}
32
33
//------------------------------------------------------------------------------------------------
34
override
void
OnMenuUpdate
(
float
tDelta)
35
{
36
GetGame
().GetInputManager().ActivateContext(
INPUT_CONTEXT_NAME
);
37
}
38
39
//------------------------------------------------------------------------------------------------
40
ScriptInvokerVoid
GetOnJoinRequestRespond
()
41
{
42
if
(!
m_OnJoinRequestRespond
)
43
m_OnJoinRequestRespond
=
new
ScriptInvokerVoid
();
44
45
return
m_OnJoinRequestRespond
;
46
}
47
48
//------------------------------------------------------------------------------------------------
49
void
UpdateRequesters
()
50
{
51
SCR_GroupsManagerComponent
groupsManager =
SCR_GroupsManagerComponent
.GetInstance();
52
if
(!groupsManager)
53
return
;
54
55
SCR_AIGroup
group = groupsManager.GetPlayerGroup(
GetGame
().
GetPlayerController
().
GetPlayerId
());
56
if
(!group)
57
return
;
58
59
VerticalLayoutWidget
content
=
VerticalLayoutWidget
.Cast(
m_wMenuRoot
.FindAnyWidget(
CONTENT_HOLDER_WIDGET
));
60
if
(!
content
)
61
return
;
62
63
for
(
int
i = 0, count =
m_aEntryWidgets
.Count(); i < count ;i++)
64
{
65
content
.RemoveChild(
m_aEntryWidgets
[i]);
66
}
67
68
m_aEntryWidgets
.Clear();
69
70
array<int> requesterIDs = {};
71
group.
GetRequesterIDs
(requesterIDs);
72
73
ButtonWidget
focusedElement;
74
Widget
entryWidget;
75
TextWidget
playerName;
76
ImageWidget
platformIcon;
77
SCR_JoinRequestEntry
entryMenu;
78
SCR_PlayerController
playerController =
SCR_PlayerController
.Cast(
GetGame
().
GetPlayerController
());
79
foreach
(
int
requesterId : requesterIDs)
80
{
81
entryWidget =
GetGame
().GetWorkspace().CreateWidgets(
REQUESTER_ENTRY_LAYOUT
,
content
);
82
if
(!entryWidget)
83
continue
;
84
85
playerName =
TextWidget
.Cast(entryWidget.FindAnyWidget(
PLAYER_NAME_WIDGET
));
86
if
(!playerName)
87
continue
;
88
89
platformIcon =
ImageWidget
.Cast(entryWidget.FindAnyWidget(
PLATFORM_ICON_WIDGET
));
90
91
entryMenu =
SCR_JoinRequestEntry
.Cast(entryWidget.FindHandler(
SCR_JoinRequestEntry
));
92
if
(!entryMenu)
93
continue
;
94
95
if
(!focusedElement)
96
focusedElement =
ButtonWidget
.Cast(entryWidget);
97
98
m_aEntryWidgets
.Insert(entryWidget);
99
100
entryMenu.
SetParentMenu
(
this
);
101
entryMenu.
SetPlayerID
(requesterId);
102
entryMenu.
Init
(entryWidget);
103
104
playerName.SetText(
SCR_PlayerNamesFilterCache
.GetInstance().GetPlayerDisplayName(requesterId));
105
106
if
(platformIcon && playerController)
107
playerController.SetPlatformImageTo(requesterId, platformIcon);
108
}
109
110
GetGame
().GetWorkspace().SetFocusedWidget(focusedElement);
111
112
// TODO: a sub menu tab should not call a method on the menu class. This should be an invoker
113
SCR_GroupMenu
groupMenu =
SCR_GroupMenu
.Cast(
ChimeraMenuBase
.
GetOwnerMenu
(
GetRootWidget
()));
114
if
(!groupMenu)
115
return
;
116
117
groupMenu.
UpdateTabs
();
118
}
119
120
//------------------------------------------------------------------------------------------------
121
void
InvokeOnJoinRequestRespond
()
122
{
123
if
(
m_OnJoinRequestRespond
)
124
m_OnJoinRequestRespond
.Invoke();
125
}
126
}
content
class RestAPIHelper< JsonApiStruct T > content
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_GroupsManagerComponent
void SCR_GroupsManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition
SCR_GroupsManagerComponent.c:1747
ScriptInvokerVoid
ScriptInvokerBase< ScriptInvokerVoidMethod > ScriptInvokerVoid
Definition
SCR_ScriptInvokerHelper.c:9
ButtonWidget
Definition
ButtonWidget.c:16
ChimeraMenuBase
Constant variables used in various menus.
Definition
ChimeraMenuBase.c:72
ChimeraMenuBase::GetOwnerMenu
static ChimeraMenuBase GetOwnerMenu(Widget w)
Returns parent menu of a widget.
Definition
ChimeraMenuBase.c:179
ImageWidget
Definition
ImageWidget.c:13
SCR_AIGroup
Definition
SCR_AIGroup.c:75
SCR_AIGroup::GetRequesterIDs
int GetRequesterIDs(out array< int > valueArray)
Definition
SCR_AIGroup.c:393
SCR_AIGroup::GetOnJoinPrivateGroupRequest
static ScriptInvoker GetOnJoinPrivateGroupRequest()
Definition
SCR_AIGroup.c:460
SCR_GroupMenu
Definition
SCR_GroupMenu.c:2
SCR_GroupMenu::UpdateTabs
void UpdateTabs()
Definition
SCR_GroupMenu.c:45
SCR_JoinRequestEntry
Definition
SCR_JoinRequestEntry.c:2
SCR_JoinRequestEntry::SetPlayerID
void SetPlayerID(int value)
Definition
SCR_JoinRequestEntry.c:17
SCR_JoinRequestEntry::Init
void Init(Widget w)
Definition
SCR_JoinRequestEntry.c:78
SCR_JoinRequestEntry::SetParentMenu
void SetParentMenu(SCR_RequestToJoinSubmenu menu)
Definition
SCR_JoinRequestEntry.c:10
SCR_PlayerController
Definition
SCR_PlayerController.c:31
SCR_PlayerNamesFilterCache
Definition
SCR_PlayerNamesFilterCache.c:3
SCR_RequestToJoinSubmenu
Definition
SCR_RequestToJoinSubMenu.c:2
SCR_RequestToJoinSubmenu::m_OnJoinRequestRespond
ref ScriptInvokerVoid m_OnJoinRequestRespond
Definition
SCR_RequestToJoinSubMenu.c:3
SCR_RequestToJoinSubmenu::UpdateRequesters
void UpdateRequesters()
Definition
SCR_RequestToJoinSubMenu.c:49
SCR_RequestToJoinSubmenu::REQUESTER_ENTRY_LAYOUT
const string REQUESTER_ENTRY_LAYOUT
Definition
SCR_RequestToJoinSubMenu.c:7
SCR_RequestToJoinSubmenu::OnTabShow
override void OnTabShow()
Definition
SCR_RequestToJoinSubMenu.c:14
SCR_RequestToJoinSubmenu::OnMenuUpdate
override void OnMenuUpdate(float tDelta)
Definition
SCR_RequestToJoinSubMenu.c:34
SCR_RequestToJoinSubmenu::PLAYER_NAME_WIDGET
const string PLAYER_NAME_WIDGET
Definition
SCR_RequestToJoinSubMenu.c:10
SCR_RequestToJoinSubmenu::m_wContent
VerticalLayoutWidget m_wContent
Definition
SCR_RequestToJoinSubMenu.c:5
SCR_RequestToJoinSubmenu::InvokeOnJoinRequestRespond
void InvokeOnJoinRequestRespond()
Definition
SCR_RequestToJoinSubMenu.c:121
SCR_RequestToJoinSubmenu::OnTabRemove
override void OnTabRemove()
Definition
SCR_RequestToJoinSubMenu.c:25
SCR_RequestToJoinSubmenu::INPUT_CONTEXT_NAME
const string INPUT_CONTEXT_NAME
Definition
SCR_RequestToJoinSubMenu.c:8
SCR_RequestToJoinSubmenu::PLATFORM_ICON_WIDGET
const string PLATFORM_ICON_WIDGET
Definition
SCR_RequestToJoinSubMenu.c:11
SCR_RequestToJoinSubmenu::CONTENT_HOLDER_WIDGET
const string CONTENT_HOLDER_WIDGET
Definition
SCR_RequestToJoinSubMenu.c:9
SCR_RequestToJoinSubmenu::m_aEntryWidgets
ref array< Widget > m_aEntryWidgets
Definition
SCR_RequestToJoinSubMenu.c:4
SCR_RequestToJoinSubmenu::GetOnJoinRequestRespond
ScriptInvokerVoid GetOnJoinRequestRespond()
Definition
SCR_RequestToJoinSubMenu.c:40
SCR_ScriptedWidgetComponent::GetRootWidget
Widget GetRootWidget()
Definition
SCR_ScriptedWidgetComponent.c:51
SCR_SubMenuBase
Definition
SCR_SubMenuBase.c:7
SCR_SubMenuBase::m_wMenuRoot
Widget m_wMenuRoot
Definition
SCR_SubMenuBase.c:14
TextWidget
Definition
TextWidget.c:16
VerticalLayoutWidget
Definition
VerticalLayoutWidget.c:13
Widget
Definition
Widget.c:13
GetPlayerController
proto external PlayerController GetPlayerController()
Definition
SCR_PlayerDeployMenuHandlerComponent.c:307
GetPlayerId
proto external int GetPlayerId()
Definition
SCR_SpawnRequestComponent.c:39
scripts
Game
Groups
SCR_RequestToJoinSubMenu.c
Generated by
1.17.0