private void StartWoodCutting() { if (BladeHitDadoBlock()) { previousPiecePosition = currentDado.Position; cuttingOutDado = true; if (BladeHitPiece()) { FeedRateTracker.ReduceScoreDirectly(0.5f); } } else if (BladeHitPiece()) { FeedRateTracker.ReduceScoreDirectly(0.8f); cuttingOutDado = false; } }
private void StartWoodCutting(Vector3 cutStartPoint) { SawBlade.SetEdgePosition(cutStartPoint); currentLine.DetermineCutDirection(SawBlade.EdgePosition()); float distanceFromBlade = currentLine.CalculateDistance(SawBlade.EdgePosition()); cuttingAlongLine = (distanceFromBlade <= ValidCutOffset); if (cuttingAlongLine && distanceFromBlade >= 0.003f) { FeedRateTracker.ReduceScoreDirectly(0.5f); } else if (!cuttingAlongLine) { FeedRateTracker.ReduceScoreDirectly(1.0f); } manager.RestrictCurrentBoardMovement(true, true); previousBladePosition = SawBlade.EdgePosition(); CurrentState = CutState.Cutting; totalTimePassed = 0.0f; }
/// <summary> /// When the blade hits the wood material, set up the blade edge to better track how close the blade is to the line. /// </summary> /// <param name="cutStartPoint">The point at which the blade hit the wood material</param> private void StartWoodCutting(Vector3 cutStartPoint) { SawBlade.SetEdgePosition(cutStartPoint); currentLine.DetermineCutDirection(SawBlade.EdgePosition()); float distanceFromBlade = currentLine.CalculateDistance(SawBlade.EdgePosition()); cuttingAlongLine = (distanceFromBlade <= ValidCutOffset); //If the blade is already to far from the line, change the score in the Feed Rate if (cuttingAlongLine && distanceFromBlade >= 0.003f) { FeedRateTracker.ReduceScoreDirectly(0.5f); } else if (!cuttingAlongLine) { FeedRateTracker.ReduceScoreDirectly(1.0f); } //Restrict the movement of the board to just the z direction manager.RestrictCurrentBoardMovement(false, true); previousPiecePosition = manager.GetCurrentBoardPosition(); CurrentState = CutState.Cutting; totalTimePassed = 0.0f; }