19 lines
609 B
C#
Raw Normal View History

2022-01-18 10:06:15 -08:00
using Mirror;
using System;
using System.Collections.Generic;
2022-03-02 19:46:33 -08:00
namespace QSB.Utility.VariableSync;
public abstract class BaseVariableSyncer<T> : QSBNetworkBehaviour
2021-11-26 17:36:14 +00:00
{
2022-03-02 19:46:33 -08:00
protected override float SendInterval => 0.1f;
2022-01-18 10:06:15 -08:00
2022-03-14 06:42:00 -07:00
protected T PrevValue;
2022-03-02 19:46:33 -08:00
[NonSerialized]
public T Value;
2022-01-18 10:06:15 -08:00
2022-06-07 11:40:06 -07:00
protected override bool HasChanged() => !EqualityComparer<T>.Default.Equals(PrevValue, Value);
2022-03-14 06:42:00 -07:00
protected override void UpdatePrevData() => PrevValue = Value;
2022-03-02 19:46:33 -08:00
protected override void Serialize(NetworkWriter writer) => writer.Write(Value);
protected override void Deserialize(NetworkReader reader) => Value = reader.Read<T>();
}