Fix type-to-sample mapping being applied too late

This commit is contained in:
Dean Herbert
2021-05-21 14:37:22 +09:00
parent c00e6e29a6
commit 40c8378d81
2 changed files with 31 additions and 28 deletions

View File

@ -55,16 +55,8 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
type.BindValueChanged(_ =>
{
updateActionsFromType();
// will overwrite samples, should only be called on subsequent changes
// after the initial application.
updateSamplesFromTypeChange();
RecreatePieces();
});
// action update also has to happen immediately on application.
updateActionsFromType();
}, true);
base.OnApply();
}
@ -92,24 +84,6 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
type.Value = getRimSamples().Any() ? HitType.Rim : HitType.Centre;
}
private void updateSamplesFromTypeChange()
{
var rimSamples = getRimSamples();
bool isRimType = HitObject.Type == HitType.Rim;
if (isRimType != rimSamples.Any())
{
if (isRimType)
HitObject.Samples.Add(new HitSampleInfo(HitSampleInfo.HIT_CLAP));
else
{
foreach (var sample in rimSamples)
HitObject.Samples.Remove(sample);
}
}
}
private void updateActionsFromType()
{
HitActions =