and some more
This commit is contained in:
@@ -57,7 +57,7 @@ namespace OpenRa.Game
|
|||||||
.Where(u => Rules.UnitInfo[u].TechLevel != -1)
|
.Where(u => Rules.UnitInfo[u].TechLevel != -1)
|
||||||
.ToDictionary(
|
.ToDictionary(
|
||||||
u => u,
|
u => u,
|
||||||
u => SpriteSheetBuilder.LoadAllSprites(u + "icon", ".shp")[0]);
|
u => SpriteSheetBuilder.LoadAllSprites(u + "icon")[0]);
|
||||||
|
|
||||||
tabSprites = groups.Select(
|
tabSprites = groups.Select(
|
||||||
(g, i) => Pair.New(g,
|
(g, i) => Pair.New(g,
|
||||||
|
|||||||
@@ -25,10 +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 = overlaySpriteNames.Select(f => SpriteSheetBuilder.LoadAllSprites2(f)).ToArray();
|
overlaySprites = overlaySpriteNames.Select(f => SpriteSheetBuilder.LoadAllSprites(f)).ToArray();
|
||||||
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.LoadAllSprites2(f)).ToArray();
|
f => SpriteSheetBuilder.LoadAllSprites(f)).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Draw()
|
public void Draw()
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ namespace OpenRa.Game.Graphics
|
|||||||
string srcOverride = e.GetAttribute("src");
|
string srcOverride = e.GetAttribute("src");
|
||||||
Name = e.GetAttribute("name");
|
Name = e.GetAttribute("name");
|
||||||
|
|
||||||
sprites = SpriteSheetBuilder.LoadAllSprites(string.IsNullOrEmpty(srcOverride) ? unit : srcOverride,
|
sprites = SpriteSheetBuilder.LoadAllSprites(string.IsNullOrEmpty(srcOverride) ? unit : srcOverride );
|
||||||
".tem", ".sno", ".int", ".shp" );
|
|
||||||
start = int.Parse(e.GetAttribute("start"));
|
start = int.Parse(e.GetAttribute("start"));
|
||||||
|
|
||||||
if (e.GetAttribute("length") == "*" || e.GetAttribute("end") == "*")
|
if (e.GetAttribute("length") == "*" || e.GetAttribute("end") == "*")
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using OpenRa.FileFormats;
|
using OpenRa.FileFormats;
|
||||||
|
using IjwFramework.Collections;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace OpenRa.Game.Graphics
|
namespace OpenRa.Game.Graphics
|
||||||
{
|
{
|
||||||
@@ -7,30 +9,21 @@ namespace OpenRa.Game.Graphics
|
|||||||
{
|
{
|
||||||
public static void Initialize()
|
public static void Initialize()
|
||||||
{
|
{
|
||||||
sprites = new Dictionary<string, Sprite[]>();
|
sprites = new Cache<string, Sprite[]>( LoadSprites );
|
||||||
}
|
}
|
||||||
|
|
||||||
static Dictionary<string, Sprite[]> sprites;
|
static Cache<string, Sprite[]> sprites;
|
||||||
static readonly string[] exts = { ".tem", ".sno", ".int", ".shp" };
|
static readonly string[] exts = { ".tem", ".sno", ".int", ".shp" };
|
||||||
|
|
||||||
public static Sprite[] LoadAllSprites2(string filename)
|
static Sprite[] LoadSprites(string filename)
|
||||||
{
|
{
|
||||||
return LoadAllSprites(filename, exts);
|
var shp = new ShpReader(FileSystem.OpenWithExts(filename, exts));
|
||||||
|
return shp.Select(a => SheetBuilder.Add(a.Image, shp.Size)).ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Sprite[] LoadAllSprites( string filename, params string[] exts )
|
public static Sprite[] LoadAllSprites( string filename )
|
||||||
{
|
{
|
||||||
Sprite[] value;
|
return sprites[filename];
|
||||||
if( !sprites.TryGetValue( filename, out value ) )
|
|
||||||
{
|
|
||||||
ShpReader shp = new ShpReader( FileSystem.OpenWithExts( filename, exts ) );
|
|
||||||
value = new Sprite[ shp.ImageCount ];
|
|
||||||
for( int i = 0 ; i < shp.ImageCount ; i++ )
|
|
||||||
value[ i ] = SheetBuilder.Add( shp[ i ].Image, shp.Size );
|
|
||||||
sprites.Add( filename, value );
|
|
||||||
}
|
|
||||||
|
|
||||||
return value;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user