From 6cb5616c776262b57a3cb46785bbdc58a91d26f9 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Tue, 3 May 2011 22:40:35 +1200 Subject: [PATCH] Fix the color picker --- OpenRA.Mods.RA/ColorPickerPaletteModifier.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.RA/ColorPickerPaletteModifier.cs b/OpenRA.Mods.RA/ColorPickerPaletteModifier.cs index bcc7f148b6..93fee06eb3 100644 --- a/OpenRA.Mods.RA/ColorPickerPaletteModifier.cs +++ b/OpenRA.Mods.RA/ColorPickerPaletteModifier.cs @@ -9,6 +9,7 @@ #endregion using System.Collections.Generic; +using System.Linq; using OpenRA.FileFormats; using OpenRA.Graphics; using OpenRA.Mods.RA.Widgets.Delegates; @@ -16,14 +17,24 @@ using OpenRA.Traits; namespace OpenRA.Mods.RA { - class ColorPickerPaletteModifierInfo : TraitInfo {} + class ColorPickerPaletteModifierInfo : ITraitInfo + { + public string PlayerPalette = "player"; + public object Create( ActorInitializer init ) { return new ColorPickerPaletteModifier( this ); } + } class ColorPickerPaletteModifier : IPalette, IPaletteModifier { + ColorPickerPaletteModifierInfo Info; PaletteFormat format; + + public ColorPickerPaletteModifier(ColorPickerPaletteModifierInfo info) { Info = info; } + public void InitPalette( WorldRenderer wr ) { - var info = Rules.Info["player"].Traits.Get(); + var info = Rules.Info["player"].Traits.WithInterface() + .Where(p => p.BaseName == Info.PlayerPalette) + .First(); format = info.PaletteFormat; wr.AddPalette("colorpicker", wr.GetPalette(info.BasePalette)); }