private void OnMouseButtonPressed(object sender, MouseButtonEventArgs e) { if (e.Button != Mouse.Button.Left) { return; } var window = (Window)sender; var mp = GetGridPosition(window, NodeSize); Int2 mmp = new Int2(mp.X, mp.Y); mLatestP = mmp; if (mmp == mBoard.StartP) { mState = E_ClickState.MoveStartNode; return; } if (mmp == mBoard.GoalP) { mState = E_ClickState.MoveGoalNode; return; } if (mBoard.IsWall(mmp)) { mState = E_ClickState.EraseWall; return; } mState = E_ClickState.MakeWall; }
private void OnMouseButtonReleased(object sender, MouseButtonEventArgs e) { if (e.Button != Mouse.Button.Left) { return; } if (mState == E_ClickState.EraseWall || mState == E_ClickState.MakeWall) { var window = (Window)sender; var mp = GetGridPosition(window, NodeSize); Int2 mmp = new Int2(mp.X, mp.Y); if (mLatestP == mmp) { if (mState == E_ClickState.EraseWall) { mBoard.RemoveWall(mmp); } else { mBoard.CreateWall(mmp); } } mBoard.Update(); } mLatestP = null; mState = E_ClickState.None; }