move SheetBuilder singleton onto ModData

This commit is contained in:
Bob
2010-08-21 17:44:06 +12:00
parent c7b650d6ec
commit 0e16aa339d
7 changed files with 6 additions and 13 deletions

View File

@@ -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}");

View File

@@ -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;

View File

@@ -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]; }

View File

@@ -33,7 +33,7 @@ namespace OpenRA.Graphics
Size tileSize = new Size( Game.CellSize, Game.CellSize );
var tileMapping = new Cache<TileReference<ushort,byte>, 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];

View File

@@ -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 );
}
}

View File

@@ -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 )

View File

@@ -95,7 +95,7 @@ namespace OpenRA.Mods.RA
{
cachedTileset = self.World.Map.Tileset;
sprites = new Cache<TileReference<ushort,byte>, 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)));
}