Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawButton()

static void Terraria.UI.ChestUI.DrawButton ( SpriteBatch spriteBatch,
int ID,
int X,
int Y )
inlinestaticprivate

Definition at line 188 of file ChestUI.cs.

189 {
190 Player player = Main.player[Main.myPlayer];
191 if ((ID == 5 && player.chest < -1) || (ID == 6 && !Main.editChest))
192 {
194 return;
195 }
196 if (ID == 7 && player.chest != -5)
197 {
199 return;
200 }
201 int num = ID;
202 if (ID == 7)
203 {
204 num = 5;
205 }
206 Y += num * 26;
207 float num2 = ButtonScale[ID];
208 string text = "";
209 switch (ID)
210 {
211 case 0:
212 text = Lang.inter[29].Value;
213 break;
214 case 1:
215 text = Lang.inter[30].Value;
216 break;
217 case 2:
218 text = Lang.inter[31].Value;
219 break;
220 case 3:
221 text = Lang.inter[82].Value;
222 break;
223 case 5:
224 text = Lang.inter[Main.editChest ? 47 : 61].Value;
225 break;
226 case 6:
227 text = Lang.inter[63].Value;
228 break;
229 case 4:
230 text = Lang.inter[122].Value;
231 break;
232 case 7:
233 text = ((!player.IsVoidVaultEnabled) ? Language.GetTextValue("UI.ToggleBank4VacuumIsOff") : Language.GetTextValue("UI.ToggleBank4VacuumIsOn"));
234 break;
235 }
236 Vector2 vector = FontAssets.MouseText.Value.MeasureString(text);
237 Color color = new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor) * num2;
238 color = Color.White * 0.97f * (1f - (255f - (float)(int)Main.mouseTextColor) / 255f * 0.5f);
239 color.A = byte.MaxValue;
240 X += (int)(vector.X * num2 / 2f);
241 bool flag = Utils.FloatIntersect(Main.mouseX, Main.mouseY, 0f, 0f, (float)X - vector.X / 2f, Y - 12, vector.X, 24f);
242 if (ButtonHovered[ID])
243 {
244 flag = Utils.FloatIntersect(Main.mouseX, Main.mouseY, 0f, 0f, (float)X - vector.X / 2f - 10f, Y - 12, vector.X + 16f, 24f);
245 }
246 if (flag)
247 {
248 color = Main.OurFavoriteColor;
249 }
250 ChatManager.DrawColorCodedStringWithShadow(spriteBatch, FontAssets.MouseText.Value, text, new Vector2(X, Y), color, 0f, vector / 2f, new Vector2(num2), -1f, 1.5f);
251 vector *= num2;
252 switch (ID)
253 {
254 case 0:
255 UILinkPointNavigator.SetPosition(500, new Vector2((float)X - vector.X * num2 / 2f * 0.8f, Y));
256 break;
257 case 1:
258 UILinkPointNavigator.SetPosition(501, new Vector2((float)X - vector.X * num2 / 2f * 0.8f, Y));
259 break;
260 case 2:
261 UILinkPointNavigator.SetPosition(502, new Vector2((float)X - vector.X * num2 / 2f * 0.8f, Y));
262 break;
263 case 5:
265 break;
266 case 6:
268 break;
269 case 3:
270 UILinkPointNavigator.SetPosition(503, new Vector2((float)X - vector.X * num2 / 2f * 0.8f, Y));
271 break;
272 case 4:
273 UILinkPointNavigator.SetPosition(505, new Vector2((float)X - vector.X * num2 / 2f * 0.8f, Y));
274 break;
275 case 7:
276 UILinkPointNavigator.SetPosition(506, new Vector2((float)X - vector.X * num2 / 2f * 0.8f, Y));
277 break;
278 }
279 if (!flag)
280 {
282 return;
283 }
286 {
287 return;
288 }
289 player.mouseInterface = true;
290 if (Main.mouseLeft && Main.mouseLeftRelease)
291 {
292 switch (ID)
293 {
294 case 0:
295 LootAll();
296 break;
297 case 1:
299 break;
300 case 2:
302 break;
303 case 5:
304 RenameChest();
305 break;
306 case 6:
308 break;
309 case 3:
310 Restock();
311 break;
312 case 4:
313 ItemSorting.SortChest();
314 break;
315 case 7:
316 ToggleVacuum();
317 break;
318 }
319 Recipe.FindRecipes();
320 }
321 }
static Asset< DynamicSpriteFont > MouseText
Definition FontAssets.cs:10
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 float[] ButtonScale
Definition ChestUI.cs:42
static bool[] ButtonHovered
Definition ChestUI.cs:44
static void DepositAll(ContainerTransferContext context)
Definition ChestUI.cs:450
static void RenameChestCancel()
Definition ChestUI.cs:933
static void LootAll()
Definition ChestUI.cs:382
static void QuickStack(ContainerTransferContext context, bool voidStack=false)
Definition ChestUI.cs:686
static void RenameChest()
Definition ChestUI.cs:897
static void ToggleVacuum()
Definition ChestUI.cs:323
static void UpdateHover(int ID, bool hovering)
Definition ChestUI.cs:46
static void Restock()
Definition ChestUI.cs:941
static void SetPosition(int ID, Vector2 Position)
static ContainerTransferContext FromUnknown(Player player)

References Terraria.UI.ChestUI.ButtonHovered, Terraria.UI.ChestUI.ButtonScale, Terraria.Player.chest, Microsoft.Xna.Framework.Graphics.Color, Terraria.UI.ChestUI.DepositAll(), Terraria.UI.Chat.ChatManager.DrawColorCodedStringWithShadow(), Terraria.Main.editChest, Terraria.Recipe.FindRecipes(), Terraria.Utils.FloatIntersect(), Terraria.DataStructures.ContainerTransferContext.FromUnknown(), Terraria.Localization.Language.GetTextValue(), Terraria.GameInput.PlayerInput.IgnoreMouseInterface, Terraria.Lang.inter, Terraria.Player.IsVoidVaultEnabled, Terraria.UI.ChestUI.LootAll(), Terraria.Main.mouseLeft, Terraria.Main.mouseLeftRelease, Terraria.GameContent.FontAssets.MouseText, Terraria.Main.mouseTextColor, Terraria.Main.mouseX, Terraria.Main.mouseY, Terraria.Main.myPlayer, Terraria.Main.OurFavoriteColor, Terraria.Main.player, Terraria.UI.ChestUI.QuickStack(), Terraria.UI.ChestUI.RenameChest(), Terraria.UI.ChestUI.RenameChestCancel(), Terraria.UI.ChestUI.Restock(), Terraria.UI.Gamepad.UILinkPointNavigator.SetPosition(), Terraria.UI.ItemSorting.SortChest(), Terraria.UI.ChestUI.ToggleVacuum(), Terraria.UI.ChestUI.UpdateHover(), and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.UI.ChestUI.DrawButtons().