// Token: 0x06002F2A RID: 12074 RVA: 0x000B5F4C File Offset: 0x000B414C public ArmorModelCollection(global::ArmorModelMemberMap <T> map) : this() { for (global::ArmorModelSlot armorModelSlot = global::ArmorModelSlot.Feet; armorModelSlot < (global::ArmorModelSlot)4; armorModelSlot += 1) { this[armorModelSlot] = map[armorModelSlot]; } }
// Token: 0x06002F3D RID: 12093 RVA: 0x000B6274 File Offset: 0x000B4474 public ArmorModelMemberMap(global::ArmorModelMemberMap <global::ArmorModel> map) { this = default(global::ArmorModelMemberMap); for (global::ArmorModelSlot armorModelSlot = global::ArmorModelSlot.Feet; armorModelSlot < (global::ArmorModelSlot)4; armorModelSlot += 1) { this[armorModelSlot] = map[armorModelSlot]; } }
// Token: 0x06002F45 RID: 12101 RVA: 0x000B6334 File Offset: 0x000B4534 public global::ArmorModelMemberMap <global::ArmorModel> ToGenericArmorModelMap() { global::ArmorModelMemberMap <global::ArmorModel> result = default(global::ArmorModelMemberMap <global::ArmorModel>); for (global::ArmorModelSlot armorModelSlot = global::ArmorModelSlot.Feet; armorModelSlot < (global::ArmorModelSlot)4; armorModelSlot += 1) { result[armorModelSlot] = this[armorModelSlot]; } return(result); }
// Token: 0x06003D06 RID: 15622 RVA: 0x000DA8A0 File Offset: 0x000D8AA0 private static bool BindArmorMap <TArmorModel>(global::ArmorDataBlock armor, ref global::ArmorModelMemberMap map) where TArmorModel : global::ArmorModel, new() { if (armor) { TArmorModel armorModel = armor.GetArmorModel <TArmorModel>(); if (armorModel) { map.SetArmorModel <TArmorModel>(armorModel); return(true); } } return(false); }
// Token: 0x06002F79 RID: 12153 RVA: 0x000B6C54 File Offset: 0x000B4E54 public global::ArmorModelSlotMask BindArmorModels(global::ArmorModelMemberMap map, global::ArmorModelSlotMask slotMask) { if (!this.awake) { return(this.Initialize(map, slotMask)); } global::ArmorModelSlotMask armorModelSlotMask = (global::ArmorModelSlotMask)0; foreach (global::ArmorModelSlot slot in slotMask.EnumerateSlots()) { if (this.BindArmorModel(map[slot], slot)) { armorModelSlotMask |= slot.ToMask(); } } return(armorModelSlotMask); }
// Token: 0x06002F78 RID: 12152 RVA: 0x000B6C00 File Offset: 0x000B4E00 public global::ArmorModelSlotMask BindArmorModels(global::ArmorModelMemberMap map) { if (!this.awake) { return(this.Initialize(map, global::ArmorModelSlotMask.Feet | global::ArmorModelSlotMask.Legs | global::ArmorModelSlotMask.Torso | global::ArmorModelSlotMask.Head)); } global::ArmorModelSlotMask armorModelSlotMask = (global::ArmorModelSlotMask)0; for (global::ArmorModelSlot armorModelSlot = global::ArmorModelSlot.Feet; armorModelSlot < (global::ArmorModelSlot)4; armorModelSlot += 1) { if (this.BindArmorModel(map[armorModelSlot], armorModelSlot)) { armorModelSlotMask |= armorModelSlot.ToMask(); } } return(armorModelSlotMask); }
// 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); }
// Token: 0x06002F4C RID: 12108 RVA: 0x000B6514 File Offset: 0x000B4714 internal Enumerator(global::ArmorModelMemberMap collection) { this.collection = collection; this.index = -1; }
// 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); }