From 0e16aa339d4dfef5a9c5022f82827f8bb6d18073 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 21 Aug 2010 17:44:06 +1200 Subject: [PATCH] move SheetBuilder singleton onto ModData --- OpenRA.Game/Game.cs | 2 -- OpenRA.Game/Graphics/SheetBuilder.cs | 6 ------ OpenRA.Game/Graphics/SpriteSheetBuilder.cs | 2 +- OpenRA.Game/Graphics/TerrainRenderer.cs | 2 +- OpenRA.Game/ModData.cs | 3 ++- OpenRA.Game/UiOverlay.cs | 2 +- OpenRA.Mods.RA/Bridge.cs | 2 +- 7 files changed, 6 insertions(+), 13 deletions(-) diff --git a/OpenRA.Game/Game.cs b/OpenRA.Game/Game.cs index 537fc9b95c..f114e7887d 100644 --- a/OpenRA.Game/Game.cs +++ b/OpenRA.Game/Game.cs @@ -69,7 +69,6 @@ namespace OpenRA var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods); Timer.Time("manifest: {0}"); modData = new ModData( manifest ); - SheetBuilder.Initialize(); Timer.Time("load assemblies, packages: {0}"); ChromeProvider.Initialize(manifest.Chrome); packageChangePending = false; @@ -78,7 +77,6 @@ namespace OpenRA static void LoadMap(string mapName) { Timer.Time("----LoadMap"); - SheetBuilder.Initialize(); var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods); modData = new ModData( manifest ); Timer.Time("manifest: {0}"); diff --git a/OpenRA.Game/Graphics/SheetBuilder.cs b/OpenRA.Game/Graphics/SheetBuilder.cs index e83b2b30b2..a5bb3053a7 100644 --- a/OpenRA.Game/Graphics/SheetBuilder.cs +++ b/OpenRA.Game/Graphics/SheetBuilder.cs @@ -14,12 +14,6 @@ namespace OpenRA.Graphics { public class SheetBuilder { - public static SheetBuilder SharedInstance; - internal static void Initialize() - { - SharedInstance = new SheetBuilder(TextureChannel.Red); - } - internal SheetBuilder(TextureChannel ch) { current = null; diff --git a/OpenRA.Game/Graphics/SpriteSheetBuilder.cs b/OpenRA.Game/Graphics/SpriteSheetBuilder.cs index 0767e4415d..624e414d39 100644 --- a/OpenRA.Game/Graphics/SpriteSheetBuilder.cs +++ b/OpenRA.Game/Graphics/SpriteSheetBuilder.cs @@ -27,7 +27,7 @@ namespace OpenRA.Graphics static Sprite[] LoadSprites(string filename) { var shp = new ShpReader(FileSystem.OpenWithExts(filename, exts)); - return shp.Select(a => SheetBuilder.SharedInstance.Add(a.Image, shp.Size)).ToArray(); + return shp.Select(a => Game.modData.SheetBuilder.Add(a.Image, shp.Size)).ToArray(); } public static Sprite[] LoadAllSprites(string filename) { return sprites[filename]; } diff --git a/OpenRA.Game/Graphics/TerrainRenderer.cs b/OpenRA.Game/Graphics/TerrainRenderer.cs index 3d1128e4fe..c60e9dddb2 100644 --- a/OpenRA.Game/Graphics/TerrainRenderer.cs +++ b/OpenRA.Game/Graphics/TerrainRenderer.cs @@ -33,7 +33,7 @@ namespace OpenRA.Graphics Size tileSize = new Size( Game.CellSize, Game.CellSize ); var tileMapping = new Cache, Sprite>( - x => SheetBuilder.SharedInstance.Add(world.TileSet.GetBytes(x), tileSize)); + x => Game.modData.SheetBuilder.Add(world.TileSet.GetBytes(x), tileSize)); Vertex[] vertices = new Vertex[4 * map.Height * map.Width]; ushort[] indices = new ushort[6 * map.Height * map.Width]; diff --git a/OpenRA.Game/ModData.cs b/OpenRA.Game/ModData.cs index 55cde4a0a5..1f4ca08676 100755 --- a/OpenRA.Game/ModData.cs +++ b/OpenRA.Game/ModData.cs @@ -11,14 +11,15 @@ namespace OpenRA { public readonly Manifest Manifest; public readonly ObjectCreator ObjectCreator; + public readonly SheetBuilder SheetBuilder; public readonly CursorSheetBuilder CursorSheetBuilder; - public SheetBuilder SheetBuilder { get { return SheetBuilder.SharedInstance; } } public ModData( Manifest manifest ) { Manifest = manifest; ObjectCreator = new ObjectCreator( manifest ); FileSystem.LoadFromManifest( manifest ); + SheetBuilder = new SheetBuilder( TextureChannel.Red ); CursorSheetBuilder = new CursorSheetBuilder( this ); } } diff --git a/OpenRA.Game/UiOverlay.cs b/OpenRA.Game/UiOverlay.cs index 52246c7f72..2aa003bca3 100644 --- a/OpenRA.Game/UiOverlay.cs +++ b/OpenRA.Game/UiOverlay.cs @@ -37,7 +37,7 @@ namespace OpenRA for (int j = 0; j < Game.CellSize; j++) data[i * Game.CellSize + j] = ((i + j) % 4 < 2) ? (byte)0 : paletteIndex; - return SheetBuilder.SharedInstance.Add(data, new Size(Game.CellSize, Game.CellSize)); + return Game.modData.SheetBuilder.Add(data, new Size(Game.CellSize, Game.CellSize)); } public void Draw( World world ) diff --git a/OpenRA.Mods.RA/Bridge.cs b/OpenRA.Mods.RA/Bridge.cs index c548555cd9..d0e20726bf 100644 --- a/OpenRA.Mods.RA/Bridge.cs +++ b/OpenRA.Mods.RA/Bridge.cs @@ -95,7 +95,7 @@ namespace OpenRA.Mods.RA { cachedTileset = self.World.Map.Tileset; sprites = new Cache, Sprite>( - x => SheetBuilder.SharedInstance.Add(self.World.TileSet.GetBytes(x), + x => Game.modData.SheetBuilder.Add(self.World.TileSet.GetBytes(x), new Size(Game.CellSize, Game.CellSize))); }