UnitSheetBuilder is dead. long live SpriteSheetBuilder
This commit is contained in:
@@ -57,7 +57,6 @@ namespace OpenRa.Game
|
|||||||
{
|
{
|
||||||
SheetBuilder.Initialize(renderer);
|
SheetBuilder.Initialize(renderer);
|
||||||
SpriteSheetBuilder.Initialize();
|
SpriteSheetBuilder.Initialize();
|
||||||
UnitSheetBuilder.Initialize();
|
|
||||||
FileSystem.UnmountTemporaryPackages();
|
FileSystem.UnmountTemporaryPackages();
|
||||||
Rules.LoadRules(mapName, usingAftermath);
|
Rules.LoadRules(mapName, usingAftermath);
|
||||||
palette = new HardwarePalette(renderer, Rules.Map);
|
palette = new HardwarePalette(renderer, Rules.Map);
|
||||||
|
|||||||
@@ -14,9 +14,8 @@ namespace OpenRa.Game.Graphics
|
|||||||
"fpls", "wcrate", "scrate", "barb", "sbag",
|
"fpls", "wcrate", "scrate", "barb", "sbag",
|
||||||
};
|
};
|
||||||
|
|
||||||
Sprite[][] overlaySprites;
|
readonly Sprite[][] overlaySprites;
|
||||||
|
readonly Sprite[] smudgeSprites;
|
||||||
Sprite[] smudgeSprites;
|
|
||||||
|
|
||||||
SpriteRenderer spriteRenderer;
|
SpriteRenderer spriteRenderer;
|
||||||
Map map;
|
Map map;
|
||||||
@@ -26,13 +25,10 @@ namespace OpenRa.Game.Graphics
|
|||||||
this.spriteRenderer = new SpriteRenderer( renderer, true );
|
this.spriteRenderer = new SpriteRenderer( renderer, true );
|
||||||
this.map = map;
|
this.map = map;
|
||||||
|
|
||||||
overlaySprites = new Sprite[ overlaySpriteNames.Length ][];
|
overlaySprites = overlaySpriteNames.Select(f => SpriteSheetBuilder.LoadAllSprites2(f)).ToArray();
|
||||||
for (int i = 0; i < overlaySpriteNames.Length; i++)
|
|
||||||
overlaySprites[i] = SpriteSheetBuilder.LoadAllSprites(overlaySpriteNames[i], ".shp", ".tem", ".sno");
|
|
||||||
|
|
||||||
smudgeSprites = new[] { "bib3", "bib2", "sc1", "sc2", "sc3", "sc4", "sc5", "sc6",
|
smudgeSprites = new[] { "bib3", "bib2", "sc1", "sc2", "sc3", "sc4", "sc5", "sc6",
|
||||||
"cr1", "cr2", "cr3", "cr4", "cr5", "cr6", }.SelectMany(
|
"cr1", "cr2", "cr3", "cr4", "cr5", "cr6", }.SelectMany(
|
||||||
f => SpriteSheetBuilder.LoadAllSprites(f, ".shp", ".tem", ".sno")).ToArray();
|
f => SpriteSheetBuilder.LoadAllSprites2(f)).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Draw()
|
public void Draw()
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ namespace OpenRa.Game.Graphics
|
|||||||
{
|
{
|
||||||
class Sequence
|
class Sequence
|
||||||
{
|
{
|
||||||
|
readonly Sprite[] sprites;
|
||||||
readonly int start, length;
|
readonly int start, length;
|
||||||
|
|
||||||
public readonly string Name;
|
public readonly string Name;
|
||||||
@@ -17,13 +18,12 @@ namespace OpenRa.Game.Graphics
|
|||||||
string srcOverride = e.GetAttribute("src");
|
string srcOverride = e.GetAttribute("src");
|
||||||
Name = e.GetAttribute("name");
|
Name = e.GetAttribute("name");
|
||||||
|
|
||||||
Range<int> src = UnitSheetBuilder.GetUnit(
|
sprites = SpriteSheetBuilder.LoadAllSprites(string.IsNullOrEmpty(srcOverride) ? unit : srcOverride,
|
||||||
string.IsNullOrEmpty(srcOverride) ? unit : srcOverride);
|
".tem", ".sno", ".int", ".shp" );
|
||||||
|
start = int.Parse(e.GetAttribute("start"));
|
||||||
start = src.Start + int.Parse(e.GetAttribute("start"));
|
|
||||||
|
|
||||||
if (e.GetAttribute("length") == "*" || e.GetAttribute("end") == "*")
|
if (e.GetAttribute("length") == "*" || e.GetAttribute("end") == "*")
|
||||||
length = src.End - src.Start + 1;
|
length = sprites.Length - Start;
|
||||||
else if (e.HasAttribute("length"))
|
else if (e.HasAttribute("length"))
|
||||||
length = int.Parse(e.GetAttribute("length"));
|
length = int.Parse(e.GetAttribute("length"));
|
||||||
else if (e.HasAttribute("end"))
|
else if (e.HasAttribute("end"))
|
||||||
@@ -34,7 +34,7 @@ namespace OpenRa.Game.Graphics
|
|||||||
|
|
||||||
public Sprite GetSprite(int frame)
|
public Sprite GetSprite(int frame)
|
||||||
{
|
{
|
||||||
return UnitSheetBuilder.sprites[ ( frame % length ) + start ];
|
return sprites[ ( frame % length ) + start ];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ namespace OpenRa.Game.Graphics
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Dictionary<string, Sprite[]> sprites;
|
static Dictionary<string, Sprite[]> sprites;
|
||||||
|
static readonly string[] exts = { ".tem", ".sno", ".int", ".shp" };
|
||||||
|
|
||||||
|
public static Sprite[] LoadAllSprites2(string filename)
|
||||||
|
{
|
||||||
|
return LoadAllSprites(filename, exts);
|
||||||
|
}
|
||||||
|
|
||||||
public static Sprite[] LoadAllSprites( string filename, params string[] exts )
|
public static Sprite[] LoadAllSprites( string filename, params string[] exts )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
using System.Collections.Generic;
|
|
||||||
using Ijw.DirectX;
|
|
||||||
using IjwFramework.Collections;
|
|
||||||
using OpenRa.FileFormats;
|
|
||||||
|
|
||||||
namespace OpenRa.Game.Graphics
|
|
||||||
{
|
|
||||||
static class UnitSheetBuilder
|
|
||||||
{
|
|
||||||
public static void Initialize()
|
|
||||||
{
|
|
||||||
sprites = new List<Sprite>();
|
|
||||||
sequences = new Cache<string, Range<int>>(AddUnit);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static List<Sprite> sprites;
|
|
||||||
static Cache<string, Range<int>> sequences;
|
|
||||||
|
|
||||||
public static Range<int> GetUnit(string name) { return sequences[name]; }
|
|
||||||
|
|
||||||
static Range<int> AddUnit( string name )
|
|
||||||
{
|
|
||||||
var low = sprites.Count;
|
|
||||||
var reader = new ShpReader( FileSystem.OpenWithExts( name, ".tem", ".sno", ".int", ".shp" ) );
|
|
||||||
foreach (var h in reader)
|
|
||||||
sprites.Add(SheetBuilder.Add(h.Image, reader.Size));
|
|
||||||
var sequence = new Range<int>(low, sprites.Count - 1);
|
|
||||||
return sequence;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -209,7 +209,6 @@
|
|||||||
<Compile Include="UnitOrders.cs" />
|
<Compile Include="UnitOrders.cs" />
|
||||||
<Compile Include="Traits\Util.cs" />
|
<Compile Include="Traits\Util.cs" />
|
||||||
<Compile Include="UiOverlay.cs" />
|
<Compile Include="UiOverlay.cs" />
|
||||||
<Compile Include="Graphics\UnitSheetBuilder.cs" />
|
|
||||||
<Compile Include="Graphics\Util.cs" />
|
<Compile Include="Graphics\Util.cs" />
|
||||||
<Compile Include="Graphics\Vertex.cs" />
|
<Compile Include="Graphics\Vertex.cs" />
|
||||||
<Compile Include="Graphics\Viewport.cs" />
|
<Compile Include="Graphics\Viewport.cs" />
|
||||||
|
|||||||
Reference in New Issue
Block a user