Simplify fleet curve configuration

This commit is contained in:
2026-07-07 20:44:43 +08:00
parent 0d44fb8fde
commit 381ae3de76
7 changed files with 27 additions and 38 deletions
+15 -10
View File
@@ -9,6 +9,7 @@ using CommonUsage.Chassis;
using CommonUsage.Mathematics;
using MDCSToolBox.Clumsy.Movements;
using MDCSToolBox.Clumsy.Pilot;
using MDCSToolBox.Clumsy.Tracks;
namespace MultiWheelC;
@@ -441,21 +442,25 @@ public class FleetCurveWalkTest : MovementTest
return;
}
if (!FleetCurveWalk.TryParsePointList(PilotDefinition.Conf.FleetCurveControlPoints,
out var relativePoints, out var error))
var pointCount = Math.Max(3, PilotDefinition.Conf.FleetCurveTestControlPointCount);
var controlPoints = new List<Vector2>();
for (var i = 0; i < pointCount; i++)
controlPoints.Add(UI.GetPoint($"FleetCurve point {i + 1}/{pointCount}"));
var fleetCenter = new Vector2(x, y);
if (Vector2.Distance(fleetCenter, controlPoints[0]) >
Vector2.Distance(fleetCenter, controlPoints[controlPoints.Count - 1]))
controlPoints.Reverse();
var track = new BezierTrack(controlPoints)
{
DLog.Log($"FleetCurveWalkTest abort: {error}", "FleetCurveDbg");
Hedingben.ToastText(error, "FleetCurve");
return;
}
Speed = PilotDefinition.Conf.FleetCurveSpeed,
CarDirectionBias = 0f
};
var controlPoints = FleetCurveWalk.BuildRelativeControlPoints(new Vector2(x, y), th, relativePoints);
_proc = new FleetCurveWalk
{
ControlPoints = controlPoints,
Track = track,
CurveSpeed = PilotDefinition.Conf.FleetCurveSpeed,
CarDirectionBias = PilotDefinition.Conf.FleetCurveCarDirectionBias,
BezierResolution = PilotDefinition.Conf.FleetCurveBezierResolution,
CarDirectionBias = 0f,
SlowDistance = PilotDefinition.Conf.FleetCurveSlowDistance,
FinishDistance = PilotDefinition.Conf.FleetCurveFinishDistance,
FinishSpeed = PilotDefinition.Conf.FleetCurveFinishSpeed,