Exemplo n.º 1
0
        public static void AddClothingItemAndPresets(CASClothingRow ths, List <CASParts.PartPreset> parts, bool allowTemp)
        {
            if (parts.Count == 1)
            {
                ths.AddClothingItemAndPresets(parts[0].mPart, allowTemp);
            }
            else
            {
                int orderIndex = 0x0;

                ths.mHasFilterableContent = false;

                for (int i = 0x0; i < parts.Count; i++)
                {
                    CASParts.PartPreset preset = parts[i];

                    if (ths.AddPresetGridItem(preset, orderIndex, preset.mPresetId))
                    {
                        if (IsWorn(preset.mPart))
                        {
                            ths.mSelectedItem = orderIndex;
                        }

                        orderIndex++;
                    }
                }
            }
        }
Exemplo n.º 2
0
            public Item(CASParts.Wrapper part)
                : base(part.mPart.Key, "0x" + part.mPart.Key.InstanceId.ToString("X16"), 0)
            {
                CASParts.PartPreset preset = new CASParts.PartPreset(part.mPart);
                if (!preset.Valid)
                {
                    uint num2 = CASUtils.PartDataNumPresets(part.mPart.Key);
                    if (num2 > 0)
                    {
                        preset = new CASParts.PartPreset(part.mPart, 0);
                        if (!preset.Valid)
                        {
                            return;
                        }
                    }
                }

                mThumbnail = new ThumbnailKey(preset.mPart.Key, (preset.mPresetId != uint.MaxValue) ? ((int)preset.mPresetId) : -1, (uint)preset.mPart.BodyType, (uint)preset.mPart.AgeGenderSpecies, ThumbnailSize.Large);
            }
Exemplo n.º 3
0
        protected static bool PopulateGrid()
        {
            CASClothingCategory ths = CASClothingCategory.gSingleton;

            if (ths == null)
            {
                return(false);
            }

            ths.mClothingTypesGrid.Clear();

            ths.mCurrentPreset       = null;
            ths.mCurrentFocusedRow   = null;
            ths.mTempFocusedRow      = null;
            ths.mSelectedType        = CASClothingRow.SelectedTypes.None;
            ths.mShareButton.Enabled = false;
            ths.mTrashButton.Enabled = false;
            ths.mSaveButton.Enabled  = false;
            ths.mSortButton.Enabled  = false;
            ths.mSortButton.Tag      = false;

            bool hasFilterableContent = false;

            List <object> parts = new List <object>();

            bool compactCAS = false;

            if (ths.mCurrentPart == BodyTypes.Accessories)
            {
                compactCAS = MasterController.Settings.mCompactAccessoryCAS;
            }
            else
            {
                compactCAS = MasterController.Settings.mCompactClothingCAS;
            }

            if (compactCAS)
            {
                List <CASParts.PartPreset> triPart = new List <CASParts.PartPreset>();
                parts.Add(triPart);

                foreach (object uncastPart in ths.mPartsList)
                {
                    if (uncastPart is CASPart)
                    {
                        CASPart part = (CASPart)uncastPart;

                        CASParts.PartPreset preset = new CASParts.PartPreset(part);
                        if (!preset.Valid)
                        {
                            uint num2 = CASUtils.PartDataNumPresets(part.Key);
                            if (num2 > 0)
                            {
                                preset = new CASParts.PartPreset(part, 0);
                                if (!preset.Valid)
                                {
                                    preset = null;
                                }
                            }
                        }

                        if (preset == null)
                        {
                            continue;
                        }

                        if (!ths.mContentTypeFilter.ObjectMatchesFilter(preset, ref hasFilterableContent))
                        {
                            continue;
                        }

                        triPart.Add(preset);

                        if (triPart.Count == 3)
                        {
                            triPart = new List <CASParts.PartPreset>();
                            parts.Add(triPart);
                        }
                    }
                }
            }
            else
            {
                foreach (object part in ths.mPartsList)
                {
                    if (part is CASPart)
                    {
                        List <CASParts.PartPreset> uniPart = new List <CASParts.PartPreset>();
                        uniPart.Add(new CASParts.PartPreset((CASPart)part));
                        parts.Add(uniPart);
                    }
                    else
                    {
                        parts.Add(part);
                    }
                }
            }

            if (ths.PartPresetsList != null)
            {
                ths.PartPresetsList.Clear();
            }

            sCompleted.Clear();
            sRows.Clear();

            ths.mClothingTypesGrid.ItemRowsChanged -= OnItemRowsChanged;
            ths.mClothingTypesGrid.ItemRowsChanged += OnItemRowsChanged;

            if (parts.Count == 0)
            {
                return(false);
            }

            ResourceKey layoutKey = ResourceKey.CreateUILayoutKey("CASClothingRow", 0x0);

            ths.mClothingTypesGrid.BeginPopulating(AddGridItem, parts, 0x3, layoutKey, null);
            return(true);
        }
Exemplo n.º 4
0
        public static void Transform(SimDescription sim)
        {
            if (!Hybrid.Settings.mSpecialWerewolfOutfit)
            {
                return;
            }

            SimOutfit outfit = sim.GetSpecialOutfit(sWerewolfOutfitKey);

            if (outfit == null)
            {
                SimOutfit sourceOutfit = sim.GetOutfit(OutfitCategories.Everyday, 0);

                foreach (CASPart part in sourceOutfit.Parts)
                {
                    if (part.BodyType == BodyTypes.FullBody)
                    {
                        return;
                    }
                }

                if (sParts == null)
                {
                    sParts = CASParts.GetParts(PartMatches);
                }

                List <CASParts.PartPreset> parts = new List <CASParts.PartPreset>();
                foreach (CASParts.Wrapper part in sParts)
                {
                    if (!part.ValidFor(sim))
                    {
                        continue;
                    }

                    if (RandomUtil.CoinFlip())
                    {
                        continue;
                    }

                    CASParts.PartPreset preset = part.GetRandomPreset();
                    if (preset == null)
                    {
                        continue;
                    }

                    parts.Add(preset);
                }

                if (parts.Count > 0)
                {
                    using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(sim, new CASParts.Key(sWerewolfOutfitKey), sourceOutfit))
                    {
                        foreach (CASParts.PartPreset part in parts)
                        {
                            builder.Builder.RemoveParts(new BodyTypes[] { part.mPart.BodyType });
                            builder.ApplyPartPreset(part);
                        }
                    }
                }

                outfit = sim.GetSpecialOutfit(sWerewolfOutfitKey);
                if (outfit == null)
                {
                    return;
                }
            }

            SwitchOutfits.SwitchNoSpin(sim.CreatedSim, new CASParts.Key(sWerewolfOutfitKey));
        }