Add a mechanism to add palettes via traits
This commit is contained in:
@@ -33,12 +33,10 @@ namespace OpenRa.Graphics
|
|||||||
AddPalette(new Palette(pal, new SingleColorRemap(Color.FromArgb(128, 255, 255, 255)))); // Highlight
|
AddPalette(new Palette(pal, new SingleColorRemap(Color.FromArgb(128, 255, 255, 255)))); // Highlight
|
||||||
AddPalette(new Palette(pal, new ShroudPaletteRemap())); // Shroud
|
AddPalette(new Palette(pal, new ShroudPaletteRemap())); // Shroud
|
||||||
AddPalette(pal); // Chrome (it's like gold, but we're not going to hax it in palettemods)
|
AddPalette(pal); // Chrome (it's like gold, but we're not going to hax it in palettemods)
|
||||||
|
|
||||||
Palette palTerrain = new Palette(FileSystem.Open("temperat_ra.pal"));
|
|
||||||
AddPalette(palTerrain); // Terrain
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int AddPalette(Palette p)
|
public int AddPalette(Palette p)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 256; i++)
|
for (int i = 0; i < 256; i++)
|
||||||
this[new Point(i, allocated)] = p.GetColor(i);
|
this[new Point(i, allocated)] = p.GetColor(i);
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Drawing;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRa.Traits;
|
using OpenRa.Traits;
|
||||||
using System;
|
using System;
|
||||||
|
using OpenRa.FileFormats;
|
||||||
|
|
||||||
namespace OpenRa.Graphics
|
namespace OpenRa.Graphics
|
||||||
{
|
{
|
||||||
@@ -28,8 +29,13 @@ namespace OpenRa.Graphics
|
|||||||
lineRenderer = new LineRenderer(renderer);
|
lineRenderer = new LineRenderer(renderer);
|
||||||
uiOverlay = new UiOverlay(spriteRenderer);
|
uiOverlay = new UiOverlay(spriteRenderer);
|
||||||
palette = new HardwarePalette(renderer, world.Map);
|
palette = new HardwarePalette(renderer, world.Map);
|
||||||
|
Log.Write("Created worldrenderer");
|
||||||
}
|
}
|
||||||
|
public void AddPalette(string name, Palette pal)
|
||||||
|
{
|
||||||
|
palette.AddPalette(pal);
|
||||||
|
}
|
||||||
|
|
||||||
void DrawSpriteList(RectangleF rect,
|
void DrawSpriteList(RectangleF rect,
|
||||||
IEnumerable<Renderable> images)
|
IEnumerable<Renderable> images)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -217,6 +217,7 @@
|
|||||||
<Compile Include="Traits\LightPaletteRotator.cs" />
|
<Compile Include="Traits\LightPaletteRotator.cs" />
|
||||||
<Compile Include="Traits\LimitedAmmo.cs" />
|
<Compile Include="Traits\LimitedAmmo.cs" />
|
||||||
<Compile Include="Traits\NukePower.cs" />
|
<Compile Include="Traits\NukePower.cs" />
|
||||||
|
<Compile Include="Traits\PaletteFromFile.cs" />
|
||||||
<Compile Include="Traits\Passenger.cs" />
|
<Compile Include="Traits\Passenger.cs" />
|
||||||
<Compile Include="Traits\PlaceBuilding.cs" />
|
<Compile Include="Traits\PlaceBuilding.cs" />
|
||||||
<Compile Include="Traits\SupportPower.cs" />
|
<Compile Include="Traits\SupportPower.cs" />
|
||||||
|
|||||||
29
OpenRa.Game/Traits/PaletteFromFile.cs
Normal file
29
OpenRa.Game/Traits/PaletteFromFile.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using OpenRa.FileFormats;
|
||||||
|
|
||||||
|
namespace OpenRa.Traits
|
||||||
|
{
|
||||||
|
class PaletteFromFileInfo : ITraitInfo
|
||||||
|
{
|
||||||
|
public readonly string Name = "Undefined";
|
||||||
|
public readonly string Theatre = "Undefined";
|
||||||
|
public readonly string Filename = "";
|
||||||
|
public readonly string Remap = "";
|
||||||
|
public object Create(Actor self) { return new PaletteFromFile(self, this); }
|
||||||
|
}
|
||||||
|
|
||||||
|
class PaletteFromFile
|
||||||
|
{
|
||||||
|
public PaletteFromFile(Actor self, PaletteFromFileInfo info)
|
||||||
|
{
|
||||||
|
Log.Write("Created palette");
|
||||||
|
if (info.Theatre == "Undefined" ||
|
||||||
|
info.Theatre.ToLowerInvariant() == self.World.Map.Theater.ToLowerInvariant())
|
||||||
|
{
|
||||||
|
self.World.WorldRenderer.AddPalette(info.Name, new Palette(FileSystem.Open("temperat_ra.pal")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -56,13 +56,17 @@ namespace OpenRa
|
|||||||
public World()
|
public World()
|
||||||
{
|
{
|
||||||
Timer.Time( "----World.ctor" );
|
Timer.Time( "----World.ctor" );
|
||||||
|
|
||||||
Map = new Map( Rules.AllRules );
|
Map = new Map( Rules.AllRules );
|
||||||
Timer.Time( "new Map: {0}" );
|
Timer.Time( "new Map: {0}" );
|
||||||
TileSet = new TileSet( Map.TileSuffix );
|
TileSet = new TileSet( Map.TileSuffix );
|
||||||
SpriteSheetBuilder.Initialize( Map );
|
SpriteSheetBuilder.Initialize( Map );
|
||||||
Timer.Time( "Tileset: {0}" );
|
Timer.Time( "Tileset: {0}" );
|
||||||
|
|
||||||
|
WorldRenderer = new WorldRenderer(this, Game.renderer);
|
||||||
|
Timer.Time("renderer: {0}");
|
||||||
|
|
||||||
|
|
||||||
oreFrequency = (int)(Rules.General.GrowthRate * 60 * 25);
|
oreFrequency = (int)(Rules.General.GrowthRate * 60 * 25);
|
||||||
oreTicks = oreFrequency;
|
oreTicks = oreFrequency;
|
||||||
Map.InitOreDensity();
|
Map.InitOreDensity();
|
||||||
@@ -83,9 +87,8 @@ namespace OpenRa
|
|||||||
PathFinder = new PathFinder(this);
|
PathFinder = new PathFinder(this);
|
||||||
Timer.Time( "bridge, pathing: {0}" );
|
Timer.Time( "bridge, pathing: {0}" );
|
||||||
|
|
||||||
WorldRenderer = new WorldRenderer(this, Game.renderer);
|
|
||||||
Minimap = new Minimap(this, Game.renderer);
|
Minimap = new Minimap(this, Game.renderer);
|
||||||
Timer.Time( "renderer, minimap: {0}" );
|
Timer.Time( "minimap: {0}" );
|
||||||
|
|
||||||
Timer.Time( "----end World.ctor" );
|
Timer.Time( "----end World.ctor" );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,4 +13,8 @@ Player:
|
|||||||
World:
|
World:
|
||||||
WaterPaletteRotation:
|
WaterPaletteRotation:
|
||||||
BuildingInfluence:
|
BuildingInfluence:
|
||||||
UnitInfluence:
|
UnitInfluence:
|
||||||
|
PaletteFromFile@1:
|
||||||
|
Name: terrain
|
||||||
|
Theatre: temperat
|
||||||
|
Filename: temperat_ra.pal
|
||||||
Reference in New Issue
Block a user