fishbait/FishBait-UnityProject/Assets/FishBait/FishBaitTransport/FishBaitTransportVariables.cs
2022-10-25 23:42:01 +02:00

78 lines
2.9 KiB
C#

using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using UnityEngine.Events;
using UnityEngine;
using FishNet.Transporting;
using FishNet.Transporting.Multipass;
namespace FishBait
{
public partial class FishBaitTransport : Transport
{
// Connection/auth variables
[Tooltip("Transport to use.")]
[SerializeField]
public Transport transport;
public string serverIP = null;
public ushort serverPort = 7777;
public ushort endpointServerPort = 8080;
public float heartBeatInterval = 3;
public bool connectOnAwake = true;
public string authenticationKey = "Secret Auth Key";
public UnityEvent disconnectedFromRelay;
public UnityEvent connectedToRelay;
// NAT Puncher variables
public bool useNATPunch = false;
public int NATPunchtroughPort = -1;
private const int NAT_PUNCH_ATTEMPTS = 3;
// LLB variables (LRM Load Balancer)
public bool useLoadBalancer = false;
public ushort loadBalancerPort = 7070;
public string loadBalancerAddress = null;
// Server hosting variables
public string serverName = "My awesome server!";
public string extraServerData = "Map 1";
public int maxServerPlayers = 10;
public bool isPublicServer = true;
private const string LOCALHOST = "127.0.0.1";
// Server list variables
public UnityEvent serverListUpdated;
public List<Room> relayServerList { private set; get; } = new List<Room>();
// Current Server Information
public string serverStatus = "Not Started.";
public string serverId = string.Empty;
private FishBaitDirectConnectModule _directConnectModule;
public FishBaitRegions region = FishBaitRegions.NorthAmerica;
private byte[] _clientSendBuffer;
private bool _connectedToRelay = false;
private bool _isClient = false;
private bool _isServer = false;
private bool _directConnected = false;
private bool _isAuthenticated = false;
private int _currentMemberId;
private bool _callbacksInitialized = false;
private string _cachedHostID;
private UdpClient _NATPuncher;
private IPEndPoint _NATIP;
private IPEndPoint _relayPuncherIP;
private byte[] _punchData = new byte[1] { 1 };
private IPEndPoint _directConnectEndpoint;
private SocketProxy _clientProxy;
private BiDictionary<IPEndPoint, SocketProxy> _serverProxies = new BiDictionary<IPEndPoint, SocketProxy>();
private BiDictionary<int, int> _connectedRelayClients = new BiDictionary<int, int>();
private BiDictionary<int, int> _connectedDirectClients = new BiDictionary<int, int>();
private bool _serverListUpdated = false;
}
public enum FishBaitRegions { Any, NorthAmerica, SouthAmerica, Europe, Asia, Africa, Oceania }
}