Ejemplo n.º 1
0
 public static ArmorModelSlot[] ToArray(this ArmorModelSlotMask slotMask)
 {
     ArmorModelSlot[] slotArray  = Mask2SlotArray.FlagToSlotArray[((int)slotMask) & 15];
     ArmorModelSlot[] slotArray2 = new ArmorModelSlot[slotArray.Length];
     for (int i = 0; i < slotArray.Length; i++)
     {
         slotArray2[i] = slotArray[i];
     }
     return(slotArray2);
 }
Ejemplo n.º 2
0
 public static ArmorModelSlot[] ToArray(this ArmorModelSlotMask slotMask)
 {
     ArmorModelSlot[] flagToSlotArray     = ArmorModelSlotUtility.Mask2SlotArray.FlagToSlotArray[(int)(slotMask & (ArmorModelSlotMask.Feet | ArmorModelSlotMask.Legs | ArmorModelSlotMask.Torso | ArmorModelSlotMask.Head))];
     ArmorModelSlot[] armorModelSlotArray = new ArmorModelSlot[(int)flagToSlotArray.Length];
     for (int i = 0; i < (int)flagToSlotArray.Length; i++)
     {
         armorModelSlotArray[i] = flagToSlotArray[i];
     }
     return(armorModelSlotArray);
 }
Ejemplo n.º 3
0
    public static int GetUnmaskedSlotCount(this ArmorModelSlotMask slotMask)
    {
        uint num  = (uint)(~slotMask & (ArmorModelSlotMask.Feet | ArmorModelSlotMask.Legs | ArmorModelSlotMask.Torso | ArmorModelSlotMask.Head));
        int  num1 = 0;

        while (num != 0)
        {
            num1++;
            num = num & num - 1;
        }
        return(num1);
    }
Ejemplo n.º 4
0
    public static int GetMaskedSlotCount(this ArmorModelSlotMask slotMask)
    {
        uint num  = (uint)(slotMask & (ArmorModelSlotMask.Head | ArmorModelSlotMask.Torso | ArmorModelSlotMask.Legs | ArmorModelSlotMask.Feet));
        int  num2 = 0;

        while (num != 0)
        {
            num2++;
            num &= num - 1;
        }
        return(num2);
    }
Ejemplo n.º 5
0
    public ArmorModelSlotMask BindArmorGroup(ArmorModelGroup group)
    {
        ArmorModelSlotMask mask = (ArmorModelSlotMask)0;

        if (group)
        {
            for (ArmorModelSlot i = ArmorModelSlot.Feet; (int)i < 4; i = (ArmorModelSlot)((byte)i + (byte)ArmorModelSlot.Legs))
            {
                ArmorModel item = group[i];
                if (item && this.BindArmorModelCheckedNonNull(item))
                {
                    mask = mask | i.ToMask();
                }
            }
        }
        return(mask);
    }
Ejemplo n.º 6
0
    public ArmorModelSlotMask BindArmorGroup(ArmorModelGroup group)
    {
        ArmorModelSlotMask mask = 0;

        if (group != null)
        {
            for (ArmorModelSlot slot = ArmorModelSlot.Feet; slot < ((ArmorModelSlot)4); slot = (ArmorModelSlot)(((int)slot) + 1))
            {
                ArmorModel model = group[slot];
                if ((model != null) && this.BindArmorModelCheckedNonNull(model))
                {
                    mask |= slot.ToMask();
                }
            }
        }
        return(mask);
    }
Ejemplo n.º 7
0
    public ArmorModelSlotMask BindArmorModels(ArmorModelMemberMap map, ArmorModelSlotMask slotMask)
    {
        if (!this.awake)
        {
            return(this.Initialize(map, slotMask));
        }
        ArmorModelSlotMask mask = 0;

        foreach (ArmorModelSlot slot in slotMask.EnumerateSlots())
        {
            if (this.BindArmorModel(map[slot], slot))
            {
                mask |= slot.ToMask();
            }
        }
        return(mask);
    }
Ejemplo n.º 8
0
    public ArmorModelSlotMask BindArmorModels(ArmorModelMemberMap map)
    {
        if (!this.awake)
        {
            return(this.Initialize(map, ArmorModelSlotMask.Head | ArmorModelSlotMask.Torso | ArmorModelSlotMask.Legs | ArmorModelSlotMask.Feet));
        }
        ArmorModelSlotMask mask = 0;

        for (ArmorModelSlot slot = ArmorModelSlot.Feet; slot < ((ArmorModelSlot)4); slot = (ArmorModelSlot)(((int)slot) + 1))
        {
            if (this.BindArmorModel(map[slot], slot))
            {
                mask |= slot.ToMask();
            }
        }
        return(mask);
    }
Ejemplo n.º 9
0
    public ArmorModelSlotMask BindArmorModels(ArmorModelMemberMap map)
    {
        if (!this.awake)
        {
            return(this.Initialize(map, ArmorModelSlotMask.Feet | ArmorModelSlotMask.Legs | ArmorModelSlotMask.Torso | ArmorModelSlotMask.Head));
        }
        ArmorModelSlotMask mask = (ArmorModelSlotMask)0;

        for (ArmorModelSlot i = ArmorModelSlot.Feet; (int)i < 4; i = (ArmorModelSlot)((byte)i + (byte)ArmorModelSlot.Legs))
        {
            if (this.BindArmorModel(map[i], i))
            {
                mask = mask | i.ToMask();
            }
        }
        return(mask);
    }
Ejemplo n.º 10
0
    public ArmorModelSlotMask BindArmorModels(ArmorModelMemberMap map, ArmorModelSlotMask slotMask)
    {
        if (!this.awake)
        {
            return(this.Initialize(map, slotMask));
        }
        ArmorModelSlotMask mask = (ArmorModelSlotMask)0;

        ArmorModelSlot[] armorModelSlotArray = slotMask.EnumerateSlots();
        for (int i = 0; i < (int)armorModelSlotArray.Length; i++)
        {
            ArmorModelSlot armorModelSlot = armorModelSlotArray[i];
            if (this.BindArmorModel(map[armorModelSlot], armorModelSlot))
            {
                mask = mask | armorModelSlot.ToMask();
            }
        }
        return(mask);
    }
Ejemplo n.º 11
0
    public ArmorModelSlotMask BindArmorGroup(ArmorModelGroup group, ArmorModelSlotMask slotMask)
    {
        if (!this.awake)
        {
            if (group == null)
            {
                return(0);
            }
            return(this.Initialize(group.armorModelMemberMap, slotMask));
        }
        ArmorModelSlotMask mask = 0;

        foreach (ArmorModelSlot slot in slotMask.EnumerateSlots())
        {
            ArmorModel model = group[slot];
            if ((model != null) && this.BindArmorModelCheckedNonNull(model))
            {
                mask |= slot.ToMask();
            }
        }
        return(mask);
    }
Ejemplo n.º 12
0
    public ArmorModelSlotMask BindArmorGroup(ArmorModelGroup group, ArmorModelSlotMask slotMask)
    {
        if (!this.awake)
        {
            if (!group)
            {
                return(0);
            }
            return(this.Initialize(group.armorModelMemberMap, slotMask));
        }
        ArmorModelSlotMask mask = (ArmorModelSlotMask)0;

        ArmorModelSlot[] armorModelSlotArray = slotMask.EnumerateSlots();
        for (int i = 0; i < (int)armorModelSlotArray.Length; i++)
        {
            ArmorModelSlot armorModelSlot = armorModelSlotArray[i];
            ArmorModel     item           = group[armorModelSlot];
            if (item && this.BindArmorModelCheckedNonNull(item))
            {
                mask = mask | armorModelSlot.ToMask();
            }
        }
        return(mask);
    }
Ejemplo n.º 13
0
 public static bool Contains(this ArmorModelSlotMask slotMask, ArmorModelSlot slot)
 {
     return((slot < ((ArmorModelSlot)4)) && ((slotMask & (((int)1) << slot)) != 0));
 }
Ejemplo n.º 14
0
    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);
    }
Ejemplo n.º 15
0
 public static ArmorModelSlot[] EnumerateSlots(this ArmorModelSlotMask slotMask)
 {
     return(ArmorModelSlotUtility.Mask2SlotArray.FlagToSlotArray[(int)(slotMask & (ArmorModelSlotMask.Feet | ArmorModelSlotMask.Legs | ArmorModelSlotMask.Torso | ArmorModelSlotMask.Head))]);
 }
Ejemplo n.º 16
0
 public static bool Contains(this ArmorModelSlot slot, ArmorModelSlotMask slotMask)
 {
     return((int)slot >= 4 ? false : ((byte)slotMask & (byte)ArmorModelSlot.Legs << (byte)(slot & (ArmorModelSlot.Legs | ArmorModelSlot.Torso | ArmorModelSlot.Head))) != 0);
 }
Ejemplo n.º 17
0
    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);
    }
Ejemplo n.º 18
0
 public static ArmorModelSlot[] EnumerateSlots(this ArmorModelSlotMask slotMask)
 {
     return(Mask2SlotArray.FlagToSlotArray[((int)slotMask) & 15]);
 }