Exemplo n.º 1
0
        private void onRoomChanged()
        {
            var children = _treeView.Tree.TreeNode.Children;
            var prevRoom = children.FirstOrDefault(c => c.Text.StartsWith(_roomPrefix, StringComparison.InvariantCulture));
            var room     = _editor.Game.State.Room?.ID;
            var newRoom  = room == null ? null : _moreRoomsNode.TreeNode.Children.FirstOrDefault(c => c.Text.EndsWith(room, StringComparison.InvariantCulture));
            var expander = new NodesExpander(_treeView);

            prevRoom?.TreeNode.SetParent(_moreRoomsNode.TreeNode);
            newRoom?.TreeNode.SetParent(_treeView.Tree.TreeNode);

            //removing and re-adding "more rooms" so that it would be after the current room in the tree view
            _moreRoomsNode.TreeNode.SetParent(null);
            _moreRoomsNode.TreeNode.SetParent(_treeView.Tree.TreeNode);

            expander.Expand();
        }
Exemplo n.º 2
0
        private void onGuiChanged(AGSHashSetChangedEventArgs <IObject> args)
        {
            var uiNode   = _treeView.Tree.TreeNode.Children.First(c => c.Text == _uiPrefix);
            var expander = new NodesExpander(_treeView);

            if (args.ChangeType == ListChangeType.Add)
            {
                foreach (var item in args.Items)
                {
                    addObjectToTree(item, uiNode);
                }
            }
            else
            {
                foreach (var item in args.Items)
                {
                    removeFromTree(item.ID, uiNode);
                }
            }
            expander.Expand();
        }
Exemplo n.º 3
0
            private void onRoomAreasChanged(AGSListChangedEventArgs <IArea> args)
            {
                var roomNode = _findRoom(Room);
                var expander = new NodesExpander(_treeView);
                var areas    = roomNode.TreeNode.Children.First(c => c.Text == _areasPrefix);

                if (args.ChangeType == ListChangeType.Add)
                {
                    foreach (var area in args.Items)
                    {
                        _addAreaToTree(area.Item, areas);
                    }
                }
                else
                {
                    foreach (var area in args.Items)
                    {
                        _removeFromTree(area.Item.ID, areas);
                    }
                }
                expander.Expand();
            }
Exemplo n.º 4
0
            private void onRoomObjectsChanged(AGSHashSetChangedEventArgs <IObject> args)
            {
                var roomNode = _findRoom(Room);
                var expander = new NodesExpander(_treeView);
                var objects  = roomNode.TreeNode.Children.First(c => c.Text == _objectsPrefix);

                if (args.ChangeType == ListChangeType.Add)
                {
                    foreach (var obj in args.Items)
                    {
                        _addObjToTree(obj, objects);
                    }
                }
                else
                {
                    foreach (var obj in args.Items)
                    {
                        _removeFromTree(obj.ID, objects);
                    }
                }
                expander.Expand();
            }
Exemplo n.º 5
0
        private void onRoomsChanged(AGSListChangedEventArgs <IRoom> args)
        {
            var expander = new NodesExpander(_treeView);

            if (args.ChangeType == ListChangeType.Add)
            {
                subscribeRooms(args.Items.Select(i => i.Item));
                foreach (var room in args.Items)
                {
                    addRoomToTree(room.Item, _moreRoomsNode);
                }
            }
            else
            {
                unsubscribeRooms(args.Items.Select(i => i.Item));
                foreach (var room in args.Items)
                {
                    var roomNode = findRoom(room.Item);
                    roomNode?.TreeNode.SetParent(null);
                }
            }
            expander.Expand();
        }