mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-03 17:53:57 +00:00
change assetid to int
This commit is contained in:
parent
49d94e7aaa
commit
bf14f089b2
@ -17,7 +17,7 @@ namespace QuantumUNET.Components
|
|||||||
public NetworkInstanceId NetId { get; private set; }
|
public NetworkInstanceId NetId { get; private set; }
|
||||||
public NetworkSceneId SceneId => m_SceneId;
|
public NetworkSceneId SceneId => m_SceneId;
|
||||||
public QNetworkConnection ClientAuthorityOwner { get; private set; }
|
public QNetworkConnection ClientAuthorityOwner { get; private set; }
|
||||||
public NetworkHash128 AssetId => m_AssetId;
|
public int AssetId => m_AssetId;
|
||||||
public bool IsLocalPlayer { get; private set; }
|
public bool IsLocalPlayer { get; private set; }
|
||||||
public short PlayerControllerId { get; private set; } = -1;
|
public short PlayerControllerId { get; private set; } = -1;
|
||||||
public QNetworkConnection ConnectionToServer { get; private set; }
|
public QNetworkConnection ConnectionToServer { get; private set; }
|
||||||
@ -57,9 +57,9 @@ namespace QuantumUNET.Components
|
|||||||
internal void RemoveSubIdentity(QNetworkIdentity identityToRemove)
|
internal void RemoveSubIdentity(QNetworkIdentity identityToRemove)
|
||||||
=> SubIdentities.Remove(identityToRemove);
|
=> SubIdentities.Remove(identityToRemove);
|
||||||
|
|
||||||
internal void SetDynamicAssetId(NetworkHash128 newAssetId)
|
internal void SetDynamicAssetId(int newAssetId)
|
||||||
{
|
{
|
||||||
if (!m_AssetId.IsValid() || m_AssetId.Equals(newAssetId))
|
if (m_AssetId == 0 || m_AssetId.Equals(newAssetId))
|
||||||
{
|
{
|
||||||
m_AssetId = newAssetId;
|
m_AssetId = newAssetId;
|
||||||
}
|
}
|
||||||
@ -821,7 +821,7 @@ namespace QuantumUNET.Components
|
|||||||
private NetworkSceneId m_SceneId;
|
private NetworkSceneId m_SceneId;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private NetworkHash128 m_AssetId;
|
private int m_AssetId;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private bool m_ServerOnly;
|
private bool m_ServerOnly;
|
||||||
|
@ -7,7 +7,7 @@ namespace QuantumUNET.Messages
|
|||||||
internal class QObjectSpawnMessage : QMessageBase
|
internal class QObjectSpawnMessage : QMessageBase
|
||||||
{
|
{
|
||||||
public NetworkInstanceId NetId;
|
public NetworkInstanceId NetId;
|
||||||
public NetworkHash128 assetId;
|
public int assetId;
|
||||||
public Vector3 Position;
|
public Vector3 Position;
|
||||||
public byte[] Payload;
|
public byte[] Payload;
|
||||||
public Quaternion Rotation;
|
public Quaternion Rotation;
|
||||||
@ -24,7 +24,7 @@ namespace QuantumUNET.Messages
|
|||||||
public override void Deserialize(QNetworkReader reader)
|
public override void Deserialize(QNetworkReader reader)
|
||||||
{
|
{
|
||||||
NetId = reader.ReadNetworkId();
|
NetId = reader.ReadNetworkId();
|
||||||
assetId = reader.ReadNetworkHash128();
|
assetId = reader.ReadInt32();
|
||||||
Position = reader.ReadVector3();
|
Position = reader.ReadVector3();
|
||||||
Payload = reader.ReadBytesAndSize();
|
Payload = reader.ReadBytesAndSize();
|
||||||
if (reader.Length - reader.Position >= 16U)
|
if (reader.Length - reader.Position >= 16U)
|
||||||
|
@ -3,5 +3,5 @@ using UnityEngine.Networking;
|
|||||||
|
|
||||||
namespace QuantumUNET
|
namespace QuantumUNET
|
||||||
{
|
{
|
||||||
public delegate GameObject QSpawnDelegate(Vector3 position, NetworkHash128 assetId);
|
public delegate GameObject QSpawnDelegate(Vector3 position, int assetId);
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ namespace QuantumUNET
|
|||||||
|
|
||||||
public static Dictionary<NetworkInstanceId, QNetworkIdentity> Objects => s_NetworkScene.localObjects;
|
public static Dictionary<NetworkInstanceId, QNetworkIdentity> Objects => s_NetworkScene.localObjects;
|
||||||
|
|
||||||
public static Dictionary<NetworkHash128, GameObject> Prefabs => QNetworkScene.guidToPrefab;
|
public static Dictionary<int, GameObject> Prefabs => QNetworkScene.guidToPrefab;
|
||||||
|
|
||||||
public static Dictionary<NetworkSceneId, QNetworkIdentity> SpawnableObjects { get; private set; }
|
public static Dictionary<NetworkSceneId, QNetworkIdentity> SpawnableObjects { get; private set; }
|
||||||
|
|
||||||
@ -305,7 +305,7 @@ namespace QuantumUNET
|
|||||||
client.RegisterHandlerSafe(QMsgType.AnimationTrigger, QNetworkAnimator.OnAnimationTriggerClientMessage);
|
client.RegisterHandlerSafe(QMsgType.AnimationTrigger, QNetworkAnimator.OnAnimationTriggerClientMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static string GetStringForAssetId(NetworkHash128 assetId)
|
internal static string GetStringForAssetId(int assetId)
|
||||||
{
|
{
|
||||||
if (QNetworkScene.GetPrefab(assetId, out var gameObject))
|
if (QNetworkScene.GetPrefab(assetId, out var gameObject))
|
||||||
{
|
{
|
||||||
@ -317,7 +317,7 @@ namespace QuantumUNET
|
|||||||
: "unknown";
|
: "unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RegisterPrefab(GameObject prefab, NetworkHash128 newAssetId) => QNetworkScene.RegisterPrefab(prefab, newAssetId);
|
public static void RegisterPrefab(GameObject prefab, int newAssetId) => QNetworkScene.RegisterPrefab(prefab, newAssetId);
|
||||||
|
|
||||||
public static void RegisterPrefab(GameObject prefab) => QNetworkScene.RegisterPrefab(prefab);
|
public static void RegisterPrefab(GameObject prefab) => QNetworkScene.RegisterPrefab(prefab);
|
||||||
|
|
||||||
@ -325,9 +325,9 @@ namespace QuantumUNET
|
|||||||
|
|
||||||
public static void UnregisterPrefab(GameObject prefab) => QNetworkScene.UnregisterPrefab(prefab);
|
public static void UnregisterPrefab(GameObject prefab) => QNetworkScene.UnregisterPrefab(prefab);
|
||||||
|
|
||||||
public static void RegisterSpawnHandler(NetworkHash128 assetId, QSpawnDelegate spawnHandler, UnSpawnDelegate unspawnHandler) => QNetworkScene.RegisterSpawnHandler(assetId, spawnHandler, unspawnHandler);
|
public static void RegisterSpawnHandler(int assetId, QSpawnDelegate spawnHandler, UnSpawnDelegate unspawnHandler) => QNetworkScene.RegisterSpawnHandler(assetId, spawnHandler, unspawnHandler);
|
||||||
|
|
||||||
public static void UnregisterSpawnHandler(NetworkHash128 assetId) => QNetworkScene.UnregisterSpawnHandler(assetId);
|
public static void UnregisterSpawnHandler(int assetId) => QNetworkScene.UnregisterSpawnHandler(assetId);
|
||||||
|
|
||||||
public static void ClearSpawners() => QNetworkScene.ClearSpawners();
|
public static void ClearSpawners() => QNetworkScene.ClearSpawners();
|
||||||
|
|
||||||
@ -367,7 +367,7 @@ namespace QuantumUNET
|
|||||||
private static void OnObjectSpawn(QNetworkMessage netMsg)
|
private static void OnObjectSpawn(QNetworkMessage netMsg)
|
||||||
{
|
{
|
||||||
netMsg.ReadMessage(s_ObjectSpawnMessage);
|
netMsg.ReadMessage(s_ObjectSpawnMessage);
|
||||||
if (!s_ObjectSpawnMessage.assetId.IsValid())
|
if (s_ObjectSpawnMessage.assetId == 0)
|
||||||
{
|
{
|
||||||
Debug.LogError($"OnObjSpawn netId: {s_ObjectSpawnMessage.NetId} has invalid asset Id. {s_ObjectSpawnMessage.assetId}");
|
Debug.LogError($"OnObjSpawn netId: {s_ObjectSpawnMessage.NetId} has invalid asset Id. {s_ObjectSpawnMessage.assetId}");
|
||||||
}
|
}
|
||||||
|
@ -7,9 +7,9 @@ namespace QuantumUNET
|
|||||||
{
|
{
|
||||||
internal class QNetworkScene
|
internal class QNetworkScene
|
||||||
{
|
{
|
||||||
internal static Dictionary<NetworkHash128, GameObject> guidToPrefab { get; } = new Dictionary<NetworkHash128, GameObject>();
|
internal static Dictionary<int, GameObject> guidToPrefab { get; } = new Dictionary<int, GameObject>();
|
||||||
internal static Dictionary<NetworkHash128, QSpawnDelegate> spawnHandlers { get; } = new Dictionary<NetworkHash128, QSpawnDelegate>();
|
internal static Dictionary<int, QSpawnDelegate> spawnHandlers { get; } = new Dictionary<int, QSpawnDelegate>();
|
||||||
internal static Dictionary<NetworkHash128, UnSpawnDelegate> unspawnHandlers { get; } = new Dictionary<NetworkHash128, UnSpawnDelegate>();
|
internal static Dictionary<int, UnSpawnDelegate> unspawnHandlers { get; } = new Dictionary<int, UnSpawnDelegate>();
|
||||||
internal Dictionary<NetworkInstanceId, QNetworkIdentity> localObjects { get; } = new Dictionary<NetworkInstanceId, QNetworkIdentity>();
|
internal Dictionary<NetworkInstanceId, QNetworkIdentity> localObjects { get; } = new Dictionary<NetworkInstanceId, QNetworkIdentity>();
|
||||||
|
|
||||||
internal void Shutdown()
|
internal void Shutdown()
|
||||||
@ -96,7 +96,7 @@ namespace QuantumUNET
|
|||||||
internal void ClearLocalObjects()
|
internal void ClearLocalObjects()
|
||||||
=> localObjects.Clear();
|
=> localObjects.Clear();
|
||||||
|
|
||||||
internal static void RegisterPrefab(GameObject prefab, NetworkHash128 newAssetId)
|
internal static void RegisterPrefab(GameObject prefab, int newAssetId)
|
||||||
{
|
{
|
||||||
var component = prefab.GetComponent<QNetworkIdentity>();
|
var component = prefab.GetComponent<QNetworkIdentity>();
|
||||||
if (component)
|
if (component)
|
||||||
@ -129,10 +129,10 @@ namespace QuantumUNET
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static bool GetPrefab(NetworkHash128 assetId, out GameObject prefab)
|
internal static bool GetPrefab(int assetId, out GameObject prefab)
|
||||||
{
|
{
|
||||||
bool result;
|
bool result;
|
||||||
if (!assetId.IsValid())
|
if (assetId == 0)
|
||||||
{
|
{
|
||||||
prefab = null;
|
prefab = null;
|
||||||
result = false;
|
result = false;
|
||||||
@ -158,13 +158,13 @@ namespace QuantumUNET
|
|||||||
unspawnHandlers.Clear();
|
unspawnHandlers.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void UnregisterSpawnHandler(NetworkHash128 assetId)
|
public static void UnregisterSpawnHandler(int assetId)
|
||||||
{
|
{
|
||||||
spawnHandlers.Remove(assetId);
|
spawnHandlers.Remove(assetId);
|
||||||
unspawnHandlers.Remove(assetId);
|
unspawnHandlers.Remove(assetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void RegisterSpawnHandler(NetworkHash128 assetId, QSpawnDelegate spawnHandler, UnSpawnDelegate unspawnHandler)
|
internal static void RegisterSpawnHandler(int assetId, QSpawnDelegate spawnHandler, UnSpawnDelegate unspawnHandler)
|
||||||
{
|
{
|
||||||
if (spawnHandler == null || unspawnHandler == null)
|
if (spawnHandler == null || unspawnHandler == null)
|
||||||
{
|
{
|
||||||
@ -202,7 +202,7 @@ namespace QuantumUNET
|
|||||||
{
|
{
|
||||||
Debug.LogError($"RegisterPrefab custom spawn function null for {component.AssetId}");
|
Debug.LogError($"RegisterPrefab custom spawn function null for {component.AssetId}");
|
||||||
}
|
}
|
||||||
else if (!component.AssetId.IsValid())
|
else if (component.AssetId == 0)
|
||||||
{
|
{
|
||||||
Debug.LogError($"RegisterPrefab game object {prefab.name} has no prefab. Use RegisterSpawnHandler() instead?");
|
Debug.LogError($"RegisterPrefab game object {prefab.name} has no prefab. Use RegisterSpawnHandler() instead?");
|
||||||
}
|
}
|
||||||
@ -213,7 +213,7 @@ namespace QuantumUNET
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static bool GetSpawnHandler(NetworkHash128 assetId, out QSpawnDelegate handler)
|
internal static bool GetSpawnHandler(int assetId, out QSpawnDelegate handler)
|
||||||
{
|
{
|
||||||
bool result;
|
bool result;
|
||||||
if (spawnHandlers.ContainsKey(assetId))
|
if (spawnHandlers.ContainsKey(assetId))
|
||||||
@ -230,7 +230,7 @@ namespace QuantumUNET
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static bool InvokeUnSpawnHandler(NetworkHash128 assetId, GameObject obj)
|
internal static bool InvokeUnSpawnHandler(int assetId, GameObject obj)
|
||||||
{
|
{
|
||||||
bool result;
|
bool result;
|
||||||
if (unspawnHandlers.ContainsKey(assetId) && unspawnHandlers[assetId] != null)
|
if (unspawnHandlers.ContainsKey(assetId) && unspawnHandlers[assetId] != null)
|
||||||
|
@ -1018,7 +1018,7 @@ namespace QuantumUNET
|
|||||||
|
|
||||||
if (conn != null)
|
if (conn != null)
|
||||||
{
|
{
|
||||||
conn.Send(3, objectSpawnMessage);
|
conn.Send(QMsgType.ObjectSpawn, objectSpawnMessage);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1209,14 +1209,14 @@ namespace QuantumUNET
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool SpawnWithClientAuthority(GameObject obj, NetworkHash128 assetId, QNetworkConnection conn)
|
public static bool SpawnWithClientAuthority(GameObject obj, int assetId, QNetworkConnection conn)
|
||||||
{
|
{
|
||||||
Spawn(obj, assetId);
|
Spawn(obj, assetId);
|
||||||
var component = obj.GetComponent<QNetworkIdentity>();
|
var component = obj.GetComponent<QNetworkIdentity>();
|
||||||
return !(component == null) && component.IsServer && component.AssignClientAuthority(conn);
|
return !(component == null) && component.IsServer && component.AssignClientAuthority(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Spawn(GameObject obj, NetworkHash128 assetId)
|
public static void Spawn(GameObject obj, int assetId)
|
||||||
{
|
{
|
||||||
if (VerifyCanSpawn(obj))
|
if (VerifyCanSpawn(obj))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user