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