AGS.Editor.SpriteSelector.MoveSpritesIntoNewPositionInFolder C# (CSharp) Метод

MoveSpritesIntoNewPositionInFolder() приватный Метод

Moves the set of supplied sprites to be before (or after) the specified sprite in the folder. This takes account of the fact that NearestSprite could be one of the ones being moved.
private MoveSpritesIntoNewPositionInFolder ( int nearestSprite, bool putSpritesBeforeSelection, SpriteManagerDragDropData dragged ) : List
nearestSprite int
putSpritesBeforeSelection bool
dragged SpriteManagerDragDropData
Результат List
        private List<Sprite> MoveSpritesIntoNewPositionInFolder(int nearestSprite, bool putSpritesBeforeSelection, SpriteManagerDragDropData dragged)
        {
            List<Sprite> newFolderContents = new List<Sprite>();
            foreach (Sprite sprite in _currentFolder.Sprites)
            {
                bool addThisSpriteToNewList = true;

                if (sprite.Number == nearestSprite)
                {
                    if (!putSpritesBeforeSelection)
                    {
                        newFolderContents.Add(sprite);
                        addThisSpriteToNewList = false;
                    }
                    foreach (Sprite draggedSprite in dragged.Sprites)
                    {
                        if ((draggedSprite.Number != sprite.Number) || (putSpritesBeforeSelection))
                        {
                            newFolderContents.Add(draggedSprite);
                        }
                    }
                }
                foreach (Sprite draggedSprite in dragged.Sprites)
                {
                    if (sprite.Number == draggedSprite.Number)
                    {
                        addThisSpriteToNewList = false;
                        break;
                    }
                }
                if (addThisSpriteToNewList)
                {
                    newFolderContents.Add(sprite);
                }
            }
            return newFolderContents;
        }