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(); } }
public bool HasMovedOnGrid(GameGrid.GridType _gridType) { if (_gridType == GameGrid.GridType.NodeGrid) { return(nodeGridPos != nodeGridPosOld); } else { return(tileGridPos != tileGridPosOld); } }
public Int2 GetGridPos(GameGrid.GridType _gridType) { if (_gridType == GameGrid.GridType.NodeGrid) { return(nodeGridPos); } else { return(tileGridPos); } }
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; } }