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++; } } } }
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); }
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); }
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)); }