public SetTabViewModel() { AddSetCommand = new RelayCommand(AddSet); Items = new IdeCollection <IdeBaseItem>(this); var setSerializer = new SetSerializer() { Game = ViewModelLocator.GameLoader.Game }; var setAssets = ViewModelLocator.AssetsTabViewModel.Assets.Where(x => x.Type == AssetType.Xml && x.Name == "set"); foreach (var asset in setAssets) { asset.IsReserved = true; asset.LockName = true; var set = (Set)setSerializer.Deserialize(asset.TargetFilePath); var setModel = new SetModel(set, Items); Items.Add(setModel); } Items.CollectionChanged += (a, b) => { // ViewModelLocator.GameLoader.Sets = Items.Select(x => ((SetModel)x)._set); }; }
public RichTextPropertyValue ConvertStringToRichText(string value) { var xmlElement = XElement.Parse("<rich>" + value + "</rich>"); var richSpan = new RichSpan(); SetSerializer.DeserializeRichCardProperty(richSpan, xmlElement, ViewModelLocator.GameLoader.Game); return(new RichTextPropertyValue() { Value = richSpan }); }
public bool SerializeXmlAssets() { try { var gameTempPath = Path.Combine(ViewModelLocator.AssetsTabViewModel.AssetTempDirectory.FullName, Guid.NewGuid().ToString() + ".xml"); var gameSerializer = new GameSerializer(); gameSerializer.OutputPath = gameTempPath; gameSerializer.Serialize(Game); Asset.SelectedAsset.SafeFile = new FileInfo(gameTempPath); var setSerializer = new SetSerializer() { Game = Game }; foreach (SetModel set in ViewModelLocator.SetTabViewModel.Items) { var setTempPath = Path.Combine(ViewModelLocator.AssetsTabViewModel.AssetTempDirectory.FullName, Guid.NewGuid().ToString() + ".xml"); setSerializer.OutputPath = setTempPath; setSerializer.Serialize(set._set); set.Asset.SelectedAsset.SafeFile = new FileInfo(setTempPath); } var scriptSerializer = new GameScriptSerializer(Game.Id) { Game = Game }; foreach (ScriptItemModel script in ViewModelLocator.ScriptsTabViewModel.Scripts) { scriptSerializer.OutputPath = script.Asset.SafePath; scriptSerializer.Serialize(script._script); } var proxyTempPath = Path.Combine(ViewModelLocator.AssetsTabViewModel.AssetTempDirectory.FullName, Guid.NewGuid().ToString() + ".xml"); var proxySerializer = new ProxyGeneratorSerializer(Game.Id) { Game = Game }; proxySerializer.OutputPath = proxyTempPath; proxySerializer.Serialize(ViewModelLocator.ProxyTabViewModel._proxydef); ViewModelLocator.ProxyTabViewModel.Asset.SelectedAsset.SafeFile = new FileInfo(proxyTempPath); return(true); } catch { return(false); } }
public SetTabViewModel() { AddSetCommand = new RelayCommand(AddSet); Items = new IdeCollection <IdeBaseItem>(this, typeof(SetModel)); var setSerializer = new SetSerializer() { Game = ViewModelLocator.GameLoader.Game }; var setAssets = ViewModelLocator.AssetsTabViewModel.Assets.Where(x => x.Type == AssetType.Xml && x.Name == "set"); foreach (var asset in setAssets) { asset.IsReserved = true; asset.LockName = true; var set = (Set)setSerializer.Deserialize(asset.TargetFilePath); var setModel = new SetModel(set, Items); Items.Add(setModel); } Items.CollectionChanged += (a, b) => { // ViewModelLocator.GameLoader.Sets = Items.Select(x => ((SetModel)x)._set); }; // import set markers from deprecated code foreach (var marker in setSerializer.Game.Markers) { if (!ViewModelLocator.MarkerTabViewModel.Items.Any(x => ((MarkerItemModel)x).Id == marker.Key)) { ViewModelLocator.MarkerTabViewModel.Items.Add(new MarkerItemModel(marker.Value, ViewModelLocator.MarkerTabViewModel.Items)); } } }
public void LoadGame(string filename) { var file = new FileInfo(filename); var gameSerializer = new GameSerializer(); var setSerializer = new SetSerializer(); try { Game = (Game)gameSerializer.Deserialize(filename); GamePath = Game.InstallPath; /// Associate any <see cref="Octgn.DataNew.Entities.Set"/>s deserialized with this serializer with the <see cref="Octgn.DataNew.Entities.Game"/> /// we just deserialized setSerializer.Game = Game; Sets = file.Directory .EnumerateFiles("set.xml", SearchOption.AllDirectories) .Select(setFile => (Set)setSerializer.Deserialize(setFile.FullName)) .ToArray(); } catch (Exception) { Game = null; GamePath = string.Empty; Sets = null; } }