コード例 #1
0
        private void CompleteMouseAction()
        {
            if (_activeModalBox != null)
            {
                CheckAndHandleModalAction();
            }
            else if (_controlPanel.Contains(_inputHandler.MousePosition))
            {
                CheckAndHandleCommandChange();
            }
            else if (_selected == null)
            {
                switch (_controlPanel.ActiveOption)
                {
                case "Player":
                    _player.WorldPosition = SnapToGrid(_inputHandler.MousePosition + _cameraController.WorldPosition - new Vector2(Definitions.CellSizeInPixels / 2.0f));
                    _player.Visible       = true;
                    break;

                case "Blocks":
                    if (ModalBoxSelectionCanBePlaced("block-selector"))
                    {
                        AddTerrainObject(BlockFactory.CreateBlockFromTextureName(SelectorValue("block-selector")), _inputHandler.MousePosition);
                    }
                    break;

                case "Candies":
                    if (ModalBoxSelectionCanBePlaced("candy-selector"))
                    {
                        AddTerrainObject(CollectableFactory.CreateCandyFromTextureName(SelectorValue("candy-selector")), _inputHandler.MousePosition);
                    }
                    break;

                case "Signs":
                    if (ModalBoxSelectionCanBePlaced("sign-selector"))
                    {
                        AddTerrainObject(SignpostFactory.CreateSignpostFromTextureName(SelectorValue("sign-selector")), _inputHandler.MousePosition);
                    }
                    break;

                case "Flags":
                    if (ModalBoxSelectionCanBePlaced("flag-selector"))
                    {
                        AddTerrainObject(FlagFactory.CreateFlagFromTextureName(SelectorValue("flag-selector")), _inputHandler.MousePosition);
                    }
                    break;

                case "Enemies":
                    if (EnemySelectionCanBePlaced())
                    {
                        AddEnemy(EnemyFactory.CreateEnemyFromTextureName(SelectorValue("enemy-selector")), _inputHandler.MousePosition);
                    }
                    break;

                case "Route":
                    if (ModalBoxSelectionCanBePlaced("route-selector"))
                    {
                        AddTerrainObject(SignpostFactory.CreateRouteMarkerFromTextureName(SelectorValue("route-selector")), _inputHandler.MousePosition);
                    }
                    break;
                }
            }
            else if (_selected is ObjectBase)
            {
                if (!SnapDraggedObjectToGrid())
                {
                    _selected.ReturningToPreviousLocation = true; _selected.Selected = false; _selected = null;
                }
            }
        }