From 05eb56b1e22f4e140002438fe3374dd55cc2c5fd Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 18 May 2014 18:04:36 +1200 Subject: [PATCH] Simplify MenuPaletteEffect activation. --- .../Widgets/Logic/CncIngameChromeLogic.cs | 3 --- OpenRA.Mods.RA/MenuPaletteEffect.cs | 11 ++++++++- OpenRA.Mods.RA/OpenRA.Mods.RA.csproj | 1 - .../Logic/ShellmapDesaturationLogic.cs | 23 ------------------- mods/cnc/chrome/mainmenu.yaml | 2 -- mods/cnc/maps/shellmap/map.yaml | 2 ++ 6 files changed, 12 insertions(+), 30 deletions(-) delete mode 100644 OpenRA.Mods.RA/Widgets/Logic/ShellmapDesaturationLogic.cs diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs index 46b9c4af8f..a06607f830 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs @@ -28,9 +28,6 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic public CncIngameChromeLogic(Widget widget, World world) { this.world = world; - world.WorldActor.Trait() - .Fade(MenuPaletteEffect.EffectType.None); - ingameRoot = widget.Get("INGAME_ROOT"); var playerRoot = ingameRoot.Get("PLAYER_ROOT"); diff --git a/OpenRA.Mods.RA/MenuPaletteEffect.cs b/OpenRA.Mods.RA/MenuPaletteEffect.cs index b9e6426077..074ed4197b 100644 --- a/OpenRA.Mods.RA/MenuPaletteEffect.cs +++ b/OpenRA.Mods.RA/MenuPaletteEffect.cs @@ -18,12 +18,16 @@ namespace OpenRA.Mods.RA { public class MenuPaletteEffectInfo : ITraitInfo { + [Desc("Time (in ticks) to fade between states")] public readonly int FadeLength = 10; + [Desc("Effect style to fade into")] + public readonly MenuPaletteEffect.EffectType Effect = MenuPaletteEffect.EffectType.None; + public object Create(ActorInitializer init) { return new MenuPaletteEffect(this); } } - public class MenuPaletteEffect : IPaletteModifier, ITickRender + public class MenuPaletteEffect : IPaletteModifier, ITickRender, IWorldLoaded { public enum EffectType { None, Black, Desaturated } public readonly MenuPaletteEffectInfo Info; @@ -84,5 +88,10 @@ namespace OpenRA.Mods.RA } } } + + public void WorldLoaded(World w, WorldRenderer wr) + { + Fade(Info.Effect); + } } } diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 683a94eec1..6c7beaaf6b 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -411,7 +411,6 @@ - diff --git a/OpenRA.Mods.RA/Widgets/Logic/ShellmapDesaturationLogic.cs b/OpenRA.Mods.RA/Widgets/Logic/ShellmapDesaturationLogic.cs deleted file mode 100644 index cb340ad8ef..0000000000 --- a/OpenRA.Mods.RA/Widgets/Logic/ShellmapDesaturationLogic.cs +++ /dev/null @@ -1,23 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2014 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. For more information, - * see COPYING. - */ -#endregion - -namespace OpenRA.Mods.RA.Widgets.Logic -{ - public class ShellmapDesaturationLogic - { - [ObjectCreator.UseCtor] - public ShellmapDesaturationLogic(World world) - { - var paletteEffect = world.WorldActor.TraitOrDefault(); - if (paletteEffect != null) - paletteEffect.Fade(MenuPaletteEffect.EffectType.Desaturated); - } - } -} diff --git a/mods/cnc/chrome/mainmenu.yaml b/mods/cnc/chrome/mainmenu.yaml index 82d70d694e..6dbe0c17a8 100644 --- a/mods/cnc/chrome/mainmenu.yaml +++ b/mods/cnc/chrome/mainmenu.yaml @@ -3,8 +3,6 @@ Container@MENU_BACKGROUND: Height: WINDOW_BOTTOM Logic: CncMainMenuLogic Children: - Container@SHELLMAP_DESATURATION: - Logic: ShellmapDesaturationLogic Container@SHELLMAP_DECORATIONS: Children: Image@RETICLE: diff --git a/mods/cnc/maps/shellmap/map.yaml b/mods/cnc/maps/shellmap/map.yaml index d09caa5565..53db9c2490 100644 --- a/mods/cnc/maps/shellmap/map.yaml +++ b/mods/cnc/maps/shellmap/map.yaml @@ -990,6 +990,8 @@ Rules: -SpawnMPUnits: -MPStartLocations: -CrateSpawner: + MenuPaletteEffect: + Effect: Desaturated PlayMusicOnMapLoad: Music: map1 Loop: true