Add StickGame Assets

This commit is contained in:
Dzejkobik007
2024-03-24 22:21:16 +01:00
parent 5a5812c0c7
commit 6c8b523d1f
6643 changed files with 596260 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
using FishNet.Managing;
using FishNet.Managing.Predicting;
using FishNet.Managing.Timing;
using FishNet.Serializing;
using FishNet.Transporting;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using UnityEngine;
namespace FishNet.Connection
{
/// <summary>
/// A container for a connected client used to perform actions on and gather information for the declared client.
/// </summary>
public partial class NetworkConnection
{
/// <summary>
/// Average number of replicates in queue for the past x received replicates.
/// </summary>
private MovingAverage _replicateQueueAverage;
/// <summary>
/// Last tick replicateQueueAverage was updated.
/// </summary>
private uint _lastAverageQueueAddTick;
internal void Prediction_Initialize(NetworkManager manager, bool asServer)
{
if (asServer)
{
int movingAverageCount = (int)Mathf.Max((float)manager.TimeManager.TickRate * 0.25f, 3f);
_replicateQueueAverage = new MovingAverage(movingAverageCount);
}
}
/// <summary>
/// Adds to the average number of queued replicates.
/// </summary>
internal void AddAverageQueueCount(ushort value, uint tick)
{
/* If have not added anything to the averages for several ticks
* then reset average. */
if ((tick - _lastAverageQueueAddTick) > _replicateQueueAverage.SampleSize)
_replicateQueueAverage.Reset();
_lastAverageQueueAddTick = tick;
_replicateQueueAverage.ComputeAverage((float)value);
}
/// <summary>
/// Returns the highest queue count after resetting it.
/// </summary>
/// <returns></returns>
internal ushort GetAndResetAverageQueueCount()
{
if (_replicateQueueAverage == null)
return 0;
int avg = (int)(_replicateQueueAverage.Average);
if (avg < 0)
avg = 0;
return (ushort)avg;
}
/// <summary>
/// Local tick when the connection last replicated.
/// </summary>
public uint LocalReplicateTick { get; internal set; }
/// <summary>
/// Resets NetworkConnection.
/// </summary>
[MethodImpl(MethodImplOptions.AggressiveInlining)]
private void Prediction_Reset()
{
GetAndResetAverageQueueCount();
}
}
}