protected virtual void AuthoritySendTransformSyncCore() { if ((Time.time - this._lastSentTime) > this._sendInterval) { float xzAngle = MPMiscs.ForwardToXZAngles(this._lastSetForward); Vector3 xZPosition = this._animatorEntity.XZPosition; Vector3 vector2 = xZPosition - this._lastSendXZ; if (MPMiscs.NeedSyncTransform(vector2.sqrMagnitude, xzAngle - this._lastSentXZAngle)) { MPSendPacketContainer pc = Singleton <MPManager> .Instance.CreateSendPacket <Packet_Entity_TransformSync>(); Packet_Entity_TransformSync.StartPacket_Entity_TransformSync(pc.builder); Packet_Entity_TransformSync.AddStateSync(pc.builder, EntityStateSync.CreateEntityStateSync(pc.builder, this._animatorEntity.XZPosition.x, this._animatorEntity.XZPosition.z, xzAngle)); pc.Finish <Packet_Entity_TransformSync>(Packet_Entity_TransformSync.EndPacket_Entity_TransformSync(pc.builder)); Singleton <MPManager> .Instance.SendStateUpdateToOthers(base.runtimeID, pc); this._lastSendXZ = xZPosition; this._lastSentXZAngle = xzAngle; this._lastSentTime = Time.time; } } }
public void AuthorityOnAnimatorStateChanged(AnimatorStateInfo fromState, AnimatorStateInfo toState) { if (!Miscs.ArrayContains <int>(this._muteSyncTagHashes, toState.tagHash)) { MPSendPacketContainer pc = Singleton <MPManager> .Instance.CreateSendPacket <Packet_Entity_AnimatorStateChange>(); Packet_Entity_AnimatorStateChange.StartPacket_Entity_AnimatorStateChange(pc.builder); Packet_Entity_AnimatorStateChange.AddNormalizedTimeTo(pc.builder, (fromState.shortNameHash != toState.shortNameHash) ? toState.normalizedTime : 0f); Packet_Entity_AnimatorStateChange.AddToStateHash(pc.builder, toState.shortNameHash); Packet_Entity_AnimatorStateChange.AddStateSync(pc.builder, EntityStateSync.CreateEntityStateSync(pc.builder, this._animatorEntity.XZPosition.x, this._animatorEntity.XZPosition.z, MPMiscs.ForwardToXZAngles(this._animatorEntity.FaceDirection))); pc.Finish <Packet_Entity_AnimatorStateChange>(Packet_Entity_AnimatorStateChange.EndPacket_Entity_AnimatorStateChange(pc.builder)); Singleton <MPManager> .Instance.SendStateUpdateToOthers(base.runtimeID, pc); } }