7 using Microsoft.Xna.Framework;
13 namespace Loot.UI.Tabs.Soulforging
19 internal Action<Item> OnCubeUpdate;
28 CraftingCost = ((
MagicalCube)(Cube.modItem))?.EssenceCraftCost ?? 0;
29 Panel?.UpdateText($
"{CraftingCost} essence cost");
30 Panel?.SetHoverText($
"Crafting one {Cube.HoverName} costs {CraftingCost} essence");
33 public CubeCraftRow(
int type) : base(new Vector2(400, 55), new Vector2(0, 0))
37 Cube.SetDefaults(type);
46 GuiButton.ButtonType.StoneInnerBevel,
47 hintTexture: Main.itemTexture[Type]
49 CubeButton.Item = Cube;
50 CubeButton.OnClick += CubeButtonOnOnClick;
51 Frame.Append(CubeButton);
53 Panel =
new GuiTextPanel();
54 Panel.RightOf(CubeButton);
57 CraftButton =
new GuiImageButton(GuiButton.ButtonType.None, ModContent.GetTexture(
"Terraria/UI/Craft_Toggle_3"));
58 CraftButton.Left.Percent = 1.0f;
59 CraftButton.Left.Pixels = -CraftButton.Width.Pixels - GuiTab.PADDING;
60 CraftButton.OnClick += CraftCube;
61 Panel.Append(CraftButton);
66 if (CubeButton.Item.stack > 0 && Main.mouseItem.IsAir)
68 Main.mouseItem = Cube.Clone();
70 CubeButton.Item = Cube.Clone();
71 OnCubeUpdate?.Invoke(Cube);
75 private void CraftCube(UIMouseEvent evt, UIElement listeningelement)
77 var info = Main.LocalPlayer.GetModPlayer<LootEssencePlayer>();
78 if (info.Essence >= CraftingCost)
80 Main.PlaySound(SoundID.Item37, -1, -1);
82 CubeButton.Item = Cube.Clone();
83 info.UseEssence(CraftingCost);
84 OnCubeUpdate?.Invoke(Cube);
GuiImageButton CraftButton
Defines a magical cube A magical cube is used to change modifiers on an item
void CubeButtonOnOnClick(UIMouseEvent evt, UIElement listeningelement)
void CraftCube(UIMouseEvent evt, UIElement listeningelement)
override void OnInitialize()