From bf14f089b2f0b13a4e63f82cb04de58d3967d234 Mon Sep 17 00:00:00 2001 From: Mister_Nebula <41904486+misternebula@users.noreply.github.com> Date: Wed, 13 Oct 2021 18:09:16 +0100 Subject: [PATCH] change assetid to int --- QuantumUNET/Components/QNetworkIdentity.cs | 8 ++++---- QuantumUNET/Messages/QObjectSpawnMessage.cs | 4 ++-- QuantumUNET/Messages/QSpawnDelegate.cs | 2 +- QuantumUNET/QClientScene.cs | 12 +++++------ QuantumUNET/QNetworkScene.cs | 22 ++++++++++----------- QuantumUNET/QNetworkServer.cs | 6 +++--- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/QuantumUNET/Components/QNetworkIdentity.cs b/QuantumUNET/Components/QNetworkIdentity.cs index 1ee300ff..040e5905 100644 --- a/QuantumUNET/Components/QNetworkIdentity.cs +++ b/QuantumUNET/Components/QNetworkIdentity.cs @@ -17,7 +17,7 @@ namespace QuantumUNET.Components public NetworkInstanceId NetId { get; private set; } public NetworkSceneId SceneId => m_SceneId; public QNetworkConnection ClientAuthorityOwner { get; private set; } - public NetworkHash128 AssetId => m_AssetId; + public int AssetId => m_AssetId; public bool IsLocalPlayer { get; private set; } public short PlayerControllerId { get; private set; } = -1; public QNetworkConnection ConnectionToServer { get; private set; } @@ -57,9 +57,9 @@ namespace QuantumUNET.Components internal void RemoveSubIdentity(QNetworkIdentity 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; } @@ -821,7 +821,7 @@ namespace QuantumUNET.Components private NetworkSceneId m_SceneId; [SerializeField] - private NetworkHash128 m_AssetId; + private int m_AssetId; [SerializeField] private bool m_ServerOnly; diff --git a/QuantumUNET/Messages/QObjectSpawnMessage.cs b/QuantumUNET/Messages/QObjectSpawnMessage.cs index 9376e042..77cfcc90 100644 --- a/QuantumUNET/Messages/QObjectSpawnMessage.cs +++ b/QuantumUNET/Messages/QObjectSpawnMessage.cs @@ -7,7 +7,7 @@ namespace QuantumUNET.Messages internal class QObjectSpawnMessage : QMessageBase { public NetworkInstanceId NetId; - public NetworkHash128 assetId; + public int assetId; public Vector3 Position; public byte[] Payload; public Quaternion Rotation; @@ -24,7 +24,7 @@ namespace QuantumUNET.Messages public override void Deserialize(QNetworkReader reader) { NetId = reader.ReadNetworkId(); - assetId = reader.ReadNetworkHash128(); + assetId = reader.ReadInt32(); Position = reader.ReadVector3(); Payload = reader.ReadBytesAndSize(); if (reader.Length - reader.Position >= 16U) diff --git a/QuantumUNET/Messages/QSpawnDelegate.cs b/QuantumUNET/Messages/QSpawnDelegate.cs index 066c5271..f607acef 100644 --- a/QuantumUNET/Messages/QSpawnDelegate.cs +++ b/QuantumUNET/Messages/QSpawnDelegate.cs @@ -3,5 +3,5 @@ using UnityEngine.Networking; namespace QuantumUNET { - public delegate GameObject QSpawnDelegate(Vector3 position, NetworkHash128 assetId); + public delegate GameObject QSpawnDelegate(Vector3 position, int assetId); } diff --git a/QuantumUNET/QClientScene.cs b/QuantumUNET/QClientScene.cs index eb57c89d..7ae26289 100644 --- a/QuantumUNET/QClientScene.cs +++ b/QuantumUNET/QClientScene.cs @@ -21,7 +21,7 @@ namespace QuantumUNET public static Dictionary Objects => s_NetworkScene.localObjects; - public static Dictionary Prefabs => QNetworkScene.guidToPrefab; + public static Dictionary Prefabs => QNetworkScene.guidToPrefab; public static Dictionary SpawnableObjects { get; private set; } @@ -305,7 +305,7 @@ namespace QuantumUNET 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)) { @@ -317,7 +317,7 @@ namespace QuantumUNET : "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); @@ -325,9 +325,9 @@ namespace QuantumUNET 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(); @@ -367,7 +367,7 @@ namespace QuantumUNET private static void OnObjectSpawn(QNetworkMessage netMsg) { 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}"); } diff --git a/QuantumUNET/QNetworkScene.cs b/QuantumUNET/QNetworkScene.cs index 8704b830..643d3ccb 100644 --- a/QuantumUNET/QNetworkScene.cs +++ b/QuantumUNET/QNetworkScene.cs @@ -7,9 +7,9 @@ namespace QuantumUNET { internal class QNetworkScene { - internal static Dictionary guidToPrefab { get; } = new Dictionary(); - internal static Dictionary spawnHandlers { get; } = new Dictionary(); - internal static Dictionary unspawnHandlers { get; } = new Dictionary(); + internal static Dictionary guidToPrefab { get; } = new Dictionary(); + internal static Dictionary spawnHandlers { get; } = new Dictionary(); + internal static Dictionary unspawnHandlers { get; } = new Dictionary(); internal Dictionary localObjects { get; } = new Dictionary(); internal void Shutdown() @@ -96,7 +96,7 @@ namespace QuantumUNET internal void ClearLocalObjects() => localObjects.Clear(); - internal static void RegisterPrefab(GameObject prefab, NetworkHash128 newAssetId) + internal static void RegisterPrefab(GameObject prefab, int newAssetId) { var component = prefab.GetComponent(); 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; - if (!assetId.IsValid()) + if (assetId == 0) { prefab = null; result = false; @@ -158,13 +158,13 @@ namespace QuantumUNET unspawnHandlers.Clear(); } - public static void UnregisterSpawnHandler(NetworkHash128 assetId) + public static void UnregisterSpawnHandler(int assetId) { spawnHandlers.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) { @@ -202,7 +202,7 @@ namespace QuantumUNET { 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?"); } @@ -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; if (spawnHandlers.ContainsKey(assetId)) @@ -230,7 +230,7 @@ namespace QuantumUNET return result; } - internal static bool InvokeUnSpawnHandler(NetworkHash128 assetId, GameObject obj) + internal static bool InvokeUnSpawnHandler(int assetId, GameObject obj) { bool result; if (unspawnHandlers.ContainsKey(assetId) && unspawnHandlers[assetId] != null) diff --git a/QuantumUNET/QNetworkServer.cs b/QuantumUNET/QNetworkServer.cs index df98093f..b40e456b 100644 --- a/QuantumUNET/QNetworkServer.cs +++ b/QuantumUNET/QNetworkServer.cs @@ -1018,7 +1018,7 @@ namespace QuantumUNET if (conn != null) { - conn.Send(3, objectSpawnMessage); + conn.Send(QMsgType.ObjectSpawn, objectSpawnMessage); } else { @@ -1209,14 +1209,14 @@ namespace QuantumUNET 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); var component = obj.GetComponent(); 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)) {