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_GroupFlagSelectionMenu.c
Go to the documentation of this file.
1
class
SCR_GroupFlagSelectionMenu
:
DialogUI
2
{
3
protected
const
int
MAX_COLUMNS
= 6;
4
protected
const
float
ICONS_SCALE
= 0.75;
5
6
protected
const
ResourceName
BUTTON_IMAGE
=
"{6BBBE8F27E385D3B}UI/layouts/WidgetLibrary/Groups/WLib_GroupFlagButtonImage.layout"
;
7
8
//------------------------------------------------------------------------------------------------
9
override
void
OnMenuOpen
()
10
{
11
super.OnMenuOpen();
12
InitGroupFlagSelectionMenu
(
MAX_COLUMNS
,
BUTTON_IMAGE
);
13
}
14
15
//------------------------------------------------------------------------------------------------
16
override
void
OnMenuUpdate
(
float
tDelta)
17
{
18
super.OnMenuUpdate(tDelta);
19
20
GetGame
().GetInputManager().ActivateContext(
"InteractableDialogContext"
);
21
}
22
23
//------------------------------------------------------------------------------------------------
24
override
void
OnConfirm
()
25
{
26
// This is handled by the tiles themselves
27
}
28
29
//------------------------------------------------------------------------------------------------
30
void
CloseDialog
()
31
{
32
CloseAnimated
();
33
}
34
35
//------------------------------------------------------------------------------------------------
36
void
InitGroupFlagSelectionMenu
(
int
maxColumns,
ResourceName
widget)
37
{
38
SCR_GroupsManagerComponent
groupManager =
SCR_GroupsManagerComponent
.GetInstance();
39
if
(!groupManager)
40
return
;
41
42
int
row = 1;
43
int
col = 1;
44
45
SCR_FactionManager
factionManager =
SCR_FactionManager
.Cast(
GetGame
().GetFactionManager());
46
if
(!factionManager)
47
return
;
48
49
SCR_Faction
playerFaction =
SCR_Faction
.Cast(factionManager.GetLocalPlayerFaction());
50
if
(!playerFaction)
51
return
;
52
53
OverlayWidget
con =
OverlayWidget
.Cast(
GetRootWidget
().FindAnyWidget(
"Content"
));
54
55
GridLayoutWidget
content
=
GridLayoutWidget
.Cast(con.FindAnyWidget(
"ContentGrid"
));
56
if
(!
content
)
57
return
;
58
59
ResourceName
imageSet = playerFaction.
GetGroupFlagImageSet
();
60
array<ResourceName> textures = {};
61
playerFaction.
GetGroupFlagTextures
(textures);
62
63
if
(!textures.IsEmpty())
64
{
65
for
(
int
i = 0, count = textures.Count(); i < count; i++)
66
{
67
Widget
contentButton =
GetGame
().GetWorkspace().CreateWidgets(widget,
content
);
68
if
(!contentButton)
69
continue
;
70
71
SCR_GroupFlagImageComponent
imageButton =
SCR_GroupFlagImageComponent
.Cast(contentButton.FindHandler(
SCR_GroupFlagImageComponent
));
72
if
(!imageButton)
73
continue
;
74
75
if
(col > maxColumns)
76
{
77
row++;
78
col = 1;
79
}
80
81
GridSlot
.SetRow(contentButton, row);
82
GridSlot
.SetColumn(contentButton, col);
83
84
ResourceName
resource = textures[i];
85
if
(resource.IsEmpty())
86
continue
;
87
88
imageButton.GetImageWidget().LoadImageTexture(0, textures[i]);
89
imageButton.
Resize
(
ICONS_SCALE
);
90
imageButton.m_OnClicked.Insert(
SetGroupFlag
);
91
imageButton.
SetImageID
(i);
92
imageButton.
SetIsFromImageset
(
false
);
93
94
col++;
95
}
96
}
97
98
if
(!imageSet.IsEmpty())
99
{
100
array<string> flagNames = {};
101
playerFaction.
GetFlagNames
(flagNames);
102
103
for
(
int
i = 0; i < flagNames.Count(); i++)
104
{
105
Widget
contentButton =
GetGame
().GetWorkspace().CreateWidgets(widget,
content
);
106
if
(!contentButton)
107
continue
;
108
109
SCR_GroupFlagImageComponent
imageButton =
SCR_GroupFlagImageComponent
.Cast(contentButton.FindHandler(
SCR_GroupFlagImageComponent
));
110
if
(!imageButton)
111
continue
;
112
113
if
(col > maxColumns)
114
{
115
row++;
116
col = 1;
117
}
118
119
GridSlot
.SetRow(contentButton, row);
120
GridSlot
.SetColumn(contentButton, col);
121
122
ResourceName
resource = playerFaction.
GetGroupFlagImageSet
();
123
if
(resource.IsEmpty())
124
continue
;
125
126
imageButton.GetImageWidget().LoadImageFromSet(0, resource, flagNames[i]);
127
imageButton.
Resize
(
ICONS_SCALE
);
128
imageButton.m_OnClicked.Insert(
SetGroupFlag
);
129
imageButton.
SetImageID
(i);
130
imageButton.
SetImageSet
(flagNames[i]);
131
imageButton.
SetIsFromImageset
(
true
);
132
col++;
133
}
134
}
135
136
137
Widget
cancelButton =
GetRootWidget
().FindAnyWidget(
"Cancel"
);
138
139
SCR_InputButtonComponent
cancel =
SCR_InputButtonComponent
.Cast(cancelButton.FindHandler(
SCR_InputButtonComponent
));
140
cancel.m_OnClicked.Insert(
CloseDialog
);
141
}
142
143
//------------------------------------------------------------------------------------------------
144
void
SetGroupFlag
(
SCR_ButtonBaseComponent
button)
145
{
146
147
SCR_GroupsManagerComponent
groupManager =
SCR_GroupsManagerComponent
.GetInstance();
148
if
(!groupManager)
149
return
;
150
151
SCR_PlayerControllerGroupComponent playerGroupController = SCR_PlayerControllerGroupComponent.GetLocalPlayerControllerGroupComponent();
152
if
(!playerGroupController)
153
return
;
154
155
SCR_AIGroup
group = groupManager.FindGroup(playerGroupController.GetGroupID());
156
if
(!group)
157
return
;
158
159
SCR_GroupFlagImageComponent
imageButton =
SCR_GroupFlagImageComponent
.Cast(button.GetRootWidget().FindHandler(
SCR_GroupFlagImageComponent
));
160
if
(!imageButton)
161
return
;
162
163
bool
isFromImageset = imageButton.
GetIsFromImageset
();
164
playerGroupController.RequestSetGroupFlag(group.
GetGroupID
(), imageButton.
GetImageID
(), isFromImageset);
165
166
CloseAnimated
();
167
}
168
}
content
class RestAPIHelper< JsonApiStruct T > content
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
SCR_FactionManager
void SCR_FactionManager(IEntitySource src, IEntity parent)
Definition
SCR_FactionManager.c:498
SCR_GroupsManagerComponent
void SCR_GroupsManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Definition
SCR_GroupsManagerComponent.c:1747
GetRootWidget
Widget GetRootWidget()
Definition
SCR_ModularButtonComponent.c:189
DialogUI
Definition
DialogUI.c:2
DialogUI::CloseAnimated
void CloseAnimated()
animates dialog closure
Definition
DialogUI.c:220
GridLayoutWidget
Definition
GridLayoutWidget.c:16
GridSlot
Definition
GridSlot.c:13
OverlayWidget
Definition
OverlayWidget.c:16
ResourceName
Definition
ResourceName.c:13
SCR_AIGroup
Definition
SCR_AIGroup.c:75
SCR_AIGroup::GetGroupID
int GetGroupID()
Definition
SCR_AIGroup.c:935
SCR_ButtonBaseComponent
Base class for any button, regardless its own content.
Definition
SCR_ButtonBaseComponent.c:7
SCR_Faction
Definition
SCR_Faction.c:6
SCR_Faction::GetGroupFlagImageSet
ResourceName GetGroupFlagImageSet()
Definition
SCR_Faction.c:237
SCR_Faction::GetGroupFlagTextures
int GetGroupFlagTextures(out array< ResourceName > textures)
Definition
SCR_Faction.c:250
SCR_Faction::GetFlagNames
int GetFlagNames(out array< string > flagNames)
Definition
SCR_Faction.c:230
SCR_GroupFlagImageComponent
Definition
SCR_GroupFlagImageComponent.c:2
SCR_GroupFlagImageComponent::GetIsFromImageset
bool GetIsFromImageset()
Definition
SCR_GroupFlagImageComponent.c:76
SCR_GroupFlagImageComponent::SetIsFromImageset
void SetIsFromImageset(bool value)
Definition
SCR_GroupFlagImageComponent.c:69
SCR_GroupFlagImageComponent::Resize
void Resize(float scale=1)
Definition
SCR_GroupFlagImageComponent.c:62
SCR_GroupFlagImageComponent::SetImageID
void SetImageID(int ID)
Definition
SCR_GroupFlagImageComponent.c:90
SCR_GroupFlagImageComponent::GetImageID
int GetImageID()
Definition
SCR_GroupFlagImageComponent.c:83
SCR_GroupFlagImageComponent::SetImageSet
void SetImageSet(ResourceName imageSet)
Definition
SCR_GroupFlagImageComponent.c:97
SCR_GroupFlagSelectionMenu
Definition
SCR_GroupFlagSelectionMenu.c:2
SCR_GroupFlagSelectionMenu::BUTTON_IMAGE
const ResourceName BUTTON_IMAGE
Definition
SCR_GroupFlagSelectionMenu.c:6
SCR_GroupFlagSelectionMenu::OnConfirm
override void OnConfirm()
Definition
SCR_GroupFlagSelectionMenu.c:24
SCR_GroupFlagSelectionMenu::ICONS_SCALE
const float ICONS_SCALE
Definition
SCR_GroupFlagSelectionMenu.c:4
SCR_GroupFlagSelectionMenu::MAX_COLUMNS
const int MAX_COLUMNS
Definition
SCR_GroupFlagSelectionMenu.c:3
SCR_GroupFlagSelectionMenu::SetGroupFlag
void SetGroupFlag(SCR_ButtonBaseComponent button)
Definition
SCR_GroupFlagSelectionMenu.c:144
SCR_GroupFlagSelectionMenu::OnMenuOpen
override void OnMenuOpen()
Definition
SCR_GroupFlagSelectionMenu.c:9
SCR_GroupFlagSelectionMenu::CloseDialog
void CloseDialog()
Definition
SCR_GroupFlagSelectionMenu.c:30
SCR_GroupFlagSelectionMenu::OnMenuUpdate
override void OnMenuUpdate(float tDelta)
Definition
SCR_GroupFlagSelectionMenu.c:16
SCR_GroupFlagSelectionMenu::InitGroupFlagSelectionMenu
void InitGroupFlagSelectionMenu(int maxColumns, ResourceName widget)
Definition
SCR_GroupFlagSelectionMenu.c:36
SCR_InputButtonComponent
Definition
SCR_InputButtonComponent.c:2
Widget
Definition
Widget.c:13
scripts
Game
Groups
SCR_GroupFlagSelectionMenu.c
Generated by
1.17.0