Even More Modifiers  1.0.0.0
A mod for rolling various bonus stats on items
GuiCubingTab.cs
Go to the documentation of this file.
1 using System.Collections.Generic;
2 using System.Linq;
3 using Loot.Api.Core;
4 using Loot.Api.Cubes;
5 using Loot.UI.Common;
7 using Loot.UI.Tabs.CraftingTab;
9 using Loot.UI.Tabs.Soulforging;
10 
11 namespace Loot.UI.Tabs.Cubing
12 {
16  internal class GuiCubingTab : CraftingTab<MagicalCube>
17  {
18  public override string Header => "Cubing";
19 
20  internal override CraftingComponentButton GetComponentButton()
21  {
22  return new GuiCubeButton(
23  GuiButton.ButtonType.StoneOuterBevel,
24  hintTexture: Assets.Textures.GUI.MagicalCubeTexture,
25  hintText: "Place a cube here"
26  );
27  }
28 
29  protected override ModifierContextMethod CraftMethod => ModifierContextMethod.OnCubeReroll;
30 
31  protected override Dictionary<string, object> CustomData => new Dictionary<string, object>()
32  {
33  {
34  "Source", "CubeRerollUI"
35  }
36  };
37 
38  public override void OnActivate()
39  {
40  base.OnActivate();
41  var essenceTab = Loot.Instance.GuiState.GetTab<GuiEssenceTab>();
42  if (!essenceTab.ItemButton?.Item?.IsAir ?? false)
43  {
44  ItemButton.ChangeItem(0, essenceTab.ItemButton.Item.Clone());
45  essenceTab.ItemButton.Item.TurnToAir();
46  }
47  }
48 
49  public override void OnInitialize()
50  {
51  base.OnInitialize();
52 
53  ComponentSelector.FindComponents += item =>
54  {
55  var tab = Loot.Instance.GuiState.GetTab<GuiSoulforgeTab>();
56  return tab.GetAvailableCubes()
57  .Select(x => new CraftingComponentLink(x, CraftingComponentLink.ComponentSource.Soulforge));
58  };
59  }
60  }
61 }
ModifierContextMethod
Defines a method for a context in which a Modifier might be rolled Used in ModifierContext ...