Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
HotItemLayer.cs
Go to the documentation of this file.
1using System;
2using Newtonsoft.Json;
3using UnityEngine;
4
5public class HotItemLayer : HotItem
6{
8
10
12
13 [JsonProperty]
14 public string id;
15
16 public override string Name => id.lang();
17
18 public override string pathSprite => "icon_" + id;
19
20 public override void OnSetItem(UIButton b)
21 {
22 if (!EClass.debug.enable)
23 {
24 AddHighlight("LayerHelp", () => EClass.player.flags.helpHighlightDisabled, ref highlightHelp);
25 AddHighlight("stash", () => EClass.player.flags.backpackHighlightDisabled, ref highlightBackpack);
26 AddHighlight("LayerAbility", () => EClass.player.flags.abilityHighlightDisabled, ref highlightAbility);
27 }
28 void AddHighlight(string _id, Func<bool> funcDisable, ref UIHighlightObject highlight)
29 {
30 if (!(id != _id) && !funcDisable())
31 {
32 if ((bool)highlight)
33 {
34 UnityEngine.Object.DestroyImmediate(highlight.gameObject);
35 }
36 UIHighlightObject _highlight = (highlight = Util.Instantiate<UIHighlightObject>("UI/Util/Highlight" + _id, EClass.ui));
37 highlight.ShouldDestroy = () => b == null || !EClass.core.IsGameStarted || funcDisable();
38 highlight.OnUpdate = delegate
39 {
40 _highlight.trans.SetActive(b.gameObject.activeInHierarchy);
41 _highlight.transform.position = b.transform.position;
42 _highlight.cg.alpha = ((EClass.ui.layers.Count == 0) ? 1 : 0);
43 };
44 }
45 }
46 }
47
48 public override void OnClick(ButtonHotItem b, Hotbar h)
49 {
50 switch (id)
51 {
52 case "stash":
54 {
55 EClass.player.flags.backpackHighlightDisabled = true;
56 }
57 if (!EClass.ui.IsInventoryOpen)
58 {
59 SE.PopInventory();
60 }
61 EClass.ui.ToggleInventory();
62 break;
63 case "LayerHelp":
65 {
66 EClass.player.flags.helpHighlightDisabled = true;
67 LayerHelp.Toggle("general", "1");
68 }
69 else
70 {
71 LayerHelp.Toggle(LayerHelp.lastIdFile.IsEmpty("general"), LayerHelp.lastIdTopic.IsEmpty("2"));
72 }
73 break;
74 case "LayerJournal":
75 EClass.ui.ToggleLayer<LayerJournal>();
76 break;
77 case "LayerAbility":
79 {
80 EClass.player.flags.abilityHighlightDisabled = true;
81 }
82 EClass.ui.ToggleAbility();
83 break;
84 case "LayerChara":
85 EClass.ui.ToggleLayer<LayerChara>()?.SetChara(EClass.pc);
86 break;
87 case "LayerTactics":
88 EClass.ui.ToggleLayer<LayerTactics>();
89 break;
90 case "LayerTravel":
91 EClass.ui.ToggleLayer<LayerTravel>();
92 break;
93 default:
94 EClass.ui.ToggleLayer(id);
95 break;
96 }
97 }
98}
bool enable
Definition: CoreDebug.cs:285
bool IsGameStarted
Definition: Core.cs:84
Definition: EClass.cs:5
static Core core
Definition: EClass.cs:6
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
static UI ui
Definition: EClass.cs:16
static UIHighlightObject highlightHelp
Definition: HotItemLayer.cs:7
static UIHighlightObject highlightBackpack
Definition: HotItemLayer.cs:11
static UIHighlightObject highlightAbility
Definition: HotItemLayer.cs:9
override void OnClick(ButtonHotItem b, Hotbar h)
Definition: HotItemLayer.cs:48
override string Name
Definition: HotItemLayer.cs:16
override string pathSprite
Definition: HotItemLayer.cs:18
override void OnSetItem(UIButton b)
Definition: HotItemLayer.cs:20
Definition: Hotbar.cs:5
static void Toggle(string idFile, string idTopic=null)
Definition: LayerHelp.cs:32
static string lastIdTopic
Definition: LayerHelp.cs:5
static string lastIdFile
Definition: LayerHelp.cs:3
bool abilityHighlightDisabled
Definition: Player.cs:258
bool helpHighlightDisabled
Definition: Player.cs:210
bool backpackHighlightDisabled
Definition: Player.cs:246
Flags flags
Definition: Player.cs:895