コード例 #1
0
ファイル: RestockItem.cs プロジェクト: yakoder/NRaas
                public override bool Test(Sim a, RestockItem target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
                {
                    //If restock from inventory, check does the item exist
                    StoreSetBase sBase = RestockItemHelperClass.FindParentShopBase(target);

                    if (sBase == null)
                    {
                        greyedOutTooltipCallback = InteractionInstance.CreateTooltipCallback(CMStoreSet.LocalizeString("GrayNeedsPedestal", new object[0] {
                        }));
                        return(false);
                    }

                    if (sBase.Charred)
                    {
                        greyedOutTooltipCallback = InteractionInstance.CreateTooltipCallback(CMStoreSet.LocalizeString("GrayCharred", new object[0] {
                        }));
                        return(false);
                    }

                    if (RestockItemHelperClass.RestockFromInventory(target, sBase.Info.RestockCraftable))
                    {
                        if (sBase.Info.RegisterId == ObjectGuid.InvalidObjectGuid && !sBase.Info.RestockCraftable)
                        {
                            greyedOutTooltipCallback = InteractionInstance.CreateTooltipCallback(CMStoreSet.LocalizeString("GrayNeedsRegister", new object[0] {
                            }));
                            return(false);
                        }

                        if (sBase.Info.RegisterId != ObjectGuid.InvalidObjectGuid && RestockItemHelperClass.ReturnRestocableObjectFromRegister(target, sBase.Info.RegisterId) == null)
                        {
                            greyedOutTooltipCallback = InteractionInstance.CreateTooltipCallback(CMStoreSet.LocalizeString("GrayInventoryEmpty", new object[0] {
                            }));
                            return(false);
                        }
                    }
                    else
                    {
                        //Should restock buy items be disabled
                        if (target.info.Type == ItemType.Buy && !sBase.Info.RestockBuyMode)
                        {
                            greyedOutTooltipCallback = InteractionInstance.CreateTooltipCallback(CMStoreSet.LocalizeString("GrayRestockBuyModeDisabled", new object[0] {
                            }));
                            return(false);
                        }
                    }
                    return(true);
                }
コード例 #2
0
ファイル: RestockItem.cs プロジェクト: yakoder/NRaas
            public override bool Run()
            {
                if (!this.Actor.RouteToObjectRadialRange(this.Target, UniversityWelcomeKit.kMinRouteDistance, UniversityWelcomeKit.kMaxRouteDistance))
                {
                    return(false);
                }

                base.StandardEntry();
                base.BeginCommodityUpdates();
                base.EnterStateMachine("UniversityWelcomeKit", "EnterUniversity", "x");
                base.AnimateSim("LoopTest");
                bool flag = base.DoTimedLoop(2f, ExitReason.Default);

                base.AnimateSim("ExitAptituteTest");
                base.EndCommodityUpdates(flag);
                base.StandardExit();

                //Replace restock item with the restocked item
                StoreSetBase b = RestockItemHelperClass.FindParentShopBase(this.Target);
                GameObject   o = RestockItemHelperClass.RecreateSoldObject(this.Target, this.Actor.SimDescription);

                //If the sim is tending the register, make him go back to tending
                if (b != null)
                {
                    b.AddInteractionsToChildObjects();
                    List <StoreSetRegister> registers = new List <StoreSetRegister>(Sims3.Gameplay.Queries.GetObjects <StoreSetRegister>(b.LotCurrent));
                    if (registers != null)
                    {
                        foreach (var register in registers)
                        {
                            //Push hired clerk to go back to work.
                            if (CMStoreSet.IsStoreOpen(register) && register.mPreferredClerk == this.Actor.SimDescription.SimDescriptionId)
                            {
                                base.TryPushAsContinuation(StoreSetRegister.PostureIdle.Singleton, register);
                                break;
                            }
                        }
                    }
                }

                return(true);
            }
コード例 #3
0
ファイル: StoreHelperClass.cs プロジェクト: yakoder/NRaas
        public static GameObject CreateRestockItem(GameObject src, int value, bool isRug)
        {
            try
            {
                RestockItem item = null;

                if (isRug)
                {
                    item = GlobalFunctions.CreateObject(ResourceKey.FromString("319e4f1d:00000000:4d2d76202832ac21"),
                                                        src.PositionOnFloor, src.mLevel, src.ForwardVector) as RestockItem;
                }
                else
                {
                    item = GlobalFunctions.CreateObject(ResourceKey.FromString("319e4f1d:00000000:74eadf6231a9cf5e"),
                                                        src.PositionOnFloor, src.mLevel, src.ForwardVector) as RestockItem;
                }
                item.info.Key   = src.GetResourceKeyForClone(true);
                item.info.Type  = RestockItemHelperClass.GetItemType(src);
                item.info.Name  = src.GetLocalizedName();
                item.info.Price = value;

                switch (item.info.Type)
                {
                case ItemType.Buy:
                case ItemType.Craftable:
                    item.info.DesignPreset = ObjectDesigner.GetObjectDesignPreset(src.ObjectId);
                    break;

                case ItemType.Ingredient:
                    //item.info.IngData = (IngredientData)((Ingredient)src).Data;
                    // item.info.Key = ((Ingredient)src).GetResourceKey();
                    //item.info.IngredientKey = ((Ingredient)src).IngredientKey;
                    break;

                case ItemType.Fish:
                    item.info.FType = ((Fish)src).mFishType;
                    break;

                case ItemType.Herb:
                    //item.info.PlantData = ((PlantableNonIngredient)src).mData;
                    // item.info.Key = ((Herb)src).GetResourceKey();
                    break;

                case ItemType.Metal:
                    item.info.RockData = ((Metal)src).mGuid;
                    item.info.Key      = ((Metal)src).GetResourceKey();
                    break;

                case ItemType.Gem:
                    item.info.RockData = ((Gem)src).mGuid;
                    item.info.Key      = ((Gem)src).GetResourceKey();
                    break;

                case ItemType.Nectar:
                    item.info.Key       = ((NectarBottle)src).GetResourceKey();
                    item.info.NectarAge = ((NectarBottle)src).mBottleInfo.DateNum;

                    if (item.info.NectarAge == 0)
                    {
                        item.info.NectarAge = 1;
                    }

                    item.info.NectarFruitHash   = ((NectarBottle)src).mBottleInfo.FruitHash;
                    item.info.NectarIngredients = ((NectarBottle)src).Ingredients;                    //.in.mBottleInfo;
                    break;

                case ItemType.AlchemyPotion:

                    break;

                case ItemType.Bug:
                    item.info.BugType = ((NormalTerrarium)src).mInsectType;
                    break;

                case ItemType.Food:
                    item.info.cookingProcess = ((ServingContainer)src).CookingProcess;
                    break;

                case ItemType.Flowers:
                    item.info.TypeOfWildFlower = ((Wildflower)src).TypeOfWildFlower;
                    break;

                case ItemType.BookAlchemyRecipe_:
                case ItemType.BookComic_:
                case ItemType.BookFish_:
                case ItemType.BookGeneral_:
                case ItemType.BookRecipe_:
                case ItemType.BookSkill_:
                case ItemType.BookToddler_:
                case ItemType.SheetMusic_:
                case ItemType.AcademicTextBook_:
                    item.info.Name = ((Book)src).CatalogName;
                    break;

                case ItemType.JamJar:
                    Type         tInfo = src.GetType();
                    BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
                    FieldInfo    ingredientDataField = tInfo.GetField("mData", flags);
                    FieldInfo    ingredientKeyField  = tInfo.GetField("mIngredientKey", flags);
                    FieldInfo    qualityField        = tInfo.GetField("mQuality", flags);
                    FieldInfo    preservesField      = tInfo.GetField("mIsPreserves", flags);

                    item.info.IngData       = (IngredientData)ingredientDataField.GetValue(src);
                    item.info.IngredientKey = (string)ingredientKeyField.GetValue(src);
                    item.info.JamQuality    = (Quality)qualityField.GetValue(src);
                    item.info.JamIsPreserve = (bool)preservesField.GetValue(src);
                    break;

                default:
                    break;
                }
                return(item);
            }
            catch (System.Exception ex)
            {
                CMStoreSet.PrintMessage("CreateRestockItem: " + ex.Message);
                return(null);
            }
        }