2 using System.Collections.Generic;
6 using Microsoft.Xna.Framework.Input;
11 namespace Loot.ModSupport
13 internal class WingSlotSupport : ModSupport
15 public override string ModName =>
"WingSlot";
17 public bool IsInvalid;
21 private static bool WingSlotHandler()
22 =>
Loot.Instance.GuiInterface?.CurrentState is GuiTabWindow tabUi
25 public override bool CheckValidity(
Mod mod)
27 IsInvalid = mod.Version <
new Version(1, 6, 1);
31 public override void AddClientSupport(
Mod mod)
33 mod.Call(
"add", (Func<bool>)WingSlotHandler);
36 private static bool RightClickFunctionalityRequirements(Item item)
38 if (ModSupportTunneler.GetModSupport<WingSlotSupport>().IsInvalid && item.wingSlot > 0)
41 return !PlayerInput.WritingText
43 && Main.keyState.IsKeyDown(Keys.LeftControl)
44 &&
Loot.Instance.GuiInterface.CurrentState != null;
47 private static void SwapItems(
ICraftingTab craftingTab, Item item)
58 if (!RightClickFunctionalityRequirements(item))
61 if (!(
Loot.Instance.GuiInterface.CurrentState is GuiTabWindow ui)
65 return ui.Visible && tab.AcceptsItem(item);
69 public override void RightClick(Item item, Player player)
76 if (!(
Loot.Instance.GuiInterface.CurrentState is GuiTabWindow ui)
80 if (RightClickFunctionalityRequirements(item) && !(item.modItem is
MagicalCube) && ui.Visible && tab.AcceptsItem(item))
90 if (!(
Loot.Instance.GuiInterface.CurrentState is GuiTabWindow ui)
94 if ((ModSupportTunneler.GetModSupport<WingSlotSupport>().IsInvalid && item.wingSlot > 0)
95 || !tab.AcceptsItem(item)
99 var i = tooltips.FindIndex(x => x.mod.Equals(
"Terraria") && x.Name.Equals(
"ItemName"));
100 if (i != -1) tooltips[i].text +=
" (control right click to slot into UI)";
override void ModifyTooltips(Item item, List< TooltipLine > tooltips)
override bool CanRightClick(Item item)
Defines an item that may be modified by modifiers from mods
Defines a magical cube A magical cube is used to change modifiers on an item
override void RightClick(Item item, Player player)
static LootModItem GetInfo(Item item)
void OverrideSlottedItem(Item newItem)