private bool CreateRagdoll() { if (this.ragdollPrefab != null) { ArmorModelRenderer local = this.ragdollPrefab.GetLocal <ArmorModelRenderer>(); if (local != null) { AnimationClip clip; float num; ActorRig actorRig = local.actorRig; if ((actorRig != null) && actorRig.FindPoseClip("sleep", out clip, out num)) { this.ragdollInstance = Object.Instantiate(this.ragdollPrefab, base.transform.position, base.transform.rotation) as Ragdoll; this.ragdollInstance.sourceMain = this; GameObject gameObject = this.ragdollInstance.gameObject; Object.Destroy(gameObject, 80f); gameObject.SampleAnimation(clip, num); local = this.ragdollInstance.GetLocal <ArmorModelRenderer>(); ArmorModelMemberMap map = new ArmorModelMemberMap(); bool flag = false; flag |= BindArmorMap <ArmorModelFeet>(this.footArmor, ref map); flag |= BindArmorMap <ArmorModelLegs>(this.legArmor, ref map); flag |= BindArmorMap <ArmorModelTorso>(this.torsoArmor, ref map); if (flag | BindArmorMap <ArmorModelHead>(this.headArmor, ref map)) { local.BindArmorModels(map); } return(true); } } } return(false); }
private bool CreateRagdoll() { AnimationClip animationClip; float single; if (this.ragdollPrefab) { ArmorModelRenderer local = this.ragdollPrefab.GetLocal <ArmorModelRenderer>(); if (local) { ActorRig actorRig = local.actorRig; if (actorRig) { if (actorRig.FindPoseClip("sleep", out animationClip, out single)) { this.ragdollInstance = UnityEngine.Object.Instantiate(this.ragdollPrefab, base.transform.position, base.transform.rotation) as Ragdoll; this.ragdollInstance.sourceMain = this; GameObject gameObject = this.ragdollInstance.gameObject; UnityEngine.Object.Destroy(gameObject, 80f); gameObject.SampleAnimation(animationClip, single); local = this.ragdollInstance.GetLocal <ArmorModelRenderer>(); ArmorModelMemberMap armorModelMemberMaps = new ArmorModelMemberMap(); if (false | SleepingAvatar.BindArmorMap <ArmorModelFeet>(this.footArmor, ref armorModelMemberMaps) | SleepingAvatar.BindArmorMap <ArmorModelLegs>(this.legArmor, ref armorModelMemberMaps) | SleepingAvatar.BindArmorMap <ArmorModelTorso>(this.torsoArmor, ref armorModelMemberMaps) | SleepingAvatar.BindArmorMap <ArmorModelHead>(this.headArmor, ref armorModelMemberMaps)) { local.BindArmorModels(armorModelMemberMaps); } return(true); } } } } return(false); }
// Token: 0x06003D07 RID: 15623 RVA: 0x000DA8DC File Offset: 0x000D8ADC private bool CreateRagdoll() { if (this.ragdollPrefab) { global::ArmorModelRenderer local = this.ragdollPrefab.GetLocal <global::ArmorModelRenderer>(); if (local) { ActorRig actorRig = local.actorRig; if (actorRig) { AnimationClip animationClip; float num; if (actorRig.FindPoseClip("sleep", ref animationClip, ref num)) { this.ragdollInstance = (Object.Instantiate(this.ragdollPrefab, base.transform.position, base.transform.rotation) as global::Ragdoll); this.ragdollInstance.sourceMain = this; GameObject gameObject = this.ragdollInstance.gameObject; Object.Destroy(gameObject, 80f); gameObject.SampleAnimation(animationClip, num); local = this.ragdollInstance.GetLocal <global::ArmorModelRenderer>(); global::ArmorModelMemberMap map = default(global::ArmorModelMemberMap); bool flag = false; flag |= global::SleepingAvatar.BindArmorMap <global::ArmorModelFeet>(this.footArmor, ref map); flag |= global::SleepingAvatar.BindArmorMap <global::ArmorModelLegs>(this.legArmor, ref map); flag |= global::SleepingAvatar.BindArmorMap <global::ArmorModelTorso>(this.torsoArmor, ref map); flag |= global::SleepingAvatar.BindArmorMap <global::ArmorModelHead>(this.headArmor, ref map); if (flag) { local.BindArmorModels(map); } return(true); } } } } return(false); }
private ArmorModelSlotMask Initialize(ArmorModelMemberMap memberMap, ArmorModelSlotMask memberMask) { ActorMeshRenderer actorMeshRenderer; this.awake = true; string rendererName = ArmorModelSlot.Head.GetRendererName(); ActorRig item = this.defaultArmorModelGroup[ArmorModelSlot.Head].actorRig; actorMeshRenderer = (!this.originalRenderer ? ActorMeshRenderer.CreateOn(base.transform, rendererName, item, this.boneStructure.rigOrderedTransformArray, base.gameObject.layer) : ActorMeshRenderer.Replace(this.originalRenderer, item, this.boneStructure.rigOrderedTransformArray, rendererName)); this.renderers[ArmorModelSlot.Head] = actorMeshRenderer; for (ArmorModelSlot i = ArmorModelSlot.Feet; i < ArmorModelSlot.Head; i = (ArmorModelSlot)((byte)i + (byte)ArmorModelSlot.Legs)) { this.renderers[i] = actorMeshRenderer.CloneBlank(i.GetRendererName()); } for (ArmorModelSlot j = ArmorModelSlot.Feet; j < ArmorModelSlot.Head; j = (ArmorModelSlot)((byte)j + (byte)ArmorModelSlot.Legs)) { ActorMeshRenderer item1 = this.renderers[j]; if (item1) { item1.renderer.enabled = base.enabled; } } ArmorModelSlotMask mask = (ArmorModelSlotMask)0; ArmorModelGroup armorModelGroups = this.defaultArmorModelGroup; if (!armorModelGroups) { ArmorModelSlot[] armorModelSlotArray = memberMask.EnumerateSlots(); for (int k = 0; k < (int)armorModelSlotArray.Length; k++) { ArmorModelSlot armorModelSlot = armorModelSlotArray[k]; ArmorModel armorModel = memberMap.GetArmorModel(armorModelSlot); if (armorModel && this.BindArmorModelCheckedNonNull(armorModel)) { mask = mask | armorModelSlot.ToMask(); } } } else { for (ArmorModelSlot l = ArmorModelSlot.Feet; (int)l < 4; l = (ArmorModelSlot)((byte)l + (byte)ArmorModelSlot.Legs)) { if (memberMask.Contains(l)) { ArmorModel armorModel1 = memberMap.GetArmorModel(l); if (!armorModel1 || !this.BindArmorModelCheckedNonNull(armorModel1)) { goto Label1; } mask = mask | l.ToMask(); goto Label0; } Label1: ArmorModel item2 = armorModelGroups[l]; if (item2) { this.BindArmorModelCheckedNonNull(item2); } Label0: } } return(mask); }
private ArmorModelSlotMask Initialize(ArmorModelMemberMap memberMap, ArmorModelSlotMask memberMask) { ActorMeshRenderer renderer; this.awake = true; string rendererName = ArmorModelSlot.Head.GetRendererName(); ActorRig actorRig = this.defaultArmorModelGroup[ArmorModelSlot.Head].actorRig; if (this.originalRenderer != null) { renderer = ActorMeshRenderer.Replace(this.originalRenderer, actorRig, this.boneStructure.rigOrderedTransformArray, rendererName); } else { renderer = ActorMeshRenderer.CreateOn(base.transform, rendererName, actorRig, this.boneStructure.rigOrderedTransformArray, base.gameObject.layer); } this.renderers[ArmorModelSlot.Head] = renderer; for (ArmorModelSlot slot = ArmorModelSlot.Feet; slot < ArmorModelSlot.Head; slot = (ArmorModelSlot)(((int)slot) + 1)) { this.renderers[slot] = renderer.CloneBlank(slot.GetRendererName()); } for (ArmorModelSlot slot2 = ArmorModelSlot.Feet; slot2 < ArmorModelSlot.Head; slot2 = (ArmorModelSlot)(((int)slot2) + 1)) { ActorMeshRenderer renderer2 = this.renderers[slot2]; if (renderer2 != null) { renderer2.renderer.enabled = base.enabled; } } ArmorModelSlotMask mask = 0; ArmorModelGroup defaultArmorModelGroup = this.defaultArmorModelGroup; if (defaultArmorModelGroup != null) { for (ArmorModelSlot slot3 = ArmorModelSlot.Feet; slot3 < ((ArmorModelSlot)4); slot3 = (ArmorModelSlot)(((int)slot3) + 1)) { if (memberMask.Contains(slot3)) { ArmorModel armorModel = memberMap.GetArmorModel(slot3); if ((armorModel != null) && this.BindArmorModelCheckedNonNull(armorModel)) { mask |= slot3.ToMask(); continue; } } ArmorModel model2 = defaultArmorModelGroup[slot3]; if (model2 != null) { this.BindArmorModelCheckedNonNull(model2); } } return(mask); } foreach (ArmorModelSlot slot4 in memberMask.EnumerateSlots()) { ArmorModel model = memberMap.GetArmorModel(slot4); if ((model != null) && this.BindArmorModelCheckedNonNull(model)) { mask |= slot4.ToMask(); } } return(mask); }
// Token: 0x06002F80 RID: 12160 RVA: 0x000B6ED8 File Offset: 0x000B50D8 private global::ArmorModelSlotMask Initialize(global::ArmorModelMemberMap memberMap, global::ArmorModelSlotMask memberMask) { this.awake = true; string rendererName = global::ArmorModelSlot.Head.GetRendererName(); ActorRig actorRig = this.defaultArmorModelGroup[global::ArmorModelSlot.Head].actorRig; ActorMeshRenderer actorMeshRenderer; if (this.originalRenderer) { actorMeshRenderer = ActorMeshRenderer.Replace(this.originalRenderer, actorRig, this.boneStructure.rigOrderedTransformArray, rendererName); } else { actorMeshRenderer = ActorMeshRenderer.CreateOn(base.transform, rendererName, actorRig, this.boneStructure.rigOrderedTransformArray, base.gameObject.layer); } this.renderers[global::ArmorModelSlot.Head] = actorMeshRenderer; for (global::ArmorModelSlot armorModelSlot = global::ArmorModelSlot.Feet; armorModelSlot < global::ArmorModelSlot.Head; armorModelSlot += 1) { this.renderers[armorModelSlot] = actorMeshRenderer.CloneBlank(armorModelSlot.GetRendererName()); } for (global::ArmorModelSlot armorModelSlot2 = global::ArmorModelSlot.Feet; armorModelSlot2 < global::ArmorModelSlot.Head; armorModelSlot2 += 1) { ActorMeshRenderer actorMeshRenderer2 = this.renderers[armorModelSlot2]; if (actorMeshRenderer2) { actorMeshRenderer2.renderer.enabled = base.enabled; } } global::ArmorModelSlotMask armorModelSlotMask = (global::ArmorModelSlotMask)0; global::ArmorModelGroup defaultArmorModelGroup = this.defaultArmorModelGroup; if (defaultArmorModelGroup) { global::ArmorModelSlot armorModelSlot3 = global::ArmorModelSlot.Feet; while (armorModelSlot3 < (global::ArmorModelSlot)4) { if (!memberMask.Contains(armorModelSlot3)) { goto IL_14D; } global::ArmorModel armorModel = memberMap.GetArmorModel(armorModelSlot3); if (!armorModel || !this.BindArmorModelCheckedNonNull(armorModel)) { goto IL_14D; } armorModelSlotMask |= armorModelSlot3.ToMask(); IL_16D: armorModelSlot3 += 1; continue; IL_14D: global::ArmorModel armorModel2 = defaultArmorModelGroup[armorModelSlot3]; if (armorModel2) { this.BindArmorModelCheckedNonNull(armorModel2); goto IL_16D; } goto IL_16D; } } else { foreach (global::ArmorModelSlot slot in memberMask.EnumerateSlots()) { global::ArmorModel armorModel3 = memberMap.GetArmorModel(slot); if (armorModel3 && this.BindArmorModelCheckedNonNull(armorModel3)) { armorModelSlotMask |= slot.ToMask(); } } } return(armorModelSlotMask); }