Clean up custom color palette

This commit is contained in:
Paul Chote
2010-08-15 00:15:23 +12:00
parent 271be551b0
commit 694fd84188
10 changed files with 53 additions and 26 deletions

View File

@@ -37,7 +37,7 @@ namespace OpenRA
public static World world;
public static Viewport viewport;
internal static UserSettings Settings;
public static UserSettings Settings;
internal static OrderManager orderManager;

View File

@@ -52,16 +52,10 @@ namespace OpenRA.Graphics
public void AddPalette(string name, Palette p)
{
Console.WriteLine("Adding palette "+name);
palettes.Add(name, p);
indices.Add(name, allocated++);
}
public void UpdatePalette(string name, Palette p)
{
palettes[name] = p;
}
public void Update(IEnumerable<IPaletteModifier> paletteMods)
{
var copy = palettes.ToDictionary(p => p.Key, p => new Palette(p.Value));

View File

@@ -36,7 +36,6 @@ namespace OpenRA.Graphics
public int GetPaletteIndex(string name) { return palette.GetPaletteIndex(name); }
public Palette GetPalette(string name) { return palette.GetPalette(name); }
public void AddPalette(string name, Palette pal) { palette.AddPalette(name, pal); }
public void UpdatePalette(string name, Palette pal) { palette.UpdatePalette(name, pal); }
class SpriteComparer : IComparer<Renderable>
{

View File

@@ -20,18 +20,21 @@ namespace OpenRA.Widgets.Delegates
public class LobbyDelegate : IWidgetDelegate
{
Widget Players, LocalPlayerTemplate, RemotePlayerTemplate;
Dictionary<string, string> CountryNames;
string MapUid;
MapStub Map;
bool SplitPlayerPalette = false;
Palette BasePlayerPalette = null;
public static Color CurrentColorPreview1;
public static Color CurrentColorPreview2;
public LobbyDelegate()
{
Game.LobbyInfoChanged += UpdateCurrentMap;
UpdateCurrentMap();
CurrentColorPreview1 = Game.Settings.PlayerColor1;
CurrentColorPreview2 = Game.Settings.PlayerColor2;
var r = Widget.RootWidget;
var lobby = r.GetWidget("SERVER_LOBBY");
@@ -151,13 +154,7 @@ namespace OpenRA.Widgets.Delegates
UpdateColorPreview(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
UpdatePlayerColor(hueSlider.GetOffset(), satSlider.GetOffset(), lumSlider.GetOffset(), rangeSlider.GetOffset());
return true;
};
// Copy the base palette for the colorpicker
var info = Rules.Info["world"].Traits.Get<PlayerColorPaletteInfo>();
BasePlayerPalette = Game.world.WorldRenderer.GetPalette(info.BasePalette);
SplitPlayerPalette = info.SplitRamp;
Game.world.WorldRenderer.AddPalette("colorpicker",BasePlayerPalette);
};
}
void UpdatePlayerColor(float hf, float sf, float lf, float r)
@@ -173,9 +170,8 @@ namespace OpenRA.Widgets.Delegates
void UpdateColorPreview(float hf, float sf, float lf, float r)
{
var c1 = ColorFromHSL(hf, sf, lf);
var c2 = ColorFromHSL(hf, sf, r*lf);
Game.world.WorldRenderer.UpdatePalette("colorpicker", new Palette(BasePlayerPalette, new PlayerColorRemap(c1, c2, SplitPlayerPalette)));
CurrentColorPreview1 = ColorFromHSL(hf, sf, lf);
CurrentColorPreview2 = ColorFromHSL(hf, sf, r*lf);
Game.viewport.RefreshPalette();
}