move SheetBuilder singleton onto ModData
This commit is contained in:
@@ -69,7 +69,6 @@ namespace OpenRA
|
|||||||
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
||||||
Timer.Time("manifest: {0}");
|
Timer.Time("manifest: {0}");
|
||||||
modData = new ModData( manifest );
|
modData = new ModData( manifest );
|
||||||
SheetBuilder.Initialize();
|
|
||||||
Timer.Time("load assemblies, packages: {0}");
|
Timer.Time("load assemblies, packages: {0}");
|
||||||
ChromeProvider.Initialize(manifest.Chrome);
|
ChromeProvider.Initialize(manifest.Chrome);
|
||||||
packageChangePending = false;
|
packageChangePending = false;
|
||||||
@@ -78,7 +77,6 @@ namespace OpenRA
|
|||||||
static void LoadMap(string mapName)
|
static void LoadMap(string mapName)
|
||||||
{
|
{
|
||||||
Timer.Time("----LoadMap");
|
Timer.Time("----LoadMap");
|
||||||
SheetBuilder.Initialize();
|
|
||||||
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
||||||
modData = new ModData( manifest );
|
modData = new ModData( manifest );
|
||||||
Timer.Time("manifest: {0}");
|
Timer.Time("manifest: {0}");
|
||||||
|
|||||||
@@ -14,12 +14,6 @@ namespace OpenRA.Graphics
|
|||||||
{
|
{
|
||||||
public class SheetBuilder
|
public class SheetBuilder
|
||||||
{
|
{
|
||||||
public static SheetBuilder SharedInstance;
|
|
||||||
internal static void Initialize()
|
|
||||||
{
|
|
||||||
SharedInstance = new SheetBuilder(TextureChannel.Red);
|
|
||||||
}
|
|
||||||
|
|
||||||
internal SheetBuilder(TextureChannel ch)
|
internal SheetBuilder(TextureChannel ch)
|
||||||
{
|
{
|
||||||
current = null;
|
current = null;
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace OpenRA.Graphics
|
|||||||
static Sprite[] LoadSprites(string filename)
|
static 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.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]; }
|
public static Sprite[] LoadAllSprites(string filename) { return sprites[filename]; }
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace OpenRA.Graphics
|
|||||||
Size tileSize = new Size( Game.CellSize, Game.CellSize );
|
Size tileSize = new Size( Game.CellSize, Game.CellSize );
|
||||||
|
|
||||||
var tileMapping = new Cache<TileReference<ushort,byte>, Sprite>(
|
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];
|
Vertex[] vertices = new Vertex[4 * map.Height * map.Width];
|
||||||
ushort[] indices = new ushort[6 * map.Height * map.Width];
|
ushort[] indices = new ushort[6 * map.Height * map.Width];
|
||||||
|
|||||||
@@ -11,14 +11,15 @@ namespace OpenRA
|
|||||||
{
|
{
|
||||||
public readonly Manifest Manifest;
|
public readonly Manifest Manifest;
|
||||||
public readonly ObjectCreator ObjectCreator;
|
public readonly ObjectCreator ObjectCreator;
|
||||||
|
public readonly SheetBuilder SheetBuilder;
|
||||||
public readonly CursorSheetBuilder CursorSheetBuilder;
|
public readonly CursorSheetBuilder CursorSheetBuilder;
|
||||||
public SheetBuilder SheetBuilder { get { return SheetBuilder.SharedInstance; } }
|
|
||||||
|
|
||||||
public ModData( Manifest manifest )
|
public ModData( Manifest manifest )
|
||||||
{
|
{
|
||||||
Manifest = manifest;
|
Manifest = manifest;
|
||||||
ObjectCreator = new ObjectCreator( manifest );
|
ObjectCreator = new ObjectCreator( manifest );
|
||||||
FileSystem.LoadFromManifest( manifest );
|
FileSystem.LoadFromManifest( manifest );
|
||||||
|
SheetBuilder = new SheetBuilder( TextureChannel.Red );
|
||||||
CursorSheetBuilder = new CursorSheetBuilder( this );
|
CursorSheetBuilder = new CursorSheetBuilder( this );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace OpenRA
|
|||||||
for (int j = 0; j < Game.CellSize; j++)
|
for (int j = 0; j < Game.CellSize; j++)
|
||||||
data[i * Game.CellSize + j] = ((i + j) % 4 < 2) ? (byte)0 : paletteIndex;
|
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 )
|
public void Draw( World world )
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ namespace OpenRA.Mods.RA
|
|||||||
{
|
{
|
||||||
cachedTileset = self.World.Map.Tileset;
|
cachedTileset = self.World.Map.Tileset;
|
||||||
sprites = new Cache<TileReference<ushort,byte>, Sprite>(
|
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)));
|
new Size(Game.CellSize, Game.CellSize)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user