public static SimDescription UnpackSim(MiniSimDescription ths, bool updateGenealogy) { try { if (ths == null) { return(null); } // Calling ImportSimDescription prior to the Aging Manager being available is invalid, don't allow it if (AgingManager.Singleton == null) { return(null); } SimDescription desc = new SimDescription(); ResourceKeyContentCategory installed = ResourceKeyContentCategory.kInstalled; DownloadContent.ImportSimDescription(ths.mTravelKey, desc, ref installed); desc.SimDescriptionId = ths.mSimDescriptionId; if (desc.CareerManager != null) { // Fixup for careers require a household, which is not set until later in this process desc.CareerManager.mJob = null; desc.CareerManager.mSchool = null; } desc.Fixup(); if (updateGenealogy && !GameStates.IsTravelling) { if (desc.DefaultOutfitKey == ResourceKey.kInvalidResourceKey) { SimOutfit outfit = desc.GetOutfit(OutfitCategories.Everyday, 0x0); if ((outfit == null) || (!outfit.IsValid)) { desc.Dispose(false, false); return(null); } desc.UpdateFromOutfit(OutfitCategories.Everyday); } desc.CASGenealogy = ths.CASGenealogy; } Corrections.CleanupBrokenSkills(desc, null); OccultTypeHelper.ValidateOccult(desc, null); return(desc); } catch (Exception e) { Common.Exception(ths.FullName, e); return(null); } }
private static bool SwitchToOutfitWithoutSpin(Sim ths, OutfitCategories category, int index) { if (!ths.AcceptableClothingCategoryForAge(category)) { return(false); } if (!ths.SwitchToOutfitTraitTest(Sim.ClothesChangeReason.Force, ref category)) { return(false); } SimOutfit outfit = CASParts.GetOutfit(ths.mSimDescription, new CASParts.Key(category, index), false); if ((outfit == null) || (outfit.Key == ResourceKey.kInvalidResourceKey)) { return(false); } if (ths.SimDescription.IsSupernaturalForm) { if (ths.BuffManager.TransformBuffInst != null) { if (ths.BuffManager.TransformBuffInst.GenerateTransformOutfit(outfit)) { int superIndex = ths.SimDescription.GetOutfitCount(OutfitCategories.Supernatural) - 0x1; outfit = CASParts.GetOutfit(ths.SimDescription, new CASParts.Key(OutfitCategories.Supernatural, superIndex), false); } } } ths.SwitchToOutfitWithoutSpin(category, outfit, index); return(true); }
public NewBimDesc(SimOutfit defaultOutfit) { if (dontCall) { return; } var _this = (SimDescription)(object)this; Create.AddNiecSimDescription(_this); NiecException.NewSendTextExceptionToDebugger(); _this.mSkinToneKey = default(ResourceKey); _this.mSecondaryNormalMapWeights = new float[2]; _this.mFlags = SimDescription.FlagField.Marryable | SimDescription.FlagField.CanBeKilledOnJob | SimDescription.FlagField.ShowSocialsOnSim | SimDescription.FlagField.Contactable | SimDescription.FlagField.CanStartFires | SimDescription.FlagField.WasCasCreated; _this.mAlmaMaterName = string.Empty; _this.UserDaysInCurrentAge = int.MaxValue; _this.CharismaStats = default(SimDescription.Charisma); _this.mShapeDeltaMultiplier = 1f; _this.mPreferredVehicleGuid = ObjectGuid.InvalidObjectGuid; _this.mPreferredBoatGuid = ObjectGuid.InvalidObjectGuid; _this.LastMakeoverReceivedUserDirected = SimClock.CurrentTime() - new DateAndTime(4, DaysOfTheWeek.Sunday, 0, 0, 0); _this.mStoredSlot = PASSPORTSLOT.PASSPORTSLOT_NUM; _this.mReturnSimAlarm = AlarmHandle.kInvalidHandle; if (defaultOutfit != null && defaultOutfit.IsValid) { _this.mIsValidDescription = true; _this.Init(defaultOutfit); _this.InitHairColors(defaultOutfit); } }
protected static void CheckOutfits() { foreach (Sim sim in new List <Sim>(LotManager.Actors)) { try { OutfitCategories currentCategory = sim.CurrentOutfitCategory; int currentIndex = sim.CurrentOutfitIndex; SimOutfit outfit = sim.SimDescription.GetOutfit(currentCategory, currentIndex); if ((outfit == null) || (!outfit.IsValid)) { outfit = sim.SimDescription.GetOutfit(OutfitCategories.Everyday, 0); if ((outfit != null) && (outfit.IsValid)) { new ChangeOutfitTask(sim.SimDescription, OutfitCategories.Everyday).AddToSimulator(); } } } catch (Exception e) { Common.Exception(sim, e); } } }
protected static bool ApplyOccupationUniform(SimDescription ths, SimOutfit uniform) { if (((uniform != null) && uniform.IsValid) && !ths.OccultManager.DisallowClothesChange()) { SimOutfit source = CASParts.GetOutfit(ths, CASParts.sPrimary, false); if (source == null) { return(false); } CASParts.Key schoolKey = new CASParts.Key("NRaasSchoolOutfit"); SimOutfit schoolOutfit = CASParts.GetOutfit(ths, schoolKey, false); if (schoolOutfit == null) { using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(ths, schoolKey, source)) { new SavedOutfit(uniform).Apply(builder, true); } } schoolOutfit = CASParts.GetOutfit(ths, schoolKey, false); if (schoolOutfit != null) { Sim createdSim = ths.CreatedSim; if (createdSim != null) { SwitchOutfits.SwitchNoSpin(createdSim, schoolKey); return(true); } } } return(false); }
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; }
private bool ChangeIntoOutfit(Sim actor) { if (actor.BuffManager.HasTransformBuff()) { return(false); } bool result = false; actor.RefreshCurrentOutfit(false); SimOutfit uniform = null; string s = actor.SimDescription.Child ? "c" : ""; string outfitName = s + "ArsilChopsticksOutfit"; bool flag = false; if (flag || OutfitUtils.TryGenerateSimOutfit(outfitName, ProductVersion.BaseGame, out uniform)) { SimOutfit outfit = null; SimOutfit outfit2 = actor.SimDescription.GetOutfit(actor.CurrentOutfitCategory, actor.CurrentOutfitIndex); if (flag || OutfitUtils.TryApplyUniformToOutfit(outfit2, uniform, actor.SimDescription, "ArsilChopsticksOutfit", out outfit)) { actor.SimDescription.AddSpecialOutfit(outfit, "ArsilChopsticksOutfit"); int specialOutfitIndexFromKey = actor.SimDescription.GetSpecialOutfitIndexFromKey(ResourceUtils.HashString32("ArsilChopsticksOutfit")); actor.SwitchToOutfitWithoutSpin(OutfitCategories.Special, specialOutfitIndexFromKey); result = true; } } return(result); }
public void Dispose() { if (mOutfit != null) { int index = ReplaceOutfit(mSim, mKey, mBuilder, mComponents, mAlternate); mOutfit = mSim.GetOutfit(mKey.mCategory, index); SimDescription sim = mSim as SimDescription; if ((sim != null) && (sim.CreatedSim != null)) { try { sim.CreatedSim.RefreshCurrentOutfit(false); } catch (Exception e) { Common.DebugException(sim, e); } } } mBuilder.Dispose(); Common.Sleep(); }
protected static bool ApplyOccupationUniform(SimDescription ths, SimOutfit uniform) { if (((uniform != null) && uniform.IsValid) && !ths.OccultManager.DisallowClothesChange()) { SimOutfit source = CASParts.GetOutfit(ths, CASParts.sPrimary, false); if (source == null) return false; CASParts.Key schoolKey = new CASParts.Key("NRaasSchoolOutfit"); SimOutfit schoolOutfit = CASParts.GetOutfit(ths, schoolKey, false); if (schoolOutfit == null) { using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(ths, schoolKey, source)) { new SavedOutfit(uniform).Apply(builder, true); } } schoolOutfit = CASParts.GetOutfit(ths, schoolKey, false); if (schoolOutfit != null) { Sim createdSim = ths.CreatedSim; if (createdSim != null) { SwitchOutfits.SwitchNoSpin(createdSim, schoolKey); return true; } } } return false; }
public static void GenerateCrossWorldThumbnail(MiniSimDescription miniSim, SimDescription sim, bool forceGeneration) { if (forceGeneration || (sim.HomeWorld == GameUtils.GetCurrentWorld())) { ThumbnailTechnique technique = sim.IsDead ? ThumbnailTechnique.Sepia : ThumbnailTechnique.Default; ResourceKey travelThumbnailOutfitForSim = MiniSimDescription.GetTravelThumbnailOutfitForSim(sim); if (travelThumbnailOutfitForSim.InstanceId != 0x0L) { ThumbnailManager.GenerateHouseholdSimThumbnail(travelThumbnailOutfitForSim, travelThumbnailOutfitForSim.InstanceId, 0x0, ThumbnailSizeMask.Large, technique, false, true, sim.AgeGenderSpecies); ThumbnailManager.GenerateTravelSimThumbnail(travelThumbnailOutfitForSim, miniSim.mThumbKey.mDescKey.InstanceId, ThumbnailSizeMask.Large, technique); } else { SimOutfit outfit = sim.GetOutfit(OutfitCategories.Everyday, 0); if ((outfit != null) && (outfit.IsValid)) { sim.mDefaultOutfitKey = outfit.Key; ThumbnailManager.GenerateHouseholdSimThumbnail(sim.DefaultOutfitKey, sim.DefaultOutfitKey.InstanceId, 0, ThumbnailSizeMask.Large, technique, false, true, sim.AgeGenderSpecies); ThumbnailManager.GenerateTravelSimThumbnail(sim.DefaultOutfitKey, miniSim.mThumbKey.mDescKey.InstanceId, ThumbnailSizeMask.Large, technique); } } } }
protected override void Perform(SimDescription sim, CASParts.Key outfitKey, CASParts.Key displayKey) { SimOutfit source = CASParts.GetOutfit(sim, outfitKey, false); using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(sim, new CASParts.Key(Dresser.GetStoreOutfitKey(outfitKey.mCategory, sim.IsUsingMaternityOutfits)), source, true)) { } }
public static void ChangeSimToTowelOutfit(Sim s, bool romantic) { if ((s.CurrentOutfitCategory != OutfitCategories.Singed) && !(s.Service is GrimReaper)) { if ((romantic) && (Woohooer.Settings.mNakedOutfitMassage)) { s.SwitchToOutfitWithSpin(Sim.ClothesChangeReason.GoingToBathe); } else { SimOutfit outfit = null; SimDescription simDescription = s.SimDescription; ResourceKey key = ResourceKey.CreateOutfitKey(OutfitUtils.GetAgePrefix(simDescription.Age, true) + OutfitUtils.GetGenderPrefix(simDescription.Gender) + "MassageTowel", 0x2000000); outfit = OutfitUtils.CreateOutfitForSim(simDescription, key, OutfitCategories.SkinnyDippingTowel, true); if (outfit != null) { s.SwitchToOutfitWithSpin(outfit.Key); } else { // Custom s.SwitchToOutfitWithSpin(Sim.ClothesChangeReason.Force, OutfitCategories.Swimwear); } } } }
public override void Init(ArrestSuspectSituation parent) { IPoliceStation objects = (IPoliceStation)RabbitHole.GetRandomRabbitHoleOfType(RabbitHoleType.PoliceStation); if (objects == null) { base.Exit(); } else { IPoliceStation randomObjectFromList = RandomUtil.GetRandomObjectFromList <IPoliceStation>(objects); parent.Station = randomObjectFromList; } SimDescription description = parent.CreateNewCopFromPool(); if (description == null) { base.Exit(); } else { if (description.CreatedSim != null) { parent.Cop = description.CreatedSim; parent.Cop.SwitchToOutfitWithoutSpin(OutfitCategories.Career); } else { SimOutfit outfit = description.GetOutfit(OutfitCategories.Career, 0); parent.Cop = description.Instantiate(Vector3.OutOfWorld, outfit.Key); } parent.CopCar = CarNpcManager.Singleton.CreateServiceCar(ServiceType.Police); base.ForceSituationSpecificInteraction(parent.Cop, parent.Cop, new ArrestSuspectSituation.GoToCulpritsLocation.Definition(base.Parent), null, new Callback(this.OnCompletion), new Callback(this.OnFailure), new InteractionPriority(InteractionPriorityLevel.High)); } }
public static Sim PerformOffLot(SimDescription ths, Lot lot, SimOutfit outfit, OnReset reset) { if ((ths.CreatedSim != null) && (reset == null)) { return(ths.CreatedSim); } return(Perform(ths, GetPositionInRandomLot(lot), outfit, reset)); }
protected override void Perform(SimDescription sim, CASParts.Key outfitKey, CASParts.Key displayKey) { SimOutfit geneOutfit = CASParts.GetOutfit(sim, CASParts.sPrimary, false); SimOutfit source = CASParts.GetOutfit(sim, outfitKey, true); using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(sim, new CASParts.Key(displayKey.mCategory, sim), geneOutfit)) { new SavedOutfit(source).Apply(builder, false, null, CASParts.GeneticBodyTypes); } }
public static void ValidateOutfit(SimDescription sim, ref SimOutfit outfit, ref int index) { if ((outfit == null) || !outfit.IsValid) { int count = sim.GetOutfitCount(OutfitCategories.Career); if (count > 0) { outfit = sim.GetOutfit(OutfitCategories.Career, 0); index = 0; } } }
public Item(CASParts.Key key, SimDescriptionCore sim) : this(key) { if (sim != null) { SimOutfit outfit = CASParts.GetOutfit(sim, key, false); if (outfit != null) { mThumbnail = new ThumbnailKey(outfit, 0x0, ThumbnailSize.Medium, ThumbnailCamera.Body); } } }
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 SavedOutfit(SimOutfit outfit) { if (outfit != null) { foreach (CASPart oldPart in outfit.Parts) { string oldPreset = outfit.GetPartPreset(oldPart.Key); mParts.Add(new SavedPart(oldPart, oldPreset)); } } mStore = new ColorStore(this); }
private static void OnAcceptButtonClick(WindowBase sender, UIButtonClickEventArgs args) { try { CASGenetics ths = CASGenetics.gSingleton; if (ths == null) { return; } if (!ths.mHourglassVisible) { args.Handled = true; if (ths.mSelectedOffspring != null) { if (CASPuck.Instance != null) { ths.mReturnState = ths.mSelectedOffspring.IsPet ? CASState.PetSummary : CASState.Summary; CASPuck.Instance.AttemptingToAdd = true; CASPuck.ShowInputBlocker(); Responder.Instance.CASModel.RequestLoadSim(ths.mSelectedOffspring, false); Responder.Instance.CASModel.RequestAddSimToHousehold(false); Responder.Instance.CASModel.RequestClearStack(); CASController.Singleton.SetCurrentState(ths.mReturnState); } else { FacialBlends.CopyGenetics(ths.mSelectedOffspring as SimDescription, sChoice, false, false); new SavedOutfit.Cache(sChoice).PropagateGenetics(sChoice, CASParts.sPrimary); SimOutfit currentOutfit = sChoice.CreatedSim.CurrentOutfit; if (currentOutfit != null) { ThumbnailManager.GenerateHouseholdSimThumbnail(currentOutfit.Key, currentOutfit.Key.InstanceId, 0x0, ThumbnailSizeMask.Large | ThumbnailSizeMask.ExtraLarge | ThumbnailSizeMask.Medium | ThumbnailSizeMask.Small, ThumbnailTechnique.Default, true, false, sChoice.AgeGenderSpecies); } DestroyHousehold(); CASGenetics.Unload(); } } } } catch (Exception e) { Common.Exception("OnAcceptButtonClick", e); } }
public bool PropagateGenetics(SimDescriptionCore sim, CASParts.Key geneKey) { SimOutfit origOutfit = CASParts.GetOutfit(sim, geneKey, false); if (origOutfit == null) { return(false); } foreach (Key outfit in Outfits) { if (outfit.mKey == geneKey) { continue; } using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(sim, outfit.mKey, origOutfit)) { outfit.Apply(builder, true, null, CASParts.GeneticBodyTypes); } } if (mAltOutfits != null) { foreach (Key outfit in mAltOutfits.Outfits) { if (outfit.mKey == geneKey) { continue; } using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(sim, outfit.mKey, origOutfit)) { outfit.Apply(builder, true, null, CASParts.GeneticBodyTypes); } } } SimDescription simDesc = sim as SimDescription; if ((simDesc != null) && (simDesc.CreatedSim != null)) { simDesc.CreatedSim.RefreshCurrentOutfit(false); } Common.Sleep(); return(true); }
public static void CreateActors(List <SimDescription> SimDescs, Lot lot, bool bAddInitialObjects) { List <Sim> sims = new List <Sim>(); foreach (SimDescription description in SimDescs) { try { description.HomeWorld = GameUtils.GetCurrentWorld(); if (description.CreatedSim == null) { if (description.Weight < 0f) { description.ChangeBodyShape(0f, description.Fitness, -description.Weight); } else { description.ChangeBodyShape(description.Weight, description.Fitness, 0f); } SimOutfit outfit = description.GetOutfit(OutfitCategories.Everyday, 0x0); Vector3 position = new Vector3(); // Custom Sim sim = Instantiation.Perform(description, position, outfit, null /*bAddInitialObjects*/); if (sim.SimDescription.IsGhost) { Urnstone.SimToPlayableGhost(sim, true); } sims.Add(sim); } else { sims.Add(description.CreatedSim); } description.GetMiniSimForProtection().AddProtection(MiniSimDescription.ProtectionFlag.PartialFromPlayer); } catch (Exception e) { Common.Exception(description, e); } } if (lot != null) { BinCommon.PlaceSims(sims, lot); } }
public static bool GetPartPreset(BodyTypes type, SimOutfit sourceOutfit, ref PartPreset result) { foreach (CASPart part in sourceOutfit.Parts) { if (part.BodyType != type) { continue; } result = new PartPreset(part, sourceOutfit.GetPartPreset(part.Key)); return(true); } return(false); }
// Token: 0x06000D4F RID: 3407 RVA: 0x000151D0 File Offset: 0x000141D0 public ThumbnailKey(SimOutfit outfit, int index, ThumbnailSize size, ThumbnailCamera camera, ThumbnailTechnique technique) { this.mDescKey = outfit.Key; this.mTemplateObjectId = default(ObjectGuid); this.mIndex = index; this.mSize = size; this.mCamera = camera; this.mBodyType = 0u; this.mAgeGender = (uint)outfit.AgeGenderSpecies; this.mLiveUpdate = false; this.mTechnique = technique; this.mMaterialState = 0u; this.mGeometryState = 3787619543u; this.mDoNotCache = false; this.mAdditionalSizesToCache = ThumbnailSizeMask.None; }
public NewBimDesc(SimDescriptionCore sdCore) { if (dontCall) { return; } var _this = (SimDescription)(object)this; if (!NStackTrace.IsCallingMyMethedLite("CreateSimHead", true, 3)) { Create.AddNiecSimDescription(_this); NiecException.NewSendTextExceptionToDebugger(); } _this.mSkinToneKey = default(ResourceKey); _this.mSecondaryNormalMapWeights = new float[2]; _this.mFlags = SimDescription.FlagField.Marryable | SimDescription.FlagField.CanBeKilledOnJob | SimDescription.FlagField.ShowSocialsOnSim | SimDescription.FlagField.Contactable | SimDescription.FlagField.CanStartFires | SimDescription.FlagField.WasCasCreated; _this.mAlmaMaterName = string.Empty; _this.UserDaysInCurrentAge = int.MaxValue; _this.CharismaStats = default(SimDescription.Charisma); _this.mShapeDeltaMultiplier = 1f; _this.mPreferredVehicleGuid = ObjectGuid.InvalidObjectGuid; _this.mPreferredBoatGuid = ObjectGuid.InvalidObjectGuid; _this.LastMakeoverReceivedUserDirected = SimClock.CurrentTime() - new DateAndTime(4, DaysOfTheWeek.Sunday, 0, 0, 0); _this.mStoredSlot = PASSPORTSLOT.PASSPORTSLOT_NUM; _this.mReturnSimAlarm = AlarmHandle.kInvalidHandle; _this.mIsValidDescription = true; if (SimDescription.sLoadedSimDescriptions != null) { SimDescription.sLoadedSimDescriptions.Add(_this); } try { _this.TraitManager = new TraitManager(sdCore.TraitManager); _this.TraitManager.SetSimDescription(_this); _this.CopyAllOutfits(sdCore); _this.CopyCoreFileds(sdCore); SimOutfit outfit = sdCore.GetOutfit(OutfitCategories.Everyday, 0); _this.Init(outfit); _this.CopyPetFields(sdCore); } catch (Exception) { } }
protected override OptionResult Run(GameHitParameters <Sim> parameters) { SimOutfit outfit = new SimOutfit(CASUtils.GetOutfitInGameObject(parameters.mTarget.Proxy.ObjectId)); string msg = ""; foreach (CASPart part in outfit.Parts) { msg += CASParts.PartToString(part); } Common.WriteLog(msg); SimpleMessageDialog.Show(Name, Common.Localize(GetTitlePrefix() + ":Success", parameters.mTarget.IsFemale, new object[] { parameters.mTarget })); return(OptionResult.SuccessClose); }
protected override void OnPerform() { try { if ((mCurrentOnly) && (mSim.CreatedSim != null)) { using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(mSim, new CASParts.Key(mSim.CreatedSim))) { builder.Builder.RemoveParts(mTypes); } } else { ProgressDialog.Show(Responder.Instance.LocalizationModel.LocalizeString("Ui/Caption/Global:Processing", new object[0x0]), false); SavedOutfit.Cache cache = new SavedOutfit.Cache(mSim); foreach (SavedOutfit.Cache.Key outfit in cache.Outfits) { using (CASParts.OutfitBuilder builder = new CASParts.OutfitBuilder(mSim, outfit.mKey)) { builder.Builder.RemoveParts(mTypes); } } } if (mSim.CreatedSim != null) { SimOutfit currentOutfit = mSim.CreatedSim.CurrentOutfit; if (currentOutfit != null) { ThumbnailManager.GenerateHouseholdSimThumbnail(currentOutfit.Key, currentOutfit.Key.InstanceId, 0x0, ThumbnailSizeMask.Large | ThumbnailSizeMask.ExtraLarge | ThumbnailSizeMask.Medium | ThumbnailSizeMask.Small, ThumbnailTechnique.Default, true, false, mSim.AgeGenderSpecies); } } if (mPostPerform != null) { mPostPerform(); } } finally { ProgressDialog.Close(); } }
public Item(CASParts.Key outfitKey, bool alternate, SimDescription sim, CASParts.Key displayKey) : base(outfitKey, displayKey.GetLocalizedName(sim, false), 0) { mDisplayKey = displayKey; if (mValue.mCategory == OutfitCategories.None) { SetThumbnail("shop_all_r2", ProductVersion.BaseGame); } else { SimOutfit outfit = CASParts.GetOutfit(sim, mValue, alternate); if (outfit != null) { mThumbnail = new ThumbnailKey(outfit, 0x0, ThumbnailSize.Medium, ThumbnailCamera.Body); } } }
public override bool Run() { try { Sim target = Target as Sim; SimOutfit outfit = target.SimDescription.GetOutfit(target.CurrentOutfitCategory, target.CurrentOutfitIndex); DebugEnabler.WriteLog(outfit.Key.ToString()); SimpleMessageDialog.Show(Common.Localize("ShowOutfitKey:MenuName"), outfit.Key.ToString()); } catch (Exception exception) { Common.Exception(Actor, Target, exception); } return(true); }
public static void TestAndRebuildWerewolfOutfit(SimDescription sim) { if (!sim.IsWerewolf) { return; } if (sim.GetOutfitCount(OutfitCategories.Supernatural) == 0) { return; } SimOutfit outfit = sim.GetOutfit(OutfitCategories.Supernatural, 0); if ((outfit != null) && (outfit.SkinToneKey.InstanceId == 0x0)) { RebuildWerewolfOutfit(sim); } }
public static Sim Perform(SimDescription ths, Vector3 position, SimOutfit outfit, OnReset reset) { try { ResourceKey outfitKey = ths.mDefaultOutfitKey; if (outfit == null) { if (ths.IsHorse) { outfit = ths.GetOutfit(OutfitCategories.Naked, 0); } if (outfit == null) { outfit = ths.GetOutfit(OutfitCategories.Everyday, 0); } if ((outfit == null) || (!outfit.IsValid)) { return(null); } } if (outfit != null) { outfitKey = outfit.Key; } return(Perform(ths, position, outfitKey, true, reset)); } catch (Exception e) { ths.mSim = null; ths.mDefaultOutfitKey = ResourceKey.kInvalidResourceKey; Common.Exception(ths, e); } return(null); }
public bool ApplyPartPreset(CASPart part, SimOutfit sourceOutfit) { return new PartPreset(part, sourceOutfit).Apply(mBuilder); }
public static bool GetPartPreset(BodyTypes type, SimOutfit sourceOutfit, ref PartPreset result) { foreach (CASPart part in sourceOutfit.Parts) { if (part.BodyType != type) continue; result = new PartPreset(part, sourceOutfit.GetPartPreset(part.Key)); return true; } return false; }
public static PartPreset GetPartPreset(CASPart part, SimOutfit sourceOutfit) { return new PartPreset(part, sourceOutfit.GetPartPreset(part.Key)); }
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 void CopyGeneticParts(SimOutfit sourceOutfit) { CopyGeneticParts(mBuilder, sourceOutfit); }
public void RequestStateOutfit(OutfitCategories category, int index, SimOutfit newOutfit) { mCASModel.RequestStateOutfit(category, index, newOutfit); }
public override bool TryGetUniformForCurrentLevel(CASAgeGenderFlags age, CASAgeGenderFlags gender, out SimOutfit uniform) { return mOther.mOutfits.TryGetUniformForCurrentLevel(age, gender, out uniform, base.TryGetUniformForCurrentLevel); }
public static Sim PerformOffLot(SimDescription ths, Lot lot, SimOutfit outfit, OnReset reset) { if ((ths.CreatedSim != null) && (reset == null)) return ths.CreatedSim; return Perform(ths, GetPositionInRandomLot(lot), outfit, reset); }
public void RequestSetOutfit(SimOutfit newOutfit) { mCASModel.RequestSetOutfit(newOutfit); }
public void RequestSetBreed(SimOutfit newOutfit) { mCASModel.RequestSetBreed(newOutfit); }
public void RequestSetCoat(SimOutfit newOutfit, bool colorationOnly) { mCASModel.RequestSetCoat(newOutfit, colorationOnly); }
public static ProcessOptions GetCheck(SimOutfit outfit) { ProcessOptions results = ProcessOptions.None; foreach (CASPart part in outfit.Parts) { if (CASParts.sAccessories.Contains(part.BodyType)) { results |= ProcessOptions.Accessories; } else if (CASParts.IsMakeup(part.BodyType)) { results |= ProcessOptions.Makeup; } else if (part.BodyType == BodyTypes.Beard) { results |= ProcessOptions.Beard; } else if (CASParts.BodyHairTypes.Contains(part.BodyType)) { results |= ProcessOptions.BodyHair; } } return results; }
public void Invalidate() { mOutfit = null; }
public static int ReplaceOutfit(SimDescriptionCore sim, Key key, SimOutfit newOutfit, bool alternate) { bool maternity = ((sim.IsUsingMaternityOutfits) && (!alternate)); ArrayList outfits = GetOutfits(sim, key.mCategory, alternate); if (outfits == null) { outfits = new ArrayList(); if (maternity) { sim.mMaternityOutfits[key.mCategory] = outfits; } else { sim.Outfits[key.mCategory] = outfits; } } int index = key.GetIndex(sim, alternate); if ((index == -1) || (index >= outfits.Count)) { outfits.Add(newOutfit); index = outfits.Count - 1; } else if (index < outfits.Count) { SimOutfit oldOutfit = outfits[index] as SimOutfit; if (oldOutfit != null) { bool inUse = false; foreach (OutfitCategories categories in sim.GetCurrentOutfits().Keys) { ArrayList list2 = sim.GetOutfits(categories); if (list2 != null) { foreach (SimOutfit outfit in list2) { if (outfit.Key == oldOutfit.Key) { inUse = true; break; } } } if (inUse) break; } if (!inUse) { oldOutfit.Uncache(); } } outfits[index] = newOutfit; } else { outfits.Insert(index, newOutfit); } switch (key.mCategory) { case OutfitCategories.Special: if (!string.IsNullOrEmpty(key.mSpecialKey)) { if (sim.mSpecialOutfitIndices == null) { sim.mSpecialOutfitIndices = new Dictionary<uint, int>(); } sim.mSpecialOutfitIndices[ResourceUtils.HashString32(key.mSpecialKey)] = index; } break; case OutfitCategories.Everyday: SimDescription simDesc = sim as SimDescription; if (simDesc != null) { simDesc.mDefaultOutfitKey = sim.GetOutfit(OutfitCategories.Everyday, 0).Key; } break; } return index; }
public void RequestSpeciesAndBreed(CASAgeGenderFlags newSpecies, SimOutfit newOutfit) { mCASModel.RequestSpeciesAndBreed(newSpecies, newOutfit); }
public PartPreset(CASPart part, SimOutfit sourceOutfit) : base(part, sourceOutfit.GetPartPreset(part.Key)) { }
public OutfitBuilder(SimDescriptionCore sim, Key key, SimOutfit outfit) : this(sim, key, outfit, false) { }
public static Sim Perform(SimDescription ths, Vector3 position, SimOutfit outfit, OnReset reset) { try { ResourceKey outfitKey = ths.mDefaultOutfitKey; if (outfit == null) { if (ths.IsHorse) { outfit = ths.GetOutfit(OutfitCategories.Naked, 0); } if (outfit == null) { outfit = ths.GetOutfit(OutfitCategories.Everyday, 0); } if ((outfit == null) || (!outfit.IsValid)) { return null; } } if (outfit != null) { outfitKey = outfit.Key; } return Perform(ths, position, outfitKey, true, reset); } catch (Exception e) { ths.mSim = null; ths.mDefaultOutfitKey = ResourceKey.kInvalidResourceKey; Common.Exception(ths, e); } return null; }
protected override OptionResult Run(GameHitParameters<GameObject> parameters) { Common.StringBuilder msg = new Common.StringBuilder(); try { Sim actor = parameters.mActor as Sim; Sim target = parameters.mTarget as Sim; if (!AcceptCancelDialog.Show("You are about to run 'TestSim', proceed?")) return OptionResult.Failure; SimOutfit outfit = new SimOutfit(target.SimDescription.DefaultOutfitKey); CASPart part3 = new CASPart(); foreach (CASPart part4 in outfit.Parts) { if (part4.BodyType == BodyTypes.LowerBody) { part3 = part4; } } msg += Common.NewLine + part3.Key; string vFXName = RobotDataManager.GetVFXName(part3.Key.InstanceId, RobotDataManager.RobotParts.InGameHoverVFX); msg += Common.NewLine + "A: " + vFXName; vFXName = RobotDataManager.GetVFXName(part3.Key.InstanceId, RobotDataManager.RobotParts.CABHoverVFX); msg += Common.NewLine + "B: " + vFXName; outfit = target.SimDescription.GetOutfit(OutfitCategories.Everyday, 0); part3 = new CASPart(); foreach (CASPart part4 in outfit.Parts) { if (part4.BodyType == BodyTypes.LowerBody) { part3 = part4; } } msg += Common.NewLine + part3.Key; vFXName = RobotDataManager.GetVFXName(part3.Key.InstanceId, RobotDataManager.RobotParts.InGameHoverVFX); msg += Common.NewLine + "A: " + vFXName; vFXName = RobotDataManager.GetVFXName(part3.Key.InstanceId, RobotDataManager.RobotParts.CABHoverVFX); msg += Common.NewLine + "B: " + vFXName; msg += Common.NewLine + target.CurrentWalkStyle; } catch (Exception e) { GameHitParameters<GameObject>.Exception(parameters, msg, e); } finally { Common.DebugWriteLog(msg); } return OptionResult.SuccessClose; }