mirror of
https://github.com/osukey/osukey.git
synced 2025-07-02 16:59:53 +09:00
Update with framework state transformation
Removes explicit initial state setting in DrawableOsuHitObjects.
This commit is contained in:
Submodule osu-framework updated: c8222d1dc9...b70ca3de9e
@ -58,6 +58,8 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
},
|
},
|
||||||
ApproachCircle = new ApproachCircle
|
ApproachCircle = new ApproachCircle
|
||||||
{
|
{
|
||||||
|
Alpha = 0,
|
||||||
|
Scale = new Vector2(4),
|
||||||
Colour = AccentColour,
|
Colour = AccentColour,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -82,25 +84,6 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateInitialState()
|
|
||||||
{
|
|
||||||
base.UpdateInitialState();
|
|
||||||
|
|
||||||
// Hide() cannot be used here, because when rewinding, we need these to be the final values
|
|
||||||
|
|
||||||
ring.Alpha = 1;
|
|
||||||
circle.Alpha = 1;
|
|
||||||
number.Alpha = 1;
|
|
||||||
glow.Alpha = 1;
|
|
||||||
|
|
||||||
ApproachCircle.Alpha = 0;
|
|
||||||
ApproachCircle.Scale = new Vector2(4);
|
|
||||||
explode.Alpha = 0;
|
|
||||||
flash.Alpha = 0;
|
|
||||||
|
|
||||||
Scale = new Vector2(HitObject.Scale);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void UpdatePreemptState()
|
protected override void UpdatePreemptState()
|
||||||
{
|
{
|
||||||
base.UpdatePreemptState();
|
base.UpdatePreemptState();
|
||||||
|
@ -23,12 +23,13 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
|
|
||||||
protected sealed override void UpdateState(ArmedState state)
|
protected sealed override void UpdateState(ArmedState state)
|
||||||
{
|
{
|
||||||
ClearTransforms(true);
|
double transformTime = HitObject.StartTime - TIME_PREEMPT;
|
||||||
|
|
||||||
using (BeginAbsoluteSequence(HitObject.StartTime - TIME_PREEMPT, true))
|
TransformStateTo(transformTime, true);
|
||||||
|
ClearTransformsAfter(transformTime, true);
|
||||||
|
|
||||||
|
using (BeginAbsoluteSequence(transformTime, true))
|
||||||
{
|
{
|
||||||
UpdateInitialState();
|
|
||||||
|
|
||||||
UpdatePreemptState();
|
UpdatePreemptState();
|
||||||
|
|
||||||
using (BeginDelayedSequence(TIME_PREEMPT + (Judgements.FirstOrDefault()?.TimeOffset ?? 0), true))
|
using (BeginDelayedSequence(TIME_PREEMPT + (Judgements.FirstOrDefault()?.TimeOffset ?? 0), true))
|
||||||
@ -36,12 +37,6 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void UpdateInitialState()
|
|
||||||
{
|
|
||||||
// Hide() cannot be used here, because when rewinding, we need these to be the final values
|
|
||||||
Alpha = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected virtual void UpdatePreemptState()
|
protected virtual void UpdatePreemptState()
|
||||||
{
|
{
|
||||||
this.FadeIn(TIME_FADEIN);
|
this.FadeIn(TIME_FADEIN);
|
||||||
|
@ -24,13 +24,10 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
this.repeatPoint = repeatPoint;
|
this.repeatPoint = repeatPoint;
|
||||||
this.drawableSlider = drawableSlider;
|
this.drawableSlider = drawableSlider;
|
||||||
|
|
||||||
// The containing DrawableSlider is updated before us and clears our transforms, so we need to be
|
|
||||||
// present to get updated and have UpdateState correctly called when rewinding.
|
|
||||||
AlwaysPresent = true;
|
|
||||||
|
|
||||||
AutoSizeAxes = Axes.Both;
|
AutoSizeAxes = Axes.Both;
|
||||||
Blending = BlendingMode.Additive;
|
Blending = BlendingMode.Additive;
|
||||||
Origin = Anchor.Centre;
|
Origin = Anchor.Centre;
|
||||||
|
Scale = new Vector2(0.5f);
|
||||||
|
|
||||||
Children = new Drawable[]
|
Children = new Drawable[]
|
||||||
{
|
{
|
||||||
@ -50,13 +47,6 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
AddJudgement(new OsuJudgement { Result = drawableSlider.Tracking ? HitResult.Great : HitResult.Miss });
|
AddJudgement(new OsuJudgement { Result = drawableSlider.Tracking ? HitResult.Great : HitResult.Miss });
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateInitialState()
|
|
||||||
{
|
|
||||||
base.UpdateInitialState();
|
|
||||||
|
|
||||||
Scale = new Vector2(0.5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void UpdatePreemptState()
|
protected override void UpdatePreemptState()
|
||||||
{
|
{
|
||||||
var animIn = Math.Min(150, repeatPoint.StartTime - FadeInTime);
|
var animIn = Math.Min(150, repeatPoint.StartTime - FadeInTime);
|
||||||
|
@ -43,7 +43,9 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
ball = new SliderBall(s)
|
ball = new SliderBall(s)
|
||||||
{
|
{
|
||||||
Scale = new Vector2(s.Scale),
|
Scale = new Vector2(s.Scale),
|
||||||
AccentColour = AccentColour
|
AccentColour = AccentColour,
|
||||||
|
AlwaysPresent = true,
|
||||||
|
Alpha = 0
|
||||||
},
|
},
|
||||||
initialCircle = new DrawableHitCircle(new HitCircle
|
initialCircle = new DrawableHitCircle(new HitCircle
|
||||||
{
|
{
|
||||||
@ -148,16 +150,6 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void UpdateInitialState()
|
|
||||||
{
|
|
||||||
base.UpdateInitialState();
|
|
||||||
body.Alpha = 1;
|
|
||||||
|
|
||||||
//we need to be present to handle input events. note that we still don't get enough events (we don't get a position if the mouse hasn't moved since the slider appeared).
|
|
||||||
ball.AlwaysPresent = true;
|
|
||||||
ball.Alpha = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void UpdateCurrentState(ArmedState state)
|
protected override void UpdateCurrentState(ArmedState state)
|
||||||
{
|
{
|
||||||
ball.FadeIn();
|
ball.FadeIn();
|
||||||
|
@ -28,10 +28,6 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
|
|||||||
|
|
||||||
Size = new Vector2(16) * sliderTick.Scale;
|
Size = new Vector2(16) * sliderTick.Scale;
|
||||||
|
|
||||||
// The containing DrawableSlider is updated before us and clears our transforms, so we need to be
|
|
||||||
// present to get updated and have UpdateState correctly called when rewinding.
|
|
||||||
AlwaysPresent = true;
|
|
||||||
|
|
||||||
Masking = true;
|
Masking = true;
|
||||||
CornerRadius = Size.X / 2;
|
CornerRadius = Size.X / 2;
|
||||||
|
|
||||||
|
@ -215,6 +215,9 @@ namespace osu.Game.Rulesets.Objects.Drawables
|
|||||||
nestedHitObjects.Add(h);
|
nestedHitObjects.Add(h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override bool AllowStateTransformByParent => false;
|
||||||
|
protected override bool AllowTransformClearByParent => false;
|
||||||
|
|
||||||
protected abstract void UpdateState(ArmedState state);
|
protected abstract void UpdateState(ArmedState state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user