void portal_PropertyChanged(object sender, PropertyChangedEventArgs e) { WmoPortal g = sender as WmoPortal; if (e.PropertyName == "Visible") { WMOSceneNode node = ModelSceneService.Instance.MainWMOSceneNode; if (node != null) { node.ShowPortal(g.Index, g.Visible, new SColor(255, 255, 0)); } } else if (e.PropertyName == "GroupsVisible") { WMOSceneNode node = ModelSceneService.Instance.MainWMOSceneNode; if (node != null) { node.ShowPortalGroups(g.Index, g.GroupsVisible); } } }
public void Update() { WMOSceneNode node = ModelSceneService.Instance.MainWMOSceneNode; Portals.Clear(); if (node == null) { return; } SWMOPortal[] portals = node.Portals; for (int i = 0; i < node.Portals.Length; ++i) { WmoPortal g = new WmoPortal(ref portals[i], i, node.IsPortalShow(i), node.IsPortalGroupsShow(i)); Portals.Add(g); g.PropertyChanged += new PropertyChangedEventHandler(portal_PropertyChanged); } portalsView = CollectionViewSource.GetDefaultView(Portals); }