Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIKeybindingListItem.cs
Go to the documentation of this file.
7using Terraria.UI;
9
11
13{
15
16 private Color _color;
17
18 private string _keybind;
19
20 public UIKeybindingListItem(string bind, InputMode mode, Color color)
21 {
22 _keybind = bind;
23 _inputmode = mode;
24 _color = color;
25 base.OnLeftClick += OnClickMethod;
26 }
27
29 {
31 {
32 if (PlayerInput.CurrentProfile.AllowEditting)
33 {
35 }
36 else
37 {
39 }
40 }
41 }
42
43 protected override void DrawSelf(SpriteBatch spriteBatch)
44 {
45 float num = 6f;
46 base.DrawSelf(spriteBatch);
47 CalculatedStyle dimensions = GetDimensions();
48 float num2 = dimensions.Width + 1f;
49 Vector2 vector = new Vector2(dimensions.X, dimensions.Y);
50 bool flag = PlayerInput.ListeningTrigger == _keybind;
51 Vector2 baseScale = new Vector2(0.8f);
52 Color value = (flag ? Color.Gold : (base.IsMouseHovering ? Color.White : Color.Silver));
53 value = Color.Lerp(value, Color.White, base.IsMouseHovering ? 0.5f : 0f);
54 Color color = (base.IsMouseHovering ? _color : _color.MultiplyRGBA(new Color(180, 180, 180)));
55 Vector2 position = vector;
56 Utils.DrawSettingsPanel(spriteBatch, position, num2, color);
57 position.X += 8f;
58 position.Y += 2f + num;
60 position.X -= 17f;
61 List<string> list = PlayerInput.CurrentProfile.InputModes[_inputmode].KeyStatus[_keybind];
62 string text = GenInput(list);
63 if (string.IsNullOrEmpty(text))
64 {
65 text = Lang.menu[195].Value;
66 if (!flag)
67 {
68 value = new Color(80, 80, 80);
69 }
70 }
72 position = new Vector2(dimensions.X + dimensions.Width - stringSize.X - 10f, dimensions.Y + 2f + num);
73 if (_inputmode == InputMode.XBoxGamepad || _inputmode == InputMode.XBoxGamepadUI)
74 {
75 position += new Vector2(0f, -3f);
76 }
77 GlyphTagHandler.GlyphsScale = 0.85f;
78 ChatManager.DrawColorCodedStringWithShadow(spriteBatch, FontAssets.ItemStack.Value, text, position, value, 0f, Vector2.Zero, baseScale, num2);
79 GlyphTagHandler.GlyphsScale = 1f;
80 }
81
82 private string GenInput(List<string> list)
83 {
84 if (list.Count == 0)
85 {
86 return "";
87 }
88 string text = "";
89 switch (_inputmode)
90 {
91 case InputMode.XBoxGamepad:
92 case InputMode.XBoxGamepadUI:
93 {
94 text = GlyphTagHandler.GenerateTag(list[0]);
95 for (int j = 1; j < list.Count; j++)
96 {
97 text = text + "/" + GlyphTagHandler.GenerateTag(list[j]);
98 }
99 break;
100 }
101 case InputMode.Keyboard:
102 case InputMode.KeyboardUI:
103 case InputMode.Mouse:
104 {
105 text = list[0];
106 for (int i = 1; i < list.Count; i++)
107 {
108 text = text + "/" + list[i];
109 }
110 break;
111 }
112 }
113 return text;
114 }
115
116 private string GetFriendlyName()
117 {
118 return _keybind switch
119 {
120 "MouseLeft" => Lang.menu[162].Value,
121 "MouseRight" => Lang.menu[163].Value,
122 "Up" => Lang.menu[148].Value,
123 "Down" => Lang.menu[149].Value,
124 "Left" => Lang.menu[150].Value,
125 "Right" => Lang.menu[151].Value,
126 "Jump" => Lang.menu[152].Value,
127 "Throw" => Lang.menu[153].Value,
128 "Inventory" => Lang.menu[154].Value,
129 "Grapple" => Lang.menu[155].Value,
130 "SmartSelect" => Lang.menu[160].Value,
131 "SmartCursor" => Lang.menu[161].Value,
132 "QuickMount" => Lang.menu[158].Value,
133 "QuickHeal" => Lang.menu[159].Value,
134 "QuickMana" => Lang.menu[156].Value,
135 "QuickBuff" => Lang.menu[157].Value,
136 "MapZoomIn" => Lang.menu[168].Value,
137 "MapZoomOut" => Lang.menu[169].Value,
138 "MapAlphaUp" => Lang.menu[171].Value,
139 "MapAlphaDown" => Lang.menu[170].Value,
140 "MapFull" => Lang.menu[173].Value,
141 "MapStyle" => Lang.menu[172].Value,
142 "Hotbar1" => Lang.menu[176].Value,
143 "Hotbar2" => Lang.menu[177].Value,
144 "Hotbar3" => Lang.menu[178].Value,
145 "Hotbar4" => Lang.menu[179].Value,
146 "Hotbar5" => Lang.menu[180].Value,
147 "Hotbar6" => Lang.menu[181].Value,
148 "Hotbar7" => Lang.menu[182].Value,
149 "Hotbar8" => Lang.menu[183].Value,
150 "Hotbar9" => Lang.menu[184].Value,
151 "Hotbar10" => Lang.menu[185].Value,
152 "HotbarMinus" => Lang.menu[174].Value,
153 "HotbarPlus" => Lang.menu[175].Value,
154 "DpadRadial1" => Lang.menu[186].Value,
155 "DpadRadial2" => Lang.menu[187].Value,
156 "DpadRadial3" => Lang.menu[188].Value,
157 "DpadRadial4" => Lang.menu[189].Value,
158 "RadialHotbar" => Lang.menu[190].Value,
159 "RadialQuickbar" => Lang.menu[244].Value,
160 "DpadSnap1" => Lang.menu[191].Value,
161 "DpadSnap2" => Lang.menu[192].Value,
162 "DpadSnap3" => Lang.menu[193].Value,
163 "DpadSnap4" => Lang.menu[194].Value,
164 "LockOn" => Lang.menu[231].Value,
165 "ViewZoomIn" => Language.GetTextValue("UI.ZoomIn"),
166 "ViewZoomOut" => Language.GetTextValue("UI.ZoomOut"),
167 "ToggleCreativeMenu" => Language.GetTextValue("UI.ToggleCreativeMenu"),
168 "Loadout1" => Language.GetTextValue("UI.Loadout1"),
169 "Loadout2" => Language.GetTextValue("UI.Loadout2"),
170 "Loadout3" => Language.GetTextValue("UI.Loadout3"),
171 "ToggleCameraMode" => Language.GetTextValue("UI.ToggleCameraMode"),
172 _ => _keybind,
173 };
174 }
175}
static Asset< DynamicSpriteFont > ItemStack
Definition FontAssets.cs:8
void OnClickMethod(UIMouseEvent evt, UIElement listeningElement)
UIKeybindingListItem(string bind, InputMode mode, Color color)
static PlayerInputProfile CurrentProfile
static void ListenFor(string triggerName, InputMode inputmode)
static LocalizedText[] menu
Definition Lang.cs:19
static string GetTextValue(string key)
Definition Language.cs:15
static Vector2 DrawColorCodedStringWithShadow(SpriteBatch spriteBatch, DynamicSpriteFont font, TextSnippet[] snippets, Vector2 position, float rotation, Vector2 origin, Vector2 baseScale, out int hoveredSnippet, float maxWidth=-1f, float spread=2f)
static Vector2 GetStringSize(DynamicSpriteFont font, string text, Vector2 baseScale, float maxWidth=-1f)
CalculatedStyle GetDimensions()
Definition UIElement.cs:382
static void DrawSettingsPanel(SpriteBatch spriteBatch, Vector2 position, float width, Color color)
Definition Utils.cs:1985
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491