Exemple #1
0
    public override void UpdateDefault()
    {
        if (currentToolMode == ToolMode.None)
        {
            return;
        }

        GameGrid.GridType _gridType = GetCurrentToolSettings().GetGridType();
        if (!Mouse.GetInstance().HasMovedOnGrid(_gridType) && !Mouse.GetInstance().DoesEitherButtonEqual(Mouse.StateEnum.Click) && !Mouse.GetInstance().DoesEitherButtonEqual(Mouse.StateEnum.Release))
        {
            return;
        }

        for (int i = affectedNodeGridPositions.Count - 1; i >= 0; i--)
        {
            Node _node = GameGrid.GetInstance().TryGetNode(affectedNodeGridPositions[i]);
            affectedNodeGridPositions.RemoveAt(i);
            if (_node == null)
            {
                continue;
            }

            _node.TryClearIsWallTemporary();
            _node.ClearTemporaryColor();
            _node.TryClearInteractiveObjectTemporary();
        }
    }
Exemple #2
0
 public bool HasMovedOnGrid(GameGrid.GridType _gridType)
 {
     if (_gridType == GameGrid.GridType.NodeGrid)
     {
         return(nodeGridPos != nodeGridPosOld);
     }
     else
     {
         return(tileGridPos != tileGridPosOld);
     }
 }
Exemple #3
0
 public Int2 GetGridPos(GameGrid.GridType _gridType)
 {
     if (_gridType == GameGrid.GridType.NodeGrid)
     {
         return(nodeGridPos);
     }
     else
     {
         return(tileGridPos);
     }
 }
Exemple #4
0
    public override void UpdateLate()
    {
        if (currentToolMode == ToolMode.None)
        {
            return;
        }

        bool _isDeleting  = false;
        bool _isPermanent = false;

        currentShapeMode = ShapeModeEnum.Fill;

        Mouse.StateEnum mouseState = Mouse.GetInstance().GetStateLMB();
        if (mouseState == Mouse.StateEnum.Idle)
        {
            mouseState  = Mouse.GetInstance().GetStateRMB();
            _isDeleting = mouseState != Mouse.StateEnum.Idle;
        }

        GameGrid.GridType _gridType = GetCurrentToolSettings().GetGridType();

        if (!Mouse.GetInstance().HasMovedOnGrid(_gridType) && (mouseState == Mouse.StateEnum.Idle || mouseState == Mouse.StateEnum.Hold))
        {
            return;
        }

        switch (mouseState)
        {
        case Mouse.StateEnum.Idle:
            nodeGridPosStart = Mouse.GetInstance().GetGridPos(_gridType);
            DrawOrPreviewOnNode(nodeGridPosStart, _isDeleting: false, _isPermanent: false);
            return;

        case Mouse.StateEnum.Click:
        case Mouse.StateEnum.Hold:
            _isPermanent   = false;
            nodeGridPosEnd = Mouse.GetInstance().GetGridPos(_gridType);
            break;

        case Mouse.StateEnum.Release:
            _isPermanent = true;
            break;

        default:
            Debug.LogError(mouseState + " hasn't been properly implemented yet!");
            break;
        }

        switch (currentShapeMode)
        {
        case ShapeModeEnum.None:
            break;

        case ShapeModeEnum.Wall:
            TryDrawWall(nodeGridPosStart, nodeGridPosEnd, _isDeleting, _isPermanent);
            break;

        case ShapeModeEnum.Room:
            TryDrawRoom(nodeGridPosStart, nodeGridPosEnd, false, _isDeleting, _isPermanent);
            break;

        case ShapeModeEnum.Fill:
            TryDrawRoom(nodeGridPosStart, nodeGridPosEnd, true, _isDeleting, _isPermanent);
            break;

        default:
            Debug.LogError(currentShapeMode + " hasn't been properly implemented yet!");
            break;
        }
    }