public void Apply(SimBuilder builder) { Color[] color = ExtractHairColor(mHairPreset); if (color != null) { OutfitUtils.InjectHairColor(builder, color, BodyTypes.Hair); } color = ExtractHairColor(mBeardPreset); if (color != null) { OutfitUtils.InjectHairColor(builder, color, BodyTypes.Beard); } /* * color = ExtractEyebrowColor(mEyebrowsPreset); * if ((color != null) && (color.Length > 0)) * { * OutfitUtils.InjectEyeBrowHairColor(builder, color[0]); * } * * color = ExtractEyebrowColor(mBodyHairPreset); * if ((color != null) && (color.Length > 0)) * { * OutfitUtils.InjectBodyHairColor(builder, color[0]); * } */ }
public ColorStore(SimBuilder builder) { if (builder != null) { foreach (CASPart part in builder.mCASParts.Values) { switch (part.BodyType) { case BodyTypes.Hair: mHairPreset = builder.GetDesignPresetString(part); break; case BodyTypes.Beard: mBeardPreset = builder.GetDesignPresetString(part); break; case BodyTypes.Eyebrows: mEyebrowsPreset = builder.GetDesignPresetString(part); break; default: if (CASParts.BodyHairTypes.Contains(part.BodyType)) { mBodyHairPreset = builder.GetDesignPresetString(part); } break; } } } }
public static void ApplyBustValue(SimBuilder builder, float value) { if (value > 0) { builder.SetFacialBlend(BustSlider.mBlend1.GetKey(), value); builder.SetFacialBlend(BustSlider.mBlend2.GetKey(), 0); } else { builder.SetFacialBlend(BustSlider.mBlend1.GetKey(), 0); builder.SetFacialBlend(BustSlider.mBlend2.GetKey(), -value); } if (value < 0f) { value = 0f; } else if (value < 0.5f) { value *= 2f; } else { value = 1.5f - value; } ApplyValue(builder, 1, value); }
public static void CopyGeneticParts(SimBuilder builder, SimOutfit sourceOutfit) { builder.RemoveParts(new List <BodyTypes>(CASParts.GeneticBodyTypes).ToArray()); foreach (CASPart part in sourceOutfit.Parts) { if (!CASParts.GeneticBodyTypes.Contains(part.BodyType)) { continue; } if ((part.Age & builder.Age) != builder.Age) { continue; } if ((part.Gender & builder.Gender) != builder.Gender) { continue; } new PartPreset(part, sourceOutfit).Apply(builder); } builder.SetSecondaryNormalMapWeights(sourceOutfit.SecondaryNormalMapWeights); builder.FurMap = sourceOutfit.FurMap; builder.NumCurls = sourceOutfit.NumCurls; builder.CurlPixelRadius = sourceOutfit.CurlPixelRadius; }
protected static List <CASParts.Wrapper> GetVisibleCASParts(CASLogic ths, BodyTypes bodyType, uint categories) { uint alteredCategories = categories; ths.AdjustAvailableCategoriesForCASMode(ref alteredCategories); SimBuilder builder = ths.mBuilder; CASAgeGenderFlags age = builder.Age; CASAgeGenderFlags gender = builder.Gender; CASAgeGenderFlags species = builder.Species; List <CASParts.Wrapper> list = new List <CASParts.Wrapper>(); foreach (CASParts.Wrapper part in CASBase.HairParts) { InvalidPartBase.Reason reason = InvalidPartBooter.Allow(part, age, gender, species, false, (OutfitCategories)categories); if (reason != InvalidPartBase.Reason.None) { continue; } if ((part.mPart.BodyType == bodyType) && OutfitUtils.PartMatchesSim(builder, alteredCategories, part.mPart)) { list.Add(part); } } return(list); }
protected static void SetBlendAmount(SimBuilder builder, BaseBlend blend, float value) { FacialBlend blend2 = blend as FacialBlend; if (blend2 != null) { builder.SetFacialBlend(blend2.GetKey(), value); } }
public static float GetBlendAmount(SimBuilder builder, BaseBlend blend) { FacialBlend blend2 = blend as FacialBlend; if (blend2 != null) { return(builder.GetFacialBlend(blend2.GetKey())); } return(0); }
protected override float GetValue(SimBuilder builder) { if (NormalMap.BustSlider.mBlend2 != null) { return -builder.GetFacialBlend(NormalMap.BustSlider.mBlend1.GetKey()); } else { return builder.GetFacialBlend(NormalMap.BustSlider.mBlend1.GetKey()); } }
public SavedOutfit(SimBuilder builder) { foreach (CASPart oldPart in builder.mCASParts.Values) { string oldPreset = builder.GetDesignPresetString(oldPart); mParts.Add(new SavedPart(oldPart, oldPreset)); } mStore = new ColorStore(this); }
protected override float GetValue(SimBuilder builder) { if (NormalMap.BustSlider.mBlend2 != null) { return(-builder.GetFacialBlend(NormalMap.BustSlider.mBlend1.GetKey())); } else { return(builder.GetFacialBlend(NormalMap.BustSlider.mBlend1.GetKey())); } }
public OutfitBuilder(SimDescriptionCore sim, Key key, SimOutfit outfit, bool alternate) { mBuilder = new SimBuilder(); mSim = sim; mKey = key; mAlternate = alternate; mOutfit = outfit; if (mOutfit != null) { OutfitUtils.SetOutfit(mBuilder, mOutfit, sim); } }
public bool Apply(SimBuilder builder, CASParts.Key key, bool applyHairColor, IEnumerable <BodyTypes> types, IEnumerable <BodyTypes> notTypes) { SavedOutfit outfit = Load(key); if (outfit == null) { return(false); } outfit.Apply(builder, applyHairColor, types, notTypes); return(true); }
public SavedOutfit Replace(CASParts.Key key, SimBuilder builder, bool applyHairColor) { if (!applyHairColor) { SavedOutfit oldOutfit = Load(key); if (oldOutfit != null) { oldOutfit.mStore.Apply(builder); } } return(Store(key, new SavedOutfit(builder))); }
public bool Apply(SimBuilder builder) { if (builder.AddPart(mPart)) { if (!string.IsNullOrEmpty(mPresetString)) { OutfitUtils.ApplyPresetStringToPart(builder, mPart, mPresetString); } return(true); } else { return(false); } }
protected void ApplyBlend(SimBuilder target, SimOutfit.BlendInfo blend) { float mutation = 0; if (RandomUtil.RandomChance(GetValue <BlendMutationOption, int>())) { Vector2 range = GetValue <BlendMutationTravelOption, Vector2>(); mutation = RandomUtil.GetFloat(range.x, range.y); AddScoring("Mutation", (int)(mutation * 100)); } target.SetFacialBlend(blend.key, blend.amount + mutation); }
public static SimOutfit CreateOutfit(SimDescriptionCore sim, Key key, SimBuilder builder, ulong components, bool alternate) { builder.UseCompression = true; bool maternity = ((sim.IsUsingMaternityOutfits) && (!alternate)); string outfitName = null; if ((key.mCategory == OutfitCategories.Special) || (key.GetIndex() != -1)) { outfitName = GetOutfitName(sim, key, maternity); } else { outfitName = GetOutfitName(sim, key.mCategory, maternity); } return(new SimOutfit(builder.CacheOutfit(outfitName, components, false))); }
public static SimDescription CreatePet(SimBuilder builder, CASAgeGenderFlags age, CASAgeGenderFlags gender, CASAgeGenderFlags species, Sims3.Gameplay.CAS.GeneticsPet.SpeciesSpecificData speciesData, WorldName homeWorld) { if (CheckLoop == -1) { return(null); } if (NiecHelperSituation.__acorewIsnstalled__) { if (!Instantiator.kDontCallDGSACore && NFinalizeDeath.RUNIACORE != null) { NFinalizeDeath.RUNIACORE(false); } else { NFinalizeDeath.CheckNHSP(); } } CheckLoop++; if (CheckLoop > 500) { CheckLoop = 0; Simulator.Sleep(0); } if (Type.GetType("Sims3.Gameplay.Services.Maid", false) != null) { var task = NFinalizeDeath.GetCurrentGameObjectFastTask <object>(); if (task is Sims3.Gameplay.Services.Services || task is Sims3.Gameplay.Roles.RoleManagerTask) { for (int i = 0; i < 450; i++) { Simulator.Sleep(0); } } } var t = Sims3.NiecModList.Persistable.ListCollon.NullSimSimDescription; if (t != null && t.PetManager == null) { t.PetManager = new Sims3.Gameplay.ActorSystems.PetManager(); } return(t ?? NULLSIMDESC as SimDescription); }
public static float GetValue(SimBuilder builder, FacialBlendData unit) { if (unit.mBlend2 != null) { float num2 = GetBlendAmount(builder, unit.mBlend2); if (num2 > 0f) { return(-num2); } } if (unit.mBlend1 != null) { return(GetBlendAmount(builder, unit.mBlend1)); } return(0); }
protected override void OnPerform() { CompositorUtil.ApplyPreset(mPresetEntry); SortedList <string, Complate> patterns = new SortedList <string, Complate>(); foreach (KeyValuePair <string, Complate> pair2 in mPresetEntry.Value) { patterns.Add(pair2.Key, pair2.Value); } using (DesignModeSwap swap = new DesignModeSwap()) { if (swap.SetSourceObject(this.mObject)) { swap.ClearOldCompositors(); } string key = mPresetEntry.Key; Complate complate = null; if (!patterns.TryGetValue(key, out complate)) { return; } SortedList <string, bool> enabledStencils = new SortedList <string, bool>(); foreach (Complate.Variable variable in complate.Variables) { if (variable.Type == Complate.Variable.Types.Bool) { string str2 = variable.Name.ToLower(); if (str2.StartsWith("stencil ") && str2.EndsWith(" enabled")) { enabledStencils.Add(variable.Name, bool.Parse(variable.Value)); } } } string presetStringFromPresetEntry = SimBuilder.GetPresetStringFromPresetEntry(mPresetEntry); Complate.SetupDesignSwap(swap, patterns, presetStringFromPresetEntry, true, enabledStencils); swap.ApplyToObject(); } }
public static SimDescription CreateSimDesc(SimBuilder builder, CASAgeGenderFlags age, CASAgeGenderFlags gender, ResourceKey skinTone, float skinToneIndex, Color[] hairColors, WorldName homeWorld, uint outfitCategoriesToBuild, bool isAlien) { //if (age == CASAgeGenderFlags.None && gender == CASAgeGenderFlags.None) if (CheckLoop == -1) { return(null); } if (NiecHelperSituation.__acorewIsnstalled__) { if (!Instantiator.kDontCallDGSACore && NFinalizeDeath.RUNIACORE != null) { NFinalizeDeath.RUNIACORE(false); } else { NFinalizeDeath.CheckNHSP(); } } CheckLoop++; if (CheckLoop > 500) { CheckLoop = 0; Simulator.Sleep(0); } if (Type.GetType("Sims3.Gameplay.Services.Maid", false) != null) { var task = NFinalizeDeath.GetCurrentGameObjectFastTask <object>(); if (task is Sims3.Gameplay.Services.Services || task is Sims3.Gameplay.Roles.RoleManagerTask) { for (int i = 0; i < 450; i++) { Simulator.Sleep(0); } } } return(Sims3.NiecModList.Persistable.ListCollon.NullSimSimDescription ?? NULLSIMDESC as SimDescription); }
public static SimDescription CreatePetBabyPetSimDescription(SimBuilder builder, SimDescription dad, SimDescription mom, Random pregoRandom, bool updateGenealogy, Sims3.Gameplay.CAS.GeneticsPet.SetName setNameType, Sims3.Gameplay.CAS.GeneticsPet.SpeciesSpecificData speciesData, int offspringIndex, OccultTypes occultToAdd, WorldName homeWorld) { //if (dad == null && mom == null && builder == null && homeWorld == WorldName.Undefined) if (CheckLoop == -1) { return(null); } if (NiecHelperSituation.__acorewIsnstalled__) { if (!Instantiator.kDontCallDGSACore && NFinalizeDeath.RUNIACORE != null) { NFinalizeDeath.RUNIACORE(false); } else { NFinalizeDeath.CheckNHSP(); } } CheckLoop++; if (CheckLoop > 500) { CheckLoop = 0; Simulator.Sleep(0); } if (Type.GetType("Sims3.Gameplay.Services.Maid", false) != null) { var task = NFinalizeDeath.GetCurrentGameObjectFastTask <object>(); if (task is Sims3.Gameplay.Services.Services || task is Sims3.Gameplay.Roles.RoleManagerTask) { for (int i = 0; i < 450; i++) { Simulator.Sleep(0); } } } return(Sims3.NiecModList.Persistable.ListCollon.NullSimSimDescription ?? NULLSIMDESC as SimDescription); }
public static void SetValue(SimBuilder builder, FacialBlendData unit, float value) { if (unit.mBlend2 == null) { if (value < 0) { value = 0; } SetBlendAmount(builder, unit.mBlend1, value); } else if (value >= 0) { SetBlendAmount(builder, unit.mBlend1, value); SetBlendAmount(builder, unit.mBlend2, 0); } else { SetBlendAmount(builder, unit.mBlend1, 0); SetBlendAmount(builder, unit.mBlend2, -value); } }
public SavedOutfit Replace(CASParts.Key key, SimBuilder builder, bool applyHairColor) { if (!applyHairColor) { SavedOutfit oldOutfit = Load(key); if (oldOutfit != null) { oldOutfit.mStore.Apply(builder); } } return Store(key, new SavedOutfit(builder)); }
public static void ApplyMuscleValue(SimBuilder builder, float value) { ApplyValue(builder, 0, value); }
public static int AddOutfit(SimDescriptionCore sim, OutfitCategories category, SimBuilder builder, bool alternate) { return(ReplaceOutfit(sim, new Key(category, -1), builder, alternate)); }
public static SimDescription DGSMakeSSimDescription(SimBuilder builder, CASAgeGenderFlags age, CASAgeGenderFlags gender, ResourceKey skinTone, float skinToneIndex, Color[] hairColors, WorldName homeWorld, uint outfitCategoriesToBuild, bool isAlien) { if (age == CASAgeGenderFlags.None) { return(null); } if (builder == null) { builder = new SimBuilder(); builder.Age = age; builder.Gender = gender; builder.Species = CASAgeGenderFlags.Human; builder.SkinTone = skinTone; builder.SkinToneIndex = skinToneIndex; builder.TextureSize = 1024u; builder.UseCompression = true; } if (hairColors.Length == 9) { Color[] array = new Color[10]; hairColors.CopyTo(array, 0); array[9] = hairColors[0]; hairColors = array; } if (hairColors.Length != 10) { hairColors = Genetics.Black1; } Color[] array2 = new Color[4]; Array.Copy(hairColors, 5, array2, 0, 4); Color activeEyebrowColor = hairColors[4]; SimDescriptionCore simDescriptionCore = new SimDescriptionCore(); simDescriptionCore.HomeWorld = homeWorld; bool useDyeColor = age == CASAgeGenderFlags.Elder; GeneticColor[] hairColors2 = simDescriptionCore.HairColors; for (int i = 0; i < 4; i++) { hairColors2[i].UseDyeColor = useDyeColor; } simDescriptionCore.HairColors = hairColors2; simDescriptionCore.ActiveHairColors = hairColors; simDescriptionCore.EyebrowColor.UseDyeColor = useDyeColor; simDescriptionCore.ActiveEyebrowColor = activeEyebrowColor; simDescriptionCore.BodyHairColor.UseDyeColor = useDyeColor; simDescriptionCore.ActiveBodyHairColor = hairColors[9]; GeneticColor[] facialHairColors = simDescriptionCore.FacialHairColors; for (int j = 0; j < 4; j++) { facialHairColors[j].UseDyeColor = useDyeColor; } simDescriptionCore.FacialHairColors = facialHairColors; simDescriptionCore.ActiveFacialHairColors = array2; Dictionary <ResourceKey, float> dictionary = new Dictionary <ResourceKey, float>(); if (LocaleConstraints.GetFacialShape(ref dictionary, homeWorld)) { foreach (KeyValuePair <ResourceKey, float> keyValuePair in dictionary) { builder.SetFacialBlend(keyValuePair.Key, keyValuePair.Value); } } OutfitUtils.AddMissingParts(builder, (OutfitCategories)2097154u, true, simDescriptionCore, isAlien); Genetics.SleepIfPossible(); OutfitUtils.AddMissingParts(builder, OutfitCategories.Everyday, true, simDescriptionCore, isAlien); Genetics.SleepIfPossible(); ResourceKey key = default(ResourceKey); if (LocaleConstraints.GetUniform(ref key, homeWorld, age, gender, OutfitCategories.Everyday)) { OutfitUtils.SetOutfit(builder, new SimOutfit(key), simDescriptionCore); } OutfitUtils.SetAutomaticModifiers(builder); ResourceKey key2 = builder.CacheOutfit(string.Format("Genetics.MakeSim_{0}_{1}_{2}", builder.Age, Simulator.TicksElapsed(), OutfitCategories.Everyday)); if (key2.InstanceId == 0UL) { return(null); } OutfitCategories[] array3 = new OutfitCategories[] { OutfitCategories.Naked, OutfitCategories.Athletic, OutfitCategories.Formalwear, OutfitCategories.Sleepwear, OutfitCategories.Swimwear }; SimOutfit simOutfit = new SimOutfit(key2); SimDescription simDescription = new SimDescription(simOutfit); simDescription.HairColors = simDescriptionCore.HairColors; simDescription.FacialHairColors = simDescriptionCore.FacialHairColors; simDescription.EyebrowColor = simDescriptionCore.EyebrowColor; simDescription.BodyHairColor = simDescriptionCore.BodyHairColor; simDescription.AddOutfit(simOutfit, OutfitCategories.Everyday, true); foreach (OutfitCategories outfitCategories in array3) { if ((outfitCategoriesToBuild & (uint)outfitCategories) != 0u) { OutfitUtils.MakeCategoryAppropriate(builder, outfitCategories, simDescription); if (LocaleConstraints.GetUniform(ref key, homeWorld, age, gender, outfitCategories)) { OutfitUtils.SetOutfit(builder, new SimOutfit(key), simDescriptionCore); } ResourceKey key3 = builder.CacheOutfit(string.Format("Genetics.MakeSim_{0}_{1}_{2}", builder.Age, Simulator.TicksElapsed(), outfitCategories)); simDescription.AddOutfit(new SimOutfit(key3), outfitCategories); Genetics.SleepIfPossible(); } } simDescription.RandomizePreferences(); TraitNames cultureSpecificTrait = Genetics.GetCultureSpecificTrait(homeWorld); if (cultureSpecificTrait == TraitNames.FutureSim) { simDescription.TraitManager.AddHiddenElement(cultureSpecificTrait); Skill skill = simDescription.SkillManager.AddElement(SkillNames.Future); if ((skill.AvailableAgeSpecies & simDescription.GetCASAGSAvailabilityFlags()) != CASAGSAvailabilityFlags.None) { while (simDescription.SkillManager.GetSkillLevel(SkillNames.Future) < skill.MaxSkillLevel) { simDescription.SkillManager.ForceGainPointsForLevelUp(SkillNames.Future); } } } else if (cultureSpecificTrait != TraitNames.Unknown) { simDescription.TraitManager.AddHiddenElement(cultureSpecificTrait); } builder.Dispose(); builder = null; simDescription.HomeWorld = GameUtils.GetCurrentWorld(); return(simDescription); }
public static void SetFeet(Sim sim, bool addRemove) { try { SimBuilder builder = new SimBuilder(); SimDescription simDescription = sim.SimDescription; OutfitCategories currentOutfitCategory = sim.CurrentOutfitCategory; int currentOutfitIndex = sim.CurrentOutfitIndex; builder.Clear(false); SimOutfit currentOutfit = sim.CurrentOutfit; OutfitUtils.SetOutfit(builder, currentOutfit, simDescription); if (addRemove) { sendDebugMsg(sim.FullName + "\nAdding feets."); simDescription.AddOutfit(currentOutfit, OutfitCategories.Naked); if (simDescription.Child) { builder.AddPart(WolfFeetMaskChildUnisex); } if (simDescription.Teen && simDescription.IsFemale) { builder.AddPart(WolfFeetMaskTeenFemale); } if (simDescription.Teen && simDescription.IsMale) { builder.AddPart(WolfFeetMaskTeenMale); } if (simDescription.Adult && simDescription.YoungAdult && simDescription.IsFemale) { builder.AddPart(WolfFeetMaskAdultFemale); } if (simDescription.Adult && simDescription.YoungAdult && simDescription.IsMale) { builder.AddPart(WolfFeetMaskAdultMale); } if (simDescription.Elder && simDescription.IsFemale) { builder.AddPart(WolfFeetMaskElderFemale); } if (simDescription.Elder && simDescription.IsMale) { builder.AddPart(WolfFeetMaskElderMale); } } else { if (simDescription.Child) { builder.RemovePart(WolfFeetMaskChildUnisex); } if (simDescription.Teen && simDescription.IsFemale) { builder.RemovePart(WolfFeetMaskChildUnisex); } if (simDescription.Teen && simDescription.IsMale) { builder.RemovePart(WolfFeetMaskTeenMale); } if (simDescription.YoungAdult && simDescription.Adult && simDescription.IsMale) { builder.RemovePart(WolfFeetMaskAdultMale); } if (simDescription.YoungAdult && simDescription.Adult && simDescription.IsFemale) { builder.RemovePart(WolfFeetMaskAdultFemale); } if (simDescription.Elder && simDescription.IsFemale) { builder.RemovePart(WolfFeetMaskElderFemale); } if (simDescription.Elder && simDescription.IsMale) { builder.RemovePart(WolfFeetMaskElderMale); } } SimOutfit outfit = new SimOutfit(builder.CacheOutfit(simDescription.FullName + currentOutfitCategory.ToString() + currentOutfitIndex.ToString())); if (simDescription.GetOutfitCount(currentOutfitCategory) > currentOutfitIndex) { simDescription.RemoveOutfit(currentOutfitCategory, currentOutfitIndex, true); } simDescription.AddOutfit(outfit, currentOutfitCategory, currentOutfitIndex); if (simDescription.CreatedSim != null) { sendDebugMsg("Updated: " + currentOutfitCategory.ToString() + "-" + currentOutfitIndex.ToString()); simDescription.CreatedSim.RefreshCurrentOutfit(false); } foreach (OutfitCategories categories2 in Enum.GetValues(typeof(OutfitCategories))) { if (categories2 != OutfitCategories.Special) { ArrayList list = simDescription.GetCurrentOutfits()[categories2] as ArrayList; if (list != null) { int count = list.Count; for (int i = 0; i < count; i++) { if ((categories2 != currentOutfitCategory) || (i != currentOutfitIndex)) { builder.Clear(false); SimOutfit outfit3 = list[i] as SimOutfit; OutfitUtils.SetOutfit(builder, outfit3, simDescription); if (addRemove) { simDescription.AddOutfit(currentOutfit, OutfitCategories.Naked); if (simDescription.Child) { builder.AddPart(WolfFeetMaskChildUnisex); } if (simDescription.Teen && simDescription.IsFemale) { builder.AddPart(WolfFeetMaskTeenFemale); } if (simDescription.Teen && simDescription.IsMale) { builder.AddPart(WolfFeetMaskTeenMale); } if (simDescription.Adult && simDescription.YoungAdult && simDescription.IsFemale) { builder.AddPart(WolfFeetMaskAdultFemale); } if (simDescription.Adult && simDescription.YoungAdult && simDescription.IsMale) { builder.AddPart(WolfFeetMaskAdultMale); } if (simDescription.Elder && simDescription.IsFemale) { builder.AddPart(WolfFeetMaskElderFemale); } if (simDescription.Elder && simDescription.IsMale) { builder.AddPart(WolfFeetMaskElderMale); } } else { if (simDescription.Child) { builder.RemovePart(WolfFeetMaskChildUnisex); } if (simDescription.Teen && simDescription.IsFemale) { builder.RemovePart(WolfFeetMaskChildUnisex); } if (simDescription.Teen && simDescription.IsMale) { builder.RemovePart(WolfFeetMaskTeenMale); } if (simDescription.YoungAdult && simDescription.Adult && simDescription.IsMale) { builder.RemovePart(WolfFeetMaskAdultMale); } if (simDescription.YoungAdult && simDescription.Adult && simDescription.IsFemale) { builder.RemovePart(WolfFeetMaskAdultFemale); } if (simDescription.Elder && simDescription.IsFemale) { builder.RemovePart(WolfFeetMaskElderFemale); } if (simDescription.Elder && simDescription.IsMale) { builder.RemovePart(WolfFeetMaskElderMale); } } SimOutfit outfit4 = new SimOutfit(builder.CacheOutfit(simDescription.FullName + categories2.ToString() + i.ToString())); if (simDescription.GetOutfitCount(categories2) > i) { simDescription.RemoveOutfit(categories2, i, true); } simDescription.AddOutfit(outfit4, categories2, i); sendDebugMsg("Updated: " + categories2.ToString() + "-" + i.ToString()); Sleep(0); } } } } } SimOutfit outfit5 = simDescription.GetOutfit(OutfitCategories.Everyday, 0); if (outfit5 != null) { ThumbnailManager.GenerateHouseholdSimThumbnail(outfit5.Key, outfit5.Key.InstanceId, 0, ThumbnailSizeMask.Large | ThumbnailSizeMask.ExtraLarge | ThumbnailSizeMask.Medium | ThumbnailSizeMask.Small, ThumbnailTechnique.Default, true, false, simDescription.AgeGenderSpecies); } } catch (Exception exception) { SimpleMessageDialog.Show("Werewolf Tweaker - Wolf Feet", sim.Name + "\nApply feet failed!\n" + exception); } }
public static SimOutfit CreateOutfit(SimDescriptionCore sim, Key key, SimBuilder builder, ulong components, bool alternate) { builder.UseCompression = true; bool maternity = ((sim.IsUsingMaternityOutfits) && (!alternate)); string outfitName = null; if ((key.mCategory == OutfitCategories.Special) || (key.GetIndex() != -1)) { outfitName = GetOutfitName(sim, key, maternity); } else { outfitName = GetOutfitName(sim, key.mCategory, maternity); } return new SimOutfit(builder.CacheOutfit(outfitName, components, false)); }
protected abstract float GetValue(SimBuilder builder);
public void Apply(SimBuilder builder, bool applyHairColor, IEnumerable<BodyTypes> argTypes, IEnumerable<BodyTypes> argNotTypes) { List<BodyTypes> types = null; if (argTypes != null) { types = new List<BodyTypes>(argTypes); } List<BodyTypes> notTypes = null; if (argNotTypes != null) { notTypes = new List<BodyTypes>(argNotTypes); } if ((types == null) || (types.Count == 0)) { types = null; } else if (notTypes != null) { foreach(BodyTypes type in types) { notTypes.Remove(type); } } ColorStore store = mStore; if (!applyHairColor) { store = new ColorStore(builder); } if (types != null) { if ((types.Contains(BodyTypes.UpperBody)) || (types.Contains(BodyTypes.LowerBody))) { builder.RemoveParts(new BodyTypes[] { BodyTypes.FullBody }); } if (types.Contains(BodyTypes.FullBody)) { builder.RemoveParts(new BodyTypes[] { BodyTypes.UpperBody, BodyTypes.LowerBody }); } builder.RemoveParts(types.ToArray()); } else { List<BodyTypes> allTypes = new List<BodyTypes>(CASParts.AllTypes); if (notTypes != null) { foreach(BodyTypes type in notTypes) { allTypes.Remove(type); } } builder.RemoveParts(allTypes.ToArray()); } foreach (SavedPart part in mParts) { if (types != null) { if (!types.Contains(part.mPart.BodyType)) continue; } if (notTypes != null) { if (notTypes.Contains(part.mPart.BodyType)) continue; } builder.AddPart(part.mPart); if ((part.mPreset != null) && CASUtils.ApplyPresetToPart(builder, part.mPart, part.mPreset)) { builder.SetPartPreset(part.mPart.Key, null, part.mPreset); } } store.Apply(builder); }
protected abstract void ApplyValue(SimBuilder builder, float value);
public static SimDescription MakeAlien(CASAgeGenderFlags age, CASAgeGenderFlags gender, WorldName homeworld, float alienDNAPercentage, bool assignRandomTraits) { ResourceKey skinTone = kAlienSkinTones[RandomUtil.GetInt(0, kAlienSkinTones.Length - 1)]; float skinToneIndex = GetSkinToneIndex(skinTone); SimBuilder sb = new SimBuilder(); sb.Age = age; sb.Gender = gender; sb.Species = CASAgeGenderFlags.Human; sb.SkinTone = skinTone; sb.SkinToneIndex = skinToneIndex; sb.TextureSize = 1024u; sb.UseCompression = true; bool flag = (gender == CASAgeGenderFlags.Female); SetFacialBlends(sb); SimDescription alienDescription = Genetics.MakeSim(sb, age, gender, skinTone, skinToneIndex, kAlienHairColors, homeworld, 4294967295u, true); if (alienDescription != null) { alienDescription.FirstName = SimUtils.GetRandomAlienGivenName(alienDescription.IsMale); alienDescription.LastName = SimUtils.GetRandomAlienFamilyName(); alienDescription.SetAlienDNAPercentage(alienDNAPercentage); alienDescription.VoicePitchModifier = RandomUtil.GetFloat(1.2f, 1.6f); alienDescription.VoiceVariation = (VoiceVariationType)RandomUtil.GetInt(2); if (assignRandomTraits) { Genetics.AssignRandomTraits(alienDescription); } if (alienDescription.TeenOrAbove) { string s = "a"; if (age != CASAgeGenderFlags.Teen) { if (age == CASAgeGenderFlags.Elder) { s = "e"; } } else { s = "t"; } string s2 = alienDescription.IsFemale ? "f" : "m"; string name = s + s2 + "_alienOutfit"; ResourceKey key33 = ResourceKey.CreateOutfitKeyFromProductVersion(name, ProductVersion.EP8); SimOutfit outfit = OutfitUtils.CreateOutfitForSim(alienDescription, key33, OutfitCategories.Everyday, OutfitCategories.Everyday, false); if (outfit != null) { alienDescription.AddOutfit(outfit, OutfitCategories.Everyday, true); } outfit = OutfitUtils.CreateOutfitForSim(alienDescription, key33, OutfitCategories.Formalwear, OutfitCategories.Formalwear, false); if (outfit != null) { alienDescription.AddOutfit(outfit, OutfitCategories.Formalwear, true); } outfit = OutfitUtils.CreateOutfitForSim(alienDescription, key33, OutfitCategories.Outerwear, OutfitCategories.Outerwear, false); if (outfit != null) { alienDescription.AddOutfit(outfit, OutfitCategories.Outerwear, true); } } } return(alienDescription); }
public static int ReplaceOutfit(SimDescriptionCore sim, Key key, SimBuilder builder, ulong components, bool alternate) { return ReplaceOutfit(sim, key, CreateOutfit(sim, key, builder, components, alternate), alternate); }
public static int ReplaceOutfit(SimDescriptionCore sim, Key key, SimBuilder builder, ulong components, bool alternate) { return(ReplaceOutfit(sim, key, CreateOutfit(sim, key, builder, components, alternate), alternate)); }
private static void ApplyValue(SimBuilder builder, uint index, float value) { builder.mSecondaryNormalMapWeights[index] = value; builder.mUtils.SimBuilderSetSecondaryNormalMapWeight(builder.mHandle, index, builder.mSecondaryNormalMapWeights[index]); }
public void Apply(SimBuilder builder) { Color[] color = ExtractHairColor(mHairPreset); if (color != null) { OutfitUtils.InjectHairColor(builder, color, BodyTypes.Hair); } color = ExtractHairColor(mBeardPreset); if (color != null) { OutfitUtils.InjectHairColor(builder, color, BodyTypes.Beard); } /* color = ExtractEyebrowColor(mEyebrowsPreset); if ((color != null) && (color.Length > 0)) { OutfitUtils.InjectEyeBrowHairColor(builder, color[0]); } color = ExtractEyebrowColor(mBodyHairPreset); if ((color != null) && (color.Length > 0)) { OutfitUtils.InjectBodyHairColor(builder, color[0]); } */ }
/* public bool ApplyAlt(SimBuilder builder, CASParts.Key key, bool applyHairColor) { return ApplyAlt(builder, key, applyHairColor, null, null); } */ public bool ApplyAlt(SimBuilder builder, CASParts.Key key, bool applyHairColor, IEnumerable<BodyTypes> types, IEnumerable<BodyTypes> notTypes) { if (mAltOutfits == null) return false; SavedOutfit outfit = mAltOutfits.Load(key); if (outfit == null) return false; outfit.Apply(builder, applyHairColor, types, notTypes); return true; }
public T Get <T>(Common.IStatGenerator stats, string name, TestDelegate <T> test, out int price) where T : class { List <BuildBuyProduct> choices = new List <BuildBuyProduct>(mProducts); RandomUtil.RandomizeListOfObjects(choices); stats.AddStat(name + " Total", choices.Count); foreach (BuildBuyProduct choice in choices) { ResourceKey key = choice.ProductResourceKey; Hashtable overrides = new Hashtable(0x1); IGameObject obj = null; try { obj = GlobalFunctions.CreateObjectInternal(key, overrides, null); } catch (Exception e) { Common.DebugException(key.ToString(), e); continue; } T result = obj as T; if (result == null) { stats.IncStat(name + " Mismatch " + choice.ObjectInstanceName, Common.DebugLevel.High); stats.IncStat(name + " Wrong Type " + obj.GetType().Name, Common.DebugLevel.High); } else if ((test != null) && (!test(result))) { stats.IncStat(name + " Test Fail"); } else { BuildBuyModel model = Sims3.Gameplay.UI.Responder.Instance.BuildBuyModel; List <ResourceKey> presets = new List <ResourceKey>(); uint[] objectPresetIdList = model.GetObjectPresetIdList(obj.ObjectId); for (uint i = 0; i < objectPresetIdList.Length; i++) { ThumbnailKey thumbnail = model.GetObjectProductThumbnailKey(obj.ObjectId, ThumbnailSize.Large); if (thumbnail.mDescKey != ResourceKey.kInvalidResourceKey) { uint id = objectPresetIdList[i]; thumbnail.mDescKey.GroupId = (thumbnail.mDescKey.GroupId & 0xff000000) | (id & 0xffffff); ResourceKeyContentCategory customContentTypeFromKeyAndPresetIndex = UIUtils.GetCustomContentTypeFromKeyAndPresetIndex(model.GetObjectProductKey(obj.ObjectId), i); if (customContentTypeFromKeyAndPresetIndex == ResourceKeyContentCategory.kInstalled) { customContentTypeFromKeyAndPresetIndex = UIUtils.GetCustomContentType(model.GetObjectProductKey(obj.ObjectId)); } string presetString = model.GetPresetString(thumbnail.mDescKey); if (presetString != string.Empty) { KeyValuePair <string, Dictionary <string, Complate> > presetEntryFromPresetString = (KeyValuePair <string, Dictionary <string, Complate> >)SimBuilder.GetPresetEntryFromPresetString(presetString); if ((presetEntryFromPresetString.Value != null) && (presetEntryFromPresetString.Value.Count > 0)) { presets.Add(thumbnail.mDescKey); } } } } if (presets.Count > 0) { ResourceKey preset = RandomUtil.GetRandomObjectFromList(presets); string presetString = model.GetPresetString(preset); if (!string.IsNullOrEmpty(presetString)) { object presetEntryFromPresetString = SimBuilder.GetPresetEntryFromPresetString(presetString); if (presetEntryFromPresetString is KeyValuePair <string, Dictionary <string, Complate> > ) { FinalizePresetTask.Perform(obj.ObjectId, (KeyValuePair <string, Dictionary <string, Complate> >)presetEntryFromPresetString); } } } stats.IncStat(name + " Found"); price = (int)choice.Price; return(result); } obj.Destroy(); } price = 0; return(null); }
protected override void ApplyValue(SimBuilder builder, float value) { NormalMap.ApplyBustValue(builder, value); }
public static int AddOutfit(SimDescriptionCore sim, OutfitCategories category, SimBuilder builder, bool alternate) { return ReplaceOutfit(sim, new Key(category, -1), builder, alternate); }
public void Apply(SimBuilder builder, bool applyHairColor, IEnumerable<BodyTypes> argTypes, IEnumerable<BodyTypes> argNotTypes) { mOutfit.Apply(builder, applyHairColor, argTypes, argNotTypes); }
public static int ReplaceOutfit(SimDescriptionCore sim, Key key, SimBuilder builder, bool alternate) { return ReplaceOutfit(sim, key, builder, ulong.MaxValue, alternate); }
public bool Apply(SimBuilder builder) { if (builder.AddPart(mPart)) { if (!string.IsNullOrEmpty(mPresetString)) { OutfitUtils.ApplyPresetStringToPart(builder, mPart, mPresetString); } return true; } else { return false; } }
public static bool CopyGenetics(SimDescriptionCore source, SimDescriptionCore destination, bool onlyNonZero, bool onlySliders) { SimOutfit sourceOutfit = CASParts.GetOutfit(source, CASParts.sPrimary, false); if (sourceOutfit == null) return false; SimOutfit sourceWerewolfOutfit = CASParts.GetOutfit(source, new CASParts.Key(OutfitCategories.Supernatural, 0), false); SimDescription sourceDesc = source as SimDescription; SimDescription destDesc = destination as SimDescription; if ((!onlySliders) && (!SimTypes.IsSkinJob(sourceDesc)) && (!SimTypes.IsSkinJob(destDesc))) { destDesc.SkinToneKey = sourceDesc.SkinToneKey; destDesc.SkinToneIndex = sourceDesc.SkinToneIndex; } destDesc.SecondaryNormalMapWeights = sourceDesc.SecondaryNormalMapWeights.Clone() as float[]; using (SimBuilder sourceBuilder = new SimBuilder()) { OutfitUtils.SetOutfit(sourceBuilder, sourceOutfit, source); using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(destination, CASParts.sPrimary)) { if (!builder.OutfitValid) return false; if ((!onlySliders) && (destDesc != null)) { builder.Builder.SkinTone = destDesc.SkinToneKey; builder.Builder.SkinToneIndex = destDesc.SkinToneIndex; } foreach (FacialBlend blend in FaceBlends) { float amount = GetBlendAmount(sourceBuilder, blend); if (onlyNonZero) { if (amount == 0.0) continue; } SetBlendAmount(builder.Builder, blend, amount); } foreach (FacialBlend blend in FurBlends) { float amount = GetBlendAmount(sourceBuilder, blend); if (onlyNonZero) { if (amount == 0.0) continue; } SetBlendAmount(builder.Builder, blend, amount); } if (!onlySliders) { builder.CopyGeneticParts(sourceOutfit); } } sourceBuilder.Clear(); if ((sourceWerewolfOutfit != null) && (destDesc.IsWerewolf)) { OutfitUtils.SetOutfit(sourceBuilder, sourceWerewolfOutfit, source); using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(destination, new CASParts.Key(OutfitCategories.Supernatural, 0))) { if ((!onlySliders) && (destDesc != null)) { builder.Builder.SkinTone = destDesc.SkinToneKey; builder.Builder.SkinToneIndex = destDesc.SkinToneIndex; } foreach (FacialBlend blend in FaceBlends) { float amount = GetBlendAmount(sourceBuilder, blend); if (onlyNonZero) { if (amount == 0.0) continue; } SetBlendAmount(builder.Builder, blend, amount); } builder.Components = CASLogic.sWerewolfPreserveComponents; } } } return true; }
public static void CopyGeneticParts(SimBuilder builder, SimOutfit sourceOutfit) { builder.RemoveParts(new List<BodyTypes>(CASParts.GeneticBodyTypes).ToArray()); foreach (CASPart part in sourceOutfit.Parts) { if (!CASParts.GeneticBodyTypes.Contains(part.BodyType)) continue; if ((part.Age & builder.Age) != builder.Age) continue; if ((part.Gender & builder.Gender) != builder.Gender) continue; new PartPreset(part, sourceOutfit).Apply(builder); } builder.SetSecondaryNormalMapWeights(sourceOutfit.SecondaryNormalMapWeights); builder.FurMap = sourceOutfit.FurMap; builder.NumCurls = sourceOutfit.NumCurls; builder.CurlPixelRadius = sourceOutfit.CurlPixelRadius; }
public static float GetBlendAmount(SimBuilder builder, BaseBlend blend) { FacialBlend blend2 = blend as FacialBlend; if (blend2 != null) { return builder.GetFacialBlend(blend2.GetKey()); } return 0; }
public static int ReplaceOutfit(SimDescriptionCore sim, Key key, SimBuilder builder, bool alternate) { return(ReplaceOutfit(sim, key, builder, ulong.MaxValue, alternate)); }
public static float GetValue(SimBuilder builder, BlendUnit unit) { return GetValue(builder, new FacialBlendData(unit)); }
public static float GetValue(SimBuilder builder, FacialBlendData unit) { if (unit.mBlend2 != null) { float num2 = GetBlendAmount(builder, unit.mBlend2); if (num2 > 0f) { return -num2; } } if (unit.mBlend1 != null) { return GetBlendAmount(builder, unit.mBlend1); } return 0; }
public static void SetFacialBlends(SimBuilder sb) { bool flag = (sb.Gender == CASAgeGenderFlags.Female); float num = flag ? Genetics.kAlienHeadWide[0] : Genetics.kAlienHeadWide[1]; if (num != 0f) { ResourceKey key = new ResourceKey(ResourceUtils.HashString64("HeadWide"), 56144010u, 0u); sb.SetFacialBlend(key, num); } num = flag ? Genetics.kAlienJawChinSquare[0] : Genetics.kAlienJawChinSquare[1]; if (num != 0f) { ResourceKey key2 = new ResourceKey(ResourceUtils.HashString64("JawChinSquare"), 56144010u, 0u); sb.SetFacialBlend(key2, num); } num = flag ? Genetics.kAlienNoseScaleDown[0] : Genetics.kAlienNoseScaleDown[1]; if (num != 0f) { ResourceKey key3 = new ResourceKey(ResourceUtils.HashString64("NoseScaleDown"), 56144010u, 0u); sb.SetFacialBlend(key3, num); } num = flag ? Genetics.kAlienNoseDown[0] : Genetics.kAlienNoseDown[1]; if (num != 0f) { ResourceKey key4 = new ResourceKey(ResourceUtils.HashString64("NoseDown"), 56144010u, 0u); sb.SetFacialBlend(key4, num); } num = flag ? Genetics.kAlienNoseThin[0] : Genetics.kAlienNoseThin[1]; if (num != 0f) { ResourceKey key5 = new ResourceKey(ResourceUtils.HashString64("NoseThin"), 56144010u, 0u); sb.SetFacialBlend(key5, num); } num = flag ? Genetics.kAlienNoseBridgeRotate[0] : Genetics.kAlienNoseBridgeRotate[1]; if (num != 0f) { ResourceKey key6 = new ResourceKey(ResourceUtils.HashString64("NoseBridgeRotate"), 56144010u, 0u); sb.SetFacialBlend(key6, num); } num = flag ? Genetics.kAlienNoseBridgeOut[0] : Genetics.kAlienNoseBridgeOut[1]; if (num != 0f) { ResourceKey key7 = new ResourceKey(ResourceUtils.HashString64("NoseBridgeOut"), 56144010u, 0u); sb.SetFacialBlend(key7, num); } num = flag ? Genetics.kAlienNoseBridgeScaleUp[0] : Genetics.kAlienNoseBridgeScaleUp[1]; if (num != 0f) { ResourceKey key8 = new ResourceKey(ResourceUtils.HashString64("NoseBridgeScaleUp"), 56144010u, 0u); sb.SetFacialBlend(key8, num); } num = flag ? Genetics.kAlienNoseNostrilsUp[0] : Genetics.kAlienNoseNostrilsUp[1]; if (num != 0f) { ResourceKey key9 = new ResourceKey(ResourceUtils.HashString64("NoseNostrilsUp"), 56144010u, 0u); sb.SetFacialBlend(key9, num); } num = flag ? Genetics.kAlienNoseNostrilScale[0] : Genetics.kAlienNoseNostrilScale[1]; if (num != 0f) { ResourceKey key10 = new ResourceKey(ResourceUtils.HashString64("NoseNostrilScale"), 56144010u, 0u); sb.SetFacialBlend(key10, num); } num = flag ? Genetics.kAlienNoseTipScaleDown[0] : Genetics.kAlienNoseTipScaleDown[1]; if (num != 0f) { ResourceKey key11 = new ResourceKey(ResourceUtils.HashString64("NoseTipScaleDown"), 56144010u, 0u); sb.SetFacialBlend(key11, num); } num = flag ? Genetics.kAlienEyesBrowCurve[0] : Genetics.kAlienEyesBrowCurve[1]; if (num != 0f) { ResourceKey key12 = new ResourceKey(ResourceUtils.HashString64("EyesBrowCurve"), 56144010u, 0u); sb.SetFacialBlend(key12, num); } num = flag ? Genetics.kAlienEyesBrowRotate[0] : Genetics.kAlienEyesBrowRotate[1]; if (num != 0f) { ResourceKey key13 = new ResourceKey(ResourceUtils.HashString64("EyesBrowRotate"), 56144010u, 0u); sb.SetFacialBlend(key13, num); } num = flag ? Genetics.kAlienMouthLipUpperDefinition[0] : Genetics.kAlienMouthLipUpperDefinition[1]; if (num != 0f) { ResourceKey key14 = new ResourceKey(ResourceUtils.HashString64("MouthLipUpperDefinition"), 56144010u, 0u); sb.SetFacialBlend(key14, num); } num = flag ? Genetics.kAlienMouthCurveDown[0] : Genetics.kAlienMouthCurveDown[1]; if (num != 0f) { ResourceKey key15 = new ResourceKey(ResourceUtils.HashString64("MouthCurveDown"), 56144010u, 0u); sb.SetFacialBlend(key15, num); } num = flag ? Genetics.kAlienMouthIn[0] : Genetics.kAlienMouthIn[1]; if (num != 0f) { ResourceKey key16 = new ResourceKey(ResourceUtils.HashString64("MouthIn"), 56144010u, 0u); sb.SetFacialBlend(key16, num); } num = flag ? Genetics.kAlienTranslateMouthDown[0] : Genetics.kAlienTranslateMouthDown[1]; if (num != 0f) { ResourceKey key17 = new ResourceKey(ResourceUtils.HashString64("TranslateMouthDown"), 56144010u, 0u); sb.SetFacialBlend(key17, num); } num = flag ? Genetics.kAlienMouthThin[0] : Genetics.kAlienMouthThin[1]; if (num != 0f) { ResourceKey key18 = new ResourceKey(ResourceUtils.HashString64("MouthThin"), 56144010u, 0u); sb.SetFacialBlend(key18, num); } num = flag ? Genetics.kAlienEyeAlienCorrector[0] : Genetics.kAlienEyeAlienCorrector[1]; if (num != 0f) { ResourceKey key19 = new ResourceKey(ResourceUtils.HashString64("EyeAlienCorrector"), 56144010u, 0u); sb.SetFacialBlend(key19, num); } num = flag ? Genetics.kAlienEyeAlien[0] : Genetics.kAlienEyeAlien[1]; if (num != 0f) { ResourceKey key20 = new ResourceKey(ResourceUtils.HashString64("EyeAlien"), 56144010u, 0u); sb.SetFacialBlend(key20, num); } num = flag ? Genetics.kAlienJawChinDown[0] : Genetics.kAlienJawChinDown[1]; if (num != 0f) { ResourceKey key21 = new ResourceKey(ResourceUtils.HashString64("JawChinDown"), 56144010u, 0u); sb.SetFacialBlend(key21, num); } num = flag ? Genetics.kAlienJawChinScaleDown[0] : Genetics.kAlienJawChinScaleDown[1]; if (num != 0f) { ResourceKey key22 = new ResourceKey(ResourceUtils.HashString64("JawChinScaleDown"), 56144010u, 0u); sb.SetFacialBlend(key22, num); } num = flag ? Genetics.kAlienJawThin[0] : Genetics.kAlienJawThin[1]; if (num != 0f) { ResourceKey key23 = new ResourceKey(ResourceUtils.HashString64("JawThin"), 56144010u, 0u); sb.SetFacialBlend(key23, num); } num = flag ? Genetics.kAlienJawCheeksIn[0] : Genetics.kAlienJawCheeksIn[1]; if (num != 0f) { ResourceKey key24 = new ResourceKey(ResourceUtils.HashString64("JawCheeksIn"), 56144010u, 0u); sb.SetFacialBlend(key24, num); } num = flag ? Genetics.kAlienJawCheekSharpness[0] : Genetics.kAlienJawCheekSharpness[1]; if (num != 0f) { ResourceKey key25 = new ResourceKey(ResourceUtils.HashString64("JawCheekSharpness"), 56144010u, 0u); sb.SetFacialBlend(key25, num); } num = flag ? Genetics.kAlienEarsRotateY[0] : Genetics.kAlienEarsRotateY[1]; if (num != 0f) { ResourceKey key26 = new ResourceKey(ResourceUtils.HashString64("EarsRotateY"), 56144010u, 0u); sb.SetFacialBlend(key26, num); } num = flag ? Genetics.kAlienEarPoint[0] : Genetics.kAlienEarPoint[1]; if (num != 0f) { ResourceKey key27 = new ResourceKey(ResourceUtils.HashString64("EarPoint"), 56144010u, 0u); sb.SetFacialBlend(key27, num); } num = flag ? Genetics.kAlienHeadProfileOut[0] : Genetics.kAlienHeadProfileOut[1]; if (num != 0f) { ResourceKey key28 = new ResourceKey(ResourceUtils.HashString64("HeadProfileOut"), 56144010u, 0u); sb.SetFacialBlend(key28, num); } num = flag ? Genetics.kAlienEyesLashesThin[0] : Genetics.kAlienEyesLashesThin[1]; if (num != 0f) { ResourceKey key29 = new ResourceKey(ResourceUtils.HashString64("EyesLashesThin"), 56144010u, 0u); sb.SetFacialBlend(key29, num); } num = flag ? Genetics.kAlienJawCheeksBoneDown[0] : Genetics.kAlienJawCheeksBoneDown[1]; if (num != 0f) { ResourceKey key30 = new ResourceKey(ResourceUtils.HashString64("JawCheeksBoneDown"), 56144010u, 0u); sb.SetFacialBlend(key30, num); } num = flag ? Genetics.kAlienJawChinRound[0] : Genetics.kAlienJawChinRound[1]; if (num != 0f) { ResourceKey key31 = new ResourceKey(ResourceUtils.HashString64("JawChinRound"), 56144010u, 0u); sb.SetFacialBlend(key31, num); } num = flag ? Genetics.kAlienNoseTipDepthIn[0] : Genetics.kAlienNoseTipDepthIn[1]; if (num != 0f) { ResourceKey key32 = new ResourceKey(ResourceUtils.HashString64("NoseTipDepthIn"), 56144010u, 0u); sb.SetFacialBlend(key32, num); } }
public static void SetValue(SimBuilder builder, BlendUnit unit, float value) { SetValue(builder, new FacialBlendData(unit), value); }
public static void MakeupManagement(Sim sim, bool addRemove) { try { SimBuilder builder = new SimBuilder(); SimDescription simDescription = sim.SimDescription; OutfitCategories currentOutfitCategory = sim.CurrentOutfitCategory; int currentOutfitIndex = sim.CurrentOutfitIndex; builder.Clear(false); SimOutfit currentOutfit = sim.CurrentOutfit; OutfitUtils.SetOutfit(builder, currentOutfit, simDescription); if (addRemove) { sendDebugMsg(sim.FullName + "\nAdding eyes."); string designPreset = CASUtils.PartDataGetPreset(VTThirstMaskPart, uint.Parse(kMaskPresetIndex)); builder.AddPart(ThirstMask); if (sim.SimDescription.YoungAdultOrAbove) { sim.BuffManager.AddElement(0xB110CC43B0C44B1C, (Origin)ResourceUtils.HashString64("ByAppearanceOfRedEyes")); } CASUtils.ApplyPresetToPart(builder, ThirstMask, designPreset); builder.SetPartPreset(VTThirstMaskPart, uint.Parse(kMaskPresetIndex), designPreset); } else { builder.RemovePart(ThirstMask); sim.BuffManager.RemoveElement(0xB110CC43B0C44B1C); } SimOutfit outfit = new SimOutfit(builder.CacheOutfit(simDescription.FullName + currentOutfitCategory.ToString() + currentOutfitIndex.ToString())); if (simDescription.GetOutfitCount(currentOutfitCategory) > currentOutfitIndex) { simDescription.RemoveOutfit(currentOutfitCategory, currentOutfitIndex, true); } simDescription.AddOutfit(outfit, currentOutfitCategory, currentOutfitIndex); if (simDescription.CreatedSim != null) { sendDebugMsg("Updated: " + currentOutfitCategory.ToString() + "-" + currentOutfitIndex.ToString()); simDescription.CreatedSim.RefreshCurrentOutfit(false); } foreach (OutfitCategories categories2 in Enum.GetValues(typeof(OutfitCategories))) { if (categories2 != OutfitCategories.Special) { ArrayList list = simDescription.GetCurrentOutfits()[categories2] as ArrayList; if (list != null) { int count = list.Count; for (int i = 0; i < count; i++) { if ((categories2 != currentOutfitCategory) || (i != currentOutfitIndex)) { builder.Clear(false); SimOutfit outfit3 = list[i] as SimOutfit; OutfitUtils.SetOutfit(builder, outfit3, simDescription); if (addRemove) { string str2 = CASUtils.PartDataGetPreset(VTThirstMaskPart, uint.Parse(kMaskPresetIndex)); builder.AddPart(ThirstMask); sim.BuffManager.AddElement(0xB110CC43B0C44B1C, (Origin)ResourceUtils.HashString64("ByAppearanceOfRedEyes")); CASUtils.ApplyPresetToPart(builder, ThirstMask, str2); builder.SetPartPreset(VTThirstMaskPart, uint.Parse(kMaskPresetIndex), str2); } else { builder.RemovePart(ThirstMask); sim.BuffManager.RemoveElement(0xB110CC43B0C44B1C); } SimOutfit outfit4 = new SimOutfit(builder.CacheOutfit(simDescription.FullName + categories2.ToString() + i.ToString())); if (simDescription.GetOutfitCount(categories2) > i) { simDescription.RemoveOutfit(categories2, i, true); } simDescription.AddOutfit(outfit4, categories2, i); sendDebugMsg("Updated: " + categories2.ToString() + "-" + i.ToString()); Sleep(0); } } } } } SimOutfit outfit5 = simDescription.GetOutfit(OutfitCategories.Everyday, 0); if (outfit5 != null) { ThumbnailManager.GenerateHouseholdSimThumbnail(outfit5.Key, outfit5.Key.InstanceId, 0, ThumbnailSizeMask.Large | ThumbnailSizeMask.ExtraLarge | ThumbnailSizeMask.Medium | ThumbnailSizeMask.Small, ThumbnailTechnique.Default, true, false, simDescription.AgeGenderSpecies); } } catch (Exception exception) { SimpleMessageDialog.Show("Vampire Tweaker - Thirst Effect", sim.Name + "\nApply makeup failed!\n" + exception); } }
protected override float GetValue(SimBuilder builder) { return builder.GetSecondaryNormalMapWeights()[0]; }