예제 #1
0
        //public static Pattern DiscoverPatternStartUp()
        //{
        //    ResourceKey getPattern = new ResourceKey();
        //    PatternInfo mPatternInfoInit = new PatternInfo();
        //    List<ResourceKey> checkIfAdded = new List<ResourceKey>();

        //    do
        //    {
        //        getPattern = RandomUtil.GetRandomObjectFromList(ObjectLoader.EasySewablesList);
        //        if (!checkIfAdded.Contains(getPattern))
        //        {
        //            checkIfAdded.Add(getPattern);
        //            break;
        //        }
        //    }
        //    while (true);

        //    if (mStoredPatternsKeySettingsList.Contains(getPattern))
        //    {
        //        try
        //        {
        //            for (int i = 0; i < ObjectLoader.sewableSettings.Count; i++)
        //            {
        //                mPatternInfoInit.resKeyPattern = getPattern;
        //                // Move on if the reskey is invalid.
        //                if (mPatternInfoInit.resKeyPattern == ResourceKey.kInvalidResourceKey)
        //                {
        //                    continue;
        //                }

        //                mPatternInfoInit.fabricsNeeded = ObjectLoader.sewableSettings[i].typeFabric;
        //                mPatternInfoInit.IsMagic = ObjectLoader.sewableSettings[i].isMagicProject;
        //                mPatternInfoInit.amountOfFabricToRemove = ObjectLoader.sewableSettings[i].amountRemoveFabric;
        //                mPatternInfoInit.mSkilllevel = 0;
        //                mPatternInfoInit.isClothing = ObjectLoader.sewableSettings[i].isClothing;
        //                mPatternInfoInit.mClothingName = ObjectLoader.sewableSettings[i].clothingName;
        //                mPatternInfoInit.mWasPatternGifted = false;

        //                if (mPatternInfoInit.isClothing)
        //                {
        //                    mPatternInfoInit.mSimOutfit = new CASPart(mPatternInfoInit.resKeyPattern);
        //                }

        //                // Pattern OBJD key.
        //                ResourceKey reskey1 = new ResourceKey(0x19D4F5930F26B2D8, 0x319E4F1D, 0x00000000);
        //                Pattern.PatternObjectInitParams initData = new Pattern.PatternObjectInitParams(mPatternInfoInit.fabricsNeeded, mPatternInfoInit.IsMagic, mPatternInfoInit.amountOfFabricToRemove, mPatternInfoInit.mSkilllevel, mPatternInfoInit.resKeyPattern, mPatternInfoInit.isClothing, mPatternInfoInit.mSimOutfit, mPatternInfoInit.mClothingName, mPatternInfoInit.mWasPatternGifted);
        //                Pattern pattern = (Pattern)GlobalFunctions.CreateObjectOutOfWorld(reskey1, null, initData);

        //                if (pattern.GetType() == typeof(FailureObject))
        //                {
        //                    return null;
        //                }
        //                // We always pick a random EASY EA resource (and creator stuff) but clothing will always have a hardness level of medium. So we don't need the clothing check!!
        //                if (pattern != null)
        //                {
        //                    IGameObject getname = (GameObject)GlobalFunctions.CreateObjectOutOfWorld(mPatternInfoInit.resKeyPattern, null, initData);
        //                    if (getname != null)
        //                    {
        //                        // Currently uses the pattern object's name. We need to concatinate the sewable's name here as well. Since EA never made a function to get the name direction from the resource key, we need to do this.
        //                        mPatternInfoInit.Name = pattern.GetLocalizedName() + ": " + getname.GetLocalizedName();
        //                        pattern.NameComponent.SetName(pattern.GetLocalizedName() + ": " + getname.GetLocalizedName());
        //                        // Now we finally got the name and can destroy the object.
        //                        getname.Destroy();
        //                    }
        //                    // Currently uses the pattern object's name. We need to concatinate the sewable's name here as well. Since EA never made a function to get the name direction from the resource key, we need to do this.
        //                    mPatternInfoInit.Name = pattern.GetLocalizedName() + ": " + getname.GetLocalizedName();
        //                    pattern.NameComponent.SetName(pattern.GetLocalizedName() + ": " + getname.GetLocalizedName());
        //                    return pattern;
        //                }
        //                else if (pattern != null && mPatternInfoInit.isClothing)
        //                {
        //                    mPatternInfoInit.Name = mPatternInfoInit.mClothingName;
        //                    pattern.NameComponent.SetName(mPatternInfoInit.Name);

        //                    pattern.mPatternInfo = mPatternInfoInit;
        //                    return pattern;
        //                }
        //                else
        //                {
        //                    GlobalOptionsSewingTable.print("Lyralei's Sewing table: \n \n The pattern doesn't exist! Did you delete things from the sewing table .package? Else, contact Lyralei.");
        //                    return null;
        //                }
        //            }
        //        }
        //        catch (Exception ex2)
        //        {
        //            GlobalOptionsSewingTable.print("Lyralei's Sewing table: \n \n REPORT THIS TO LYRALEI: " + ex2.ToString());
        //            return null;
        //        }
        //    }
        //    return null;
        //}

        public static ResourceKey GetUnregisteredpattern(Sim actor, bool NeedsToCache)
        {
            ResourceKey    getPattern = new ResourceKey();
            SimDescription actorDesc  = actor.SimDescription;

            // Checks whether the current actor already knows the pattern chosen.
            do
            {
                getPattern = GetRandomKeyWithSKills(actor);

                if (!SewingSkill.HasAlreadyDiscoveredThis(actorDesc.mSimDescriptionId, getPattern))
                {
                    return(getPattern);
                }
            }while (true);
        }
예제 #2
0
        public static Pattern GetRandomClothingPattern(Sim sim)
        {
            ResourceKey reskeyPattern;
            SewingSkill sewingSkill = sim.SkillManager.AddElement(SewingSkill.kSewingSkillGUID) as SewingSkill;

            do
            {
                reskeyPattern = RandomUtil.GetRandomObjectFromList(ObjectLoader.mStoredClothingPattern);

                if (!SewingSkill.HasAlreadyDiscoveredThis(sim.mSimDescription.mSimDescriptionId, reskeyPattern))
                {
                    break;
                }
            }while (true);

            if (reskeyPattern != ResourceKey.kInvalidResourceKey)
            {
                PatternInfo mPatternInfoInit = new PatternInfo();
                mPatternInfoInit.resKeyPattern = reskeyPattern;
                ObjectLoader.sewableSetting sSetting = ObjectLoader.dictSettings[reskeyPattern];
                mPatternInfoInit.fabricsNeeded          = sSetting.typeFabric;
                mPatternInfoInit.IsMagic                = sSetting.isMagicProject;
                mPatternInfoInit.amountOfFabricToRemove = sSetting.amountRemoveFabric;
                mPatternInfoInit.isClothing             = sSetting.isClothing;
                mPatternInfoInit.mClothingName          = sSetting.clothingName;
                mPatternInfoInit.mWasPatternGifted      = false;

                if (mPatternInfoInit.isClothing)
                {
                    mPatternInfoInit.mSimOutfit = new CASPart(mPatternInfoInit.resKeyPattern);
                }

                ResourceKey reskey1 = new ResourceKey(0x19D4F5930F26B2D8, 0x319E4F1D, 0x00000000);
                Pattern.PatternObjectInitParams initData = new Pattern.PatternObjectInitParams(mPatternInfoInit.fabricsNeeded, mPatternInfoInit.IsMagic, mPatternInfoInit.amountOfFabricToRemove, mPatternInfoInit.mSkilllevel, mPatternInfoInit.resKeyPattern, mPatternInfoInit.isClothing, mPatternInfoInit.mSimOutfit, mPatternInfoInit.mClothingName, mPatternInfoInit.mWasPatternGifted);
                Pattern pattern = (Pattern)GlobalFunctions.CreateObjectOutOfWorld(reskey1, null, initData);

                mPatternInfoInit.Name = mPatternInfoInit.mClothingName;
                pattern.NameComponent.SetName(mPatternInfoInit.mClothingName);

                pattern.mPatternInfo = mPatternInfoInit;
                sim.Inventory.TryToAdd(pattern);
                sewingSkill.AddPatternCount(1);

                return(pattern);
            }
            return(null);
        }