コード例 #1
0
 public override void MouseUp(TileMouseState e)
 {
     CheckDirectionandDraw(e.Location);
     _isLeftDown = (e.LeftButton == MouseButtonState.Pressed);
     _isRightDown = (e.RightButton == MouseButtonState.Pressed);
     _wvm.UndoManager.SaveUndo();
 }
コード例 #2
0
        public override void MouseUp(TileMouseState e)
        {
            if (!_rightClick)
            {
                return;
            }

            _rightClick = false;

            Chest chest = _wvm.CurrentWorld.GetChestAtTile(e.Location.X, e.Location.Y);

            if (chest != null)
            {
                _wvm.SelectedChest = chest.Copy();
                return;
            }

            Sign sign = _wvm.CurrentWorld.GetSignAtTile(e.Location.X, e.Location.Y);

            if (sign != null)
            {
                _wvm.SelectedSign = sign.Copy();
                return;
            }
        }
コード例 #3
0
        public override void MouseDown(TileMouseState e)
        {
            if (_wvm.SelectedSprite == null)
            {
                return;
            }

            Vector2Short[,] tiles = _wvm.SelectedSprite.GetTiles();
            for (int x = 0; x < _wvm.SelectedSprite.Size.X; x++)
            {
                int tilex = x + e.Location.X;
                for (int y = 0; y < _wvm.SelectedSprite.Size.Y; y++)
                {
                    int tiley = y + e.Location.Y;

                    _wvm.UndoManager.SaveTile(tilex, tiley);
                    Tile curtile = _wvm.CurrentWorld.Tiles[tilex, tiley];
                    curtile.IsActive = true;
                    curtile.Type     = _wvm.SelectedSprite.Tile;
                    curtile.U        = tiles[x, y].X;
                    curtile.V        = tiles[x, y].Y;
                    _wvm.UpdateRenderPixel(tilex, tiley);
                }
            }

            _wvm.UndoManager.SaveUndo();

            /* Heathtech */
            BlendRules.ResetUVCache(_wvm, e.Location.X, e.Location.Y, _wvm.SelectedSprite.Size.X, _wvm.SelectedSprite.Size.Y);
        }
コード例 #4
0
        public override void MouseDown(TileMouseState e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                NPC npc = _wvm.CurrentWorld.NPCs.FirstOrDefault(n => n.Name == _wvm.SelectedPoint);

                if (npc != null)
                {
                    npc.Home     = e.Location;
                    npc.Position = new Vector2(e.Location.X * 16, e.Location.Y * 16);
                }
                else
                {
                    if (string.Equals(_wvm.SelectedPoint, "Spawn", StringComparison.InvariantCultureIgnoreCase))
                    {
                        _wvm.CurrentWorld.SpawnX = e.Location.X;
                        _wvm.CurrentWorld.SpawnY = e.Location.Y;
                    }
                    else if (string.Equals(_wvm.SelectedPoint, "Dungeon", StringComparison.InvariantCultureIgnoreCase))
                    {
                        _wvm.CurrentWorld.DungeonX = e.Location.X;
                        _wvm.CurrentWorld.DungeonY = e.Location.Y;
                    }
                }
            }
        }
コード例 #5
0
        public override void MouseDown(TileMouseState e)
        {
            if (_wvm.SelectedSprite == null)
                return;

            Vector2Short[,] tiles = _wvm.SelectedSprite.GetTiles();
            for (int x = 0; x < _wvm.SelectedSprite.Size.X; x++)
            {
                int tilex = x + e.Location.X;
                for (int y = 0; y < _wvm.SelectedSprite.Size.Y; y++)
                {
                    int tiley = y + e.Location.Y;

                    _wvm.UndoManager.SaveTile(tilex, tiley);
                    Tile curtile = _wvm.CurrentWorld.Tiles[tilex, tiley];
                    curtile.IsActive = true;
                    curtile.Type = _wvm.SelectedSprite.Tile;
                    curtile.U = tiles[x, y].X;
                    curtile.V = tiles[x, y].Y;
                    _wvm.UpdateRenderPixel(tilex, tiley);
                }
            }

            _wvm.UndoManager.SaveUndo();

            /* Heathtech */
            BlendRules.ResetUVCache(_wvm, e.Location.X, e.Location.Y, _wvm.SelectedSprite.Size.X, _wvm.SelectedSprite.Size.Y);
        }
コード例 #6
0
        public override void MouseDown(TileMouseState e)
        {
            if (_wvm.SelectedSprite2.Value == null)
            {
                return;
            }

            var x = e.Location.X;
            var y = e.Location.Y;

            PlaceSelectedSprite(x, y);

            if (!_isRightDown && !_isLeftDown)
            {
                _startPoint     = e.Location;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);

            if (_wvm.SelectedSpriteTile2.SizeTiles.X == 1 && _wvm.SelectedSpriteTile2.SizeTiles.Y == 1)
            {
                CheckDirectionandDraw(e.Location);
            }
        }
コード例 #7
0
        public override void MouseUp(TileMouseState e)
        {
            if (_leftClick)
            {
                _leftClick = false;
            }
            if (_rightClick)
            {
                _rightClick = false;

                Chest chest = _wvm.CurrentWorld.GetChestAtTile(e.Location.X, e.Location.Y);
                if (chest != null)
                {
                    _wvm.SelectedChest = chest.Copy();
                    return;
                }

                Sign sign = _wvm.CurrentWorld.GetSignAtTile(e.Location.X, e.Location.Y);
                if (sign != null)
                {
                    _wvm.SelectedSign = sign.Copy();
                    return;
                }
            }
        }
コード例 #8
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.RightButton == MouseButtonState.Pressed)
     {
         _rightClick = true;
     }
 }
コード例 #9
0
 public void MouseMove(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         _wvm.Selection.SetRectangle(_startSelection, e.Location);
     }
 }
コード例 #10
0
        public override void MouseDown(TileMouseState e)
        {
            if (e.LeftButton == MouseButtonState.Pressed)
            {
                NPC npc = _wvm.CurrentWorld.NPCs.FirstOrDefault(n => n.Name == _wvm.SelectedPoint);

                if (npc != null)
                {
                    npc.Home = e.Location;
                    npc.Position = new Vector2(e.Location.X * 16, e.Location.Y * 16);
                }
                else
                {
                    if (string.Equals(_wvm.SelectedPoint, "Spawn", StringComparison.InvariantCultureIgnoreCase))
                    {
                        _wvm.CurrentWorld.SpawnX = e.Location.X;
                        _wvm.CurrentWorld.SpawnY = e.Location.Y;
                    }
                    else if (string.Equals(_wvm.SelectedPoint, "Dungeon", StringComparison.InvariantCultureIgnoreCase))
                    {
                        _wvm.CurrentWorld.DungeonX = e.Location.X;
                        _wvm.CurrentWorld.DungeonY = e.Location.Y;
                    }
                }
            }
        }
コード例 #11
0
 private TileMouseState GetTileMouseState(HwndMouseEventArgs e)
 {
     return(TileMouseState.FromHwndMouseEventArgs(e,
                                                  new Vector2Int32(
                                                      (int)MathHelper.Clamp((float)(e.Position.X / _zoom - _scrollPosition.X), 0, _wvm.CurrentWorld.TilesWide - 1),
                                                      (int)MathHelper.Clamp((float)(e.Position.Y / _zoom - _scrollPosition.Y), 0, _wvm.CurrentWorld.TilesHigh - 1))));
 }
コード例 #12
0
 public override void MouseUp(TileMouseState e)
 {
     CheckDirectionandDraw(e.Location);
     _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
     _isRightDown = (e.RightButton == MouseButtonState.Pressed);
     _wvm.UndoManager.SaveUndo();
 }
コード例 #13
0
        public override void MouseDown(TileMouseState e)
        {
            if (_wvm.SelectedSprite == null)
                return;
            if (_wvm.SelectedSprite.Size.X > 1 || _wvm.SelectedSprite.Size.Y > 1)
            {
                Vector2Short[,] tiles = _wvm.SelectedSprite.GetTiles();
                for (int x = 0; x < _wvm.SelectedSprite.Size.X; x++)
                {
                    int tilex = x + e.Location.X;
                    for (int y = 0; y < _wvm.SelectedSprite.Size.Y; y++)
                    {
                        int tiley = y + e.Location.Y;
                        _wvm.UndoManager.SaveTile(tilex, tiley);
                        Tile curtile = _wvm.CurrentWorld.Tiles[tilex, tiley];
                        curtile.IsActive = true;
                        curtile.Type = _wvm.SelectedSprite.Tile;
                        curtile.U = tiles[x, y].X;
                        curtile.V = tiles[x, y].Y;
                        _wvm.UpdateRenderPixel(tilex, tiley);
                    }
                }
            }
            if (!_isRightDown && !_isLeftDown)
            {
                _startPoint = e.Location;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);

            if (_wvm.SelectedSprite.Size.X == 1 && _wvm.SelectedSprite.Size.Y == 1)
                CheckDirectionandDraw(e.Location);
        }
コード例 #14
0
        public override void MouseDown(TileMouseState e)
        {
            if (_wvm.SelectedSprite == null)
            {
                return;
            }

            Sprite.PlaceSprite(e.Location.X, e.Location.Y, _wvm.SelectedSprite, _wvm);
            if (Tile.IsTileEntity(_wvm.SelectedSprite.Tile))
            {
                var te = TileEntity.CreateForTile(_wvm.CurrentWorld.Tiles[e.Location.X, e.Location.Y], e.Location.X, e.Location.Y, 0);
                TileEntity.PlaceEntity(te, _wvm);
            }

            if (!_isRightDown && !_isLeftDown)
            {
                _startPoint     = e.Location;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);

            if (_wvm.SelectedSprite.Size.X == 1 && _wvm.SelectedSprite.Size.Y == 1)
            {
                CheckDirectionandDraw(e.Location);
            }
        }
コード例 #15
0
        public override void MouseUp(TileMouseState e)
        {
            if (!_rightClick)
                return;

            _rightClick = false;

            Tile curTile = _wvm.CurrentWorld.Tiles[e.Location.X, e.Location.Y];
            if (Tile.IsChest(curTile.Type))
            {
                Chest chest = _wvm.CurrentWorld.GetChestAtTile(e.Location.X, e.Location.Y);
                if (chest != null)
                {
                    _wvm.SelectedChest = chest.Copy();
                    return;
                }
            }
            else if (Tile.IsSign(curTile.Type))
            {
                Sign sign = _wvm.CurrentWorld.GetSignAtTile(e.Location.X, e.Location.Y);
                if (sign != null)
                {
                    _wvm.SelectedSign = sign.Copy();
                    return;
                }
            }
            else if (curTile.Type == 395)
            {
                TileEntity frame = _wvm.CurrentWorld.GetTileEntityAtTile(e.Location.X, e.Location.Y);
                if (frame != null)
                {
                    _wvm.SelectedItemFrame = frame.Copy();
                    return;
                }
            }
            else if (curTile.Type == 128 || curTile.Type == 269)
            {
                Vector2Int32 MannLocation = _wvm.CurrentWorld.GetMannequin(e.Location.X, e.Location.Y);
                _wvm.SelectedMannHead = _wvm.CurrentWorld.Tiles[MannLocation.X, MannLocation.Y].U / 100;
                _wvm.SelectedMannBody = _wvm.CurrentWorld.Tiles[MannLocation.X, MannLocation.Y + 1].U / 100;
                _wvm.SelectedMannLegs = _wvm.CurrentWorld.Tiles[MannLocation.X, MannLocation.Y + 2].U / 100;
                _wvm.SelectedMannequin = MannLocation;
            }
            else if (curTile.Type == 334)
            {
                Vector2Int32 RackLocation = _wvm.CurrentWorld.GetRack(e.Location.X, e.Location.Y);
                if (_wvm.CurrentWorld.Tiles[RackLocation.X, RackLocation.Y + 1].U >= 5000)
                {
                    _wvm.SelectedRackPrefix = (byte)(_wvm.CurrentWorld.Tiles[RackLocation.X + 1, RackLocation.Y + 1].U % 5000);
                    _wvm.SelectedRackNetId = (_wvm.CurrentWorld.Tiles[RackLocation.X, RackLocation.Y + 1].U % 5000) - 100;
                }
                else
                {
                    _wvm.SelectedRackPrefix = 0;
                    _wvm.SelectedRackNetId = 0;
                }
                _wvm.SelectedRack = RackLocation;
            }
        }
コード例 #16
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         Flood(e.Location);
         //_wvm.UpdateRenderRegion(new Rectangle(_minX, _minY, _maxX - _minX + 1, _maxY - _minY + 1));
         _wvm.UndoManager.SaveUndo();
     }
 }
コード例 #17
0
 public void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
         _startSelection = e.Location;
     if (e.RightButton == MouseButtonState.Pressed && e.LeftButton == MouseButtonState.Released)
     {
         _wvm.Selection.IsActive = false;
     }
 }
コード例 #18
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         Flood(e.Location);
         //_wvm.UpdateRenderRegion(new Rectangle(_minX, _minY, _maxX - _minX + 1, _maxY - _minY + 1));
         _wvm.UndoManager.SaveUndo();
     }
 }
コード例 #19
0
 public override void MouseMove(TileMouseState e)
 {
     if (_leftClick)
     {
         Vector2 current = new Vector2(e.Location.X, e.Location.Y);
         Vector2 distance = current - _lastLeftPoint;
         _wvm.RequestDragCommand.Execute(distance);
     }
 }
コード例 #20
0
        public void MouseMoveTile(TileMouseState e)
        {
            if (e.Location != MouseOverTile.MouseState.Location)
            {
                MouseOverTile.Tile = CurrentWorld.Tiles[e.Location.X, e.Location.Y];
            }

            MouseOverTile.MouseState = e;
            ActiveTool.MouseMove(e);
        }
コード例 #21
0
        public override void MouseMove(TileMouseState e)
        {
            _isLeftDown = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);

            if (_wvm.SelectedSprite == null)
                return;
            if (_wvm.SelectedSprite.Size.X == 1 && _wvm.SelectedSprite.Size.Y == 1)
                CheckDirectionandDraw(e.Location);
        }
コード例 #22
0
 public void MouseDown(TileMouseState e)
 {
     if ((e.LeftButton == MouseButtonState.Pressed) && (Keyboard.IsKeyUp(Key.LeftShift) && Keyboard.IsKeyUp(Key.RightShift)))
         _startSelection = e.Location;
     if ((Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)))
         _modifySelection= e.Location;
     if (e.RightButton == MouseButtonState.Pressed && e.LeftButton == MouseButtonState.Released)
         _wvm.Selection.IsActive = false;
     if (e.RightButton == MouseButtonState.Pressed && (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
         _wvm.Selection.IsActive = true;
 }
コード例 #23
0
        public void MouseUpTile(TileMouseState e)
        {
            if (e.Location != MouseOverTile.MouseState.Location)
            {
                MouseOverTile.Tile = CurrentWorld.Tiles[e.Location.X, e.Location.Y];
            }

            MouseOverTile.MouseState = e;
            ActiveTool.MouseUp(e);
            CommandManager.InvalidateRequerySuggested();
        }
コード例 #24
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed &&
         (_wvm.TilePicker.PaintMode == PaintMode.TileAndWall ||
          _wvm.TilePicker.PaintMode == PaintMode.Liquid))
     {
         Flood(e.Location);
         //_wvm.UpdateRenderRegion(new Rectangle(_minX, _minY, _maxX - _minX + 1, _maxY - _minY + 1));
         _wvm.UndoManager.SaveUndo();
     }
 }
コード例 #25
0
 public void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         _startSelection = e.Location;
     }
     if (e.RightButton == MouseButtonState.Pressed && e.LeftButton == MouseButtonState.Released)
     {
         _wvm.Selection.IsActive = false;
     }
 }
コード例 #26
0
 public override void MouseMove(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         PickTile(e.Location.X, e.Location.Y);
     }
     else if (e.RightButton == MouseButtonState.Pressed)
     {
         PickmaskTile(e.Location.X, e.Location.Y);
     }
 }
コード例 #27
0
 public override void MouseMove(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         PickTile(e.Location.X, e.Location.Y);
     }
     else if (e.RightButton == MouseButtonState.Pressed)
     {
         PickmaskTile(e.Location.X, e.Location.Y);
     }
 }
コード例 #28
0
        public override void MouseDown(TileMouseState e)
        {
            if (!_isRightDown && !_isLeftDown)
            {
                _startPoint = e.Location;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);
            CheckDirectionandDraw(e.Location);
        }
コード例 #29
0
        public override void MouseDown(TileMouseState e)
        {
            if (!_isRightDown && !_isLeftDown)
            {
                _startPoint     = e.Location;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);
            CheckDirectionandDraw(e.Location);
        }
コード例 #30
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         _leftClick = true;
         _lastLeftPoint = new Vector2(e.Location.X, e.Location.Y);
     }
     if (e.RightButton == MouseButtonState.Pressed)
     {
         _rightClick = true;
     }
 }
コード例 #31
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         if (_wvm.Clipboard.Buffer != null)
             PasteClipboard(e.Location);
     }
     if (e.RightButton == MouseButtonState.Pressed && e.LeftButton == MouseButtonState.Released)
     {
        
         base._wvm.SetTool.Execute(_wvm.Tools.FirstOrDefault(t => t.Name == "Arrow"));
     }
 }
コード例 #32
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         if (_wvm.Clipboard.Buffer != null)
             PasteClipboard(e.Location);
     }
     if (e.RightButton == MouseButtonState.Pressed && e.LeftButton == MouseButtonState.Released)
     {
         _wvm.Clipboard.Buffer = null;
         _wvm.PreviewChange();
     }
 }
コード例 #33
0
        public override void MouseDown(TileMouseState e)
        {
            if (!_isRightDown && !_isLeftDown)
            {
                _startPoint = e.Location;
                System.Diagnostics.Debug.WriteLine($"Update _startpoint {_startPoint} MouseDown");

                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);
            CheckDirectionandDraw(e.Location);
        }
コード例 #34
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         if (_wvm.Clipboard.Buffer != null)
         {
             PasteClipboard(e.Location);
         }
     }
     if (e.RightButton == MouseButtonState.Pressed && e.LeftButton == MouseButtonState.Released)
     {
         base._wvm.SetTool.Execute(_wvm.Tools.FirstOrDefault(t => t.Name == "Arrow"));
     }
 }
コード例 #35
0
        public override void MouseMove(TileMouseState e)
        {
            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);

            if (_wvm.SelectedSpriteTile2 == null)
            {
                return;
            }
            if (_wvm.SelectedSpriteTile2.SizeTiles.X == 1 && _wvm.SelectedSpriteTile2.SizeTiles.Y == 1)
            {
                CheckDirectionandDraw(e.Location);
            }
        }
コード例 #36
0
        public override void MouseUp(TileMouseState e)
        {
            if (_wvm.SelectedSprite == null)
            {
                return;
            }
            if (_wvm.SelectedSprite.Size.X == 1 && _wvm.SelectedSprite.Size.Y == 1)
            {
                CheckDirectionandDraw(e.Location);
            }

            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);
            _wvm.UndoManager.SaveUndo();
        }
コード例 #37
0
        public override void MouseDown(TileMouseState e)
        {
            if (!_isRightDown && !_isLeftDown)
            {
                _currentBiome   = Biomes.FirstOrDefault(b => b.Biome == _wvm.MorphBiomeTarget);
                _startPoint     = e.Location;
                _dirtLayer      = (int)_wvm.CurrentWorld.GroundLevel;
                _rockLayer      = (int)_wvm.CurrentWorld.RockLevel;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);
            CheckDirectionandDraw(e.Location);
        }
コード例 #38
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
     {
         if (_wvm.Clipboard.Buffer != null)
         {
             PasteClipboard(e.Location);
         }
     }
     if (e.RightButton == MouseButtonState.Pressed && e.LeftButton == MouseButtonState.Released)
     {
         _wvm.Clipboard.Buffer = null;
         _wvm.PreviewChange();
     }
 }
コード例 #39
0
        public override void MouseDown(TileMouseState e)
        {
            if (!_isRightDown && !_isLeftDown)
            {
                _currentBiome = Biomes.FirstOrDefault(b=>b.Biome== _wvm.MorphBiomeTarget);
                _startPoint = e.Location;
                _dirtLayer = (int)_wvm.CurrentWorld.GroundLevel;
                _rockLayer = (int)_wvm.CurrentWorld.RockLevel;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);
            CheckDirectionandDraw(e.Location);
        }
コード例 #40
0
        public override void MouseUp(TileMouseState e)
        {
            if (!_rightClick)
            {
                return;
            }

            _rightClick = false;

            Tile curTile = _wvm.CurrentWorld.Tiles[e.Location.X, e.Location.Y];

            if (Tile.IsChest(curTile.Type))
            {
                Chest chest = _wvm.CurrentWorld.GetChestAtTile(e.Location.X, e.Location.Y);
                if (chest != null)
                {
                    _wvm.SelectedChest = chest.Copy();
                    return;
                }
            }
            else if (Tile.IsSign(curTile.Type))
            {
                Sign sign = _wvm.CurrentWorld.GetSignAtTile(e.Location.X, e.Location.Y);
                if (sign != null)
                {
                    _wvm.SelectedSign = sign.Copy();
                    return;
                }
            }
            else if (curTile.IsTileEntity())
            {
                TileEntity te = _wvm.CurrentWorld.GetTileEntityAtTile(e.Location.X, e.Location.Y);
                if (te != null)
                {
                    _wvm.SelectedTileEntity = te.Copy();
                }
            }
            else if (curTile.Type == (int)TileType.ChristmasTree)
            {
                Vector2Int32 XmasLocation = _wvm.CurrentWorld.GetXmas(e.Location.X, e.Location.Y);
                _wvm.SelectedXmasStar    = _wvm.CurrentWorld.Tiles[XmasLocation.X, XmasLocation.Y].V & 7;
                _wvm.SelectedXmasGarland = (_wvm.CurrentWorld.Tiles[XmasLocation.X, XmasLocation.Y].V >> 3) & 7;
                _wvm.SelectedXmasBulb    = (_wvm.CurrentWorld.Tiles[XmasLocation.X, XmasLocation.Y].V >> 6) & 0xf;
                _wvm.SelectedXmasLight   = (_wvm.CurrentWorld.Tiles[XmasLocation.X, XmasLocation.Y].V >> 10) & 0xf;
                _wvm.SelectedXmas        = XmasLocation;
            }
        }
コード例 #41
0
        public void MouseDownTile(TileMouseState e)
        {
            if (CurrentWorld == null)
            {
                return;
            }

            if (e.Location != MouseOverTile.MouseState.Location)
            {
                MouseOverTile.Tile = CurrentWorld.Tiles[e.Location.X, e.Location.Y];
            }

            MouseOverTile.MouseState = e;
            ActiveTool?.MouseDown(e);

            CommandManager.InvalidateRequerySuggested();
        }
コード例 #42
0
        public override void MouseDown(TileMouseState e)
        {
            if (!_isRightDown && !_isLeftDown)
            {
                _startPoint     = e.Location;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);

            if (_wvm.Brush.Shape == BrushShape.Square || _wvm.Brush.Height <= 1 || _wvm.Brush.Width <= 1)
            {
                FillRectangle(_startPoint);
            }

            CheckDirectionandDraw(e.Location);
        }
コード例 #43
0
        public void MouseMoveTile(TileMouseState e)
        {
            if (CurrentWorld == null)
            {
                return;
            }

            if (e.Location.X >= 0 && e.Location.Y >= 0 && e.Location.X < CurrentWorld.TilesWide && e.Location.Y < CurrentWorld.TilesHigh)
            {
                if (e.Location != MouseOverTile.MouseState.Location)
                {
                    MouseOverTile.Tile = CurrentWorld.Tiles[e.Location.X, e.Location.Y];
                }

                MouseOverTile.MouseState = e;

                ActiveTool?.MouseMove(e);
            }
        }
コード例 #44
0
 public void MouseDown(TileMouseState e)
 {
     if ((e.LeftButton == MouseButtonState.Pressed) && (Keyboard.IsKeyUp(Key.LeftShift) && Keyboard.IsKeyUp(Key.RightShift)))
     {
         _startSelection = e.Location;
     }
     if ((Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)))
     {
         _modifySelection = e.Location;
     }
     if (e.RightButton == MouseButtonState.Pressed && e.LeftButton == MouseButtonState.Released)
     {
         _wvm.Selection.IsActive = false;
     }
     if (e.RightButton == MouseButtonState.Pressed && (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
     {
         _wvm.Selection.IsActive = true;
     }
 }
コード例 #45
0
        public override void MouseDown(TileMouseState e)
        {
            if (_wvm.SelectedSprite == null)
            {
                return;
            }
            if (_wvm.SelectedSprite.Size.X > 1 || _wvm.SelectedSprite.Size.Y > 1)
            {
                Vector2Short[,] tiles = _wvm.SelectedSprite.GetTiles();
                for (int x = 0; x < _wvm.SelectedSprite.Size.X; x++)
                {
                    int tilex = x + e.Location.X;
                    for (int y = 0; y < _wvm.SelectedSprite.Size.Y; y++)
                    {
                        int tiley = y + e.Location.Y;
                        _wvm.UndoManager.SaveTile(tilex, tiley);
                        Tile curtile = _wvm.CurrentWorld.Tiles[tilex, tiley];
                        curtile.IsActive = true;
                        curtile.Type     = _wvm.SelectedSprite.Tile;
                        curtile.U        = tiles[x, y].X;
                        curtile.V        = tiles[x, y].Y;
                        _wvm.UpdateRenderPixel(tilex, tiley);
                    }
                }
            }
            if (!_isRightDown && !_isLeftDown)
            {
                _startPoint     = e.Location;
                _wvm.CheckTiles = new bool[_wvm.CurrentWorld.TilesWide * _wvm.CurrentWorld.TilesHigh];
            }

            _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
            _isRightDown = (e.RightButton == MouseButtonState.Pressed);

            if (_wvm.SelectedSprite.Size.X == 1 && _wvm.SelectedSprite.Size.Y == 1)
            {
                CheckDirectionandDraw(e.Location);
            }
        }
コード例 #46
0
 public void MouseWheel(TileMouseState e)
 {
 }
コード例 #47
0
 public virtual void MouseUp(TileMouseState e)
 {
 }
コード例 #48
0
 public override void MouseMove(TileMouseState e)
 {
     _isLeftDown  = (e.LeftButton == MouseButtonState.Pressed);
     _isRightDown = (e.RightButton == MouseButtonState.Pressed);
     CheckDirectionandDraw(e.Location);
 }
コード例 #49
0
 public virtual void MouseMove(TileMouseState e)
 {
 }
コード例 #50
0
 public virtual void MouseDown(TileMouseState e)
 {
 }
コード例 #51
0
 public override void MouseDown(TileMouseState e)
 {
     if (e.RightButton == MouseButtonState.Pressed)
         _rightClick = true;
 }
コード例 #52
0
 public void MouseWheel(TileMouseState e)
 {
 }
コード例 #53
0
 public void MouseMove(TileMouseState e)
 {
     if (e.LeftButton == MouseButtonState.Pressed)
         _wvm.Selection.SetRectangle(_startSelection, e.Location);
 }
コード例 #54
0
 public virtual void MouseWheel(TileMouseState e)
 {
 }
コード例 #55
0
 public override void MouseMove(TileMouseState e)
 {
     _isLeftDown = (e.LeftButton == MouseButtonState.Pressed);
     _isRightDown = (e.RightButton == MouseButtonState.Pressed);
     CheckDirectionandDraw(e.Location);
 }
コード例 #56
0
 public void MouseUp(TileMouseState e)
 {
 }