#if USING_NETCODE_GO

using System;
using UnityEngine;
using Unity.Collections;
using Unity.Netcode;
#if USING_TMP
using TMPro;
#endif
using SimplifyXR;
using UnityEngine.UI;

public abstract class NetworkVariableBehaviour : NetworkBehaviour
{
    public Text _textField;
#if USING_TMP
    public TextMeshProUGUI _textField_TMPUGUI;
    public TextMeshPro _textField_TMP;
#endif

    public virtual void TextObjectFinder(String text) { }

    public virtual void UpdateBoolValue() { }

    public virtual void UpdateBoolValue(bool Bool) { }

    public virtual void UpdateIntValue(int Int) { }

    public virtual void UpdateIntValue(int Int, bool Bool){}

    public virtual void UpdateFloatValue(float Float) { }

    public virtual void UpdateFloatValue(float Float, bool Bool) { }

    public virtual void UpdateFixedString128Value(FixedString128Bytes FixedString128) { }


    [ClientRpc]
    public virtual void UpdateBoolTextClientRpc() { }

    [ClientRpc]
    public virtual void UpdateIntTextClientRpc() { }

    [ClientRpc]
    public virtual void UpdateFloatTextClientRpc() { }

    [ClientRpc]
    public virtual void UpdateStringTextClientRpc() { }


    [ServerRpc(RequireOwnership = false)]
    public virtual void RequestBoolValueServerRpc(NetworkObjectReference networkObjectReference, bool Bool) { }

    [ServerRpc(RequireOwnership = false)]
    public virtual void RequestIntValueServerRpc(NetworkObjectReference networkObjectReference, Int32 Int) { }

    [ServerRpc(RequireOwnership = false)]
    public virtual void RequestIntValueServerRpc(NetworkObjectReference networkObjectReference, Int32 Int, bool Bool) { }

    [ServerRpc(RequireOwnership = false)]
    public virtual void RequestFloatValueServerRpc(NetworkObjectReference networkObjectReference, float Float) { }

    [ServerRpc(RequireOwnership = false)]
    public virtual void RequestFloatValueServerRpc(NetworkObjectReference networkObjectReference, float Float, bool Bool) { }

    [ServerRpc(RequireOwnership = false)]
    public virtual void RequestFixedString128ValueServerRpc(NetworkObjectReference networkObjectReference, FixedString128Bytes FixedString) { }

    [ServerRpc(RequireOwnership = false)]
    public virtual void ShareNetworkBehaviourMessageServerRpc(string message) { }
}

#endif