Skip to content

Commit

Permalink
Rename SliderVelocity to SliderVelocityMultiplier to distinguish …
Browse files Browse the repository at this point in the history
…from `Velocity`
  • Loading branch information
peppy committed Sep 6, 2023
1 parent d064902 commit 70ab093
Show file tree
Hide file tree
Showing 26 changed files with 54 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public void TestBasicPlacement()
AddAssert("end time is correct", () => Precision.AlmostEquals(lastObject.EndTime, times[1]));
AddAssert("start position is correct", () => Precision.AlmostEquals(lastObject.OriginalX, positions[0]));
AddAssert("end position is correct", () => Precision.AlmostEquals(lastObject.EndX, positions[1]));
AddAssert("default slider velocity", () => lastObject.SliderVelocityBindable.IsDefault);
AddAssert("default slider velocity", () => lastObject.SliderVelocityMultiplierBindable.IsDefault);
}

[Test]
Expand Down Expand Up @@ -76,7 +76,7 @@ public void TestSliderVelocityChange()
addPlacementSteps(times, positions);
addPathCheckStep(times, positions);

AddAssert("slider velocity changed", () => !lastObject.SliderVelocityBindable.IsDefault);
AddAssert("slider velocity changed", () => !lastObject.SliderVelocityMultiplierBindable.IsDefault);
}

[Test]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,11 @@ public void TestSliderVelocityChange()
double[] times = { 100, 300 };
float[] positions = { 200, 300 };
addBlueprintStep(times, positions);
AddAssert("default slider velocity", () => hitObject.SliderVelocityBindable.IsDefault);
AddAssert("default slider velocity", () => hitObject.SliderVelocityMultiplierBindable.IsDefault);

addDragStartStep(times[1], positions[1]);
AddMouseMoveStep(times[1], 400);
AddAssert("slider velocity changed", () => !hitObject.SliderVelocityBindable.IsDefault);
AddAssert("slider velocity changed", () => !hitObject.SliderVelocityMultiplierBindable.IsDefault);
}

[Test]
Expand Down
2 changes: 1 addition & 1 deletion osu.Game.Rulesets.Catch/Beatmaps/CatchBeatmapConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ protected override IEnumerable<CatchHitObject> ConvertHitObject(HitObject obj, I
ComboOffset = comboData?.ComboOffset ?? 0,
LegacyLastTickOffset = (obj as IHasLegacyLastTickOffset)?.LegacyLastTickOffset ?? 0,
LegacyConvertedY = yPositionData?.Y ?? CatchHitObject.DEFAULT_LEGACY_CONVERT_Y,
SliderVelocity = sliderVelocityData?.SliderVelocity ?? 1
SliderVelocityMultiplier = sliderVelocityData?.SliderVelocityMultiplier ?? 1
}.Yield();

case IHasDuration endTime:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public void InitializeFromHitObject(JuiceStream hitObject)
public void UpdateHitObjectFromPath(JuiceStream hitObject)
{
// The SV setting may need to be changed for the current path.
var svBindable = hitObject.SliderVelocityBindable;
var svBindable = hitObject.SliderVelocityMultiplierBindable;
double svToVelocityFactor = hitObject.Velocity / svBindable.Value;
double requiredVelocity = path.ComputeRequiredVelocity();

Expand Down
12 changes: 6 additions & 6 deletions osu.Game.Rulesets.Catch/Objects/JuiceStream.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@ public class JuiceStream : CatchHitObject, IHasPathWithRepeats, IHasSliderVeloci

public int RepeatCount { get; set; }

public BindableNumber<double> SliderVelocityBindable { get; } = new BindableDouble(1)
public BindableNumber<double> SliderVelocityMultiplierBindable { get; } = new BindableDouble(1)
{
Precision = 0.01,
MinValue = 0.1,
MaxValue = 10
};

public double SliderVelocity
public double SliderVelocityMultiplier
{
get => SliderVelocityBindable.Value;
set => SliderVelocityBindable.Value = value;
get => SliderVelocityMultiplierBindable.Value;
set => SliderVelocityMultiplierBindable.Value = value;
}

[JsonIgnore]
Expand All @@ -48,10 +48,10 @@ public double SliderVelocity
private double tickDistanceFactor;

[JsonIgnore]
public double Velocity => velocityFactor * SliderVelocity;
public double Velocity => velocityFactor * SliderVelocityMultiplier;

[JsonIgnore]
public double TickDistance => tickDistanceFactor * SliderVelocity;
public double TickDistance => tickDistanceFactor * SliderVelocityMultiplier;

/// <summary>
/// The length of one span of this <see cref="JuiceStream"/>.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public DistanceObjectPatternGenerator(LegacyRandom random, HitObject hitObject,
if (hitObject.LegacyBpmMultiplier.HasValue)
beatLength = timingPoint.BeatLength * hitObject.LegacyBpmMultiplier.Value;
else if (hitObject is IHasSliderVelocity hasSliderVelocity)
beatLength = timingPoint.BeatLength / hasSliderVelocity.SliderVelocity;
beatLength = timingPoint.BeatLength / hasSliderVelocity.SliderVelocityMultiplier;
else
beatLength = timingPoint.BeatLength;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ public void TestPerfectScoreOnShortSliderWithRepeat()
new PathControlPoint(new Vector2(0, 6.25f))
}),
RepeatCount = 1,
SliderVelocity = 10
SliderVelocityMultiplier = 10
}
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public partial class TestSceneSliderFollowCircleInput : RateAdjustedBeatmapTestS
{
StartTime = time_slider_start,
Position = new Vector2(0, 0),
SliderVelocity = velocity,
SliderVelocityMultiplier = velocity,
Path = new SliderPath(PathType.Linear, new[]
{
Vector2.Zero,
Expand Down
2 changes: 1 addition & 1 deletion osu.Game.Rulesets.Osu.Tests/TestSceneSliderInput.cs
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ private void performTest(List<ReplayFrame> frames)
{
StartTime = time_slider_start,
Position = new Vector2(0, 0),
SliderVelocity = 0.1f,
SliderVelocityMultiplier = 0.1f,
Path = new SliderPath(PathType.PerfectCurve, new[]
{
Vector2.Zero,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -451,7 +451,7 @@ private class TestSlider : Slider
{
public TestSlider()
{
SliderVelocity = 0.1f;
SliderVelocityMultiplier = 0.1f;

DefaultsApplied += _ =>
{
Expand Down
2 changes: 1 addition & 1 deletion osu.Game.Rulesets.Osu/Beatmaps/OsuBeatmapConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ protected override IEnumerable<OsuHitObject> ConvertHitObject(HitObject original
// this results in more (or less) ticks being generated in <v8 maps for the same time duration.
TickDistanceMultiplier = beatmap.BeatmapInfo.BeatmapVersion < 8 ? 1f / ((LegacyControlPointInfo)beatmap.ControlPointInfo).DifficultyPointAt(original.StartTime).SliderVelocity : 1,
GenerateTicks = generateTicksData?.GenerateTicks ?? true,
SliderVelocity = sliderVelocityData?.SliderVelocity ?? 1,
SliderVelocityMultiplier = sliderVelocityData?.SliderVelocityMultiplier ?? 1,
}.Yield();

case IHasDuration endTimeData:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@ public override void UpdateTimeAndPosition(SnapResult result)
BeginPlacement();

double? nearestSliderVelocity = (editorBeatmap.HitObjects
.LastOrDefault(h => h is Slider && h.GetEndTime() < HitObject.StartTime) as Slider)?.SliderVelocity;
.LastOrDefault(h => h is Slider && h.GetEndTime() < HitObject.StartTime) as Slider)?.SliderVelocityMultiplier;

HitObject.SliderVelocity = nearestSliderVelocity ?? 1;
HitObject.SliderVelocityMultiplier = nearestSliderVelocity ?? 1;
HitObject.Position = ToLocalSpace(result.ScreenSpacePosition);

// Replacing the DifficultyControlPoint above doesn't trigger any kind of invalidation.
Expand Down
2 changes: 1 addition & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModStrictTracking.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ public StrictTrackingSlider(Slider original)
ComboOffset = original.ComboOffset;
LegacyLastTickOffset = original.LegacyLastTickOffset;
TickDistanceMultiplier = original.TickDistanceMultiplier;
SliderVelocity = original.SliderVelocity;
SliderVelocityMultiplier = original.SliderVelocityMultiplier;
}

protected override void CreateNestedHitObjects(CancellationToken cancellationToken)
Expand Down
10 changes: 5 additions & 5 deletions osu.Game.Rulesets.Osu/Objects/Slider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -134,17 +134,17 @@ public int RepeatCount
/// </summary>
public bool OnlyJudgeNestedObjects = true;

public BindableNumber<double> SliderVelocityBindable { get; } = new BindableDouble(1)
public BindableNumber<double> SliderVelocityMultiplierBindable { get; } = new BindableDouble(1)
{
Precision = 0.01,
MinValue = 0.1,
MaxValue = 10
};

public double SliderVelocity
public double SliderVelocityMultiplier
{
get => SliderVelocityBindable.Value;
set => SliderVelocityBindable.Value = value;
get => SliderVelocityMultiplierBindable.Value;
set => SliderVelocityMultiplierBindable.Value = value;
}

public bool GenerateTicks { get; set; } = true;
Expand All @@ -167,7 +167,7 @@ protected override void ApplyDefaultsToSelf(ControlPointInfo controlPointInfo, I

TimingControlPoint timingPoint = controlPointInfo.TimingPointAt(StartTime);

double scoringDistance = BASE_SCORING_DISTANCE * difficulty.SliderMultiplier * SliderVelocity;
double scoringDistance = BASE_SCORING_DISTANCE * difficulty.SliderMultiplier / (1 / (float)SliderVelocityMultiplier);

Velocity = scoringDistance / timingPoint.BeatLength;
TickDistance = GenerateTicks ? (scoringDistance / difficulty.SliderTickRate * TickDistanceMultiplier) : double.PositiveInfinity;
Expand Down
4 changes: 2 additions & 2 deletions osu.Game.Rulesets.Taiko/Beatmaps/TaikoBeatmapConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ protected override Beatmap<TaikoHitObject> ConvertBeatmap(IBeatmap original, Can
{
if (hitObject is not IHasSliderVelocity hasSliderVelocity) continue;

double nextScrollSpeed = hasSliderVelocity.SliderVelocity;
double nextScrollSpeed = hasSliderVelocity.SliderVelocityMultiplier;
EffectControlPoint currentEffectPoint = converted.ControlPointInfo.EffectPointAt(hitObject.StartTime);

if (!Precision.AlmostEquals(lastScrollSpeed, nextScrollSpeed, acceptableDifference: currentEffectPoint.ScrollSpeedBindable.Precision))
Expand Down Expand Up @@ -189,7 +189,7 @@ private bool shouldConvertSliderToHits(HitObject obj, IBeatmap beatmap, IHasDist
if (obj.LegacyBpmMultiplier.HasValue)
beatLength = timingPoint.BeatLength * obj.LegacyBpmMultiplier.Value;
else if (obj is IHasSliderVelocity hasSliderVelocity)
beatLength = timingPoint.BeatLength / hasSliderVelocity.SliderVelocity;
beatLength = timingPoint.BeatLength / hasSliderVelocity.SliderVelocityMultiplier;
else
beatLength = timingPoint.BeatLength;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public void TestSpeedMultiplierDoesNotChangeDistanceSnap(float multiplier)
{
assertSnapDistance(100, new Slider
{
SliderVelocity = multiplier
SliderVelocityMultiplier = multiplier
}, false);
}

Expand All @@ -88,7 +88,7 @@ public void TestSpeedMultiplierDoesChangeDistanceSnap(float multiplier)
{
assertSnapDistance(100 * multiplier, new Slider
{
SliderVelocity = multiplier
SliderVelocityMultiplier = multiplier
}, true);
}

Expand All @@ -112,7 +112,7 @@ public void TestConversionsWithSliderVelocity()

var referenceObject = new Slider
{
SliderVelocity = slider_velocity
SliderVelocityMultiplier = slider_velocity
};

assertSnapDistance(base_distance * slider_velocity, referenceObject, true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public override void SetUpSteps()
new PathControlPoint(new Vector2(100, 0))
}
},
SliderVelocity = 2
SliderVelocityMultiplier = 2
});
});
}
Expand Down Expand Up @@ -110,7 +110,7 @@ public void TestMultipleSelectionWithSameSliderVelocity()
AddStep("unify slider velocity", () =>
{
foreach (var h in EditorBeatmap.HitObjects.OfType<IHasSliderVelocity>())
h.SliderVelocity = 1.5;
h.SliderVelocityMultiplier = 1.5;
});

AddStep("select both objects", () => EditorBeatmap.SelectedHitObjects.AddRange(EditorBeatmap.HitObjects));
Expand Down Expand Up @@ -194,7 +194,7 @@ private void dismissPopover()
private void hitObjectHasVelocity(int objectIndex, double velocity) => AddAssert($"{objectIndex.ToOrdinalWords()} has velocity {velocity}", () =>
{
var h = EditorBeatmap.HitObjects.ElementAt(objectIndex);
return h is IHasSliderVelocity hasSliderVelocity && hasSliderVelocity.SliderVelocity == velocity;
return h is IHasSliderVelocity hasSliderVelocity && hasSliderVelocity.SliderVelocityMultiplier == velocity;
});
}
}
2 changes: 1 addition & 1 deletion osu.Game/Beatmaps/Formats/LegacyBeatmapDecoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ private void applyDefaults(HitObject hitObject)
}

if (hitObject is IHasSliderVelocity hasSliderVelocity)
hasSliderVelocity.SliderVelocity = difficultyControlPoint.SliderVelocity;
hasSliderVelocity.SliderVelocityMultiplier = difficultyControlPoint.SliderVelocity;

hitObject.ApplyDefaults(beatmap.ControlPointInfo, beatmap.Difficulty);
}
Expand Down
2 changes: 1 addition & 1 deletion osu.Game/Beatmaps/Formats/LegacyBeatmapEncoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ IEnumerable<DifficultyControlPoint> collectDifficultyControlPoints(IEnumerable<H
foreach (var hitObject in hitObjects)
{
if (hitObject is IHasSliderVelocity hasSliderVelocity)
yield return new DifficultyControlPoint { Time = hitObject.StartTime, SliderVelocity = hasSliderVelocity.SliderVelocity };
yield return new DifficultyControlPoint { Time = hitObject.StartTime, SliderVelocity = hasSliderVelocity.SliderVelocityMultiplier };
}
}

Expand Down
2 changes: 1 addition & 1 deletion osu.Game/Rulesets/Edit/DistancedHitObjectComposer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ protected virtual bool AdjustDistanceSpacing(GlobalAction action, float amount)

public virtual float GetBeatSnapDistanceAt(HitObject referenceObject, bool useReferenceSliderVelocity = true)
{
return (float)(100 * (useReferenceSliderVelocity && referenceObject is IHasSliderVelocity hasSliderVelocity ? hasSliderVelocity.SliderVelocity : 1) * EditorBeatmap.Difficulty.SliderMultiplier * 1
return (float)(100 * (useReferenceSliderVelocity && referenceObject is IHasSliderVelocity hasSliderVelocity ? hasSliderVelocity.SliderVelocityMultiplier : 1) * EditorBeatmap.Difficulty.SliderMultiplier * 1
/ BeatSnapProvider.BeatDivisor);
}

Expand Down
10 changes: 5 additions & 5 deletions osu.Game/Rulesets/Objects/Legacy/ConvertSlider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@ public double Duration

public double Velocity = 1;

public BindableNumber<double> SliderVelocityBindable { get; } = new BindableDouble(1);
public BindableNumber<double> SliderVelocityMultiplierBindable { get; } = new BindableDouble(1);

public double SliderVelocity
public double SliderVelocityMultiplier
{
get => SliderVelocityBindable.Value;
set => SliderVelocityBindable.Value = value;
get => SliderVelocityMultiplierBindable.Value;
set => SliderVelocityMultiplierBindable.Value = value;
}

protected override void ApplyDefaultsToSelf(ControlPointInfo controlPointInfo, IBeatmapDifficultyInfo difficulty)
Expand All @@ -55,7 +55,7 @@ protected override void ApplyDefaultsToSelf(ControlPointInfo controlPointInfo, I

TimingControlPoint timingPoint = controlPointInfo.TimingPointAt(StartTime);

double scoringDistance = base_scoring_distance * difficulty.SliderMultiplier * SliderVelocity;
double scoringDistance = base_scoring_distance * difficulty.SliderMultiplier * SliderVelocityMultiplier;

Velocity = scoringDistance / timingPoint.BeatLength;
}
Expand Down
4 changes: 2 additions & 2 deletions osu.Game/Rulesets/Objects/Types/IHasSliderVelocity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ public interface IHasSliderVelocity
/// <summary>
/// The slider velocity multiplier.
/// </summary>
double SliderVelocity { get; set; }
double SliderVelocityMultiplier { get; set; }

BindableNumber<double> SliderVelocityBindable { get; }
BindableNumber<double> SliderVelocityMultiplierBindable { get; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ private void updateInspectorText()
if (selected is IHasSliderVelocity sliderVelocity)
{
AddHeader("Slider Velocity");
AddValue($"{sliderVelocity.SliderVelocity:#,0.00}x ({sliderVelocity.SliderVelocity * EditorBeatmap.Difficulty.SliderMultiplier:#,0.00}x)");
AddValue($"{sliderVelocity.SliderVelocityMultiplier:#,0.00}x ({sliderVelocity.SliderVelocityMultiplier * EditorBeatmap.Difficulty.SliderMultiplier:#,0.00}x)");
}

if (selected is IHasRepeats repeats)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public DifficultyPointPiece(HitObject hitObject)
{
HitObject = hitObject;

speedMultiplier = (hitObject as IHasSliderVelocity)?.SliderVelocityBindable.GetBoundCopy();
speedMultiplier = (hitObject as IHasSliderVelocity)?.SliderVelocityMultiplierBindable.GetBoundCopy();
}

protected override Color4 GetRepresentingColour(OsuColour colours) => colours.Lime1;
Expand Down Expand Up @@ -106,8 +106,8 @@ private void load()
var relevantObjects = (beatmap.SelectedHitObjects.Contains(hitObject) ? beatmap.SelectedHitObjects : hitObject.Yield()).Where(o => o is IHasSliderVelocity).ToArray();

// even if there are multiple objects selected, we can still display a value if they all have the same value.
var selectedPointBindable = relevantObjects.Select(point => ((IHasSliderVelocity)point).SliderVelocity).Distinct().Count() == 1
? ((IHasSliderVelocity)relevantObjects.First()).SliderVelocityBindable
var selectedPointBindable = relevantObjects.Select(point => ((IHasSliderVelocity)point).SliderVelocityMultiplier).Distinct().Count() == 1
? ((IHasSliderVelocity)relevantObjects.First()).SliderVelocityMultiplierBindable
: null;

if (selectedPointBindable != null)
Expand All @@ -127,7 +127,7 @@ private void load()
foreach (var h in relevantObjects)
{
((IHasSliderVelocity)h).SliderVelocity = val.NewValue.Value;
((IHasSliderVelocity)h).SliderVelocityMultiplier = val.NewValue.Value;
beatmap.Update(h);
}
Expand Down Expand Up @@ -169,7 +169,7 @@ private void updateInspectorText()

InspectorText.Clear();

double[] sliderVelocities = EditorBeatmap.HitObjects.OfType<IHasSliderVelocity>().Select(sv => sv.SliderVelocity).OrderBy(v => v).ToArray();
double[] sliderVelocities = EditorBeatmap.HitObjects.OfType<IHasSliderVelocity>().Select(sv => sv.SliderVelocityMultiplier).OrderBy(v => v).ToArray();

AddHeader("Base velocity (from beatmap setup)");
AddValue($"{beatmapVelocity:#,0.00}x");
Expand Down

0 comments on commit 70ab093

Please sign in to comment.