private static void DrawButton(SpriteBatch spriteBatch, int ID, int X, int Y) { Player player = Main.player[Main.myPlayer]; if (ID == 4 && player.chest < -1 || ID == 5 && !Main.editChest) { ChestUI.UpdateHover(ID, false); } else { Y += ID * 26; float num = ChestUI.ButtonScale[ID]; string text = ""; switch (ID) { case 0: text = Lang.inter[29]; break; case 1: text = Lang.inter[30]; break; case 2: text = Lang.inter[31]; break; case 3: text = Lang.inter[82]; break; case 4: text = Lang.inter[Main.editChest ? 47 : 61]; break; case 5: text = Lang.inter[63]; break; } Vector2 vector2 = Main.fontMouseText.MeasureString(text); Color color = new Color((int)Main.mouseTextColor, (int)Main.mouseTextColor, (int)Main.mouseTextColor, (int)Main.mouseTextColor) * num; Color baseColor = Color.White * 0.97f * (float)(1.0 - ((double)byte.MaxValue - (double)Main.mouseTextColor) / (double)byte.MaxValue * 0.5); baseColor.A = byte.MaxValue; X += (int)((double)vector2.X * (double)num / 2.0); ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontMouseText, text, new Vector2((float)X, (float)Y), baseColor, 0.0f, vector2 / 2f, new Vector2(num), -1f, 1.5f); vector2 *= num; if (!Utils.FloatIntersect((float)Main.mouseX, (float)Main.mouseY, 0.0f, 0.0f, (float)X - vector2.X / 2f, (float)Y - vector2.Y / 2f, vector2.X, vector2.Y)) { ChestUI.UpdateHover(ID, false); } else { ChestUI.UpdateHover(ID, true); player.mouseInterface = true; if (!Main.mouseLeft || !Main.mouseLeftRelease) { return; } switch (ID) { case 0: ChestUI.LootAll(); break; case 1: ChestUI.DepositAll(); break; case 2: ChestUI.QuickStack(); break; case 3: ChestUI.Restock(); break; case 4: ChestUI.RenameChest(); break; case 5: ChestUI.RenameChestCancel(); break; } Recipe.FindRecipes(); } } }