From 1114f3d559ab7c1d94ee14b7dac7073854dea0f2 Mon Sep 17 00:00:00 2001 From: Ivaylo Draganov Date: Thu, 3 Oct 2024 11:46:44 +0300 Subject: [PATCH] Extract version label chrome logic to a dedicated class --- .../Widgets/Logic/Ingame/GameSaveLoadingLogic.cs | 7 ------- .../Widgets/Logic/Ingame/IngameMenuLogic.cs | 3 --- OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs | 2 -- .../Widgets/Logic/VersionLabelLogic.cs | 14 ++++++++++++++ mods/cnc/chrome/gamesave-loading.yaml | 1 + mods/cnc/chrome/ingame-menu.yaml | 1 + mods/cnc/chrome/mainmenu.yaml | 1 + mods/common/chrome/ingame-menu.yaml | 1 + mods/common/chrome/mainmenu.yaml | 1 + mods/d2k/chrome/ingame-menu.yaml | 1 + mods/d2k/chrome/mainmenu.yaml | 1 + 11 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 OpenRA.Mods.Common/Widgets/Logic/VersionLabelLogic.cs diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameSaveLoadingLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameSaveLoadingLogic.cs index 312626a2c341..9983b67741e3 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameSaveLoadingLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/GameSaveLoadingLogic.cs @@ -20,13 +20,6 @@ public GameSaveLoadingLogic(Widget widget, ModData modData, World world) { widget.Get("PROGRESS").GetPercentage = () => world.GameSaveLoadingPercentage; - var versionLabel = widget.GetOrNull("VERSION_LABEL"); - if (versionLabel != null) - { - var versionText = modData.Manifest.Metadata.Version; - versionLabel.GetText = () => versionText; - } - var keyhandler = widget.Get("CANCEL_HANDLER"); keyhandler.AddHandler(e => { diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs index 8b38d0d8eb96..24e9b58ce92c 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/IngameMenuLogic.cs @@ -187,9 +187,6 @@ public IngameMenuLogic(Widget widget, ModData modData, World world, Action onExi mpe = world.WorldActor.TraitOrDefault(); mpe?.Fade(mpe.Info.MenuEffect); - var versionText = modData.Manifest.Metadata.Version; - menu.Get("VERSION_LABEL").GetText = () => versionText; - buttonContainer = menu.Get("MENU_BUTTONS"); buttonTemplate = buttonContainer.Get("BUTTON_TEMPLATE"); buttonContainer.RemoveChild(buttonTemplate); diff --git a/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs index 2a23181582bb..5f5b87136c3a 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MainMenuLogic.cs @@ -69,8 +69,6 @@ public MainMenuLogic(Widget widget, World world, ModData modData) this.modData = modData; rootMenu = widget; - var versionText = modData.Manifest.Metadata.Version; - rootMenu.Get("VERSION_LABEL").GetText = () => versionText; // Menu buttons var mainMenu = widget.Get("MAIN_MENU"); diff --git a/OpenRA.Mods.Common/Widgets/Logic/VersionLabelLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/VersionLabelLogic.cs new file mode 100644 index 000000000000..aba78cde5e89 --- /dev/null +++ b/OpenRA.Mods.Common/Widgets/Logic/VersionLabelLogic.cs @@ -0,0 +1,14 @@ +using OpenRA.Widgets; + +namespace OpenRA.Mods.Common.Widgets.Logic +{ + public class VersionLabelLogic : ChromeLogic + { + [ObjectCreator.UseCtor] + public VersionLabelLogic(LabelWidget widget, ModData modData) + { + var versionText = modData.Manifest.Metadata.Version; + widget.GetText = () => versionText; + } + } +} diff --git a/mods/cnc/chrome/gamesave-loading.yaml b/mods/cnc/chrome/gamesave-loading.yaml index 8bcfe90e4f26..432558f1a554 100644 --- a/mods/cnc/chrome/gamesave-loading.yaml +++ b/mods/cnc/chrome/gamesave-loading.yaml @@ -22,6 +22,7 @@ Container@GAMESAVE_LOADING_SCREEN: ImageCollection: logos ImageName: eva Label@VERSION_LABEL: + Logic: VersionLabelLogic X: WINDOW_RIGHT - 128 - 43 Y: 116 Width: 128 diff --git a/mods/cnc/chrome/ingame-menu.yaml b/mods/cnc/chrome/ingame-menu.yaml index 4f6330dd3650..06b1e8f13192 100644 --- a/mods/cnc/chrome/ingame-menu.yaml +++ b/mods/cnc/chrome/ingame-menu.yaml @@ -13,6 +13,7 @@ Container@INGAME_MENU: ImageCollection: logos ImageName: eva Label@VERSION_LABEL: + Logic: VersionLabelLogic X: WINDOW_RIGHT - 128 - 43 Y: 116 Width: 128 diff --git a/mods/cnc/chrome/mainmenu.yaml b/mods/cnc/chrome/mainmenu.yaml index 3e54ceb388fb..23787d525671 100644 --- a/mods/cnc/chrome/mainmenu.yaml +++ b/mods/cnc/chrome/mainmenu.yaml @@ -31,6 +31,7 @@ Container@MENU_BACKGROUND: ImageCollection: logos ImageName: eva Label@VERSION_LABEL: + Logic: VersionLabelLogic X: WINDOW_RIGHT - 128 - 43 Y: 116 Width: 128 diff --git a/mods/common/chrome/ingame-menu.yaml b/mods/common/chrome/ingame-menu.yaml index 079763cfb90c..d1529226a3ab 100644 --- a/mods/common/chrome/ingame-menu.yaml +++ b/mods/common/chrome/ingame-menu.yaml @@ -17,6 +17,7 @@ Container@INGAME_MENU: ImageCollection: logos ImageName: logo Label@VERSION_LABEL: + Logic: VersionLabelLogic X: WINDOW_RIGHT - 296 Y: 296 - 19 Width: 296 - 20 diff --git a/mods/common/chrome/mainmenu.yaml b/mods/common/chrome/mainmenu.yaml index 88971366db40..e25a3148fadb 100644 --- a/mods/common/chrome/mainmenu.yaml +++ b/mods/common/chrome/mainmenu.yaml @@ -21,6 +21,7 @@ Container@MAINMENU: ImageCollection: logos ImageName: logo Label@VERSION_LABEL: + Logic: VersionLabelLogic X: WINDOW_RIGHT - 296 Y: 296 - 20 Width: 296 - 20 diff --git a/mods/d2k/chrome/ingame-menu.yaml b/mods/d2k/chrome/ingame-menu.yaml index a71fd0e81ac3..c2a212ae732a 100644 --- a/mods/d2k/chrome/ingame-menu.yaml +++ b/mods/d2k/chrome/ingame-menu.yaml @@ -6,6 +6,7 @@ Container@INGAME_MENU: ButtonStride: 0, 40 Children: Label@VERSION_LABEL: + Logic: VersionLabelLogic X: WINDOW_RIGHT - 10 Y: WINDOW_BOTTOM - 19 Align: Right diff --git a/mods/d2k/chrome/mainmenu.yaml b/mods/d2k/chrome/mainmenu.yaml index e6b060d123c4..6005f322e91e 100644 --- a/mods/d2k/chrome/mainmenu.yaml +++ b/mods/d2k/chrome/mainmenu.yaml @@ -10,6 +10,7 @@ Container@MAINMENU: TakeScreenshotKey: TakeScreenshot MuteAudioKey: ToggleMute Label@VERSION_LABEL: + Logic: VersionLabelLogic X: WINDOW_RIGHT - 10 Y: WINDOW_BOTTOM - 19 Align: Right