// Token: 0x060009D5 RID: 2517 RVA: 0x000475AC File Offset: 0x000457AC private void SyncPosition(ZDO zdo, float dt) { if (this.m_characterParentSync && zdo.HasOwner()) { ZDOID zdoid = zdo.GetZDOID(ZSyncTransform.m_parentIDHash); if (!zdoid.IsNone()) { GameObject gameObject = ZNetScene.instance.FindInstance(zdoid); if (gameObject) { ZSyncTransform component = gameObject.GetComponent <ZSyncTransform>(); if (component) { component.ClientSync(dt); } Vector3 vector = zdo.GetVec3(ZSyncTransform.m_relPos, Vector3.zero); Vector3 vec = zdo.GetVec3(ZSyncTransform.m_velHash, Vector3.zero); if (zdo.m_dataRevision != this.m_posRevision) { this.m_posRevision = zdo.m_dataRevision; this.m_targetPosTimer = 0f; } this.m_targetPosTimer += dt; this.m_targetPosTimer = Mathf.Min(this.m_targetPosTimer, 2f); vector += vec * this.m_targetPosTimer; if (!this.m_haveTempRelPos) { this.m_haveTempRelPos = true; this.m_tempRelPos = vector; } if (Vector3.Distance(this.m_tempRelPos, vector) > 0.001f) { this.m_tempRelPos = Vector3.Lerp(this.m_tempRelPos, vector, 0.2f); vector = this.m_tempRelPos; } Vector3 vector2 = gameObject.transform.TransformPoint(vector); if (Vector3.Distance(base.transform.position, vector2) > 0.001f) { base.transform.position = vector2; } return; } } } this.m_haveTempRelPos = false; Vector3 vector3 = zdo.GetPosition(); if (zdo.m_dataRevision != this.m_posRevision) { this.m_posRevision = zdo.m_dataRevision; this.m_targetPosTimer = 0f; } if (zdo.HasOwner()) { this.m_targetPosTimer += dt; this.m_targetPosTimer = Mathf.Min(this.m_targetPosTimer, 2f); Vector3 vec2 = zdo.GetVec3(ZSyncTransform.m_velHash, Vector3.zero); vector3 += vec2 * this.m_targetPosTimer; } float num = Vector3.Distance(base.transform.position, vector3); if (num > 0.001f) { base.transform.position = ((num < 5f) ? Vector3.Lerp(base.transform.position, vector3, 0.2f) : vector3); } }