// Crest Water System
// Copyright © 2024 Wave Harmonic. All rights reserved.
using UnityEngine;
namespace WaveHarmonic.Crest
{
///
/// Gives a time to Crest with a custom time offset.
///
///
/// Assign this component to the component and set the
/// property of this component to the delta from
/// this client's time to the shared server time.
///
[AddComponentMenu(Constants.k_MenuPrefixTime + "Networked Time Provider")]
[@HelpURL("Manual/TimeProviders.html#network-synchronisation")]
public sealed class NetworkedTimeProvider : TimeProvider
{
[SerializeField, HideInInspector]
#pragma warning disable 414
int _Version = 0;
#pragma warning restore 414
///
/// If Time.time on this client is 1.5s ahead of the shared/server Time.time, set
/// this field to -1.5.
///
public float TimeOffsetToServer { get; set; }
readonly DefaultTimeProvider _DefaultTimeProvider = new();
///
public override float Time => _DefaultTimeProvider.Time + TimeOffsetToServer;
///
public override float Delta => _DefaultTimeProvider.Delta;
}
}