From f6f484549a5ed70c91b011887dfa74a93a858860 Mon Sep 17 00:00:00 2001 From: Aaro Varis Date: Thu, 24 Jul 2025 00:25:01 +0300 Subject: [PATCH] idk whar i did --- .idea/.idea.BoneSync/.idea/.gitignore | 13 +++++++++++++ .idea/.idea.BoneSync/.idea/encodings.xml | 4 ++++ .idea/.idea.BoneSync/.idea/indexLayout.xml | 8 ++++++++ .idea/.idea.BoneSync/.idea/vcs.xml | 6 ++++++ BoneSync/Data/ByteEncoder.cs | 11 +++++++++-- BoneSync/Data/Structs.cs | 10 +++++----- .../Networking/LobbyManager/SteamLobbyManager.cs | 15 ++++++++++++--- BoneSync/Networking/NetworkMessage.cs | 5 +---- BoneSync/Player/PlayerRig.cs | 6 +++--- BoneSync/Sync/Components/SyncableBase.cs | 1 + BoneSync/Sync/Components/SyncablePhysics.cs | 6 +++++- BoneSync/Sync/ObjectSync.cs | 2 +- 12 files changed, 68 insertions(+), 19 deletions(-) create mode 100644 .idea/.idea.BoneSync/.idea/.gitignore create mode 100644 .idea/.idea.BoneSync/.idea/encodings.xml create mode 100644 .idea/.idea.BoneSync/.idea/indexLayout.xml create mode 100644 .idea/.idea.BoneSync/.idea/vcs.xml diff --git a/.idea/.idea.BoneSync/.idea/.gitignore b/.idea/.idea.BoneSync/.idea/.gitignore new file mode 100644 index 0000000..481acc1 --- /dev/null +++ b/.idea/.idea.BoneSync/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/contentModel.xml +/.idea.BoneSync.iml +/projectSettingsUpdater.xml +/modules.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.BoneSync/.idea/encodings.xml b/.idea/.idea.BoneSync/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/.idea.BoneSync/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.BoneSync/.idea/indexLayout.xml b/.idea/.idea.BoneSync/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.BoneSync/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.BoneSync/.idea/vcs.xml b/.idea/.idea.BoneSync/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/.idea.BoneSync/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/BoneSync/Data/ByteEncoder.cs b/BoneSync/Data/ByteEncoder.cs index 799a09e..9b8a602 100644 --- a/BoneSync/Data/ByteEncoder.cs +++ b/BoneSync/Data/ByteEncoder.cs @@ -209,14 +209,21 @@ namespace BoneSync.Data { WriteVector3(value.position); WriteQuaternion(value.rotation); - WriteVector3(value.scale); + WriteBool(value.scale.HasValue); + if (value.scale.HasValue) + WriteVector3(value.scale.Value); } public SimpleSyncTransform ReadSimpleTransform() { Vector3 position = ReadVector3(); Quaternion rotation = ReadQuaternion(); - Vector3 scale = ReadVector3(); + bool hasScale = ReadBool(); + Vector3? scale = null; + if (hasScale) + { + scale = ReadVector3(); + } return new SimpleSyncTransform() { position = position, diff --git a/BoneSync/Data/Structs.cs b/BoneSync/Data/Structs.cs index 239c45d..63242e0 100644 --- a/BoneSync/Data/Structs.cs +++ b/BoneSync/Data/Structs.cs @@ -10,23 +10,23 @@ namespace BoneSync.Data public static class SimpleTransformExtensions { - public static void ApplySimpleTransform(this UnityEngine.Transform transform, SimpleSyncTransform simpleTransform) + public static void ApplySimpleTransform(this Transform transform, SimpleSyncTransform simpleTransform) { transform.position = simpleTransform.position; transform.rotation = simpleTransform.rotation; - transform.localScale = simpleTransform.scale; + if (simpleTransform.scale.HasValue) transform.localScale = simpleTransform.scale.Value; } } public struct SimpleSyncTransform { public Vector3 position; public Quaternion rotation; - public Vector3 scale; - public SimpleSyncTransform(UnityEngine.Transform transform) + public Vector3? scale; + public SimpleSyncTransform(Transform transform, bool withScale = true) { position = transform.position; rotation = transform.rotation; - scale = transform.localScale; + scale = withScale ? transform.localScale : (Vector3?)null; } } } diff --git a/BoneSync/Networking/LobbyManager/SteamLobbyManager.cs b/BoneSync/Networking/LobbyManager/SteamLobbyManager.cs index 280cac2..a33694f 100644 --- a/BoneSync/Networking/LobbyManager/SteamLobbyManager.cs +++ b/BoneSync/Networking/LobbyManager/SteamLobbyManager.cs @@ -70,10 +70,16 @@ namespace BoneSync.Networking.LobbyManager get; private set; } + + private SteamId[] _steamIds; public SteamId[] steamIds { - get; - private set; + get => _steamIds; + private set + { + _steamIds = value; + _peersCache = _steamIds.Select(x => x.Value).ToArray(); + } } public override bool IsConnected() @@ -81,7 +87,8 @@ namespace BoneSync.Networking.LobbyManager return _lobbyInstance.Id.IsValid; } - public override ulong[] GetPeers() => steamIds.Select(x => x.Value).ToArray(); + private ulong[] _peersCache = new ulong[0]; + public override ulong[] GetPeers() => _peersCache; public override ulong GetLocalId() => SteamClient.SteamId.Value; public override ulong GetHostId() => _lobbyInstance.Owner.Id.Value; public override ulong GetLobbyId() => _lobbyInstance.Id.Value; @@ -90,6 +97,8 @@ namespace BoneSync.Networking.LobbyManager { LobbyMembers = _lobbyInstance.Members.ToArray(); steamIds = LobbyMembers.Select(x => x.Id).ToArray(); + + if (_lobbyInstance.Id.IsValid) { diff --git a/BoneSync/Networking/NetworkMessage.cs b/BoneSync/Networking/NetworkMessage.cs index ba12d3a..0864e80 100644 --- a/BoneSync/Networking/NetworkMessage.cs +++ b/BoneSync/Networking/NetworkMessage.cs @@ -46,10 +46,7 @@ namespace BoneSync.Networking public class AlwaysExecuteAttribute : Attribute { - public AlwaysExecuteAttribute() - { - - } + public AlwaysExecuteAttribute() {} } public abstract class NetworkMessage diff --git a/BoneSync/Player/PlayerRig.cs b/BoneSync/Player/PlayerRig.cs index b95d216..add4306 100644 --- a/BoneSync/Player/PlayerRig.cs +++ b/BoneSync/Player/PlayerRig.cs @@ -157,9 +157,9 @@ namespace BoneSync.Player PlayerSyncInfo playerSyncInfo = new PlayerSyncInfo() { rootPos = localRigSkeletonRoot.position, - headPos = new SimpleSyncTransform(localRigHeadTransform), - leftHandPos = new SimpleSyncTransform(localRigLeftHandTransform), - rightHandPos = new SimpleSyncTransform(localRigRightHandTransform), + headPos = new SimpleSyncTransform(localRigHeadTransform, false), + leftHandPos = new SimpleSyncTransform(localRigLeftHandTransform, false), + rightHandPos = new SimpleSyncTransform(localRigRightHandTransform, false), //leftHandFingerCurl = new SimpleFingerCurl(PlayerScripts.playerLeftHand.fingerCurl), //rightHandFingerCurl = new SimpleFingerCurl(PlayerScripts.playerRightHand.fingerCurl) poseIndexLeft = SkeletonHandPatches.poseIndexLeft, diff --git a/BoneSync/Sync/Components/SyncableBase.cs b/BoneSync/Sync/Components/SyncableBase.cs index eba89ed..e53c0f6 100644 --- a/BoneSync/Sync/Components/SyncableBase.cs +++ b/BoneSync/Sync/Components/SyncableBase.cs @@ -289,6 +289,7 @@ namespace BoneSync.Sync.Components { AlignPlug alignPlug = plugs[i]; if (alignPlug.GetSocket()) return true; + if (alignPlug._isExitTransition || alignPlug._isEnterTransition) return true; // if plug is in transition, consider it plugged } return false; } diff --git a/BoneSync/Sync/Components/SyncablePhysics.cs b/BoneSync/Sync/Components/SyncablePhysics.cs index f5d8ab8..e7169a7 100644 --- a/BoneSync/Sync/Components/SyncablePhysics.cs +++ b/BoneSync/Sync/Components/SyncablePhysics.cs @@ -157,11 +157,15 @@ namespace BoneSync.Sync.Components Rigidbody rb = rigidbodies[i]; rb.angularVelocity = objectSyncTransform.angularVelocity; rb.velocity = objectSyncTransform.velocity; + //rb.MovePosition(objectSyncTransform.transform.position); //rb.MoveRotation(objectSyncTransform.transform.rotation); rb.position = objectSyncTransform.transform.position; rb.rotation = objectSyncTransform.transform.rotation; - _transforms[i].localScale = objectSyncTransform.transform.scale; + if (objectSyncTransform.transform.scale.HasValue) + { + _transforms[i].localScale = objectSyncTransform.transform.scale.Value; + } //_transforms[i].ApplySimpleTransform(objectSyncTransform.transform); } } diff --git a/BoneSync/Sync/ObjectSync.cs b/BoneSync/Sync/ObjectSync.cs index 6c6b95b..1242649 100644 --- a/BoneSync/Sync/ObjectSync.cs +++ b/BoneSync/Sync/ObjectSync.cs @@ -57,7 +57,7 @@ namespace BoneSync.Sync spawnInfo = new SpawnPoolableInfo() { spawnableTitle = spawnableTitle, - spawnLocation = new SimpleSyncTransform(syncable.poolee.transform), + spawnLocation = new SimpleSyncTransform(syncable.poolee.transform, false), }, }; }