diff --git a/osu.Game/Screens/Edit/Compose/Components/ComposeBlueprintContainer.cs b/osu.Game/Screens/Edit/Compose/Components/ComposeBlueprintContainer.cs
index b4f2236847b3..3f3b4ad327c7 100644
--- a/osu.Game/Screens/Edit/Compose/Components/ComposeBlueprintContainer.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/ComposeBlueprintContainer.cs
@@ -199,12 +199,12 @@ private void sampleChanged(string sampleName, TernaryState state)
private void bankChanged(string bankName, TernaryState state)
{
- if (currentPlacement == null) return;
+ if (CurrentPlacement == null) return;
switch (state)
{
case TernaryState.True:
- currentPlacement.HitObject.SampleControlPoint.SampleBank = bankName;
+ CurrentPlacement.HitObject.Samples = CurrentPlacement.HitObject.Samples.Select(s => s.With(newBank: bankName)).ToList();
break;
}
}
diff --git a/osu.Game/Screens/Edit/Compose/Components/EditorSelectionHandler.cs b/osu.Game/Screens/Edit/Compose/Components/EditorSelectionHandler.cs
index 5d2eb33d8d4c..fa3a4cddaa20 100644
--- a/osu.Game/Screens/Edit/Compose/Components/EditorSelectionHandler.cs
+++ b/osu.Game/Screens/Edit/Compose/Components/EditorSelectionHandler.cs
@@ -81,7 +81,7 @@ private void createStateBindables()
{
// Never remove a sample bank.
// These are basically radio buttons, not toggles.
- if (SelectedItems.All(h => h.SampleControlPoint.SampleBank == bankName))
+ if (SelectedItems.All(h => h.Samples.All(s => s.Bank == bankName)))
bindable.Value = TernaryState.True;
}
@@ -167,7 +167,7 @@ protected virtual void UpdateTernaryStates()
foreach ((string bankName, var bindable) in SelectionBankStates)
{
- bindable.Value = GetStateFromSelection(SelectedItems, h => h.SampleControlPoint.SampleBank == bankName);
+ bindable.Value = GetStateFromSelection(SelectedItems, h => h.Samples.All(s => s.Bank == bankName));
}
}
@@ -183,25 +183,10 @@ public void AddSampleBank(string bankName)
{
EditorBeatmap.PerformOnSelection(h =>
{
- if (h.SampleControlPoint.SampleBank == bankName)
+ if (h.Samples.All(s => s.Bank == bankName))
return;
- h.SampleControlPoint.SampleBank = bankName;
- EditorBeatmap.Update(h);
- });
- }
-
- ///
- /// Removes a sample bank from all selected s.
- ///
- /// The name of the sample bank.
- public void RemoveSampleBank(string bankName)
- {
- EditorBeatmap.PerformOnSelection(h =>
- {
- if (h.SampleControlPoint.SampleBank == bankName)
- h.SampleControlPoint.SampleBankBindable.SetDefault();
-
+ h.Samples = h.Samples.Select(s => s.With(newBank: bankName)).ToList();
EditorBeatmap.Update(h);
});
}