unstatic SpriteLoader
This commit is contained in:
@@ -33,7 +33,7 @@ namespace OpenRA.Graphics
|
||||
Name = name;
|
||||
var d = info.NodesDict;
|
||||
|
||||
sprites = SpriteLoader.LoadAllSprites(string.IsNullOrEmpty(srcOverride) ? unit : srcOverride );
|
||||
sprites = Game.modData.SpriteLoader.LoadAllSprites(string.IsNullOrEmpty(srcOverride) ? unit : srcOverride );
|
||||
start = int.Parse(d["Start"].Value);
|
||||
|
||||
if (!d.ContainsKey("Length"))
|
||||
|
||||
@@ -16,7 +16,7 @@ namespace OpenRA.Graphics
|
||||
public class ShroudRenderer
|
||||
{
|
||||
Traits.Shroud shroud;
|
||||
Sprite[] shadowBits = SpriteLoader.LoadAllSprites("shadow");
|
||||
Sprite[] shadowBits = Game.modData.SpriteLoader.LoadAllSprites("shadow");
|
||||
Sprite[,] sprites, fogSprites;
|
||||
|
||||
bool dirty = true;
|
||||
|
||||
@@ -13,25 +13,25 @@ using OpenRA.FileFormats;
|
||||
|
||||
namespace OpenRA.Graphics
|
||||
{
|
||||
public static class SpriteLoader
|
||||
public class SpriteLoader
|
||||
{
|
||||
public static void Initialize( TileSet tileset, SheetBuilder sheetBuilder )
|
||||
public SpriteLoader( TileSet tileset, SheetBuilder sheetBuilder )
|
||||
{
|
||||
exts = tileset.Extensions;
|
||||
SheetBuilder = sheetBuilder;
|
||||
sprites = new Cache<string, Sprite[]>( LoadSprites );
|
||||
}
|
||||
|
||||
static SheetBuilder SheetBuilder;
|
||||
static Cache<string, Sprite[]> sprites;
|
||||
static string[] exts;
|
||||
readonly SheetBuilder SheetBuilder;
|
||||
readonly Cache<string, Sprite[]> sprites;
|
||||
readonly string[] exts;
|
||||
|
||||
static Sprite[] LoadSprites(string filename)
|
||||
Sprite[] LoadSprites(string filename)
|
||||
{
|
||||
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) { return sprites[filename]; }
|
||||
public Sprite[] LoadAllSprites(string filename) { return sprites[filename]; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ namespace OpenRA
|
||||
public ILoadScreen LoadScreen = null;
|
||||
public SheetBuilder SheetBuilder;
|
||||
public CursorSheetBuilder CursorSheetBuilder;
|
||||
public SpriteLoader SpriteLoader;
|
||||
|
||||
public ModData( params string[] mods )
|
||||
{
|
||||
@@ -103,7 +104,7 @@ namespace OpenRA
|
||||
|| previousMapHadSequences || map.Sequences.Count > 0)
|
||||
{
|
||||
SheetBuilder = new SheetBuilder( TextureChannel.Red );
|
||||
SpriteLoader.Initialize( Rules.TileSets[map.Tileset], SheetBuilder );
|
||||
SpriteLoader = new SpriteLoader(Rules.TileSets[map.Tileset], SheetBuilder);
|
||||
CursorSheetBuilder = new CursorSheetBuilder( this );
|
||||
CursorProvider.Initialize(Manifest.Cursors);
|
||||
SequenceProvider.Initialize(Manifest.Sequences, map.Sequences);
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace OpenRA.Traits
|
||||
|
||||
resourceTypes = w.WorldActor.TraitsImplementing<ResourceType>().ToArray();
|
||||
foreach (var rt in resourceTypes)
|
||||
rt.info.Sprites = rt.info.SpriteNames.Select(a => SpriteLoader.LoadAllSprites(a)).ToArray();
|
||||
rt.info.Sprites = rt.info.SpriteNames.Select(a => Game.modData.SpriteLoader.LoadAllSprites(a)).ToArray();
|
||||
|
||||
var map = w.Map;
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace OpenRA.Widgets
|
||||
|
||||
if (image != cachedImage || frame != cachedFrame)
|
||||
{
|
||||
sprite = SpriteLoader.LoadAllSprites(image)[frame];
|
||||
sprite = Game.modData.SpriteLoader.LoadAllSprites(image)[frame];
|
||||
cachedImage = image;
|
||||
cachedFrame = frame;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ namespace OpenRA.Mods.RA.Buildings
|
||||
public BibLayer(Actor self, BibLayerInfo info)
|
||||
{
|
||||
this.info = info;
|
||||
bibSprites = info.BibTypes.Select(x => SpriteLoader.LoadAllSprites(x)).ToArray();
|
||||
bibSprites = info.BibTypes.Select(x => Game.modData.SpriteLoader.LoadAllSprites(x)).ToArray();
|
||||
|
||||
self.World.ActorAdded +=
|
||||
a => { if (a.HasTrait<Bib>()) DoBib(a,true); };
|
||||
|
||||
@@ -70,7 +70,8 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
.Where(u => u.Traits.Contains<BuildableInfo>() && u.Name[0] != '^')
|
||||
.ToDictionary(
|
||||
u => u.Name,
|
||||
u => SpriteLoader.LoadAllSprites(u.Traits.Get<TooltipInfo>().Icon ?? (u.Name + "icon"))[0]);
|
||||
u => Game.modData.SpriteLoader.LoadAllSprites(
|
||||
u.Traits.Get<TooltipInfo>().Icon ?? (u.Name + "icon"))[0]);
|
||||
}
|
||||
|
||||
public override Rectangle EventBounds
|
||||
|
||||
@@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA.Widgets
|
||||
.Select(u => u.Image).Distinct()
|
||||
.ToDictionary(
|
||||
u => u,
|
||||
u => SpriteLoader.LoadAllSprites(u)[0]);
|
||||
u => Game.modData.SpriteLoader.LoadAllSprites(u)[0]);
|
||||
|
||||
ready = new Animation("pips");
|
||||
ready.PlayRepeating("ready");
|
||||
|
||||
@@ -36,7 +36,7 @@ namespace OpenRA.Mods.RA
|
||||
public SmudgeLayer(SmudgeLayerInfo info)
|
||||
{
|
||||
this.Info = info;
|
||||
smudgeSprites = Info.Types.Select(x => SpriteLoader.LoadAllSprites(x)).ToArray();
|
||||
smudgeSprites = Info.Types.Select(x => Game.modData.SpriteLoader.LoadAllSprites(x)).ToArray();
|
||||
}
|
||||
|
||||
public void WorldLoaded(World w)
|
||||
|
||||
Reference in New Issue
Block a user