Exemplo n.º 1
0
        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);
            };
        }
Exemplo n.º 2
0
        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
            });
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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));
                }
            }
        }
Exemplo n.º 5
0
        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;
            }
        }