Use Filepaths instead of IFolders where possible.
This commit is contained in:
@@ -18,7 +18,8 @@ namespace OpenRA.FileFormats
|
|||||||
{
|
{
|
||||||
public class MapStub
|
public class MapStub
|
||||||
{
|
{
|
||||||
public IFolder Container { get; protected set; }
|
protected IFolder Container;
|
||||||
|
public string Path;
|
||||||
|
|
||||||
// Yaml map data
|
// Yaml map data
|
||||||
public string Uid { get; protected set; }
|
public string Uid { get; protected set; }
|
||||||
@@ -43,11 +44,9 @@ namespace OpenRA.FileFormats
|
|||||||
public MapStub() {} // Hack for the editor - not used for anything important
|
public MapStub() {} // Hack for the editor - not used for anything important
|
||||||
|
|
||||||
public MapStub(string path)
|
public MapStub(string path)
|
||||||
: this(FileSystem.OpenPackage(path, int.MaxValue)) {}
|
|
||||||
|
|
||||||
public MapStub(IFolder container)
|
|
||||||
{
|
{
|
||||||
Container = container;
|
Path = path;
|
||||||
|
Container = FileSystem.OpenPackage(path, int.MaxValue);
|
||||||
var yaml = MiniYaml.FromStream(Container.GetContent("map.yaml"));
|
var yaml = MiniYaml.FromStream(Container.GetContent("map.yaml"));
|
||||||
FieldLoader.Load( this, new MiniYaml( null, yaml ) );
|
FieldLoader.Load( this, new MiniYaml( null, yaml ) );
|
||||||
|
|
||||||
|
|||||||
@@ -85,10 +85,8 @@ namespace OpenRA
|
|||||||
public string Owner = null;
|
public string Owner = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map(string path) : this(FileSystem.OpenPackage(path, int.MaxValue)) {}
|
public Map(string path)
|
||||||
public Map(MapStub stub) : this(stub.Container) {}
|
: base(path)
|
||||||
public Map(IFolder package)
|
|
||||||
: base(package)
|
|
||||||
{
|
{
|
||||||
var yaml = new MiniYaml( null, MiniYaml.FromStream( Container.GetContent( "map.yaml" ) ) );
|
var yaml = new MiniYaml( null, MiniYaml.FromStream( Container.GetContent( "map.yaml" ) ) );
|
||||||
|
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ namespace OpenRA
|
|||||||
if (!AvailableMaps.ContainsKey(uid))
|
if (!AvailableMaps.ContainsKey(uid))
|
||||||
throw new InvalidDataException("Invalid map uid: {0}".F(uid));
|
throw new InvalidDataException("Invalid map uid: {0}".F(uid));
|
||||||
|
|
||||||
var map = new Map(AvailableMaps[uid]);
|
var map = new Map(AvailableMaps[uid].Path);
|
||||||
|
|
||||||
// unload the previous map mount if we have one
|
// unload the previous map mount if we have one
|
||||||
if (previousMapMount != null) FileSystem.Unmount(previousMapMount);
|
if (previousMapMount != null) FileSystem.Unmount(previousMapMount);
|
||||||
@@ -85,11 +85,9 @@ namespace OpenRA
|
|||||||
// Adds the map its container to the FileSystem
|
// Adds the map its container to the FileSystem
|
||||||
// allowing the map to use custom assets
|
// allowing the map to use custom assets
|
||||||
// Container should have the lowest priority of all (ie int max)
|
// Container should have the lowest priority of all (ie int max)
|
||||||
FileSystem.Mount(map.Container);
|
|
||||||
|
|
||||||
// Store a reference so we can unload it next time
|
// Store a reference so we can unload it next time
|
||||||
previousMapMount = map.Container;
|
previousMapMount = FileSystem.OpenPackage(map.Path, int.MaxValue);
|
||||||
|
FileSystem.Mount(previousMapMount);
|
||||||
Rules.LoadRules(Manifest, map);
|
Rules.LoadRules(Manifest, map);
|
||||||
|
|
||||||
if (map.Tileset != cachedTileset
|
if (map.Tileset != cachedTileset
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ namespace OpenRA.Widgets
|
|||||||
public Func<MapStub> Map = () => null;
|
public Func<MapStub> Map = () => null;
|
||||||
public Action<int> OnSpawnClick = spawn => {};
|
public Action<int> OnSpawnClick = spawn => {};
|
||||||
public Func<Dictionary<int2, Color>> SpawnColors = () => new Dictionary<int2, Color>();
|
public Func<Dictionary<int2, Color>> SpawnColors = () => new Dictionary<int2, Color>();
|
||||||
static Cache<MapStub,Bitmap> PreviewCache = new Cache<MapStub, Bitmap>(stub => Minimap.RenderMapPreview( new Map( stub )));
|
static Cache<MapStub,Bitmap> PreviewCache = new Cache<MapStub, Bitmap>(stub => Minimap.RenderMapPreview( new Map( stub.Path )));
|
||||||
|
|
||||||
public MapPreviewWidget() : base() { }
|
public MapPreviewWidget() : base() { }
|
||||||
protected MapPreviewWidget(MapPreviewWidget other)
|
protected MapPreviewWidget(MapPreviewWidget other)
|
||||||
|
|||||||
@@ -274,7 +274,7 @@ namespace OpenRA.Mods.RA.Server
|
|||||||
|
|
||||||
public static void LoadMap(S server)
|
public static void LoadMap(S server)
|
||||||
{
|
{
|
||||||
server.Map = new Map(server.ModData.AvailableMaps[server.lobbyInfo.GlobalSettings.Map]);
|
server.Map = new Map(server.ModData.AvailableMaps[server.lobbyInfo.GlobalSettings.Map].Path);
|
||||||
server.lobbyInfo.Slots = server.Map.Players
|
server.lobbyInfo.Slots = server.Map.Players
|
||||||
.Select(p => MakeSlotFromPlayerReference(p.Value))
|
.Select(p => MakeSlotFromPlayerReference(p.Value))
|
||||||
.Where(s => s != null)
|
.Where(s => s != null)
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ namespace OpenRA.Mods.RA.Widgets.Delegates
|
|||||||
{
|
{
|
||||||
if (MapUid == orderManager.LobbyInfo.GlobalSettings.Map) return;
|
if (MapUid == orderManager.LobbyInfo.GlobalSettings.Map) return;
|
||||||
MapUid = orderManager.LobbyInfo.GlobalSettings.Map;
|
MapUid = orderManager.LobbyInfo.GlobalSettings.Map;
|
||||||
Map = new Map(Game.modData.AvailableMaps[MapUid]);
|
Map = new Map(Game.modData.AvailableMaps[MapUid].Path);
|
||||||
|
|
||||||
var title = Widget.RootWidget.GetWidget<LabelWidget>("LOBBY_TITLE");
|
var title = Widget.RootWidget.GetWidget<LabelWidget>("LOBBY_TITLE");
|
||||||
title.Text = "OpenRA Multiplayer Lobby - " + orderManager.LobbyInfo.GlobalSettings.ServerName;
|
title.Text = "OpenRA Multiplayer Lobby - " + orderManager.LobbyInfo.GlobalSettings.ServerName;
|
||||||
|
|||||||
Reference in New Issue
Block a user