// 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];
     }
 }
Beispiel #2
0
 // 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];
     }
 }
Beispiel #3
0
    // 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);
 }
Beispiel #5
0
    // 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);
    }
Beispiel #6
0
    // 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);
 }
Beispiel #8
0
 // Token: 0x06002F4C RID: 12108 RVA: 0x000B6514 File Offset: 0x000B4714
 internal Enumerator(global::ArmorModelMemberMap collection)
 {
     this.collection = collection;
     this.index      = -1;
 }
Beispiel #9
0
    // 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);
    }