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 ShroudPaletteRemap())); // Shroud
|
||||
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++)
|
||||
this[new Point(i, allocated)] = p.GetColor(i);
|
||||
|
||||
@@ -3,6 +3,7 @@ using System.Drawing;
|
||||
using System.Linq;
|
||||
using OpenRa.Traits;
|
||||
using System;
|
||||
using OpenRa.FileFormats;
|
||||
|
||||
namespace OpenRa.Graphics
|
||||
{
|
||||
@@ -28,6 +29,11 @@ namespace OpenRa.Graphics
|
||||
lineRenderer = new LineRenderer(renderer);
|
||||
uiOverlay = new UiOverlay(spriteRenderer);
|
||||
palette = new HardwarePalette(renderer, world.Map);
|
||||
Log.Write("Created worldrenderer");
|
||||
}
|
||||
public void AddPalette(string name, Palette pal)
|
||||
{
|
||||
palette.AddPalette(pal);
|
||||
}
|
||||
|
||||
void DrawSpriteList(RectangleF rect,
|
||||
|
||||
@@ -217,6 +217,7 @@
|
||||
<Compile Include="Traits\LightPaletteRotator.cs" />
|
||||
<Compile Include="Traits\LimitedAmmo.cs" />
|
||||
<Compile Include="Traits\NukePower.cs" />
|
||||
<Compile Include="Traits\PaletteFromFile.cs" />
|
||||
<Compile Include="Traits\Passenger.cs" />
|
||||
<Compile Include="Traits\PlaceBuilding.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")));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -63,6 +63,10 @@ namespace OpenRa
|
||||
SpriteSheetBuilder.Initialize( Map );
|
||||
Timer.Time( "Tileset: {0}" );
|
||||
|
||||
WorldRenderer = new WorldRenderer(this, Game.renderer);
|
||||
Timer.Time("renderer: {0}");
|
||||
|
||||
|
||||
oreFrequency = (int)(Rules.General.GrowthRate * 60 * 25);
|
||||
oreTicks = oreFrequency;
|
||||
Map.InitOreDensity();
|
||||
@@ -83,9 +87,8 @@ namespace OpenRa
|
||||
PathFinder = new PathFinder(this);
|
||||
Timer.Time( "bridge, pathing: {0}" );
|
||||
|
||||
WorldRenderer = new WorldRenderer(this, Game.renderer);
|
||||
Minimap = new Minimap(this, Game.renderer);
|
||||
Timer.Time( "renderer, minimap: {0}" );
|
||||
Timer.Time( "minimap: {0}" );
|
||||
|
||||
Timer.Time( "----end World.ctor" );
|
||||
}
|
||||
|
||||
@@ -14,3 +14,7 @@ World:
|
||||
WaterPaletteRotation:
|
||||
BuildingInfluence:
|
||||
UnitInfluence:
|
||||
PaletteFromFile@1:
|
||||
Name: terrain
|
||||
Theatre: temperat
|
||||
Filename: temperat_ra.pal
|
||||
Reference in New Issue
Block a user