本文整理汇总了C#中Main.SaveCurrentMap方法的典型用法代码示例。如果您正苦于以下问题:C# Main.SaveCurrentMap方法的具体用法?C# Main.SaveCurrentMap怎么用?C# Main.SaveCurrentMap使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Main
的用法示例。
在下文中一共展示了Main.SaveCurrentMap方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Transition
public static void Transition(Main main, string nextMap, string spawn = null)
{
Container loadingNotification = new Container();
loadingNotification.Tint.Value = Microsoft.Xna.Framework.Color.Black;
loadingNotification.Opacity.Value = UIFactory.Opacity;
TextElement loadingNotificationText = new TextElement();
loadingNotificationText.Name.Value = "Text";
loadingNotificationText.FontFile.Value = main.Font;
loadingNotificationText.Text.Value = "\\loading";
loadingNotification.Children.Add(loadingNotificationText);
Animation anim = new Animation
(
new Animation.Set<bool>(main.Menu.CanPause, false),
main.Spawner.FlashAnimation(),
new Animation.Execute(delegate()
{
main.UI.Root.GetChildByName("Notifications").Children.Add(loadingNotification);
}),
new Animation.Delay(0.01f),
new Animation.Execute(delegate()
{
#if DEMO
if (nextMap == "forest")
{
main.Spawner.StartSpawnPoint.Value = "demo";
MapLoader.Load(main, Main.MenuMap);
}
else
#endif
{
// We are exiting the map; just save the state of the map without the player.
ListProperty<RespawnLocation> respawnLocations = PlayerDataFactory.Instance.Get<PlayerData>().RespawnLocations;
respawnLocations.Clear();
List<Entity> persistentEntities = main.Entities.Where((Func<Entity, bool>)MapLoader.entityIsPersistent).ToList();
Stream stream = new MemoryStream();
IO.MapLoader.Serializer.Serialize(stream, persistentEntities);
foreach (Entity e in persistentEntities)
e.Delete.Execute();
main.Spawner.StartSpawnPoint.Value = spawn;
if (PlayerFactory.Instance != null)
PlayerFactory.Instance.Delete.Execute();
main.SaveCurrentMap(null, default(Point));
MapLoader.Load(main, nextMap);
stream.Seek(0, SeekOrigin.Begin);
List<Entity> entities = (List<Entity>)IO.MapLoader.Serializer.Deserialize(stream);
foreach (Entity e in entities)
{
Factory<Main> factory = Factory<Main>.Get(e.Type);
e.GUID = 0;
factory.Bind(e, main);
main.Add(e);
}
stream.Dispose();
}
}),
new Animation.Delay(0.01f),
new Animation.Execute(loadingNotification.Delete),
new Animation.Set<bool>(main.Menu.CanPause, true),
new Animation.Execute(main.ScheduleSave)
);
anim.EnabledWhenPaused = false;
main.AddComponent(anim);
}