CryEngine.CharacterCustomization.CharacterAttachmentSlot.CharacterAttachmentSlot C# (CSharp) Method

CharacterAttachmentSlot() private method

private CharacterAttachmentSlot ( CustomizationManager manager, XElement element ) : System
manager CustomizationManager
element XElement
return System
        internal CharacterAttachmentSlot(CustomizationManager manager, XElement element)
        {
            Manager = manager;
            Element = element;

            Name = element.Attribute("name").Value;

            var uiNameAttribute = element.Attribute("uiName");
            if(uiNameAttribute != null)
                UIName = uiNameAttribute.Value;

            var categoryAttribute = element.Attribute("category");
            if (categoryAttribute != null)
                Category = categoryAttribute.Value;

            var allowNoneAttribute = element.Attribute("allowNone");
            if(allowNoneAttribute != null)
                CanBeEmpty = allowNoneAttribute.Value == "1";

            if(CanBeEmpty)
                EmptyAttachment = new CharacterAttachment(this, null);

            var hiddenAttribute = element.Attribute("hidden");
            if(hiddenAttribute != null)
                Hidden = hiddenAttribute.Value == "1";

            var subSlotElements = element.Elements("AttachmentSlot");
            if (subSlotElements.Count() > 0)
            {
                SubAttachmentSlots = new CharacterAttachmentSlot[subSlotElements.Count()];
                for(int i = 0; i < subSlotElements.Count(); i++)
                {
                    var subSlotElement = subSlotElements.ElementAt(i);

                    SubAttachmentSlots[i] = new CharacterAttachmentSlot(manager, subSlotElement);
                }
            }

            var mirroredSlotElements = element.Elements("MirroredSlot");
            if (mirroredSlotElements.Count() > 0)
            {
                MirroredSlots = new CharacterAttachmentSlot[mirroredSlotElements.Count()];
                for (int i = 0; i < mirroredSlotElements.Count(); i++)
                {
                    var mirroredSlotElement = mirroredSlotElements.ElementAt(i);

                    MirroredSlots[i] = new CharacterAttachmentSlot(manager, mirroredSlotElement);
                }
            }

            // Set up brands
            var slotBrandElements = element.Elements("Brand");

            int numBrands = slotBrandElements.Count();
            Brands = new CharacterAttachmentBrand[numBrands];

            for(int i = 0; i < numBrands; i++)
            {
                var brandElement = slotBrandElements.ElementAt(i);

                Brands[i] = new CharacterAttachmentBrand(this, brandElement);
            }
        }