Exemplo n.º 1
0
        public void AddTileDuplicateTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile1);

            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(_tile1, stack[0]);
            Assert.AreEqual(_tile1, stack[1]);
        }
Exemplo n.º 2
0
        public void AddTileDuplicateTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile1);

            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(_tile1, stack[0]);
            Assert.AreEqual(_tile1, stack[1]);
        }
Exemplo n.º 3
0
        public void AddTileTest2()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(_tile1, stack[0]);
            Assert.AreEqual(_tile2, stack[1]);
            Assert.AreEqual(_tile2, stack.Top);
        }
Exemplo n.º 4
0
        public void AddTileTest2()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(_tile1, stack[0]);
            Assert.AreEqual(_tile2, stack[1]);
            Assert.AreEqual(_tile2, stack.Top);
        }
Exemplo n.º 5
0
        public void CloneStackTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            TileStack stack2 = stack.Clone() as TileStack;

            Assert.AreEqual(2, stack2.Count);
            Assert.AreSame(_tile1, stack2[0]);
            Assert.AreSame(_tile2, stack2[1]);
        }
Exemplo n.º 6
0
        public void CreateStackCopyConstructorTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            TileStack stack2 = new TileStack(stack);

            Assert.AreEqual(2, stack2.Count);
            Assert.AreSame(_tile1, stack2[0]);
            Assert.AreSame(_tile2, stack2[1]);
        }
Exemplo n.º 7
0
        public void ClearTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            AttachEvents(stack);

            stack.Clear();

            Assert.AreEqual(EventFlags.Modified, _eventsFired);
            Assert.AreEqual(0, stack.Count);
        }
Exemplo n.º 8
0
        public void RemoveTileTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            AttachEvents(stack);

            stack.Remove(_tile1);

            Assert.AreEqual(EventFlags.Modified, _eventsFired);
            Assert.AreEqual(1, stack.Count);
            Assert.AreEqual(_tile2, stack.Top);
        }
Exemplo n.º 9
0
        private void StartFillSequence(PointerEventInfo info)
        {
            if (!SourceValid)
            {
                return;
            }

            TileCoord location = TileLocation(info);

            if (!TileInRange(location))
            {
                return;
            }

            if (SourceType == TileSourceType.Brush)
            {
                Layer.TileAdding   += TileAddingHandler;
                Layer.TileRemoving += TileRemovingHandler;
            }

            _fillLayer   = Layer;
            _sourceStack = new TileStack();
            _sourceStack.Add(ActiveTile);

            _fillCommand = new TileReplace2DCommand(Layer);
            FloodFill(location.X, location.Y);

            if (SourceType == TileSourceType.Brush)
            {
                Layer.TileAdding   -= TileAddingHandler;
                Layer.TileRemoving -= TileRemovingHandler;
            }

            History.Execute(_fillCommand);
        }
Exemplo n.º 10
0
        public void RemoveTileNullTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            AttachEvents(stack);

            stack.Remove(null);

            Assert.AreEqual(EventFlags.None, _eventsFired);
            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(_tile1, stack[0]);
            Assert.AreEqual(_tile2, stack[1]);
        }
Exemplo n.º 11
0
        public void QueueAdd(TileCoord coord, TileStack stack)
        {
            if (stack != null)
            {
                TileStack srcStack = null;
                if (_tileSource.InRange(coord))
                {
                    srcStack = new TileStack(_tileSource[coord]);
                }

                TileStack newStack = new TileStack(srcStack);
                foreach (Tile t in stack)
                {
                    newStack.Add(t);
                }

                if (_tiles.ContainsKey(coord))
                {
                    _tiles[coord] = new TileRecord(_tiles[coord].Original, stack);
                }
                else
                {
                    _tiles[coord] = new TileRecord(srcStack, newStack);
                }
            }
        }
Exemplo n.º 12
0
        public void QueueReplacement(TileCoord coord, Tile replacement)
        {
            TileStack srcStack = null;

            if (_tileSource.InRange(coord))
            {
                srcStack = new TileStack(_tileSource[coord]);
            }

            TileStack stack = null;

            if (replacement != null)
            {
                stack = new TileStack();
                stack.Add(replacement);
            }

            if (_tiles.ContainsKey(coord))
            {
                _tiles[coord] = new TileRecord(_tiles[coord].Original, stack);
            }
            else
            {
                _tiles[coord] = new TileRecord(srcStack, stack);
            }
        }
Exemplo n.º 13
0
        public void RemoveTileNotPresentTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            AttachEvents(stack);

            Texture2D texture = new Texture2D(_service.GraphicsDevice, 16, 16);
            Tile      tile3   = _pool.GetTile(_pool.AddTile(texture));

            stack.Remove(tile3);

            Assert.AreEqual(EventFlags.None, _eventsFired);
            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(_tile1, stack[0]);
            Assert.AreEqual(_tile2, stack[1]);
        }
Exemplo n.º 14
0
        public TileReplace2DCommand(MultiTileGridLayer source, Dictionary<TileCoord, Tile> tileData)
            : this(source)
        {
            foreach (KeyValuePair<TileCoord, Tile> kv in tileData) {
                TileStack stack = new TileStack();
                stack.Add(kv.Value);

                _tiles[kv.Key] = new TileRecord(_tileSource[kv.Key], stack);
            }
        }
Exemplo n.º 15
0
        public void AddTileTest()
        {
            TileStack stack = new TileStack();
            AttachEvents(stack);

            stack.Add(_tile1);

            Assert.AreEqual(EventFlags.Modified, _eventsFired);
            Assert.AreEqual(1, stack.Count);
            Assert.AreSame(_tile1, stack.Top);
        }
Exemplo n.º 16
0
        public TileReplace2DCommand(MultiTileGridLayer source, Dictionary <TileCoord, Tile> tileData)
            : this(source)
        {
            foreach (KeyValuePair <TileCoord, Tile> kv in tileData)
            {
                TileStack stack = new TileStack();
                stack.Add(kv.Value);

                _tiles[kv.Key] = new TileRecord(_tileSource[kv.Key], stack);
            }
        }
Exemplo n.º 17
0
        public void QueueAdd(TileCoord coord, Tile tile)
        {
            if (tile != null) {
                TileStack srcStack = null;
                if (_tileSource.InRange(coord))
                    srcStack = new TileStack(_tileSource[coord]);

                TileStack stack = new TileStack(srcStack);
                stack.Add(tile);

                if (_tiles.ContainsKey(coord))
                    _tiles[coord] = new TileRecord(_tiles[coord].Original, stack);
                else
                    _tiles[coord] = new TileRecord(srcStack, stack);
            }
        }
Exemplo n.º 18
0
        public TileSelection GetAsTileSelection(Project project, int tileWidth, int tileHeight)
        {
            Dictionary<TileCoord, TileStack> xlat = new Dictionary<TileCoord, TileStack>();
            foreach (KeyValuePair<TileCoord, Guid[]> item in _tiles) {
                TileStack stack = new TileStack();

                foreach (Guid tileId in item.Value) {
                    TilePool pool = project.TilePoolManager.PoolFromItemKey(tileId);
                    Tile tile = pool.GetTile(tileId);
                    stack.Add(tile);
                }

                xlat.Add(item.Key, stack);
            }

            TileSelection selection = new TileSelection(tileWidth, tileHeight);
            selection.AddTiles(xlat);

            return selection;
        }
Exemplo n.º 19
0
        public TileSelection GetAsTileSelection(Project project, int tileWidth, int tileHeight)
        {
            Dictionary <TileCoord, TileStack> xlat = new Dictionary <TileCoord, TileStack>();

            foreach (KeyValuePair <TileCoord, Guid[]> item in _tiles)
            {
                TileStack stack = new TileStack();

                foreach (Guid tileId in item.Value)
                {
                    TilePool pool = project.TilePoolManager.PoolFromItemKey(tileId);
                    Tile     tile = pool.GetTile(tileId);
                    stack.Add(tile);
                }

                xlat.Add(item.Key, stack);
            }

            TileSelection selection = new TileSelection(tileWidth, tileHeight);

            selection.AddTiles(xlat);

            return(selection);
        }
Exemplo n.º 20
0
        public void CreateStackCopyConstructorTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            TileStack stack2 = new TileStack(stack);

            Assert.AreEqual(2, stack2.Count);
            Assert.AreSame(_tile1, stack2[0]);
            Assert.AreSame(_tile2, stack2[1]);
        }
Exemplo n.º 21
0
        public void QueueReplacement(TileCoord coord, Tile replacement)
        {
            TileStack srcStack = null;
            if (_tileSource.InRange(coord))
                srcStack = new TileStack(_tileSource[coord]);

            TileStack stack = null;
            if (replacement != null) {
                stack = new TileStack();
                stack.Add(replacement);
            }

            if (_tiles.ContainsKey(coord))
                _tiles[coord] = new TileRecord(_tiles[coord].Original, stack);
            else
                _tiles[coord] = new TileRecord(srcStack, stack);
        }
Exemplo n.º 22
0
        public void CloneStackTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            TileStack stack2 = stack.Clone() as TileStack;

            Assert.AreEqual(2, stack2.Count);
            Assert.AreSame(_tile1, stack2[0]);
            Assert.AreSame(_tile2, stack2[1]);
        }
Exemplo n.º 23
0
        public void ClearTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            AttachEvents(stack);

            stack.Clear();

            Assert.AreEqual(EventFlags.Modified, _eventsFired);
            Assert.AreEqual(0, stack.Count);
        }
Exemplo n.º 24
0
        public void RemoveTileNullTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            AttachEvents(stack);

            stack.Remove(null);

            Assert.AreEqual(EventFlags.None, _eventsFired);
            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(_tile1, stack[0]);
            Assert.AreEqual(_tile2, stack[1]);
        }
Exemplo n.º 25
0
        private void StartFillSequence(PointerEventInfo info)
        {
            if (!SourceValid)
                return;

            TileCoord location = TileLocation(info);
            if (!TileInRange(location))
                return;

            if (SourceType == TileSourceType.Brush) {
                Layer.TileAdding += TileAddingHandler;
                Layer.TileRemoving += TileRemovingHandler;
            }

            _fillLayer = Layer;
            _sourceStack = new TileStack();
            _sourceStack.Add(ActiveTile);

            _fillCommand = new TileReplace2DCommand(Layer);
            FloodFill(location.X, location.Y);

            if (SourceType == TileSourceType.Brush) {
                Layer.TileAdding -= TileAddingHandler;
                Layer.TileRemoving -= TileRemovingHandler;
            }

            History.Execute(_fillCommand);
        }
Exemplo n.º 26
0
        public void RemoveTileNotPresentTest()
        {
            TileStack stack = new TileStack();

            stack.Add(_tile1);
            stack.Add(_tile2);

            AttachEvents(stack);

            Texture2D texture = new Texture2D(_service.GraphicsDevice, 16, 16);
            Tile tile3 = _pool.GetTile(_pool.AddTile(texture));

            stack.Remove(tile3);

            Assert.AreEqual(EventFlags.None, _eventsFired);
            Assert.AreEqual(2, stack.Count);
            Assert.AreEqual(_tile1, stack[0]);
            Assert.AreEqual(_tile2, stack[1]);
        }