Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIKeybindingToggleListItem.cs
Go to the documentation of this file.
1using System;
5using Terraria.UI;
7
9
11{
12 private Color _color;
13
14 private Func<string> _TextDisplayFunction;
15
16 private Func<bool> _IsOnFunction;
17
19
20 public UIKeybindingToggleListItem(Func<string> getText, Func<bool> getStatus, Color color)
21 {
22 _color = color;
23 _toggleTexture = Main.Assets.Request<Texture2D>("Images/UI/Settings_Toggle", (AssetRequestMode)1);
24 _TextDisplayFunction = ((getText != null) ? getText : ((Func<string>)(() => "???")));
25 _IsOnFunction = ((getStatus != null) ? getStatus : ((Func<bool>)(() => false)));
26 }
27
28 protected override void DrawSelf(SpriteBatch spriteBatch)
29 {
30 float num = 6f;
31 base.DrawSelf(spriteBatch);
32 CalculatedStyle dimensions = GetDimensions();
33 float num2 = dimensions.Width + 1f;
34 Vector2 vector = new Vector2(dimensions.X, dimensions.Y);
35 Vector2 baseScale = new Vector2(0.8f);
36 Color value = (false ? Color.Gold : (base.IsMouseHovering ? Color.White : Color.Silver));
37 value = Color.Lerp(value, Color.White, base.IsMouseHovering ? 0.5f : 0f);
38 Color color = (base.IsMouseHovering ? _color : _color.MultiplyRGBA(new Color(180, 180, 180)));
39 Vector2 position = vector;
40 Utils.DrawSettingsPanel(spriteBatch, position, num2, color);
41 position.X += 8f;
42 position.Y += 2f + num;
43 ChatManager.DrawColorCodedStringWithShadow(spriteBatch, FontAssets.ItemStack.Value, _TextDisplayFunction(), position, value, 0f, Vector2.Zero, baseScale, num2);
44 position.X -= 17f;
45 Rectangle value2 = new Rectangle(_IsOnFunction() ? ((_toggleTexture.Width() - 2) / 2 + 2) : 0, 0, (_toggleTexture.Width() - 2) / 2, _toggleTexture.Height());
46 Vector2 vector2 = new Vector2(value2.Width, 0f);
47 spriteBatch.Draw(position: new Vector2(dimensions.X + dimensions.Width - vector2.X - 10f, dimensions.Y + 2f + num), texture: _toggleTexture.Value, sourceRectangle: value2, color: Color.White, rotation: 0f, origin: Vector2.Zero, scale: Vector2.One, effects: SpriteEffects.None, layerDepth: 0f);
48 }
49}
void Draw(Texture2D texture, Vector2 position, Color color)
static Asset< DynamicSpriteFont > ItemStack
Definition FontAssets.cs:8
UIKeybindingToggleListItem(Func< string > getText, Func< bool > getStatus, Color color)
static IAssetRepository Assets
Definition Main.cs:209
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)
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