protected virtual void Initialize(ref InteractionInstanceParameters parameters) { OverridedFridge_Have.Definition definition = parameters.InteractionDefinition as OverridedFridge_Have.Definition; this.MenuText = definition.MenuText; this.MenuPath = definition.MenuPath; this.mbWasHaveSomething = definition.WasHaveSomething; this.Destination = definition.Destination; this.Quantity = definition.Quantity; if (definition.ChosenRecipe == null) { if (base.Autonomous && this.Actor.SimDescription.IsVampire) { this.ChosenRecipe = Recipe.NameToRecipeHash["VampireJuice"]; } else { Lot lotCurrent = parameters.Actor.LotCurrent; if (lotCurrent != null && lotCurrent.GetSims(new Predicate <Sim>(this.ShouldCookFor)).Count > 1) { this.Quantity = Recipe.MealQuantity.Group; } this.ChosenRecipe = Food.ChooseRecipeRandomly(parameters.Target.LotCurrent, parameters.Actor as Sim, parameters.Autonomous, null, this.Quantity); if (!this.ChosenRecipe.CanMakeGroupServing && this.Quantity == Recipe.MealQuantity.Group) { this.Quantity = Recipe.MealQuantity.Single; } } this.ObjectClickedOn = (parameters.Target as GameObject); return; } this.ChosenRecipe = definition.ChosenRecipe; this.ObjectClickedOn = definition.ObjectClickedOn; this.Repetition = definition.Repetition; }
public OverridedFoodMenuInteractionDefinition(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost) { this.MenuText = menuText; this.ChosenRecipe = recipe; this.MenuPath = menuPath; this.Destination = destination; this.Quantity = quantity; this.Repetition = repetition; this.WasHaveSomething = bWasHaveSomething; this.ObjectClickedOn = objectClickedOn; this.Cost = cost; }
public override FoodMenuInteractionDefinition <Stove, Stove_Have> Create(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost) { if (cost > 0) { cost = -2147483648; } return(new Definition(menuText, recipe, menuPath, objectClickedOn, destination, quantity, repetition, bWasHaveSomething, cost)); }
public Definition(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost) : base(menuText, recipe, menuPath, objectClickedOn, destination, quantity, repetition, bWasHaveSomething, cost) { }
protected override OverridedFoodMenuInteractionDefinition <Microwave, OverridedMicrowave_Have> Create(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost) { return(new OverridedMicrowave_Have.Definition(menuText, recipe, menuPath, objectClickedOn, destination, quantity, repetition, bWasHaveSomething, cost)); }
protected override OverridedFoodMenuInteractionDefinition <Fridge, OverridedFridge_Have> Create(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost) { menuPath = new string[] { Localization.LocalizeString("Gameplay/Objects/FoodObjects:PrepareMenuPath", new object[0]) }; return(new OverridedFridge_Prepare.PrepareDefinition(menuText, recipe, menuPath, objectClickedOn, Recipe.MealDestination.SurfaceOnly, Recipe.MealQuantity.Group, repetition, bWasHaveSomething, cost)); }
protected abstract OverridedFoodMenuInteractionDefinition <TTarget, TInteraction> Create(string menuText, Recipe recipe, string[] menuPath, GameObject objectClickedOn, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition, bool bWasHaveSomething, int cost);
private bool StartCookingProcessWithFoodTray(string menuText, string[] menuPath, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition) { List <Ingredient> ingredientsUsed = new List <Ingredient>(); if (!this.Actor.IsNPC && !AniRecipe.UseUpIngredientsFrom(this.ChosenRecipe, this.Actor, ref ingredientsUsed, quantity, false)) { return(false); } this.Actor.SkillManager.AddElement(SkillNames.Cooking); FoodTray foodTray = (FoodTray)GlobalFunctions.CreateObject("FoodTray", Vector3.OutOfWorld, 0, Vector3.UnitZ); foodTray.CookingProcess = new CookingProcess(this.ChosenRecipe, ingredientsUsed, this.Target, this.Target.LotCurrent, destination, quantity, repetition, menuText, menuPath, foodTray, this.Actor); foodTray.CreateFoodProp(Slots.Hash("Slot_0"), foodTray.CookingProcess.Recipe.ModelsAndMaterials.GrillModel_FoodTray); CookingProcess.MoveToNextStep(foodTray, this.Actor); CookingProcess.MoveToNextStep(foodTray, this.Actor); CookingProcess.MoveToNextStep(foodTray, this.Actor); StateMachineClient stateMachineClient = StateMachineClient.Acquire(this.Actor.Proxy.ObjectId, "Grill"); if (stateMachineClient == null) { return(false); } stateMachineClient.AddInterest <TraitNames>(TraitNames.Clumsy); stateMachineClient.SetActor("x", this.Actor); stateMachineClient.SetActor("FoodTray", foodTray); stateMachineClient.EnterState("x", "Enter - Hands Empty"); stateMachineClient.RequestState("x", "Take Out Food Tray"); stateMachineClient.RequestState("x", "Exit - Holding Food Tray"); if (this.Actor.HasExitReason(ExitReason.Canceled)) { CarrySystem.EnterWhileHolding(this.Actor, foodTray); Food.PutHeldObjectDownOnCounterTableOrFloor(this.Actor, SurfaceType.Normal); return(false); } CarrySystem.EnterWhileHolding(this.Actor, foodTray); InteractionInstance instance = FoodTray_Prepare.Singleton.CreateInstance(foodTray, this.Actor, this.Actor.InheritedPriority(), base.Autonomous, true); return(this.Actor.InteractionQueue.PushAsContinuation(instance, true)); }
public static bool ForcePushFridgeHave(Sim sim, GameObject objectToFindFridgeRelativeTo, Recipe chosenRecipe, Recipe.MealDestination destination, Recipe.MealQuantity quantity, Recipe.MealRepetition repetition) { Fridge closestObject = GlobalFunctions.GetClosestObject <Fridge>(objectToFindFridgeRelativeTo, false, true, null, null); if (closestObject == null) { return(false); } InteractionObjectPair iop = new InteractionObjectPair(new OverridedFridge_Have.Definition(null, chosenRecipe, null, objectToFindFridgeRelativeTo, destination, quantity, repetition, false, 0), closestObject); InteractionInstanceParameters interactionInstanceParameters = new InteractionInstanceParameters(iop, sim, sim.InheritedPriority(), false, true); return(sim.InteractionQueue.AddNext(OverridedFridge_Have.Singleton.CreateInstanceFromParameters(ref interactionInstanceParameters))); }