Пример #1
0
 private void onRoomsChanged(AGSListChangedEventArgs <IRoom> args)
 {
     if (Room == null && args.ChangeType == ListChangeType.Add)
     {
         refreshRoom();
     }
 }
Пример #2
0
 private void onComponentsChanged(AGSListChangedEventArgs <IComponent> args)
 {
     if (args.ChangeType == ListChangeType.Add && onAdded != null)
     {
         foreach (var component in args.Items)
         {
             if (component.Item is TComponent boundComponent)
             {
                 _component = boundComponent;
                 onAdded(boundComponent);
                 return;
             }
         }
     }
     else if (args.ChangeType == ListChangeType.Remove && onRemoved != null)
     {
         foreach (var component in args.Items)
         {
             if (component.Item is TComponent boundComponent)
             {
                 onRemoved(boundComponent);
                 _component = default;
                 if (!_collection.ComponentsInitialized)
                 {
                     _collection.OnComponentsInitialized.Subscribe(onComponentsInitialized);
                 }
                 break;
             }
         }
     }
 }
Пример #3
0
		private void onRoomsChange(object sender, AGSListChangedEventArgs<IRoom> args)
		{
			var fader = _map.GetOrAdd(args.Item.ID, _ => new RoomCrossFader (this, args.Item));
			if (args.ChangeType == ListChangeType.Remove)
			{
				RoomCrossFader val;
				_map.TryRemove(args.Item.ID, out val);
				fader.Dispose();
			}
			_game.State.Rooms.OnListChanged.Subscribe(onRoomsChange);
		}
Пример #4
0
        private void onRoomsChange(object sender, AGSListChangedEventArgs <IRoom> args)
        {
            var fader = _map.GetOrAdd(args.Item.ID, _ => new RoomCrossFader(this, args.Item));

            if (args.ChangeType == ListChangeType.Remove)
            {
                RoomCrossFader val;
                _map.TryRemove(args.Item.ID, out val);
                fader.Dispose();
            }
            _game.State.Rooms.OnListChanged.Subscribe(onRoomsChange);
        }
Пример #5
0
 private void onRoomsChange(AGSListChangedEventArgs <IRoom> args)
 {
     foreach (var item in args.Items)
     {
         var fader = _map.GetOrAdd(item.Item.ID, _ => new RoomCrossFader(this, item.Item));
         if (args.ChangeType == ListChangeType.Remove)
         {
             _map.TryRemove(item.Item.ID, out RoomCrossFader _);
             fader.Dispose();
         }
     }
 }
Пример #6
0
        private void onAreaListChanged(AGSListChangedEventArgs <IArea> args)
        {
            if (args.ChangeType == ListChangeType.Add)
            {
                subscribeAreas(args.Items.Select(a => a.Item));
            }
            else
            {
                unsubscribeAreas(args.Items.Select(a => a.Item));
            }

            onEverythingChanged();
        }
Пример #7
0
 private void onListChanged(AGSListChangedEventArgs <TEntity> args)
 {
     if (args.ChangeType == ListChangeType.Add)
     {
         foreach (var entity in args.Items)
         {
             subscribeEntity(entity.Item);
         }
     }
     else
     {
         foreach (var entity in args.Items)
         {
             unsubscribeEntity(entity.Item);
         }
     }
     _onTreeChange?.Invoke();
 }
Пример #8
0
 private void onAreasChanged(AGSListChangedEventArgs <IArea> args)
 {
     if (args.ChangeType == ListChangeType.Add)
     {
         foreach (var area in args.Items)
         {
             subscribeArea(area.Item);
         }
     }
     else
     {
         foreach (var area in args.Items)
         {
             unsubscribeArea(area.Item);
         }
     }
     refreshAreaScaling();
 }
Пример #9
0
 private void onViewportsChanged(AGSListChangedEventArgs <IViewport> args)
 {
     if (args.ChangeType == ListChangeType.Add)
     {
         foreach (var viewport in args.Items)
         {
             subscribeViewport(viewport.Item);
         }
     }
     else
     {
         foreach (var viewport in args.Items)
         {
             unsubscribeViewport(viewport.Item);
         }
     }
     refresh();
 }
Пример #10
0
 private void onAudioClipsChanged(AGSListChangedEventArgs <IAudioClip> args)
 {
     if (args.ChangeType == ListChangeType.Add)
     {
         foreach (var clip in args.Items)
         {
             clip.Item.OnSoundStarted.Subscribe(onSoundStarted);
             clip.Item.OnSoundCompleted.Subscribe(onSoundCompleted);
         }
     }
     else
     {
         foreach (var clip in args.Items)
         {
             clip.Item.OnSoundStarted.Unsubscribe(onSoundStarted);
             clip.Item.OnSoundCompleted.Unsubscribe(onSoundCompleted);
         }
     }
 }
Пример #11
0
 private void onListChanged(object sender, AGSListChangedEventArgs <object> args)
 {
     if (args.ChangeType == ListChangeType.Remove)
     {
         var button = _itemButtons[args.Index];
         button.MouseClicked.Unsubscribe(onItemClicked);
         DropDownPanel.TreeNode.RemoveChild(button);
         _itemButtons.RemoveAt(args.Index);
     }
     else
     {
         var newButton = ItemButtonFactory();
         newButton.Text = args.Item.ToString();
         newButton.MouseClicked.Subscribe(onItemClicked);
         _itemButtons.Insert(args.Index, newButton);
         DropDownPanel.TreeNode.AddChild(newButton);
     }
     refreshItemsLayout();
 }
Пример #12
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();
            }
Пример #13
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();
        }
Пример #14
0
 private void onComponentsChanged(AGSListChangedEventArgs <IComponent> args)
 {
     if (args.ChangeType == ListChangeType.Add && onAdded != null)
     {
         foreach (var component in args.Items)
         {
             if (component.Item is TComponent)
             {
                 onAdded((TComponent)component.Item);
             }
         }
     }
     else if (args.ChangeType == ListChangeType.Remove && onRemoved != null)
     {
         foreach (var component in args.Items)
         {
             if (component.Item is TComponent)
             {
                 onRemoved((TComponent)component.Item);
             }
         }
     }
 }
Пример #15
0
 private void onListChanged(object sender, AGSListChangedEventArgs<object> args)
 {
     if (args.ChangeType == ListChangeType.Remove)
     {
         var button = _itemButtons[args.Index];
         button.MouseClicked.Unsubscribe(onItemClicked);
         DropDownPanel.TreeNode.RemoveChild(button);
         _itemButtons.RemoveAt(args.Index);
     }
     else
     {
         var newButton = ItemButtonFactory();
         newButton.Text = args.Item.ToString();
         newButton.MouseClicked.Subscribe(onItemClicked);
         _itemButtons.Insert(args.Index, newButton);
         DropDownPanel.TreeNode.AddChild(newButton);
     }
     refreshItemsLayout();
 }
Пример #16
0
 private void onAreasChanged(AGSListChangedEventArgs <IArea> args)
 {
     refreshRoom();
 }