mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-15 03:30:53 +01:00
Add support for client-side replays (#4122)
This commit is contained in:
@@ -1,13 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Robust.Server.Console;
|
||||
using Robust.Server.Player;
|
||||
using Robust.Shared;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.IoC;
|
||||
using Robust.Shared.Network;
|
||||
using Robust.Shared.Replays;
|
||||
using Robust.Shared.Serialization.Markdown.Mapping;
|
||||
using Robust.Shared.Upload;
|
||||
using Robust.Shared.ViewVariables;
|
||||
|
||||
@@ -18,7 +15,6 @@ public sealed class NetworkResourceManager : SharedNetworkResourceManager
|
||||
[Dependency] private readonly IPlayerManager _playerManager = default!;
|
||||
[Dependency] private readonly IServerNetManager _serverNetManager = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfgManager = default!;
|
||||
[Dependency] private readonly IReplayRecordingManager _replay = default!;
|
||||
[Dependency] private readonly IConGroupController _controller = default!;
|
||||
|
||||
public event Action<IPlayerSession, NetworkResourceUploadMessage>? OnResourceUploaded;
|
||||
@@ -33,16 +29,6 @@ public sealed class NetworkResourceManager : SharedNetworkResourceManager
|
||||
_serverNetManager.Connected += ServerNetManagerOnConnected;
|
||||
_cfgManager.OnValueChanged(CVars.ResourceUploadingEnabled, value => Enabled = value, true);
|
||||
_cfgManager.OnValueChanged(CVars.ResourceUploadingLimitMb, value => SizeLimit = value, true);
|
||||
_replay.OnRecordingStarted += OnStartReplayRecording;
|
||||
}
|
||||
|
||||
private void OnStartReplayRecording((MappingDataNode, List<object>) initReplayData)
|
||||
{
|
||||
// replays will need information about currently loaded extra resources
|
||||
foreach (var (path, data) in ContentRoot.GetAllFiles())
|
||||
{
|
||||
initReplayData.Item2.Add(new ReplayResourceUploadMsg { RelativePath = path, Data = data });
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -67,7 +53,7 @@ public sealed class NetworkResourceManager : SharedNetworkResourceManager
|
||||
if (SizeLimit > 0f && msg.Data.Length * BytesToMegabytes > SizeLimit)
|
||||
return;
|
||||
|
||||
ContentRoot.AddOrUpdateFile(msg.RelativePath, msg.Data);
|
||||
base.ResourceUploadMsg(msg);
|
||||
|
||||
// Now we broadcast the message!
|
||||
foreach (var channel in _serverNetManager.Channels)
|
||||
@@ -75,7 +61,6 @@ public sealed class NetworkResourceManager : SharedNetworkResourceManager
|
||||
channel.SendMessage(msg);
|
||||
}
|
||||
|
||||
_replay.QueueReplayMessage(new ReplayResourceUploadMsg { RelativePath = msg.RelativePath, Data = msg.Data });
|
||||
OnResourceUploaded?.Invoke(session, msg);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user