Syncing campaign state & save files with clients (WIP)

This commit is contained in:
Joonas Rikkonen
2017-09-11 21:32:48 +03:00
parent 51cfef214c
commit 63bca3c7ea
13 changed files with 383 additions and 107 deletions
@@ -1,10 +1,7 @@
using Microsoft.Xna.Framework;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace Barotrauma
@@ -18,6 +15,8 @@ namespace Barotrauma
private GUITextBox saveNameBox, seedBox;
private GUIButton loadGameButton;
public Action<Submarine, string, string> StartNewGame;
public Action<string> LoadGame;
@@ -138,8 +137,14 @@ namespace Barotrauma
textBlock.UserData = saveFile;
}
var button = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", Alignment.Right | Alignment.Bottom, "", loadGameContainer);
button.OnClicked = (btn, obj) => { LoadGame?.Invoke(saveList.SelectedData as string); return true; };
loadGameButton = new GUIButton(new Rectangle(0, 0, 100, 30), "Start", Alignment.Right | Alignment.Bottom, "", loadGameContainer);
loadGameButton.OnClicked = (btn, obj) =>
{
if (string.IsNullOrWhiteSpace(saveList.SelectedData as string)) return false;
LoadGame?.Invoke(saveList.SelectedData as string);
return true;
};
loadGameButton.Enabled = false;
}
private bool SelectSaveFile(GUIComponent component, object obj)
@@ -154,6 +159,8 @@ namespace Barotrauma
return false;
}
loadGameButton.Enabled = true;
RemoveSaveFrame();
string subName = ToolBox.GetAttributeString(doc.Root, "submarine", "");