Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }
Ejemplo n.º 4
0
        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);
                }
            }
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
            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;
            }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
            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;
        }
Ejemplo n.º 10
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 11
0
        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))
            { }
        }
Ejemplo n.º 12
0
 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);
             }
         }
     }
 }
Ejemplo n.º 13
0
        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));
            }
        }
Ejemplo n.º 14
0
        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));
        }
Ejemplo n.º 15
0
        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);
            }
        }
Ejemplo n.º 16
0
 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;
         }
     }
 }
Ejemplo n.º 17
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);
         }
     }
 }
Ejemplo n.º 18
0
 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);
     }
 }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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);
            }
        }
Ejemplo n.º 22
0
            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);
            }
Ejemplo n.º 23
0
        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);
            }
        }
Ejemplo n.º 24
0
            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);
            }
Ejemplo n.º 25
0
 // 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;
 }
Ejemplo n.º 26
0
        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)
            { }
        }
Ejemplo n.º 27
0
        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);
        }
Ejemplo n.º 28
0
        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();
            }
        }
Ejemplo n.º 29
0
            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);
                    }
                }
            }
Ejemplo n.º 30
0
        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);
        }
Ejemplo n.º 31
0
        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);
            }
        }
Ejemplo n.º 32
0
        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);
        }
Ejemplo n.º 33
0
 public bool ApplyPartPreset(CASPart part, SimOutfit sourceOutfit)
 {
     return new PartPreset(part, sourceOutfit).Apply(mBuilder);
 }
Ejemplo n.º 34
0
            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;
            }
Ejemplo n.º 35
0
 public static PartPreset GetPartPreset(CASPart part, SimOutfit sourceOutfit)
 {
     return new PartPreset(part, sourceOutfit.GetPartPreset(part.Key));
 }
Ejemplo n.º 36
0
            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;
            }
Ejemplo n.º 37
0
 public void CopyGeneticParts(SimOutfit sourceOutfit)
 {
     CopyGeneticParts(mBuilder, sourceOutfit);
 }
Ejemplo n.º 38
0
 public void RequestStateOutfit(OutfitCategories category, int index, SimOutfit newOutfit)
 {
     mCASModel.RequestStateOutfit(category, index, newOutfit);
 }
Ejemplo n.º 39
0
 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;
         }
     }
 }
Ejemplo n.º 40
0
 public override bool TryGetUniformForCurrentLevel(CASAgeGenderFlags age, CASAgeGenderFlags gender, out SimOutfit uniform)
 {
     return mOther.mOutfits.TryGetUniformForCurrentLevel(age, gender, out uniform, base.TryGetUniformForCurrentLevel);
 }
Ejemplo n.º 41
0
        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);
        }
Ejemplo n.º 42
0
 public void RequestSetOutfit(SimOutfit newOutfit)
 {
     mCASModel.RequestSetOutfit(newOutfit);
 }
Ejemplo n.º 43
0
 public void RequestSetBreed(SimOutfit newOutfit)
 {
     mCASModel.RequestSetBreed(newOutfit);
 }
Ejemplo n.º 44
0
 public void RequestSetCoat(SimOutfit newOutfit, bool colorationOnly)
 {
     mCASModel.RequestSetCoat(newOutfit, colorationOnly);
 }
Ejemplo n.º 45
0
            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();
            }
Ejemplo n.º 46
0
            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);
                }
            }
Ejemplo n.º 47
0
        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;
        }
Ejemplo n.º 48
0
 public void Invalidate()
 {
     mOutfit = null;
 }
Ejemplo n.º 49
0
        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;
        }
Ejemplo n.º 50
0
 public void RequestSpeciesAndBreed(CASAgeGenderFlags newSpecies, SimOutfit newOutfit)
 {
     mCASModel.RequestSpeciesAndBreed(newSpecies, newOutfit);
 }
Ejemplo n.º 51
0
 public PartPreset(CASPart part, SimOutfit sourceOutfit)
     : base(part, sourceOutfit.GetPartPreset(part.Key))
 { }
Ejemplo n.º 52
0
 public OutfitBuilder(SimDescriptionCore sim, Key key, SimOutfit outfit)
     : this(sim, key, outfit, false)
 { }
Ejemplo n.º 53
0
        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;
        }
Ejemplo n.º 54
0
        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;
        }