From 18e36b96db2c6d9da2ac42d78862ff1f74fe0cdb Mon Sep 17 00:00:00 2001 From: Ivaylo Draganov Date: Fri, 4 Nov 2022 13:33:38 +0200 Subject: [PATCH] Add HPF overlay controls to observer chrome --- ...ngameHierarchicalPathFinderOverlayLogic.cs | 24 +++++++++++++++ mods/cnc/chrome/ingame.yaml | 29 +++++++------------ mods/cnc/mod.yaml | 1 + mods/common/chrome/ingame-debug-hpf.yaml | 17 +++++++++++ mods/d2k/chrome/ingame-observer.yaml | 5 ++++ mods/d2k/chrome/ingame-player.yaml | 18 ++---------- mods/d2k/mod.yaml | 1 + mods/ra/chrome/ingame-observer.yaml | 5 ++++ mods/ra/chrome/ingame-player.yaml | 19 ++---------- mods/ra/mod.yaml | 1 + mods/ts/chrome/ingame-observer.yaml | 5 ++++ mods/ts/chrome/ingame-player.yaml | 18 ++---------- mods/ts/mod.yaml | 1 + 13 files changed, 76 insertions(+), 68 deletions(-) create mode 100644 OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngameHierarchicalPathFinderOverlayLogic.cs create mode 100644 mods/common/chrome/ingame-debug-hpf.yaml diff --git a/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngameHierarchicalPathFinderOverlayLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngameHierarchicalPathFinderOverlayLogic.cs new file mode 100644 index 0000000000..376bd6f6f9 --- /dev/null +++ b/OpenRA.Mods.Common/Widgets/Logic/Ingame/LoadIngameHierarchicalPathFinderOverlayLogic.cs @@ -0,0 +1,24 @@ +#region Copyright & License Information +/* + * Copyright 2007-2022 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. For more + * information, see COPYING. + */ +#endregion + +using OpenRA.Widgets; + +namespace OpenRA.Mods.Common.Widgets.Logic +{ + public class LoadIngameHierarchicalPathFinderOverlayLogic : ChromeLogic + { + [ObjectCreator.UseCtor] + public LoadIngameHierarchicalPathFinderOverlayLogic(Widget widget, World world) + { + Game.LoadWidget(world, "HPF_OVERLAY", widget, new WidgetArgs()); + } + } +} diff --git a/mods/cnc/chrome/ingame.yaml b/mods/cnc/chrome/ingame.yaml index bf4a772df8..dfe0e4e817 100644 --- a/mods/cnc/chrome/ingame.yaml +++ b/mods/cnc/chrome/ingame.yaml @@ -74,6 +74,11 @@ Container@OBSERVER_WIDGETS: Children: Container@CHAT_ROOT: Container@PERF_ROOT: + Container@HPF_ROOT: + Logic: LoadIngameHierarchicalPathFinderOverlayLogic + X: WINDOW_RIGHT - WIDTH - 270 + Y: 40 + Width: 175 ViewportController: Width: WINDOW_RIGHT Height: WINDOW_BOTTOM @@ -1159,6 +1164,11 @@ Container@PLAYER_WIDGETS: Children: Container@CHAT_ROOT: Container@PERF_ROOT: + Container@HPF_ROOT: + Logic: LoadIngameHierarchicalPathFinderOverlayLogic + X: WINDOW_RIGHT - WIDTH - 240 + Y: 40 + Width: 175 ViewportController: Width: WINDOW_RIGHT Height: WINDOW_BOTTOM @@ -1876,25 +1886,6 @@ Container@PLAYER_WIDGETS: Y: 299 Width: 194 Height: 20 - Container@HPF_OVERLAY: - Logic: HierarchicalPathFinderOverlayLogic - X: WINDOW_RIGHT - WIDTH - 240 - Y: 40 - Width: 175 - Height: 60 - Children: - DropDownButton@HPF_OVERLAY_LOCOMOTOR: - Y: PARENT_TOP - Width: PARENT_RIGHT - Height: 25 - Text: Select Locomotor - Font: Regular - DropDownButton@HPF_OVERLAY_CHECK: - Y: PARENT_TOP + 35 - Width: PARENT_RIGHT - Height: 25 - Text: Select BlockedByActor - Font: Regular Background@FMVPLAYER: Width: WINDOW_RIGHT diff --git a/mods/cnc/mod.yaml b/mods/cnc/mod.yaml index 45eb70c850..7baddda24d 100644 --- a/mods/cnc/mod.yaml +++ b/mods/cnc/mod.yaml @@ -119,6 +119,7 @@ ChromeLayout: common|chrome/ingame-transients.yaml cnc|chrome/ingame-menu.yaml cnc|chrome/ingame-debug.yaml + common|chrome/ingame-debug-hpf.yaml cnc|chrome/ingame-infochat.yaml cnc|chrome/ingame-info.yaml cnc|chrome/ingame-infobriefing.yaml diff --git a/mods/common/chrome/ingame-debug-hpf.yaml b/mods/common/chrome/ingame-debug-hpf.yaml new file mode 100644 index 0000000000..47721c3aac --- /dev/null +++ b/mods/common/chrome/ingame-debug-hpf.yaml @@ -0,0 +1,17 @@ +Container@HPF_OVERLAY: + Logic: HierarchicalPathFinderOverlayLogic + Width: PARENT_RIGHT + Height: 60 + Children: + DropDownButton@HPF_OVERLAY_LOCOMOTOR: + Y: PARENT_TOP + Width: PARENT_RIGHT + Height: 25 + Text: Select Locomotor + Font: Regular + DropDownButton@HPF_OVERLAY_CHECK: + Y: PARENT_TOP + 35 + Width: PARENT_RIGHT + Height: 25 + Text: Select BlockedByActor + Font: Regular diff --git a/mods/d2k/chrome/ingame-observer.yaml b/mods/d2k/chrome/ingame-observer.yaml index 3e3be879ae..d981ce8b74 100644 --- a/mods/d2k/chrome/ingame-observer.yaml +++ b/mods/d2k/chrome/ingame-observer.yaml @@ -1032,3 +1032,8 @@ Container@OBSERVER_WIDGETS: YAxisLabel: Army Value LabelFont: TinyBold AxisFont: TinyBold + Container@HPF_ROOT: + Logic: LoadIngameHierarchicalPathFinderOverlayLogic + X: WINDOW_RIGHT - WIDTH - 260 + Y: 40 + Width: 175 diff --git a/mods/d2k/chrome/ingame-player.yaml b/mods/d2k/chrome/ingame-player.yaml index ca8b967015..c70ec19bbf 100644 --- a/mods/d2k/chrome/ingame-player.yaml +++ b/mods/d2k/chrome/ingame-player.yaml @@ -641,22 +641,8 @@ Container@PLAYER_WIDGETS: Y: 5 ImageCollection: scrollpanel-decorations ImageName: down - Container@HPF_OVERLAY: - Logic: HierarchicalPathFinderOverlayLogic + Container@HPF_ROOT: + Logic: LoadIngameHierarchicalPathFinderOverlayLogic X: WINDOW_RIGHT - WIDTH - 231 Y: 40 Width: 175 - Height: 60 - Children: - DropDownButton@HPF_OVERLAY_LOCOMOTOR: - Y: PARENT_TOP - Width: PARENT_RIGHT - Height: 25 - Text: Select Locomotor - Font: Regular - DropDownButton@HPF_OVERLAY_CHECK: - Y: PARENT_TOP + 35 - Width: PARENT_RIGHT - Height: 25 - Text: Select BlockedByActor - Font: Regular diff --git a/mods/d2k/mod.yaml b/mods/d2k/mod.yaml index d07f1e37bd..27c4b365dc 100644 --- a/mods/d2k/mod.yaml +++ b/mods/d2k/mod.yaml @@ -83,6 +83,7 @@ ChromeLayout: d2k|chrome/ingame-player.yaml common|chrome/ingame-perf.yaml common|chrome/ingame-debug.yaml + common|chrome/ingame-debug-hpf.yaml common|chrome/ingame-debuginfo.yaml common|chrome/ingame-infochat.yaml d2k|chrome/mainmenu.yaml diff --git a/mods/ra/chrome/ingame-observer.yaml b/mods/ra/chrome/ingame-observer.yaml index f90c55bba4..6f28966e8b 100644 --- a/mods/ra/chrome/ingame-observer.yaml +++ b/mods/ra/chrome/ingame-observer.yaml @@ -1096,3 +1096,8 @@ Container@OBSERVER_WIDGETS: YAxisLabel: Army Value LabelFont: TinyBold AxisFont: TinyBold + Container@HPF_ROOT: + Logic: LoadIngameHierarchicalPathFinderOverlayLogic + X: WINDOW_RIGHT - WIDTH - 255 + Y: 40 + Width: 175 diff --git a/mods/ra/chrome/ingame-player.yaml b/mods/ra/chrome/ingame-player.yaml index 9717cebdb4..68f5ffe0a9 100644 --- a/mods/ra/chrome/ingame-player.yaml +++ b/mods/ra/chrome/ingame-player.yaml @@ -649,23 +649,8 @@ Container@PLAYER_WIDGETS: Y: 4 ImageCollection: power-icons ImageName: power-normal - Container@HPF_OVERLAY: - Logic: HierarchicalPathFinderOverlayLogic + Container@HPF_ROOT: + Logic: LoadIngameHierarchicalPathFinderOverlayLogic X: WINDOW_RIGHT - WIDTH - 260 Y: 40 Width: 175 - Height: 60 - Children: - DropDownButton@HPF_OVERLAY_LOCOMOTOR: - Y: PARENT_TOP - Width: PARENT_RIGHT - Height: 25 - Text: Select Locomotor - Font: Regular - DropDownButton@HPF_OVERLAY_CHECK: - Y: PARENT_TOP + 35 - Width: PARENT_RIGHT - Height: 25 - Text: Select BlockedByActor - Font: Regular - diff --git a/mods/ra/mod.yaml b/mods/ra/mod.yaml index 7894c90c12..dd7bbc62f0 100644 --- a/mods/ra/mod.yaml +++ b/mods/ra/mod.yaml @@ -100,6 +100,7 @@ ChromeLayout: ra|chrome/ingame-player.yaml common|chrome/ingame-perf.yaml common|chrome/ingame-debug.yaml + common|chrome/ingame-debug-hpf.yaml common|chrome/ingame-debuginfo.yaml common|chrome/ingame-infochat.yaml common|chrome/mainmenu.yaml diff --git a/mods/ts/chrome/ingame-observer.yaml b/mods/ts/chrome/ingame-observer.yaml index 4fbb84ce24..636f9a9ae3 100644 --- a/mods/ts/chrome/ingame-observer.yaml +++ b/mods/ts/chrome/ingame-observer.yaml @@ -1041,3 +1041,8 @@ Container@OBSERVER_WIDGETS: YAxisLabel: Army Value LabelFont: TinyBold AxisFont: TinyBold + Container@HPF_ROOT: + Logic: LoadIngameHierarchicalPathFinderOverlayLogic + X: WINDOW_RIGHT - WIDTH - 260 + Y: 40 + Width: 175 diff --git a/mods/ts/chrome/ingame-player.yaml b/mods/ts/chrome/ingame-player.yaml index d721f8f4df..faacd199e6 100644 --- a/mods/ts/chrome/ingame-player.yaml +++ b/mods/ts/chrome/ingame-player.yaml @@ -619,22 +619,8 @@ Container@PLAYER_WIDGETS: Background: scrolldown-buttons TooltipText: Scroll down TooltipContainer: TOOLTIP_CONTAINER - Container@HPF_OVERLAY: - Logic: HierarchicalPathFinderOverlayLogic + Container@HPF_ROOT: + Logic: LoadIngameHierarchicalPathFinderOverlayLogic X: WINDOW_RIGHT - WIDTH - 245 Y: 40 Width: 175 - Height: 60 - Children: - DropDownButton@HPF_OVERLAY_LOCOMOTOR: - Y: PARENT_TOP - Width: PARENT_RIGHT - Height: 25 - Text: Select Locomotor - Font: Regular - DropDownButton@HPF_OVERLAY_CHECK: - Y: PARENT_TOP + 35 - Width: PARENT_RIGHT - Height: 25 - Text: Select BlockedByActor - Font: Regular diff --git a/mods/ts/mod.yaml b/mods/ts/mod.yaml index 828fbaaf6b..5c9c5a51a6 100644 --- a/mods/ts/mod.yaml +++ b/mods/ts/mod.yaml @@ -144,6 +144,7 @@ ChromeLayout: ts|chrome/ingame-player.yaml common|chrome/ingame-perf.yaml ts|chrome/ingame-debug.yaml + common|chrome/ingame-debug-hpf.yaml common|chrome/ingame-debuginfo.yaml common|chrome/ingame-infochat.yaml common|chrome/mainmenu.yaml