move calls to manifest ctor into ModData
This commit is contained in:
@@ -32,10 +32,9 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
Text = "OpenRA Editor (mod:{0})".F(currentMod);
|
Text = "OpenRA Editor (mod:{0})".F(currentMod);
|
||||||
|
|
||||||
var manifest = new Manifest(new[] { currentMod });
|
Game.modData = new ModData( currentMod );
|
||||||
Game.modData = new ModData( manifest );
|
|
||||||
|
|
||||||
Rules.LoadRules(manifest, new Map());
|
Rules.LoadRules(Game.modData.Manifest, new Map());
|
||||||
|
|
||||||
folderBrowser.SelectedPath = new string[] { Environment.CurrentDirectory, "mods", currentMod, "maps" }
|
folderBrowser.SelectedPath = new string[] { Environment.CurrentDirectory, "mods", currentMod, "maps" }
|
||||||
.Aggregate(Path.Combine);
|
.Aggregate(Path.Combine);
|
||||||
@@ -58,8 +57,7 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
loadedMapName = mapname;
|
loadedMapName = mapname;
|
||||||
|
|
||||||
var manifest = new Manifest(new[] { currentMod });
|
Game.modData = new ModData( currentMod );
|
||||||
Game.modData = new ModData( manifest );
|
|
||||||
|
|
||||||
// load the map
|
// load the map
|
||||||
var map = new Map(new Folder(mapname));
|
var map = new Map(new Folder(mapname));
|
||||||
@@ -70,7 +68,7 @@ namespace OpenRA.Editor
|
|||||||
map.Players.Add("Neutral", new PlayerReference("Neutral",
|
map.Players.Add("Neutral", new PlayerReference("Neutral",
|
||||||
Rules.Info["world"].Traits.WithInterface<CountryInfo>().First().Race, true, true));
|
Rules.Info["world"].Traits.WithInterface<CountryInfo>().First().Race, true, true));
|
||||||
|
|
||||||
PrepareMapResources(manifest, map);
|
PrepareMapResources(Game.modData.Manifest, map);
|
||||||
|
|
||||||
dirty = false;
|
dirty = false;
|
||||||
}
|
}
|
||||||
@@ -83,10 +81,9 @@ namespace OpenRA.Editor
|
|||||||
|
|
||||||
loadedMapName = null;
|
loadedMapName = null;
|
||||||
|
|
||||||
var manifest = new Manifest(new[] { currentMod });
|
Game.modData = new ModData( currentMod );
|
||||||
Game.modData = new ModData( manifest );
|
|
||||||
|
|
||||||
PrepareMapResources(manifest, map);
|
PrepareMapResources(Game.modData.Manifest, map);
|
||||||
|
|
||||||
MakeDirty();
|
MakeDirty();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,19 +66,17 @@ namespace OpenRA
|
|||||||
static void ChangeMods()
|
static void ChangeMods()
|
||||||
{
|
{
|
||||||
Timer.Time( "----ChangeMods" );
|
Timer.Time( "----ChangeMods" );
|
||||||
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
modData = new ModData( LobbyInfo.GlobalSettings.Mods );
|
||||||
Timer.Time("manifest: {0}");
|
|
||||||
modData = new ModData( manifest );
|
ChromeProvider.Initialize( modData.Manifest.Chrome );
|
||||||
Timer.Time("load assemblies, packages: {0}");
|
|
||||||
ChromeProvider.Initialize(manifest.Chrome);
|
|
||||||
packageChangePending = false;
|
packageChangePending = false;
|
||||||
|
Timer.Time( "load assemblies, packages: {0}" );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void LoadMap(string mapName)
|
static void LoadMap(string mapName)
|
||||||
{
|
{
|
||||||
Timer.Time("----LoadMap");
|
Timer.Time("----LoadMap");
|
||||||
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
modData = new ModData( LobbyInfo.GlobalSettings.Mods );
|
||||||
modData = new ModData( manifest );
|
|
||||||
Timer.Time("manifest: {0}");
|
Timer.Time("manifest: {0}");
|
||||||
|
|
||||||
if (!Game.AvailableMaps.ContainsKey(mapName))
|
if (!Game.AvailableMaps.ContainsKey(mapName))
|
||||||
@@ -90,14 +88,14 @@ namespace OpenRA
|
|||||||
world = null; // trying to access the old world will NRE, rather than silently doing it wrong.
|
world = null; // trying to access the old world will NRE, rather than silently doing it wrong.
|
||||||
Timer.Time("viewport: {0}");
|
Timer.Time("viewport: {0}");
|
||||||
|
|
||||||
Rules.LoadRules(manifest,map);
|
Rules.LoadRules(modData.Manifest,map);
|
||||||
Timer.Time( "load rules: {0}" );
|
Timer.Time( "load rules: {0}" );
|
||||||
|
|
||||||
SpriteSheetBuilder.Initialize( Rules.TileSets[map.Tileset] );
|
SpriteSheetBuilder.Initialize( Rules.TileSets[map.Tileset] );
|
||||||
SequenceProvider.Initialize(manifest.Sequences);
|
SequenceProvider.Initialize(modData.Manifest.Sequences);
|
||||||
Timer.Time("SeqProv: {0}");
|
Timer.Time("SeqProv: {0}");
|
||||||
|
|
||||||
world = new World(manifest, map);
|
world = new World(modData.Manifest, map);
|
||||||
Timer.Time("world: {0}");
|
Timer.Time("world: {0}");
|
||||||
|
|
||||||
Timer.Time("----end LoadMap");
|
Timer.Time("----end LoadMap");
|
||||||
@@ -394,8 +392,7 @@ namespace OpenRA
|
|||||||
Log.AddChannel("sync", "syncreport.log");
|
Log.AddChannel("sync", "syncreport.log");
|
||||||
|
|
||||||
LobbyInfo.GlobalSettings.Mods = Settings.InitialMods;
|
LobbyInfo.GlobalSettings.Mods = Settings.InitialMods;
|
||||||
var manifest = new Manifest(LobbyInfo.GlobalSettings.Mods);
|
modData = new ModData( LobbyInfo.GlobalSettings.Mods );
|
||||||
modData = new ModData( manifest );
|
|
||||||
|
|
||||||
Renderer.SheetSize = Settings.SheetSize;
|
Renderer.SheetSize = Settings.SheetSize;
|
||||||
|
|
||||||
@@ -418,7 +415,7 @@ namespace OpenRA
|
|||||||
else
|
else
|
||||||
JoinLocal();
|
JoinLocal();
|
||||||
|
|
||||||
StartGame(manifest.ShellmapUid);
|
StartGame(modData.Manifest.ShellmapUid);
|
||||||
|
|
||||||
ResetTimer();
|
ResetTimer();
|
||||||
|
|
||||||
@@ -477,10 +474,8 @@ namespace OpenRA
|
|||||||
public static void InitializeEngineWithMods(string[] mods)
|
public static void InitializeEngineWithMods(string[] mods)
|
||||||
{
|
{
|
||||||
AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly;
|
AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly;
|
||||||
var manifest = new Manifest(mods);
|
modData = new ModData( mods );
|
||||||
modData = new ModData( manifest );
|
Rules.LoadRules(modData.Manifest, new Map());
|
||||||
|
|
||||||
Rules.LoadRules(manifest, new Map());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static T CreateObject<T>( string name )
|
public static T CreateObject<T>( string name )
|
||||||
|
|||||||
@@ -14,11 +14,11 @@ namespace OpenRA
|
|||||||
public readonly SheetBuilder SheetBuilder;
|
public readonly SheetBuilder SheetBuilder;
|
||||||
public readonly CursorSheetBuilder CursorSheetBuilder;
|
public readonly CursorSheetBuilder CursorSheetBuilder;
|
||||||
|
|
||||||
public ModData( Manifest manifest )
|
public ModData( params string[] mods )
|
||||||
{
|
{
|
||||||
Manifest = manifest;
|
Manifest = new Manifest( mods );
|
||||||
ObjectCreator = new ObjectCreator( manifest );
|
ObjectCreator = new ObjectCreator( Manifest );
|
||||||
FileSystem.LoadFromManifest( manifest );
|
FileSystem.LoadFromManifest( Manifest );
|
||||||
SheetBuilder = new SheetBuilder( TextureChannel.Red );
|
SheetBuilder = new SheetBuilder( TextureChannel.Red );
|
||||||
CursorSheetBuilder = new CursorSheetBuilder( this );
|
CursorSheetBuilder = new CursorSheetBuilder( this );
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user