Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_GMMenu.c
Go to the documentation of this file.
1
3{
4 protected const ResourceName TILES_LAYOUT = "{818240FE79AF0D49}UI/layouts/Menus/GMMenu/MainMenuTile_VerticalLarge.layout";
5 protected const ResourceName CONFIG = "{CA59D3A983A1BBAB}Configs/GMMenu/GMMenuEntries.conf";
6
10
11 //------------------------------------------------------------------------------------------------
12 override void OnMenuOpen()
13 {
14 super.OnMenuOpen();
16 m_WorkshopAPI = GetGame().GetBackendApi().GetWorkshop();
17
19 if (back)
20 back.m_OnActivated.Insert(OnBack);
21
22 bool disableContent = GetGame().GetGameInstallStatus() != 1.0;
23 PrepareTiles(disableContent);
24
25 if (m_Gallery)
26 m_Gallery.SetFocusedItem(0, true);
27 }
28
29 //------------------------------------------------------------------------------------------------
30 override void OnMenuFocusGained()
31 {
32 if (m_CurrentTile)
33 GetGame().GetWorkspace().SetFocusedWidget(m_CurrentTile.GetRootWidget());
34
35 super.OnMenuFocusGained();
36 }
37
38 //------------------------------------------------------------------------------------------------
39 protected void PrepareTiles(bool isContentDisabled = false)
40 {
41 Resource resource = BaseContainerTools.LoadContainer(CONFIG);
42 if (!resource)
43 return;
44
45 BaseContainer container = resource.GetResource().ToBaseContainer();
46 SCR_GMMenuConfiguration menuConf = SCR_GMMenuConfiguration.Cast(BaseContainerTools.CreateInstanceFromContainer(container));
47 if (!menuConf)
48 return;
49
50 Widget root = GetRootWidget().FindAnyWidget("ScenariosHorizontalLayout");
51
52 array<ResourceName> missions = menuConf.GetScenarios();
53
54 foreach (ResourceName mission : missions)
55 {
56 Widget w = GetGame().GetWorkspace().CreateWidgets(TILES_LAYOUT, root);
57 if (!w)
58 continue;
59
61 if (!tile)
62 continue;
63
65 if (isContentDisabled)
66 tile.DisableTile();
67 }
68
69 Widget focusWidget = root.GetChildren().GetChildren();
70 if (focusWidget)
71 GetGame().GetWorkspace().SetFocusedWidget(focusWidget);
72 }
73
74 //------------------------------------------------------------------------------------------------
75 protected void OnBack()
76 {
77 Close();
78 }
79
80 //------------------------------------------------------------------------------------------------
82 {
83 m_CurrentTile = tile;
84 }
85}
ArmaReforgerScripted GetGame()
Definition game.c:1398
Widget GetRootWidget()
proto native void Close()
Constant variables used in various menus.
Object holding reference to resource. In destructor release the resource.
Definition Resource.c:25
array< ResourceName > GetScenarios()
void PrepareTiles(bool isContentDisabled=false)
Definition SCR_GMMenu.c:39
SCR_GMMenuTileComponent m_CurrentTile
Definition SCR_GMMenu.c:9
override void OnMenuOpen()
Definition SCR_GMMenu.c:12
override void OnMenuFocusGained()
Definition SCR_GMMenu.c:30
const ResourceName TILES_LAYOUT
Definition SCR_GMMenu.c:4
void OnTileFocused(SCR_GMMenuTileComponent tile)
Definition SCR_GMMenu.c:81
void OnBack()
Definition SCR_GMMenu.c:75
WorkshopApi m_WorkshopAPI
Definition SCR_GMMenu.c:8
const ResourceName CONFIG
Definition SCR_GMMenu.c:5
SCR_GalleryComponent m_Gallery
Definition SCR_GMMenu.c:7
static SCR_InputButtonComponent GetInputButtonComponent(string name, notnull Widget parent, bool searchAllChildren=true)
void ShowMission(notnull MissionWorkshopItem item, bool showRecommended=false)
static MissionWorkshopItem GetInGameScenario(ResourceName resource)
Workshop Api instance.
Definition WorkshopApi.c:14