Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UIWorkshopPublishWorldListItem.cs
Go to the documentation of this file.
5using Terraria.IO;
7using Terraria.UI;
8
10
12{
14
16
18
20
21 private int _orderInList;
22
24
25 public UIWorkshopPublishWorldListItem(UIState ownerState, WorldFileData data, int orderInList)
26 {
27 _ownerState = ownerState;
28 _orderInList = orderInList;
29 _data = data;
33 _worldIcon.Left.Set(4f, 0f);
34 _worldIcon.VAlign = 0.5f;
35 _worldIcon.OnLeftDoubleClick += PublishButtonClick_ImportWorldToLocalFiles;
37 _ = 4f;
38 _publishButton = new UIIconTextButton(Language.GetText("Workshop.Publish"), Color.White, "Images/UI/Workshop/Publish");
39 _publishButton.HAlign = 1f;
40 _publishButton.VAlign = 1f;
41 _publishButton.OnLeftClick += PublishButtonClick_ImportWorldToLocalFiles;
42 base.OnLeftDoubleClick += PublishButtonClick_ImportWorldToLocalFiles;
44 _publishButton.SetSnapPoint("Publish", orderInList);
45 }
46
47 private void LoadTextures()
48 {
49 _innerPanelTexture = Main.Assets.Request<Texture2D>("Images/UI/InnerPanelBackground", (AssetRequestMode)1);
51 }
52
53 private void InitializeAppearance()
54 {
55 Height.Set(82f, 0f);
56 Width.Set(0f, 1f);
57 SetPadding(6f);
59 }
60
61 private void SetColorsToHovered()
62 {
63 BackgroundColor = new Color(73, 94, 171);
64 BorderColor = new Color(89, 116, 213);
65 }
66
67 private void SetColorsToNotHovered()
68 {
69 BackgroundColor = new Color(63, 82, 151) * 0.7f;
70 BorderColor = new Color(89, 116, 213) * 0.7f;
71 }
72
74 {
75 if (listeningElement == evt.Target)
76 {
78 }
79 }
80
81 public override int CompareTo(object obj)
82 {
83 if (obj is UIWorkshopPublishWorldListItem uIWorkshopPublishWorldListItem)
84 {
85 return _orderInList.CompareTo(uIWorkshopPublishWorldListItem._orderInList);
86 }
87 return base.CompareTo(obj);
88 }
89
90 public override void MouseOver(UIMouseEvent evt)
91 {
92 base.MouseOver(evt);
94 }
95
96 public override void MouseOut(UIMouseEvent evt)
97 {
98 base.MouseOut(evt);
100 }
101
102 private void DrawPanel(SpriteBatch spriteBatch, Vector2 position, float width, float height)
103 {
104 Utils.DrawSplicedPanel(spriteBatch, _innerPanelTexture.Value, (int)position.X, (int)position.Y, (int)width, (int)height, 10, 10, 10, 10, Color.White);
105 }
106
107 protected override void DrawSelf(SpriteBatch spriteBatch)
108 {
109 base.DrawSelf(spriteBatch);
110 CalculatedStyle innerDimensions = GetInnerDimensions();
112 float num = dimensions.X + dimensions.Width;
113 Color color = (_data.IsValid ? Color.White : Color.Gray);
114 string worldName = _data.GetWorldName(allowCropping: true);
115 Utils.DrawBorderString(spriteBatch, worldName, new Vector2(num + 6f, innerDimensions.Y + 3f), color);
116 float num2 = (innerDimensions.Width - 22f - dimensions.Width - _publishButton.GetDimensions().Width) / 2f;
117 float height = _publishButton.GetDimensions().Height;
118 Vector2 vector = new Vector2(num + 6f, innerDimensions.Y + innerDimensions.Height - height);
119 float num3 = num2;
120 DrawPanel(spriteBatch, vector, num3, height);
121 string expertText = "";
122 Color gameModeColor = Color.White;
123 GetDifficulty(out expertText, out gameModeColor);
124 Vector2 vector2 = FontAssets.MouseText.Value.MeasureString(expertText);
125 float x = vector2.X;
126 float y = vector2.Y;
127 float x2 = num3 * 0.5f - x * 0.5f;
128 float num4 = height * 0.5f - y * 0.5f;
129 Utils.DrawBorderString(spriteBatch, expertText, vector + new Vector2(x2, num4 + 3f), gameModeColor);
130 vector.X += num3 + 5f;
131 float num5 = num2;
132 if (!GameCulture.FromCultureName(GameCulture.CultureName.English).IsActive)
133 {
134 num5 += 40f;
135 }
136 DrawPanel(spriteBatch, vector, num5, height);
137 string textValue = Language.GetTextValue("UI.WorldSizeFormat", _data.WorldSizeName);
138 Vector2 vector3 = FontAssets.MouseText.Value.MeasureString(textValue);
139 float x3 = vector3.X;
140 float y2 = vector3.Y;
141 float x4 = num5 * 0.5f - x3 * 0.5f;
142 float num6 = height * 0.5f - y2 * 0.5f;
143 Utils.DrawBorderString(spriteBatch, textValue, vector + new Vector2(x4, num6 + 3f), Color.White);
144 vector.X += num5 + 5f;
145 }
146}
static Asset< DynamicSpriteFont > MouseText
Definition FontAssets.cs:10
static Asset< Texture2D >[] Extra
void GetDifficulty(out string expertText, out Color gameModeColor)
UIWorkshopPublishWorldListItem(UIState ownerState, WorldFileData data, int orderInList)
void PublishButtonClick_ImportWorldToLocalFiles(UIMouseEvent evt, UIElement listeningElement)
void DrawPanel(SpriteBatch spriteBatch, Vector2 position, float width, float height)
string GetWorldName(bool allowCropping=false)
static GameCulture FromCultureName(CultureName name)
static LocalizedText GetText(string key)
Definition Language.cs:10
static string GetTextValue(string key)
Definition Language.cs:15
static UserInterface MenuUI
Definition Main.cs:381
static IAssetRepository Assets
Definition Main.cs:209
StyleDimension Height
Definition UIElement.cs:29
void Append(UIElement element)
Definition UIElement.cs:166
CalculatedStyle GetInnerDimensions()
Definition UIElement.cs:377
StyleDimension Left
Definition UIElement.cs:25
void SetSnapPoint(string name, int id, Vector2? anchor=null, Vector2? offset=null)
Definition UIElement.cs:122
StyleDimension Width
Definition UIElement.cs:27
CalculatedStyle GetDimensions()
Definition UIElement.cs:382
void SetPadding(float pixels)
Definition UIElement.cs:361
readonly UIElement Target
Definition UIEvent.cs:5
static void DrawSplicedPanel(SpriteBatch sb, Texture2D texture, int x, int y, int w, int h, int leftEnd, int rightEnd, int topEnd, int bottomEnd, Color c)
Definition Utils.cs:1964
static Vector2 DrawBorderString(SpriteBatch sb, string text, Vector2 pos, Color color, float scale=1f, float anchorx=0f, float anchory=0f, int maxCharactersDisplayed=-1)
Definition Utils.cs:1891
void Set(float pixels, float precent)