1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-13 21:53:29 +08:00

Compare commits

...

10 Commits

60 changed files with 82 additions and 109 deletions
+1 -1
View File
@@ -52,7 +52,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="ppy.osu.Game.Resources" Version="2022.831.0" />
<PackageReference Include="ppy.osu.Framework.Android" Version="2022.825.0" />
<PackageReference Include="ppy.osu.Framework.Android" Version="2022.901.0" />
</ItemGroup>
<ItemGroup Label="Transitive Dependencies">
<!-- Realm needs to be directly referenced in all Xamarin projects, as it will not pull in its transitive dependencies otherwise. -->
@@ -56,7 +56,7 @@ namespace osu.Game.Rulesets.Catch.Edit.Blueprints.Components
public void UpdateFrom(ScrollingHitObjectContainer hitObjectContainer, JuiceStream hitObject)
{
while (path.Vertices.Count < InternalChildren.Count)
RemoveInternal(InternalChildren[^1]);
RemoveInternal(InternalChildren[^1], true);
while (InternalChildren.Count < path.Vertices.Count)
AddInternal(new VertexPiece());
@@ -30,7 +30,7 @@ namespace osu.Game.Rulesets.Catch.Edit.Blueprints.Components
.Where(h => !(h is TinyDroplet)));
while (nestedHitObjects.Count < InternalChildren.Count)
RemoveInternal(InternalChildren[^1]);
RemoveInternal(InternalChildren[^1], true);
while (InternalChildren.Count < nestedHitObjects.Count)
AddInternal(new FruitOutline());
+3 -3
View File
@@ -271,8 +271,8 @@ namespace osu.Game.Rulesets.Catch.UI
SetHyperDashState();
}
caughtObjectContainer.RemoveAll(d => d.HitObject == drawableObject.HitObject);
droppedObjectTarget.RemoveAll(d => d.HitObject == drawableObject.HitObject);
caughtObjectContainer.RemoveAll(d => d.HitObject == drawableObject.HitObject, false);
droppedObjectTarget.RemoveAll(d => d.HitObject == drawableObject.HitObject, false);
}
/// <summary>
@@ -430,7 +430,7 @@ namespace osu.Game.Rulesets.Catch.UI
{
var droppedObject = getDroppedObject(caughtObject);
caughtObjectContainer.Remove(caughtObject);
caughtObjectContainer.Remove(caughtObject, false);
droppedObjectTarget.Add(droppedObject);
@@ -93,15 +93,15 @@ namespace osu.Game.Rulesets.Catch.UI
switch (entry.Animation)
{
case CatcherTrailAnimation.Dashing:
dashTrails.Remove(drawable);
dashTrails.Remove(drawable, false);
break;
case CatcherTrailAnimation.HyperDashing:
hyperDashTrails.Remove(drawable);
hyperDashTrails.Remove(drawable, false);
break;
case CatcherTrailAnimation.HyperDashAfterImage:
hyperDashAfterImages.Remove(drawable);
hyperDashAfterImages.Remove(drawable, false);
break;
}
}
@@ -31,7 +31,7 @@ namespace osu.Game.Rulesets.Mania.Mods
HitObjectContainer hoc = column.HitObjectArea.HitObjectContainer;
Container hocParent = (Container)hoc.Parent;
hocParent.Remove(hoc);
hocParent.Remove(hoc, false);
hocParent.Add(new PlayfieldCoveringWrapper(hoc).With(c =>
{
c.RelativeSizeAxes = Axes.Both;
@@ -155,7 +155,7 @@ namespace osu.Game.Rulesets.Mania.Skinning.Legacy
else
{
lightContainer.FadeOut(120)
.OnComplete(d => Column.TopLevelContainer.Remove(d));
.OnComplete(d => Column.TopLevelContainer.Remove(d, false));
}
}
@@ -195,7 +195,7 @@ namespace osu.Game.Rulesets.Osu.Tests
{
var drawableObject = getFunc.Invoke();
hitObjectContainer.Remove(drawableObject);
hitObjectContainer.Remove(drawableObject, false);
followPointRenderer.RemoveFollowPoints(drawableObject.HitObject);
});
}
@@ -212,7 +212,7 @@ namespace osu.Game.Rulesets.Osu.Tests
else
targetTime = getObject(hitObjectContainer.Count - 1).HitObject.StartTime + 1;
hitObjectContainer.Remove(toReorder);
hitObjectContainer.Remove(toReorder, false);
toReorder.HitObject.StartTime = targetTime;
hitObjectContainer.Add(toReorder);
});
@@ -77,7 +77,7 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
// This is a bit ugly but we don't have the concept of InternalContent so it'll have to do for now. (https://github.com/ppy/osu-framework/issues/1690)
protected override void AddInternal(Drawable drawable) => shakeContainer.Add(drawable);
protected override void ClearInternal(bool disposeChildren = true) => shakeContainer.Clear(disposeChildren);
protected override bool RemoveInternal(Drawable drawable) => shakeContainer.Remove(drawable);
protected override bool RemoveInternal(Drawable drawable, bool disposeImmediately) => shakeContainer.Remove(drawable, disposeImmediately);
protected sealed override double InitialLifetimeOffset => HitObject.TimePreempt;
@@ -56,7 +56,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
isProxied = true;
nonProxiedContent.Remove(Content);
nonProxiedContent.Remove(Content, false);
proxiedContent.Add(Content);
}
@@ -70,7 +70,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
isProxied = false;
proxiedContent.Remove(Content);
proxiedContent.Remove(Content, false);
nonProxiedContent.Add(Content);
}
@@ -141,7 +141,7 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
Size = BaseSize = new Vector2(TaikoHitObject.DEFAULT_SIZE);
if (MainPiece != null)
Content.Remove(MainPiece);
Content.Remove(MainPiece, true);
Content.Add(MainPiece = CreateMainPiece());
}
@@ -171,7 +171,7 @@ namespace osu.Game.Tests.Visual.Background
=> AddStep("create loader", () =>
{
if (backgroundLoader != null)
Remove(backgroundLoader);
Remove(backgroundLoader, true);
Add(backgroundLoader = new SeasonalBackgroundLoader());
});
@@ -87,7 +87,7 @@ namespace osu.Game.Tests.Visual.Gameplay
Add(expectedComponentsAdjustmentContainer);
expectedComponentsAdjustmentContainer.UpdateSubTree();
var expectedInfo = expectedComponentsContainer.CreateSkinnableInfo();
Remove(expectedComponentsAdjustmentContainer);
Remove(expectedComponentsAdjustmentContainer, true);
return almostEqual(actualInfo, expectedInfo);
}
@@ -63,7 +63,7 @@ namespace osu.Game.Tests.Visual.Gameplay
{
base.TearDownSteps();
AddStep("stop watching user", () => spectatorClient.StopWatchingUser(dummy_user_id));
AddStep("remove test spectator client", () => Remove(spectatorClient));
AddStep("remove test spectator client", () => Remove(spectatorClient, false));
}
}
}
@@ -91,7 +91,7 @@ namespace osu.Game.Tests.Visual.Gameplay
private void loadStoryboard(IWorkingBeatmap working)
{
if (storyboard != null)
storyboardContainer.Remove(storyboard);
storyboardContainer.Remove(storyboard, true);
var decoupledClock = new DecoupleableInterpolatingFramedClock { IsCoupled = true };
storyboardContainer.Clock = decoupledClock;
@@ -106,7 +106,7 @@ namespace osu.Game.Tests.Visual.Gameplay
private void loadStoryboardNoVideo()
{
if (storyboard != null)
storyboardContainer.Remove(storyboard);
storyboardContainer.Remove(storyboard, true);
var decoupledClock = new DecoupleableInterpolatingFramedClock { IsCoupled = true };
storyboardContainer.Clock = decoupledClock;
@@ -62,8 +62,8 @@ namespace osu.Game.Tests.Visual.Menus
[SetUp]
public void SetUp() => Schedule(() =>
{
Remove(nowPlayingOverlay);
Remove(volumeOverlay);
Remove(nowPlayingOverlay, false);
Remove(volumeOverlay, false);
Children = new Drawable[]
{
@@ -34,7 +34,7 @@ namespace osu.Game.Tests.Visual.Navigation
AddStep("force save config", () => Game.LocalConfig.Save());
AddStep("remove game", () => Remove(Game));
AddStep("remove game", () => Remove(Game, true));
AddStep("create game again", CreateGame);
@@ -60,7 +60,7 @@ namespace osu.Game.Tests.Visual.Online
{
if (selected.Text == mod.Acronym)
{
selectedMods.Remove(selected);
selectedMods.Remove(selected, true);
break;
}
}
@@ -98,7 +98,7 @@ namespace osu.Game.Tests.Visual.SongSelect
OsuLogo logo = new OsuLogo { Scale = new Vector2(0.15f) };
Remove(testDifficultyCache);
Remove(testDifficultyCache, false);
Children = new Drawable[]
{
@@ -259,7 +259,7 @@ namespace osu.Game.Tests.Visual.UserInterface
private void removeFacade()
{
trackingContainer.Remove(logoFacade);
trackingContainer.Remove(logoFacade, false);
visualBox.Colour = Color4.White;
moveLogoFacade();
}
@@ -53,7 +53,7 @@ namespace osu.Game.Tournament.Tests.Screens
{
AddStep("setup screen", () =>
{
Remove(chat);
Remove(chat, false);
Children = new Drawable[]
{
@@ -93,7 +93,7 @@ namespace osu.Game.Tournament.Screens.Drawings.Components
{
allTeams.RemoveAll(gt => gt.Team == team);
if (teams.RemoveAll(gt => gt.Team == team) > 0)
if (teams.RemoveAll(gt => gt.Team == team, true) > 0)
{
TeamsCount--;
return true;
@@ -170,7 +170,7 @@ namespace osu.Game.Tournament.Screens.Drawings.Components
availableTeams.Add(team);
RemoveAll(c => c is ScrollingTeam);
RemoveAll(c => c is ScrollingTeam, false);
setScrollState(ScrollState.Idle);
}
@@ -186,7 +186,7 @@ namespace osu.Game.Tournament.Screens.Drawings.Components
public void ClearTeams()
{
availableTeams.Clear();
RemoveAll(c => c is ScrollingTeam);
RemoveAll(c => c is ScrollingTeam, true);
setScrollState(ScrollState.Idle);
}
@@ -57,7 +57,7 @@ namespace osu.Game.Tournament.Screens.Drawings.Components
if (allLines.Count == 0)
return;
Remove(allLines.First());
Remove(allLines.First(), true);
allLines.Remove(allLines.First());
}
@@ -106,7 +106,7 @@ namespace osu.Game.Tournament.Screens.Editors
break;
case NotifyCollectionChangedAction.Remove:
args.OldItems.Cast<TModel>().ForEach(i => flow.RemoveAll(d => d.Model == i));
args.OldItems.Cast<TModel>().ForEach(i => flow.RemoveAll(d => d.Model == i, true));
break;
}
};
+1 -1
View File
@@ -57,7 +57,7 @@ namespace osu.Game.Graphics.Backgrounds
{
if (bufferedContainer == null && newBlurSigma != Vector2.Zero)
{
RemoveInternal(Sprite);
RemoveInternal(Sprite, false);
AddInternal(bufferedContainer = new BufferedContainer(cachedFrameBuffer: true)
{
@@ -35,7 +35,7 @@ namespace osu.Game.Graphics.Containers
if (value == expandableHeader) return;
if (expandableHeader != null)
RemoveInternal(expandableHeader);
RemoveInternal(expandableHeader, false);
expandableHeader = value;
@@ -70,7 +70,7 @@ namespace osu.Game.Graphics.Containers
if (value == footer) return;
if (footer != null)
scrollContainer.Remove(footer);
scrollContainer.Remove(footer, true);
footer = value;
if (value == null) return;
@@ -59,7 +59,7 @@ namespace osu.Game.Graphics.Containers
drawable.StateChanged += state => selectionChanged(drawable, state);
}
public override bool Remove(T drawable)
public override bool Remove(T drawable, bool disposeImmediately)
=> throw new NotSupportedException($"Cannot remove drawables from {nameof(SelectionCycleFillFlowContainer<T>)}");
private void setSelected(int? value)
+1 -1
View File
@@ -74,7 +74,7 @@ namespace osu.Game.Graphics.UserInterface
}
//I'm using ToList() here because Where() returns an Enumerable which can change it's elements afterwards
RemoveRange(Children.Where((_, index) => index >= value.Count()).ToList());
RemoveRange(Children.Where((_, index) => index >= value.Count()).ToList(), true);
}
}
}
@@ -64,8 +64,8 @@ namespace osu.Game.Graphics.UserInterface
X = value.HasFlagFast(Anchor.x2) ? SIZE_RETRACTED.X * shear.X * 0.5f : 0;
Remove(c1);
Remove(c2);
Remove(c1, false);
Remove(c2, false);
c1.Depth = value.HasFlagFast(Anchor.x2) ? 0 : 1;
c2.Depth = value.HasFlagFast(Anchor.x2) ? 1 : 0;
Add(c1);
@@ -265,9 +265,8 @@ namespace osu.Game.Online.Multiplayer
/// <param name="matchType">The type of the match, if any.</param>
/// <param name="queueMode">The new queue mode, if any.</param>
/// <param name="autoStartDuration">The new auto-start countdown duration, if any.</param>
/// <param name="autoSkip">The new auto-skip setting.</param>
public Task ChangeSettings(Optional<string> name = default, Optional<string> password = default, Optional<MatchType> matchType = default, Optional<QueueMode> queueMode = default,
Optional<TimeSpan> autoStartDuration = default, Optional<bool> autoSkip = default)
Optional<TimeSpan> autoStartDuration = default)
{
if (Room == null)
throw new InvalidOperationException("Must be joined to a match to change settings.");
@@ -279,7 +278,6 @@ namespace osu.Game.Online.Multiplayer
MatchType = matchType.GetOr(Room.Settings.MatchType),
QueueMode = queueMode.GetOr(Room.Settings.QueueMode),
AutoStartDuration = autoStartDuration.GetOr(Room.Settings.AutoStartDuration),
AutoSkip = autoSkip.GetOr(Room.Settings.AutoSkip)
});
}
@@ -741,7 +739,6 @@ namespace osu.Game.Online.Multiplayer
APIRoom.QueueMode.Value = Room.Settings.QueueMode;
APIRoom.AutoStartDuration.Value = Room.Settings.AutoStartDuration;
APIRoom.CurrentPlaylistItem.Value = APIRoom.Playlist.Single(item => item.ID == settings.PlaylistItemId);
APIRoom.AutoSkip.Value = Room.Settings.AutoSkip;
RoomUpdated?.Invoke();
}
@@ -29,9 +29,6 @@ namespace osu.Game.Online.Multiplayer
[Key(5)]
public TimeSpan AutoStartDuration { get; set; }
[Key(6)]
public bool AutoSkip { get; set; }
[IgnoreMember]
public bool AutoStartEnabled => AutoStartDuration != TimeSpan.Zero;
@@ -45,8 +42,7 @@ namespace osu.Game.Online.Multiplayer
&& PlaylistItemId == other.PlaylistItemId
&& MatchType == other.MatchType
&& QueueMode == other.QueueMode
&& AutoStartDuration == other.AutoStartDuration
&& AutoSkip == other.AutoSkip;
&& AutoStartDuration == other.AutoStartDuration;
}
public override string ToString() => $"Name:{Name}"
@@ -54,7 +50,6 @@ namespace osu.Game.Online.Multiplayer
+ $" Type:{MatchType}"
+ $" Item:{PlaylistItemId}"
+ $" Queue:{QueueMode}"
+ $" Start:{AutoStartDuration}"
+ $" AutoSkip:{AutoSkip}";
+ $" Start:{AutoStartDuration}";
}
}
-5
View File
@@ -159,10 +159,6 @@ namespace osu.Game.Online.Rooms
set => MaxAttempts.Value = value;
}
[Cached]
[JsonProperty("auto_skip")]
public readonly Bindable<bool> AutoSkip = new Bindable<bool>();
public Room()
{
Password.BindValueChanged(p => HasPassword.Value = !string.IsNullOrEmpty(p.NewValue));
@@ -199,7 +195,6 @@ namespace osu.Game.Online.Rooms
DifficultyRange.Value = other.DifficultyRange.Value;
PlaylistItemStats.Value = other.PlaylistItemStats.Value;
CurrentPlaylistItem.Value = other.CurrentPlaylistItem.Value;
AutoSkip.Value = other.AutoSkip.Value;
if (EndDate.Value != null && DateTimeOffset.Now >= EndDate.Value)
Status.Value = new RoomStatusEnded();
+5
View File
@@ -390,6 +390,11 @@ namespace osu.Game
var framedClock = new FramedClock(beatmap.Track);
beatmapClock.ChangeSource(framedClock);
// Normally the internal decoupled clock will seek the *track* to the decoupled time, but we blocked this.
// It won't behave nicely unless we also set it to the track's time.
// Probably another thing which should be fixed in the decoupled mess (or just replaced).
beatmapClock.Seek(beatmap.Track.CurrentTime);
}
protected virtual void InitialiseFonts()
@@ -99,7 +99,7 @@ namespace osu.Game.Overlays.Chat.ChannelList
FillFlowContainer<ChannelListItem> flow = getFlowForChannel(channel);
channelMap.Remove(channel);
flow.Remove(item);
flow.Remove(item, true);
updateVisibility();
}
+1 -1
View File
@@ -181,7 +181,7 @@ namespace osu.Game.Overlays.Chat
{
Trace.Assert(updated.Id.HasValue, "An updated message was returned with no ID.");
ChatLineFlow.Remove(found);
ChatLineFlow.Remove(found, false);
found.Message = updated;
ChatLineFlow.Add(found);
}
@@ -126,13 +126,13 @@ namespace osu.Game.Overlays
Debug.Assert(notification.Parent == toastFlow);
// Temporarily remove from flow so we can animate the position off to the right.
toastFlow.Remove(notification);
toastFlow.Remove(notification, false);
AddInternal(notification);
notification.MoveToOffset(new Vector2(400, 0), NotificationOverlay.TRANSITION_LENGTH, Easing.OutQuint);
notification.FadeOut(NotificationOverlay.TRANSITION_LENGTH, Easing.OutQuint).OnComplete(_ =>
{
RemoveInternal(notification);
RemoveInternal(notification, false);
ForwardNotificationToPermanentStore?.Invoke(notification);
notification.FadeIn(300, Easing.OutQuint);
@@ -165,7 +165,7 @@ namespace osu.Game.Rulesets.Judgements
// sub-classes might have added their own children that would be removed here if .InternalChild was used.
if (JudgementBody != null)
RemoveInternal(JudgementBody);
RemoveInternal(JudgementBody, true);
AddInternal(JudgementBody = new SkinnableDrawable(new GameplaySkinComponent<HitResult>(type), _ =>
CreateDefaultJudgement(type), confineMode: ConfineMode.NoScaling)
@@ -132,7 +132,7 @@ namespace osu.Game.Rulesets.Objects.Pooling
/// <remarks>
/// Invoked when the entry became dead.
/// </remarks>
protected virtual void RemoveDrawable(TEntry entry, TDrawable drawable) => RemoveInternal(drawable);
protected virtual void RemoveDrawable(TEntry entry, TDrawable drawable) => RemoveInternal(drawable, false);
private void entryCrossedBoundary(LifetimeEntry lifetimeEntry, LifetimeBoundaryKind kind, LifetimeBoundaryCrossingDirection direction)
{
+1 -1
View File
@@ -124,7 +124,7 @@ namespace osu.Game.Rulesets.UI
unbindStartTime(drawable);
RemoveInternal(drawable);
RemoveInternal(drawable, false);
}
#endregion
+1 -1
View File
@@ -18,7 +18,7 @@ namespace osu.Game.Rulesets.UI
// remove any existing judgements for the judged object.
// this can be the case when rewinding.
RemoveAll(c => c.JudgedObject == judgement.JudgedObject);
RemoveAll(c => c.JudgedObject == judgement.JudgedObject, false);
base.Add(judgement);
}
@@ -292,7 +292,7 @@ namespace osu.Game.Screens.Edit.Compose.Components
blueprint.Selected -= OnBlueprintSelected;
blueprint.Deselected -= OnBlueprintDeselected;
SelectionBlueprints.Remove(blueprint);
SelectionBlueprints.Remove(blueprint, true);
if (movementBlueprints?.Contains(blueprint) == true)
finishSelectionMovement();
@@ -35,10 +35,10 @@ namespace osu.Game.Screens.Edit.Compose.Components
base.Add(drawable);
}
public override bool Remove(SelectionBlueprint<HitObject> drawable)
public override bool Remove(SelectionBlueprint<HitObject> drawable, bool disposeImmediately)
{
SortInternal();
return base.Remove(drawable);
return base.Remove(drawable, disposeImmediately);
}
protected override int Compare(Drawable x, Drawable y)
@@ -77,7 +77,7 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
{
if (placementBlueprint != null)
{
SelectionBlueprints.Remove(placementBlueprint);
SelectionBlueprints.Remove(placementBlueprint, true);
placementBlueprint = null;
}
}
+1 -2
View File
@@ -255,8 +255,7 @@ namespace osu.Game.Screens.Menu
{
lazerLogo.FadeOut().OnComplete(_ =>
{
logoContainerSecondary.Remove(lazerLogo);
lazerLogo.Dispose(); // explicit disposal as we are pushing a new screen and the expire may not get run.
logoContainerSecondary.Remove(lazerLogo, true);
logo.FadeIn();
@@ -232,7 +232,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
private void removeUser(APIUser user)
{
avatarFlow.RemoveAll(a => a.User == user);
avatarFlow.RemoveAll(a => a.User == user, true);
}
private void clearUsers()
@@ -250,7 +250,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
hiddenUsers.Count = hiddenCount;
if (displayedCircles > NumberOfCircles)
avatarFlow.Remove(avatarFlow.Last());
avatarFlow.Remove(avatarFlow.Last(), true);
else if (displayedCircles < NumberOfCircles)
{
var nextUser = RecentParticipants.FirstOrDefault(u => avatarFlow.All(a => a.User != u));
@@ -138,7 +138,7 @@ namespace osu.Game.Screens.OnlinePlay.Lounge.Components
{
foreach (var r in rooms)
{
roomFlow.RemoveAll(d => d.Room == r);
roomFlow.RemoveAll(d => d.Room == r, true);
// selection may have a lease due to being in a sub screen.
if (!SelectedRoom.Disabled)
@@ -63,7 +63,6 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
public MatchTypePicker TypePicker;
public OsuEnumDropdown<QueueMode> QueueModeDropdown;
public OsuTextBox PasswordTextBox;
public OsuCheckbox AutoSkipCheckbox;
public TriangleButton ApplyButton;
public OsuSpriteText ErrorText;
@@ -250,13 +249,6 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
LengthLimit = 255,
},
},
new Section("Other")
{
Child = AutoSkipCheckbox = new OsuCheckbox
{
LabelText = "Automatically skip the beatmap intro"
}
}
}
}
},
@@ -351,7 +343,6 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
Password.BindValueChanged(password => PasswordTextBox.Text = password.NewValue ?? string.Empty, true);
QueueMode.BindValueChanged(mode => QueueModeDropdown.Current.Value = mode.NewValue, true);
AutoStartDuration.BindValueChanged(duration => startModeDropdown.Current.Value = (StartMode)(int)duration.NewValue.TotalSeconds, true);
AutoSkip.BindValueChanged(autoSkip => AutoSkipCheckbox.Current.Value = autoSkip.NewValue, true);
operationInProgress.BindTo(ongoingOperationTracker.InProgress);
operationInProgress.BindValueChanged(v =>
@@ -399,8 +390,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
password: PasswordTextBox.Text,
matchType: TypePicker.Current.Value,
queueMode: QueueModeDropdown.Current.Value,
autoStartDuration: autoStartDuration,
autoSkip: AutoSkipCheckbox.Current.Value)
autoStartDuration: autoStartDuration)
.ContinueWith(t => Schedule(() =>
{
if (t.IsCompletedSuccessfully)
@@ -416,7 +406,6 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer.Match
room.Password.Value = PasswordTextBox.Current.Value;
room.QueueMode.Value = QueueModeDropdown.Current.Value;
room.AutoStartDuration.Value = autoStartDuration;
room.AutoSkip.Value = AutoSkipCheckbox.Current.Value;
if (int.TryParse(MaxParticipantsField.Text, out int max))
room.MaxParticipants.Value = max;
@@ -61,8 +61,7 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
{
AllowPause = false,
AllowRestart = false,
AllowSkipping = room.AutoSkip.Value,
AutomaticallySkipIntro = room.AutoSkip.Value
AllowSkipping = false,
})
{
this.users = users;
@@ -86,9 +86,6 @@ namespace osu.Game.Screens.OnlinePlay
[Resolved(typeof(Room))]
protected Bindable<TimeSpan> AutoStartDuration { get; private set; }
[Resolved(typeof(Room))]
protected Bindable<bool> AutoSkip { get; private set; }
[Resolved(CanBeNull = true)]
private IBindable<PlaylistItem> subScreenSelectedItem { get; set; }
+1 -2
View File
@@ -166,8 +166,7 @@ namespace osu.Game.Screens.Play
if (filters.Parent == null)
return;
RemoveInternal(filters);
filters.Dispose();
RemoveInternal(filters, true);
}
protected override void Update()
+1 -1
View File
@@ -363,7 +363,7 @@ namespace osu.Game.Screens.Play
return;
CurrentPlayer = createPlayer();
CurrentPlayer.Configuration.AutomaticallySkipIntro |= quickRestart;
CurrentPlayer.Configuration.AutomaticallySkipIntro = quickRestart;
CurrentPlayer.RestartCount = restartCount++;
CurrentPlayer.RestartRequested = restartRequested;
+1 -1
View File
@@ -317,7 +317,7 @@ namespace osu.Game.Screens.Ranking
var screenSpacePos = detachedPanel.ScreenSpaceDrawQuad.TopLeft;
// Remove from the local container and re-attach.
detachedPanelContainer.Remove(detachedPanel);
detachedPanelContainer.Remove(detachedPanel, false);
ScorePanelList.Attach(detachedPanel);
// Move into its original location in the attached container first, then to the final location.
@@ -34,7 +34,7 @@ namespace osu.Game.Screens.Ranking
if (InternalChildren.Count == 0)
throw new InvalidOperationException("Score panel container is not attached.");
RemoveInternal(Panel);
RemoveInternal(Panel, false);
}
/// <summary>
+1 -1
View File
@@ -151,7 +151,7 @@ namespace osu.Game.Skinning
bool wasPlaying = IsPlaying;
// Remove all pooled samples (return them to the pool), and dispose the rest.
samplesContainer.RemoveAll(s => s.IsInPool);
samplesContainer.RemoveAll(s => s.IsInPool, false);
samplesContainer.Clear();
foreach (var s in samples)
@@ -85,7 +85,7 @@ namespace osu.Game.Skinning
if (!(component is Drawable drawable))
throw new ArgumentException($"Provided argument must be of type {nameof(Drawable)}.", nameof(component));
content.Remove(drawable);
content.Remove(drawable, true);
components.Remove(component);
}
+1 -4
View File
@@ -58,10 +58,7 @@ namespace osu.Game.Tests.Visual
AddStep("Create new game instance", () =>
{
if (Game?.Parent != null)
{
Remove(Game);
Game.Dispose();
}
Remove(Game, true);
RecycleLocalStorage(false);
+4 -3
View File
@@ -404,9 +404,9 @@ namespace osu.Game.Tests.Visual
public IEnumerable<string> GetAvailableResources() => throw new NotImplementedException();
public Track GetVirtual(double length = double.PositiveInfinity)
public Track GetVirtual(double length = double.PositiveInfinity, string name = "virtual")
{
var track = new TrackVirtualManual(referenceClock) { Length = length };
var track = new TrackVirtualManual(referenceClock, name) { Length = length };
AddItem(track);
return track;
}
@@ -421,7 +421,8 @@ namespace osu.Game.Tests.Visual
private bool running;
public TrackVirtualManual(IFrameBasedClock referenceClock)
public TrackVirtualManual(IFrameBasedClock referenceClock, string name = "virtual")
: base(name)
{
this.referenceClock = referenceClock;
Length = double.PositiveInfinity;
@@ -72,7 +72,7 @@ namespace osu.Game.Tests.Visual
protected void ResetPlacement()
{
if (CurrentBlueprint != null)
Remove(CurrentBlueprint);
Remove(CurrentBlueprint, true);
Add(CurrentBlueprint = CreateBlueprint());
}
+1 -1
View File
@@ -36,7 +36,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Realm" Version="10.15.1" />
<PackageReference Include="ppy.osu.Framework" Version="2022.825.0" />
<PackageReference Include="ppy.osu.Framework" Version="2022.901.0" />
<PackageReference Include="ppy.osu.Game.Resources" Version="2022.831.0" />
<PackageReference Include="Sentry" Version="3.20.1" />
<PackageReference Include="SharpCompress" Version="0.32.2" />
+2 -2
View File
@@ -61,7 +61,7 @@
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup Label="Package References">
<PackageReference Include="ppy.osu.Framework.iOS" Version="2022.825.0" />
<PackageReference Include="ppy.osu.Framework.iOS" Version="2022.901.0" />
<PackageReference Include="ppy.osu.Game.Resources" Version="2022.831.0" />
</ItemGroup>
<!-- See https://github.com/dotnet/runtime/issues/35988 (can be removed after Xamarin uses net6.0) -->
@@ -84,7 +84,7 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.14" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite.Core" Version="5.0.14" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="ppy.osu.Framework" Version="2022.825.0" />
<PackageReference Include="ppy.osu.Framework" Version="2022.901.0" />
<PackageReference Include="SharpCompress" Version="0.32.1" />
<PackageReference Include="NUnit" Version="3.13.3" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />