Esempio n. 1
0
    public bool FindHead(Transform root, out Transform headBone)
    {
        Transform transforms;

        if (this.providedHeadBoneName)
        {
            Transform transforms1 = root.Find(this.headBoneName);
            transforms = transforms1;
            headBone   = transforms1;
            return(transforms);
        }
        if (!this.providedHeadBone || !this.headBone)
        {
            headBone = root;
            return(false);
        }
        StringBuilder stringBuilder = new StringBuilder();

        RagdollTransferInfo.FindNameRecurse(this.headBone, stringBuilder);
        Transform transforms2 = root.Find(stringBuilder.ToString());

        transforms = transforms2;
        headBone   = transforms2;
        return(transforms);
    }
Esempio n. 2
0
    private void ClientLocalDeath()
    {
        Transform transforms;
        bool      flag;
        Ragdoll   ragdoll = this.DeathRagdoll();

        if (base.localControlled)
        {
            if (!actor.forceThirdPerson)
            {
                CameraMount componentInChildren = base.GetComponentInChildren <CameraMount>();
                if (!componentInChildren || !componentInChildren.open)
                {
                    Debug.Log("No camera?");
                }
                else
                {
                    RagdollTransferInfoProvider ragdollTransferInfoProvider = base.controller as RagdollTransferInfoProvider;
                    if (ragdollTransferInfoProvider == null)
                    {
                        transforms = null;
                        flag       = false;
                    }
                    else
                    {
                        try
                        {
                            RagdollTransferInfo ragdollTransferInfo = ragdollTransferInfoProvider.RagdollTransferInfo;
                            flag = ragdollTransferInfo.FindHead(ragdoll.transform, out transforms);
                        }
                        catch (Exception exception)
                        {
                            Debug.LogException(exception, this);
                            transforms = null;
                            flag       = false;
                        }
                    }
                    if (flag)
                    {
                        Vector3 vector3 = transforms.InverseTransformPoint(componentInChildren.transform.position);
                        vector3.y = vector3.y + 0.08f;
                        Vector3 vector31 = transforms.TransformPoint(vector3);
                        Ragdoll ragdoll1 = ragdoll;
                        ragdoll1.origin = ragdoll1.origin + (vector31 - transforms.position);
                        CameraMount.CreateTemporaryCameraMount(componentInChildren, transforms).camera.nearClipPlane = 0.02f;
                    }
                    ArmorModelRenderer local = ragdoll.GetLocal <ArmorModelRenderer>();
                    if (local)
                    {
                        local.enabled = false;
                    }
                }
            }
            UnityEngine.Object.Destroy(base.GetComponent <LocalDamageDisplay>());
        }
    }
Esempio n. 3
0
    private static void FindNameRecurse(Transform child, StringBuilder sb)
    {
        Transform transforms = child.parent;

        if (transforms)
        {
            RagdollTransferInfo.FindNameRecurse(transforms, sb);
            if (sb.Length <= 0)
            {
                sb.Append(child.name);
            }
            else
            {
                sb.Append('/');
            }
        }
    }