Example #1
0
        public MainViewModel()
        {
            Config.Instance.PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName == "UUID")
                {
                    EmitPropertyChanged("DataReport");
                }

                if (e.PropertyName == "Language")
                {
                    var ne = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset);
                    Regions.EmitCollectionChanged(ne);
                    Fates.EmitCollectionChanged(ne);
                    Templates.EmitCollectionChanged(ne);
                }
            };

            Data.Instance.DataLoaded += (sender, e) =>
            {
                Templates = new ListBindingTarget <Models.Template>(Data.Instance.Templates);
                EmitPropertyChanged("World");
            };

            Network.State.Instance.PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName == "WorldId")
                {
                    EmitPropertyChanged("World");
                }
            };
        }
Example #2
0
        public static ListBindingTarget <FateTreeNodeWithChildren> Create(Dictionary <int, Models.FateData> fates)
        {
            var result = new ListBindingTarget <FateTreeNodeWithChildren>()
            {
                new FateTerritoryTree(0)
            };

            if (fates == null)
            {
                return(result);
            }

            foreach (var pair in fates)
            {
                if (pair.Value.Location == 0)
                {
                    ((FateTerritoryTree)result[0]).Children.Add(new FateNode(pair.Key, pair.Value.Name));
                }
                else
                {
                    FateVersionTree versionTree = (FateVersionTree)result.FirstOrDefault(tree =>
                                                                                         tree is FateVersionTree && pair.Value.Patch == ((FateVersionTree)tree).PatchId);

                    if (versionTree == null)
                    {
                        versionTree = new FateVersionTree(pair.Value.Patch);
                        result.Add(versionTree);
                    }

                    FateTerritoryTree territoryTree = (FateTerritoryTree)versionTree.Children.FirstOrDefault(tree =>
                                                                                                             tree is FateTerritoryTree && pair.Value.Location == ((FateTerritoryTree)tree).TerritoryId);

                    if (territoryTree == null)
                    {
                        territoryTree = new FateTerritoryTree(pair.Value.Location);
                        versionTree.Children.Add(territoryTree);
                    }

                    territoryTree.Children.Add(new FateNode(pair.Key, pair.Value.Name));
                }
            }

            return(result);
        }