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.Object;
using GameKit.Utilities;
using System;
using System.Collections.Generic;
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
{
public class LevelOfDetailData : IResettable
{
/// <summary>
/// Current level of detail for a NetworkObject.
/// </summary>
public byte CurrentLevelOfDetail;
/// <summary>
/// Previous level of detail for a NetworkObject.
/// </summary>
public byte PreviousLevelOfDetail;
internal void Update(byte lodLevel)
{
PreviousLevelOfDetail = CurrentLevelOfDetail;
CurrentLevelOfDetail = lodLevel;
}
public void ResetState()
{
CurrentLevelOfDetail = 0;
PreviousLevelOfDetail = 0;
}
public void InitializeState() { }
}
/// <summary>
/// Level of detail for each NetworkObject.
/// Since this is called frequently this field is intentionally not an accessor to increase performance.
/// </summary>
public Dictionary<NetworkObject, LevelOfDetailData> LevelOfDetails = new Dictionary<NetworkObject, LevelOfDetailData>(new NetworkObjectIdComparer());
/// <summary>
/// Number oftimes this connection may send a forced LOD update.
/// </summary>
internal int AllowedForcedLodUpdates;
/// <summary>
/// Last tick an LOD was sent.
/// On client and clientHost this is LocalTick.
/// On server only this is LastPacketTick for the connection.
/// </summary>
internal uint LastLevelOfDetailUpdate;
/// <summary>
/// Returns if the client has not sent an LOD update for expectedInterval.
/// </summary>
/// <returns></returns>
internal bool IsLateForLevelOfDetail(uint expectedInterval)
{
//Local client is immune since server and client share ticks.
if (IsLocalClient)
return false;
uint lastPacketTick = PacketTick.RemoteTick;
return ((lastPacketTick - LastLevelOfDetailUpdate) > expectedInterval);
}
/// <summary>
/// Number of level of detail update infractions for this connection.
/// </summary>
internal int LevelOfDetailInfractions;
private void ResetStates_Lod()
{
foreach (LevelOfDetailData data in LevelOfDetails.Values)
ResettableObjectCaches<LevelOfDetailData>.Store(data);
LevelOfDetails.Clear();
}
}
}