protected override OptionResult Run(GameHitParameters <GameObject> parameters) { SlotSelection selection = SlotSelection.Create(mTarget as CraftersConsignmentDisplay); OptionResult result = selection.Perform(); if (result != OptionResult.SuccessClose) { return(OptionResult.Failure); } foreach (int slot in selection.selectedItems) { Cupcake.Settings.RemoveDisplaySettingsForSlot(mTarget.ObjectId, slot); } Common.Notify(Common.Localize("General:Success")); return(OptionResult.SuccessClose); }
protected override OptionResult Run(GameHitParameters <GameObject> parameters) { SlotSelection slotSelection = SlotSelection.Create(mTarget as CraftersConsignmentDisplay); OptionResult result = slotSelection.Perform(); if (result != OptionResult.SuccessClose) { return(OptionResult.Failure); } RecipeSelection recipeSelection = RecipeSelection.Create(Cupcake.Settings.BuildSlotsWithRecipes(Cupcake.Settings.GetDisplaySettings(mTarget.ObjectId))); OptionResult recipeResult = recipeSelection.Perform(); if (recipeResult != OptionResult.SuccessClose) { return(OptionResult.Failure); } QualitySelection qualitySelection = QualitySelection.Create(Cupcake.Settings.BuildSlotsWithQualities(Cupcake.Settings.GetDisplaySettings(mTarget.ObjectId))); OptionResult qualityResult = qualitySelection.Perform(); if (qualityResult != OptionResult.SuccessClose) { return(OptionResult.Failure); } foreach (Recipe recipe in recipeSelection.selectedItems) { Cupcake.Settings.AddDisplayRecipe(mTarget.ObjectId, slotSelection.selectedItems, recipe.Key, false); } foreach (Quality quality in qualitySelection.selectedItems) { Cupcake.Settings.SetRecipeQuality(mTarget.ObjectId, slotSelection.selectedItems, quality, false); } Common.Notify(Common.Localize("General:Success")); return(OptionResult.SuccessClose); }
protected override OptionResult Run(GameHitParameters <GameObject> parameters) { if (Cupcake.activeDisplay == null) { Common.Notify(Common.Localize("SlotCopy:NoSelection")); return(OptionResult.Failure); } if (Cupcake.activeDisplay == mTarget) { Common.Notify(Common.Localize("SlotCopy:SameDisplay")); return(OptionResult.Failure); } DisplayHelper.DisplayTypes targetType = DisplayHelper.GetDisplayType(mTarget as CraftersConsignmentDisplay); DisplayHelper.DisplayTypes activeType = DisplayHelper.GetDisplayType(Cupcake.activeDisplay as CraftersConsignmentDisplay); if (targetType != activeType) { Common.Notify(Common.Localize("SlotCopy:TypeMismatch")); return(OptionResult.Failure); } if (!Cupcake.Settings.HasSettings(Cupcake.activeDisplay.ObjectId)) { Common.Notify(Common.Localize("SlotCopy:NoSettings")); return(OptionResult.Failure); } SimpleMessageDialog.Show(Common.Localize("SlotCopy:MessageTitle"), Common.Localize("SlotCopy:MessageBody")); SlotSelection activeSlotSelection = SlotSelection.Create(Cupcake.activeDisplay as CraftersConsignmentDisplay); OptionResult result = activeSlotSelection.Perform(); if (result != OptionResult.SuccessClose) { return(OptionResult.Failure); } SlotSelection targetSlotSelection = null; if (activeSlotSelection.selectedItems.Count == 1 && !activeSlotSelection.all) { targetSlotSelection = SlotSelection.Create(mTarget as CraftersConsignmentDisplay); OptionResult targetResult = targetSlotSelection.Perform(); if (targetResult != OptionResult.SuccessClose) { return(OptionResult.Failure); } } if (targetSlotSelection == null) { // selected multiple from active display, we are doing carbon copying foreach (int slot in activeSlotSelection.selectedItems) { if (Cupcake.Settings.SlotHasSettings(Cupcake.activeDisplay.ObjectId, slot)) { Cupcake.Settings.RemoveDisplaySettingsForSlot(mTarget.ObjectId, slot); Cupcake.Settings.SetDisplaySettingsForSlot(mTarget.ObjectId, Cupcake.Settings.GetDisplaySettingsForSlot(Cupcake.activeDisplay.ObjectId, slot), slot); } } } else { // selected single from active display, we are doing multiple copy to target display foreach (int slot in targetSlotSelection.selectedItems) { if (Cupcake.Settings.SlotHasSettings(Cupcake.activeDisplay.ObjectId, activeSlotSelection.selectedItems[0])) { Cupcake.Settings.RemoveDisplaySettingsForSlot(mTarget.ObjectId, slot); Cupcake.Settings.SetDisplaySettingsForSlot(mTarget.ObjectId, Cupcake.Settings.GetDisplaySettingsForSlot(Cupcake.activeDisplay.ObjectId, activeSlotSelection.selectedItems[0]), slot); } } } Common.Notify(Common.Localize("General:Success")); return(OptionResult.SuccessClose); }