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>();
|
2022-02-24 22:04:54 -08:00
|
|
|
|
}
|