Refactor map loading & saving
This commit is contained in:
@@ -15,10 +15,13 @@ using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Collections;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Console;
|
||||
using Robust.Shared.EntitySerialization;
|
||||
using Robust.Shared.EntitySerialization.Systems;
|
||||
using Robust.Shared.Map;
|
||||
using Robust.Shared.Map.Components;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Random;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Server.Procedural;
|
||||
|
||||
@@ -173,14 +176,18 @@ public sealed partial class DungeonSystem : SharedDungeonSystem
|
||||
return Transform(uid).MapID;
|
||||
}
|
||||
|
||||
var mapId = _mapManager.CreateMap();
|
||||
_mapManager.AddUninitializedMap(mapId);
|
||||
_loader.Load(mapId, proto.AtlasPath.ToString());
|
||||
var mapUid = _mapManager.GetMapEntityId(mapId);
|
||||
_mapManager.SetMapPaused(mapId, true);
|
||||
comp = AddComp<DungeonAtlasTemplateComponent>(mapUid);
|
||||
var opts = new MapLoadOptions
|
||||
{
|
||||
DeserializationOptions = DeserializationOptions.Default with {PauseMaps = true},
|
||||
ExpectedCategory = FileCategory.Map
|
||||
};
|
||||
|
||||
if (!_loader.TryLoadEntities(proto.AtlasPath, out var res, opts) || !res.Maps.TryFirstOrNull(out var map))
|
||||
throw new Exception($"Failed to load dungeon template.");
|
||||
|
||||
comp = AddComp<DungeonAtlasTemplateComponent>(map.Value.Owner);
|
||||
comp.Path = proto.AtlasPath;
|
||||
return mapId;
|
||||
return map.Value.Comp.MapId;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user