public bool RemoveControlPoint(MultiplierControlPoint controlPoint) { var result = ControlPoints.Remove(controlPoint); if (result) { initialStateCache.Invalidate(); } return(result); }
public void ApplyToRulesetContainer(ManiaRulesetContainer rulesetContainer, ref List <SpeedAdjustmentContainer>[] hitObjectTimingChanges, ref List <SpeedAdjustmentContainer> barlineTimingChanges) { // We have to generate one speed adjustment per hit object for gravity foreach (ManiaHitObject obj in rulesetContainer.Objects) { MultiplierControlPoint controlPoint = rulesetContainer.CreateControlPointAt(obj.StartTime); // Beat length has too large of an effect for gravity, so we'll force it to a constant value for now controlPoint.TimingPoint.BeatLength = 1000; hitObjectTimingChanges[obj.Column].Add(new ManiaSpeedAdjustmentContainer(controlPoint, ScrollingAlgorithm.Gravity)); } // Like with hit objects, we need to generate one speed adjustment per bar line foreach (DrawableBarLine barLine in rulesetContainer.BarLines) { var controlPoint = rulesetContainer.CreateControlPointAt(barLine.HitObject.StartTime); // Beat length has too large of an effect for gravity, so we'll force it to a constant value for now controlPoint.TimingPoint.BeatLength = 1000; barlineTimingChanges.Add(new ManiaSpeedAdjustmentContainer(controlPoint, ScrollingAlgorithm.Gravity)); } }
private void applySpeedAdjustment(MultiplierControlPoint controlPoint, ScrollingPlayfield playfield) { playfield.HitObjects.AddControlPoint(controlPoint); playfield.NestedPlayfields?.OfType <ScrollingPlayfield>().ForEach(p => applySpeedAdjustment(controlPoint, p)); }
public PositionMapping(double time, MultiplierControlPoint controlPoint = null, double position = default) { Time = time; ControlPoint = controlPoint; Position = position; }
public TestDrawableTimingSection(MultiplierControlPoint controlPoint) { this.controlPoint = controlPoint; }
public TestSpeedAdjustmentContainer(MultiplierControlPoint controlPoint) : base(controlPoint) { }
public OverlappingScrollAlgorithm(SortedList <MultiplierControlPoint> controlPoints) { this.controlPoints = controlPoints; searchPoint = new MultiplierControlPoint(); }
private void applySpeedAdjustment(MultiplierControlPoint controlPoint, ScrollingPlayfield playfield) { playfield.HitObjects.AddSpeedAdjustment(CreateSpeedAdjustmentContainer(controlPoint)); playfield.NestedPlayfields.ForEach(p => applySpeedAdjustment(controlPoint, p)); }
/// <summary> /// Creates a <see cref="SpeedAdjustmentContainer"/> that facilitates the movement of hit objects. /// </summary> /// <param name="controlPoint">The <see cref="MultiplierControlPoint"/> that provides the speed adjustments for the hitobjects.</param> /// <returns>The <see cref="SpeedAdjustmentContainer"/>.</returns> protected virtual SpeedAdjustmentContainer CreateSpeedAdjustmentContainer(MultiplierControlPoint controlPoint) => new SpeedAdjustmentContainer(controlPoint);
protected override SpeedAdjustmentContainer CreateSpeedAdjustmentContainer(MultiplierControlPoint controlPoint) => new ManiaSpeedAdjustmentContainer(controlPoint, ScrollingAlgorithm.Basic);
public void AddControlPoint(MultiplierControlPoint controlPoint) { ControlPoints.Add(controlPoint); initialStateCache.Invalidate(); }
public ManiaSpeedAdjustmentContainer(MultiplierControlPoint timingSection, ScrollingAlgorithm scrollingAlgorithm) : base(timingSection) { this.scrollingAlgorithm = scrollingAlgorithm; }
public GravityScrollingContainer(MultiplierControlPoint controlPoint) { this.controlPoint = controlPoint; }
public BasicScrollingDrawableTimingSection(MultiplierControlPoint controlPoint) { this.controlPoint = controlPoint; }