diff --git a/OpenRA.Game/Graphics/Sequence.cs b/OpenRA.Game/Graphics/Sequence.cs index a3a81dcdcf..00c4880366 100644 --- a/OpenRA.Game/Graphics/Sequence.cs +++ b/OpenRA.Game/Graphics/Sequence.cs @@ -33,7 +33,7 @@ namespace OpenRA.Graphics Name = name; var d = info.NodesDict; - sprites = SpriteSheetBuilder.LoadAllSprites(string.IsNullOrEmpty(srcOverride) ? unit : srcOverride ); + sprites = SpriteLoader.LoadAllSprites(string.IsNullOrEmpty(srcOverride) ? unit : srcOverride ); start = int.Parse(d["Start"].Value); if (!d.ContainsKey("Length")) diff --git a/OpenRA.Game/Graphics/ShroudRenderer.cs b/OpenRA.Game/Graphics/ShroudRenderer.cs index 738166d46a..b1cc0068bb 100644 --- a/OpenRA.Game/Graphics/ShroudRenderer.cs +++ b/OpenRA.Game/Graphics/ShroudRenderer.cs @@ -16,7 +16,7 @@ namespace OpenRA.Graphics public class ShroudRenderer { Traits.Shroud shroud; - Sprite[] shadowBits = SpriteSheetBuilder.LoadAllSprites("shadow"); + Sprite[] shadowBits = SpriteLoader.LoadAllSprites("shadow"); Sprite[,] sprites, fogSprites; bool dirty = true; diff --git a/OpenRA.Game/Graphics/SpriteSheetBuilder.cs b/OpenRA.Game/Graphics/SpriteLoader.cs similarity index 72% rename from OpenRA.Game/Graphics/SpriteSheetBuilder.cs rename to OpenRA.Game/Graphics/SpriteLoader.cs index 624e414d39..8f14f1fc0f 100644 --- a/OpenRA.Game/Graphics/SpriteSheetBuilder.cs +++ b/OpenRA.Game/Graphics/SpriteLoader.cs @@ -13,21 +13,23 @@ using OpenRA.FileFormats; namespace OpenRA.Graphics { - public static class SpriteSheetBuilder + public static class SpriteLoader { - public static void Initialize( TileSet tileset ) + public static void Initialize( TileSet tileset, SheetBuilder sheetBuilder ) { exts = tileset.Extensions; + SheetBuilder = sheetBuilder; sprites = new Cache( LoadSprites ); } + static SheetBuilder SheetBuilder; static Cache sprites; static string[] exts; static Sprite[] LoadSprites(string filename) { var shp = new ShpReader(FileSystem.OpenWithExts(filename, exts)); - return shp.Select(a => Game.modData.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]; } diff --git a/OpenRA.Game/ModData.cs b/OpenRA.Game/ModData.cs index f2b00d2347..ebd7cbac2d 100755 --- a/OpenRA.Game/ModData.cs +++ b/OpenRA.Game/ModData.cs @@ -103,7 +103,7 @@ namespace OpenRA || previousMapHadSequences || map.Sequences.Count > 0) { SheetBuilder = new SheetBuilder( TextureChannel.Red ); - SpriteSheetBuilder.Initialize( Rules.TileSets[map.Tileset] ); + SpriteLoader.Initialize( Rules.TileSets[map.Tileset], SheetBuilder ); CursorSheetBuilder = new CursorSheetBuilder( this ); CursorProvider.Initialize(Manifest.Cursors); SequenceProvider.Initialize(Manifest.Sequences, map.Sequences); diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj index 585a3598ee..e63a294bc2 100755 --- a/OpenRA.Game/OpenRA.Game.csproj +++ b/OpenRA.Game/OpenRA.Game.csproj @@ -1,4 +1,4 @@ - + Debug @@ -131,7 +131,7 @@ - + diff --git a/OpenRA.Game/Traits/World/ResourceLayer.cs b/OpenRA.Game/Traits/World/ResourceLayer.cs index 19986376f9..652aaeda1a 100644 --- a/OpenRA.Game/Traits/World/ResourceLayer.cs +++ b/OpenRA.Game/Traits/World/ResourceLayer.cs @@ -51,7 +51,7 @@ namespace OpenRA.Traits resourceTypes = w.WorldActor.TraitsImplementing().ToArray(); foreach (var rt in resourceTypes) - rt.info.Sprites = rt.info.SpriteNames.Select(a => SpriteSheetBuilder.LoadAllSprites(a)).ToArray(); + rt.info.Sprites = rt.info.SpriteNames.Select(a => SpriteLoader.LoadAllSprites(a)).ToArray(); var map = w.Map; diff --git a/OpenRA.Game/Widgets/ShpImageWidget.cs b/OpenRA.Game/Widgets/ShpImageWidget.cs index ee229c9e90..4043a984c1 100644 --- a/OpenRA.Game/Widgets/ShpImageWidget.cs +++ b/OpenRA.Game/Widgets/ShpImageWidget.cs @@ -60,7 +60,7 @@ namespace OpenRA.Widgets if (image != cachedImage || frame != cachedFrame) { - sprite = SpriteSheetBuilder.LoadAllSprites(image)[frame]; + sprite = SpriteLoader.LoadAllSprites(image)[frame]; cachedImage = image; cachedFrame = frame; } diff --git a/OpenRA.Mods.RA/Buildings/BibLayer.cs b/OpenRA.Mods.RA/Buildings/BibLayer.cs index 22a3eda1c1..20297e2409 100755 --- a/OpenRA.Mods.RA/Buildings/BibLayer.cs +++ b/OpenRA.Mods.RA/Buildings/BibLayer.cs @@ -35,7 +35,7 @@ namespace OpenRA.Mods.RA.Buildings public BibLayer(Actor self, BibLayerInfo info) { this.info = info; - bibSprites = info.BibTypes.Select(x => SpriteSheetBuilder.LoadAllSprites(x)).ToArray(); + bibSprites = info.BibTypes.Select(x => SpriteLoader.LoadAllSprites(x)).ToArray(); self.World.ActorAdded += a => { if (a.HasTrait()) DoBib(a,true); }; diff --git a/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs b/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs index b457336257..0258ca8a05 100755 --- a/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs +++ b/OpenRA.Mods.RA/Widgets/BuildPaletteWidget.cs @@ -70,7 +70,7 @@ namespace OpenRA.Mods.RA.Widgets .Where(u => u.Traits.Contains() && u.Name[0] != '^') .ToDictionary( u => u.Name, - u => SpriteSheetBuilder.LoadAllSprites(u.Traits.Get().Icon ?? (u.Name + "icon"))[0]); + u => SpriteLoader.LoadAllSprites(u.Traits.Get().Icon ?? (u.Name + "icon"))[0]); } public override Rectangle EventBounds diff --git a/OpenRA.Mods.RA/Widgets/SpecialPowerBinWidget.cs b/OpenRA.Mods.RA/Widgets/SpecialPowerBinWidget.cs index 427651f63d..0720f4baaf 100755 --- a/OpenRA.Mods.RA/Widgets/SpecialPowerBinWidget.cs +++ b/OpenRA.Mods.RA/Widgets/SpecialPowerBinWidget.cs @@ -43,7 +43,7 @@ namespace OpenRA.Mods.RA.Widgets .Select(u => u.Image).Distinct() .ToDictionary( u => u, - u => SpriteSheetBuilder.LoadAllSprites(u)[0]); + u => SpriteLoader.LoadAllSprites(u)[0]); ready = new Animation("pips"); ready.PlayRepeating("ready"); diff --git a/OpenRA.Mods.RA/World/SmudgeLayer.cs b/OpenRA.Mods.RA/World/SmudgeLayer.cs index 45c4ad3e70..e1f4cfd621 100755 --- a/OpenRA.Mods.RA/World/SmudgeLayer.cs +++ b/OpenRA.Mods.RA/World/SmudgeLayer.cs @@ -36,7 +36,7 @@ namespace OpenRA.Mods.RA public SmudgeLayer(SmudgeLayerInfo info) { this.Info = info; - smudgeSprites = Info.Types.Select(x => SpriteSheetBuilder.LoadAllSprites(x)).ToArray(); + smudgeSprites = Info.Types.Select(x => SpriteLoader.LoadAllSprites(x)).ToArray(); } public void WorldLoaded(World w)