mirror of
https://github.com/ppy/osu.git
synced 2024-11-11 13:37:25 +08:00
Check skin option in skin transformers
This commit is contained in:
parent
c7d2ce12eb
commit
8233f5fbc4
@ -9,6 +9,9 @@ using osu.Game.Beatmaps;
|
|||||||
using osu.Game.Rulesets.Mania.Beatmaps;
|
using osu.Game.Rulesets.Mania.Beatmaps;
|
||||||
using osu.Game.Skinning;
|
using osu.Game.Skinning;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using osu.Framework.Audio.Sample;
|
||||||
|
using osu.Game.Audio;
|
||||||
|
using osu.Game.Rulesets.Objects.Legacy;
|
||||||
|
|
||||||
namespace osu.Game.Rulesets.Mania.Skinning
|
namespace osu.Game.Rulesets.Mania.Skinning
|
||||||
{
|
{
|
||||||
@ -129,6 +132,15 @@ namespace osu.Game.Rulesets.Mania.Skinning
|
|||||||
return this.GetAnimation(filename, true, true);
|
return this.GetAnimation(filename, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override SampleChannel GetSample(ISampleInfo sampleInfo)
|
||||||
|
{
|
||||||
|
// layered hit sounds never play in mania
|
||||||
|
if (sampleInfo is ConvertHitObjectParser.LegacyHitSampleInfo legacySample && legacySample.IsLayered)
|
||||||
|
return new SampleChannelVirtual();
|
||||||
|
|
||||||
|
return Source.GetSample(sampleInfo);
|
||||||
|
}
|
||||||
|
|
||||||
public override IBindable<TValue> GetConfig<TLookup, TValue>(TLookup lookup)
|
public override IBindable<TValue> GetConfig<TLookup, TValue>(TLookup lookup)
|
||||||
{
|
{
|
||||||
if (lookup is ManiaSkinConfigurationLookup maniaLookup)
|
if (lookup is ManiaSkinConfigurationLookup maniaLookup)
|
||||||
|
@ -6,6 +6,7 @@ using osu.Framework.Bindables;
|
|||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
using osu.Framework.Graphics.Textures;
|
using osu.Framework.Graphics.Textures;
|
||||||
using osu.Game.Audio;
|
using osu.Game.Audio;
|
||||||
|
using osu.Game.Rulesets.Objects.Legacy;
|
||||||
|
|
||||||
namespace osu.Game.Skinning
|
namespace osu.Game.Skinning
|
||||||
{
|
{
|
||||||
@ -28,7 +29,17 @@ namespace osu.Game.Skinning
|
|||||||
|
|
||||||
public Texture GetTexture(string componentName) => Source.GetTexture(componentName);
|
public Texture GetTexture(string componentName) => Source.GetTexture(componentName);
|
||||||
|
|
||||||
public virtual SampleChannel GetSample(ISampleInfo sampleInfo) => Source.GetSample(sampleInfo);
|
public virtual SampleChannel GetSample(ISampleInfo sampleInfo)
|
||||||
|
{
|
||||||
|
if (!(sampleInfo is ConvertHitObjectParser.LegacyHitSampleInfo legacySample))
|
||||||
|
return Source.GetSample(sampleInfo);
|
||||||
|
|
||||||
|
var playLayeredHitSounds = GetConfig<GlobalSkinConfiguration, bool>(GlobalSkinConfiguration.LayeredHitSounds);
|
||||||
|
if (legacySample.IsLayered && playLayeredHitSounds?.Value == false)
|
||||||
|
return new SampleChannelVirtual();
|
||||||
|
|
||||||
|
return Source.GetSample(sampleInfo);
|
||||||
|
}
|
||||||
|
|
||||||
public abstract IBindable<TValue> GetConfig<TLookup, TValue>(TLookup lookup);
|
public abstract IBindable<TValue> GetConfig<TLookup, TValue>(TLookup lookup);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user