Add backend plumbing for model loaders.
This commit is contained in:
@@ -40,6 +40,7 @@ namespace OpenRA
|
||||
public Session LobbyInfo { get { return OrderManager.LobbyInfo; } }
|
||||
|
||||
public readonly MersenneTwister SharedRandom;
|
||||
public readonly IModelCache ModelCache;
|
||||
|
||||
public Player[] Players = new Player[0];
|
||||
|
||||
@@ -147,7 +148,7 @@ namespace OpenRA
|
||||
}
|
||||
}
|
||||
|
||||
internal World(Map map, OrderManager orderManager, WorldType type)
|
||||
internal World(ModData modData, Map map, OrderManager orderManager, WorldType type)
|
||||
{
|
||||
Type = type;
|
||||
OrderManager = orderManager;
|
||||
@@ -156,6 +157,8 @@ namespace OpenRA
|
||||
Timestep = orderManager.LobbyInfo.GlobalSettings.Timestep;
|
||||
SharedRandom = new MersenneTwister(orderManager.LobbyInfo.GlobalSettings.RandomSeed);
|
||||
|
||||
ModelCache = modData.ModelSequenceLoader.CacheModels(map, modData, map.Rules.ModelSequences);
|
||||
|
||||
var worldActorType = type == WorldType.Editor ? "EditorWorld" : "World";
|
||||
WorldActor = CreateActor(worldActorType, new TypeDictionary());
|
||||
ActorMap = WorldActor.Trait<IActorMap>();
|
||||
@@ -437,6 +440,8 @@ namespace OpenRA
|
||||
Game.Sound.StopAudio();
|
||||
Game.Sound.StopVideo();
|
||||
|
||||
ModelCache.Dispose();
|
||||
|
||||
// Dispose newer actors first, and the world actor last
|
||||
foreach (var a in actors.Values.Reverse())
|
||||
a.Dispose();
|
||||
|
||||
Reference in New Issue
Block a user