UnitSheetBuilder is dead. long live SpriteSheetBuilder
This commit is contained in:
@@ -57,7 +57,6 @@ namespace OpenRa.Game
|
||||
{
|
||||
SheetBuilder.Initialize(renderer);
|
||||
SpriteSheetBuilder.Initialize();
|
||||
UnitSheetBuilder.Initialize();
|
||||
FileSystem.UnmountTemporaryPackages();
|
||||
Rules.LoadRules(mapName, usingAftermath);
|
||||
palette = new HardwarePalette(renderer, Rules.Map);
|
||||
|
||||
@@ -14,9 +14,8 @@ namespace OpenRa.Game.Graphics
|
||||
"fpls", "wcrate", "scrate", "barb", "sbag",
|
||||
};
|
||||
|
||||
Sprite[][] overlaySprites;
|
||||
|
||||
Sprite[] smudgeSprites;
|
||||
readonly Sprite[][] overlaySprites;
|
||||
readonly Sprite[] smudgeSprites;
|
||||
|
||||
SpriteRenderer spriteRenderer;
|
||||
Map map;
|
||||
@@ -26,13 +25,10 @@ namespace OpenRa.Game.Graphics
|
||||
this.spriteRenderer = new SpriteRenderer( renderer, true );
|
||||
this.map = map;
|
||||
|
||||
overlaySprites = new Sprite[ overlaySpriteNames.Length ][];
|
||||
for (int i = 0; i < overlaySpriteNames.Length; i++)
|
||||
overlaySprites[i] = SpriteSheetBuilder.LoadAllSprites(overlaySpriteNames[i], ".shp", ".tem", ".sno");
|
||||
|
||||
overlaySprites = overlaySpriteNames.Select(f => SpriteSheetBuilder.LoadAllSprites2(f)).ToArray();
|
||||
smudgeSprites = new[] { "bib3", "bib2", "sc1", "sc2", "sc3", "sc4", "sc5", "sc6",
|
||||
"cr1", "cr2", "cr3", "cr4", "cr5", "cr6", }.SelectMany(
|
||||
f => SpriteSheetBuilder.LoadAllSprites(f, ".shp", ".tem", ".sno")).ToArray();
|
||||
f => SpriteSheetBuilder.LoadAllSprites2(f)).ToArray();
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace OpenRa.Game.Graphics
|
||||
{
|
||||
class Sequence
|
||||
{
|
||||
readonly Sprite[] sprites;
|
||||
readonly int start, length;
|
||||
|
||||
public readonly string Name;
|
||||
@@ -17,13 +18,12 @@ namespace OpenRa.Game.Graphics
|
||||
string srcOverride = e.GetAttribute("src");
|
||||
Name = e.GetAttribute("name");
|
||||
|
||||
Range<int> src = UnitSheetBuilder.GetUnit(
|
||||
string.IsNullOrEmpty(srcOverride) ? unit : srcOverride);
|
||||
|
||||
start = src.Start + int.Parse(e.GetAttribute("start"));
|
||||
sprites = SpriteSheetBuilder.LoadAllSprites(string.IsNullOrEmpty(srcOverride) ? unit : srcOverride,
|
||||
".tem", ".sno", ".int", ".shp" );
|
||||
start = int.Parse(e.GetAttribute("start"));
|
||||
|
||||
if (e.GetAttribute("length") == "*" || e.GetAttribute("end") == "*")
|
||||
length = src.End - src.Start + 1;
|
||||
length = sprites.Length - Start;
|
||||
else if (e.HasAttribute("length"))
|
||||
length = int.Parse(e.GetAttribute("length"));
|
||||
else if (e.HasAttribute("end"))
|
||||
@@ -34,7 +34,7 @@ namespace OpenRa.Game.Graphics
|
||||
|
||||
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 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 )
|
||||
{
|
||||
|
||||
@@ -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="Traits\Util.cs" />
|
||||
<Compile Include="UiOverlay.cs" />
|
||||
<Compile Include="Graphics\UnitSheetBuilder.cs" />
|
||||
<Compile Include="Graphics\Util.cs" />
|
||||
<Compile Include="Graphics\Vertex.cs" />
|
||||
<Compile Include="Graphics\Viewport.cs" />
|
||||
|
||||
Reference in New Issue
Block a user