// these two methods are probably the hardest ones to debug in the entire mod. I HATE red's colour system. static Color ComposeColour(Item item, Color? tint = null) { Color c; c = item.color == default(Color) ? item.GetAlpha(tint ?? Color.White) : item.GetAlpha(item.GetColor(tint ?? Color.White)); //c.A = 255; return c; }
static void DrawItem(Item item, SpriteBatch sb, Vector2 position, Color? tint = null) { sb.Draw(item.GetTexture(), position, item.GetAlpha(tint ?? Color.White)); if (item.color != default(Color)) sb.Draw(item.GetTexture(), position, ComposeColour(item, tint)); }
public static void VanillaDrawItemTextureInSlot(SpriteBatch sb, Color color, Item item, Vector2 pos, float scale) { if (item.type > 0 && item.stack > 0) { Texture2D texture2D = Main.itemTexture[item.type]; Rectangle?sourceRectangle = new Rectangle(0, 0, texture2D.Width, texture2D.Height); sb.Draw(texture2D, pos, sourceRectangle, item.GetAlpha(color), 0f, default(Vector2), scale, SpriteEffects.None, 0f); if (item.color != default(Color)) { sb.Draw(texture2D, pos, sourceRectangle, item.GetColor(color), 0f, default(Vector2), scale, SpriteEffects.None, 0f); } } }
protected void DrawChat() { if (Main.player[Main.myPlayer].talkNPC < 0 && Main.player[Main.myPlayer].sign == -1) { Main.npcChatText = ""; return; } if (Main.netMode == 0 && Main.autoPause && Main.player[Main.myPlayer].talkNPC >= 0) { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 105) { Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(107); } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 106) { Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(108); } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 123) { Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(124); } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 354) { Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(353); } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 376) { Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(369); } } Color color = new Color(200, 200, 200, 200); int num = (int)((Main.mouseTextColor * 2 + 255) / 3); Color textColor = new Color(num, num, num, num); int num2; string[] array = Utils.WordwrapString(Main.npcChatText, Main.fontMouseText, 460, 10, out num2); if (Main.editSign) { this.textBlinkerCount++; if (this.textBlinkerCount >= 20) { if (this.textBlinkerState == 0) { this.textBlinkerState = 1; } else { this.textBlinkerState = 0; } this.textBlinkerCount = 0; } if (this.textBlinkerState == 1) { string[] array2; IntPtr intPtr; (array2 = array)[(int)(intPtr = (IntPtr)num2)] = array2[(int)intPtr] + "|"; } } num2++; Main.spriteBatch.Draw(Main.chatBackTexture, new Vector2((float)(Main.screenWidth / 2 - Main.chatBackTexture.Width / 2), 100f), new Rectangle?(new Rectangle(0, 0, Main.chatBackTexture.Width, (num2 + 1) * 30)), color, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); Main.spriteBatch.Draw(Main.chatBackTexture, new Vector2((float)(Main.screenWidth / 2 - Main.chatBackTexture.Width / 2), (float)(100 + (num2 + 1) * 30)), new Rectangle?(new Rectangle(0, Main.chatBackTexture.Height - 30, Main.chatBackTexture.Width, 30)), color, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); for (int i = 0; i < num2; i++) { Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, array[i], (float)(170 + (Main.screenWidth - 800) / 2), (float)(120 + i * 30), textColor, Color.Black, Vector2.Zero, 1f); } if (Main.npcChatCornerItem != 0) { Vector2 vector = new Vector2((float)(Main.screenWidth / 2 + Main.chatBackTexture.Width / 2), (float)(100 + (num2 + 1) * 30 + 30)); vector -= Vector2.One * 8f; Item item = new Item(); item.netDefaults(Main.npcChatCornerItem); float num3 = 1f; Texture2D texture2D = Main.itemTexture[item.type]; if (texture2D.Width > 32 || texture2D.Height > 32) { if (texture2D.Width > texture2D.Height) { num3 = 32f / (float)texture2D.Width; } else { num3 = 32f / (float)texture2D.Height; } } Main.spriteBatch.Draw(texture2D, vector, null, item.GetAlpha(Color.White), 0f, new Vector2((float)texture2D.Width, (float)texture2D.Height), num3, SpriteEffects.None, 0f); if (item.color != default(Color)) { Main.spriteBatch.Draw(texture2D, vector, null, item.GetColor(item.color), 0f, new Vector2((float)texture2D.Width, (float)texture2D.Height), num3, SpriteEffects.None, 0f); } if (new Rectangle((int)vector.X - (int)((float)texture2D.Width * num3), (int)vector.Y - (int)((float)texture2D.Height * num3), (int)((float)texture2D.Width * num3), (int)((float)texture2D.Height * num3)).Contains(new Point(Main.mouseX, Main.mouseY))) { this.MouseText(item.name, -11, 0); } } num = (int)Main.mouseTextColor; textColor = new Color(num, (int)((double)num / 1.1), num / 2, num); string text = ""; string text2 = ""; int num4 = Main.player[Main.myPlayer].statLifeMax2 - Main.player[Main.myPlayer].statLife; for (int j = 0; j < 22; j++) { int num5 = Main.player[Main.myPlayer].buffType[j]; if (Main.debuff[num5] && Main.player[Main.myPlayer].buffTime[j] > 0 && num5 != 28 && num5 != 34 && num5 != 87 && num5 != 89 && num5 != 21 && num5 != 86) { num4 += 1000; } } if (Main.player[Main.myPlayer].sign > -1) { if (Main.editSign) { text = Lang.inter[47]; } else { text = Lang.inter[48]; } } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 20) { text = Lang.inter[28]; text2 = Lang.inter[49]; } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 353) { text = Lang.inter[28]; text2 = "Hair Style"; } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 368) { text = Lang.inter[28]; } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 369) { text = Lang.inter[64]; } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 17 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 19 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 38 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 54 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 107 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 108 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 124 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 142 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 160 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 178 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 207 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 208 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 209 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 227 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 228 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 229) { text = Lang.inter[28]; if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 107) { text2 = Lang.inter[19]; } } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 37) { if (!Main.dayTime) { text = Lang.inter[50]; } } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 22) { text = Lang.inter[51]; text2 = Lang.inter[25]; } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 18) { string text3 = ""; int num6 = 0; int num7 = 0; int num8 = 0; int num9 = 0; int num10 = num4; if (num10 > 0) { num10 = (int)((double)num10 * 0.75); if (num10 < 1) { num10 = 1; } } if (num10 < 0) { num10 = 0; } num4 = num10; if (num10 >= 1000000) { num6 = num10 / 1000000; num10 -= num6 * 1000000; } if (num10 >= 10000) { num7 = num10 / 10000; num10 -= num7 * 10000; } if (num10 >= 100) { num8 = num10 / 100; num10 -= num8 * 100; } if (num10 >= 1) { num9 = num10; } if (num6 > 0) { object obj = text3; text3 = string.Concat(new object[] { obj, num6, " ", Lang.inter[15], " " }); } if (num7 > 0) { object obj2 = text3; text3 = string.Concat(new object[] { obj2, num7, " ", Lang.inter[16], " " }); } if (num8 > 0) { object obj3 = text3; text3 = string.Concat(new object[] { obj3, num8, " ", Lang.inter[17], " " }); } if (num9 > 0) { object obj4 = text3; text3 = string.Concat(new object[] { obj4, num9, " ", Lang.inter[18], " " }); } float num11 = (float)Main.mouseTextColor / 255f; if (num6 > 0) { textColor = new Color((int)((byte)(220f * num11)), (int)((byte)(220f * num11)), (int)((byte)(198f * num11)), (int)Main.mouseTextColor); } else { if (num7 > 0) { textColor = new Color((int)((byte)(224f * num11)), (int)((byte)(201f * num11)), (int)((byte)(92f * num11)), (int)Main.mouseTextColor); } else { if (num8 > 0) { textColor = new Color((int)((byte)(181f * num11)), (int)((byte)(192f * num11)), (int)((byte)(193f * num11)), (int)Main.mouseTextColor); } else { if (num9 > 0) { textColor = new Color((int)((byte)(246f * num11)), (int)((byte)(138f * num11)), (int)((byte)(96f * num11)), (int)Main.mouseTextColor); } } } } text = Lang.inter[54] + " (" + text3 + ")"; if (num10 == 0) { text = Lang.inter[54]; } } } } } } } } } } int num12 = 180 + (Main.screenWidth - 800) / 2; int num13 = 130 + num2 * 30; float scale = 0.9f; if (Main.mouseX > num12 && (float)Main.mouseX < (float)num12 + Main.fontMouseText.MeasureString(text).X && Main.mouseY > num13 && (float)Main.mouseY < (float)num13 + Main.fontMouseText.MeasureString(text).Y) { Main.player[Main.myPlayer].mouseInterface = true; scale = 1.1f; if (!Main.npcChatFocus2) { Main.PlaySound(12, -1, -1, 1); } Main.npcChatFocus2 = true; Main.player[Main.myPlayer].releaseUseItem = false; } else { if (Main.npcChatFocus2) { Main.PlaySound(12, -1, -1, 1); } Main.npcChatFocus2 = false; } Vector2 origin = Main.fontMouseText.MeasureString(text) * 0.5f; Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, text, (float)num12 + origin.X, (float)num13 + origin.Y, textColor, Color.Black, origin, scale); string text4 = Lang.inter[52]; textColor = new Color(num, (int)((double)num / 1.1), num / 2, num); num12 = num12 + (int)Main.fontMouseText.MeasureString(text).X + 20; int num14 = num12 + (int)Main.fontMouseText.MeasureString(text4).X; num13 = 130 + num2 * 30; scale = 0.9f; if (Main.mouseX > num12 && (float)Main.mouseX < (float)num12 + Main.fontMouseText.MeasureString(text4).X && Main.mouseY > num13 && (float)Main.mouseY < (float)num13 + Main.fontMouseText.MeasureString(text4).Y) { scale = 1.1f; if (!Main.npcChatFocus1) { Main.PlaySound(12, -1, -1, 1); } Main.npcChatFocus1 = true; Main.player[Main.myPlayer].releaseUseItem = false; Main.player[Main.myPlayer].controlUseItem = false; } else { if (Main.npcChatFocus1) { Main.PlaySound(12, -1, -1, 1); } Main.npcChatFocus1 = false; } origin = Main.fontMouseText.MeasureString(text4) * 0.5f; Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, text4, (float)num12 + origin.X, (float)num13 + origin.Y, textColor, Color.Black, origin, scale); if (text2 != "") { num12 = num14 + (int)Main.fontMouseText.MeasureString(text2).X / 3; num13 = 130 + num2 * 30; scale = 0.9f; if (Main.mouseX > num12 && (float)Main.mouseX < (float)num12 + Main.fontMouseText.MeasureString(text2).X && Main.mouseY > num13 && (float)Main.mouseY < (float)num13 + Main.fontMouseText.MeasureString(text2).Y) { Main.player[Main.myPlayer].mouseInterface = true; scale = 1.1f; if (!Main.npcChatFocus3) { Main.PlaySound(12, -1, -1, 1); } Main.npcChatFocus3 = true; Main.player[Main.myPlayer].releaseUseItem = false; } else { if (Main.npcChatFocus3) { Main.PlaySound(12, -1, -1, 1); } Main.npcChatFocus3 = false; } origin = Main.fontMouseText.MeasureString(text2) * 0.5f; Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, text2, (float)num12 + origin.X, (float)num13 + origin.Y, textColor, Color.Black, origin, scale); } if (Main.mouseLeft && Main.mouseLeftRelease) { Main.mouseLeftRelease = false; Main.player[Main.myPlayer].releaseUseItem = false; Main.player[Main.myPlayer].mouseInterface = true; if (Main.npcChatFocus1) { Main.player[Main.myPlayer].talkNPC = -1; Main.player[Main.myPlayer].sign = -1; Main.npcChatCornerItem = 0; Main.editSign = false; Main.npcChatText = ""; Main.PlaySound(11, -1, -1, 1); return; } if (Main.npcChatFocus2) { if (Main.player[Main.myPlayer].sign != -1) { if (!Main.editSign) { Main.PlaySound(12, -1, -1, 1); Main.editSign = true; Main.clrInput(); return; } Main.PlaySound(12, -1, -1, 1); int num15 = Main.player[Main.myPlayer].sign; Sign.TextSign(num15, Main.npcChatText); Main.editSign = false; if (Main.netMode == 1) { NetMessage.SendData(47, -1, -1, "", num15, 0f, 0f, 0f, 0); return; } } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 369) { Main.npcChatCornerItem = 0; Main.PlaySound(12, -1, -1, 1); bool flag = false; if (!Main.anglerQuestFinished && !Main.anglerWhoFinishedToday.Contains(Main.player[Main.myPlayer].name)) { int num16 = Main.player[Main.myPlayer].FindItem(Main.anglerQuestItemNetIDs[Main.anglerQuest]); if (num16 != -1) { Main.player[Main.myPlayer].inventory[num16].stack--; if (Main.player[Main.myPlayer].inventory[num16].stack <= 0) { Main.player[Main.myPlayer].inventory[num16] = new Item(); } flag = true; Main.PlaySound(24, -1, -1, 1); Main.player[Main.myPlayer].anglerQuestsFinished++; Main.player[Main.myPlayer].GetAnglerReward(); } } Main.npcChatText = Lang.AnglerQuestChat(flag); if (flag) { Main.anglerQuestFinished = true; if (Main.netMode == 1) { NetMessage.SendData(75, -1, -1, "", 0, 0f, 0f, 0f, 0); return; } Main.anglerWhoFinishedToday.Add(Main.player[Main.myPlayer].name); return; } } else { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 17) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 1; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 19) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 2; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 124) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 8; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 142) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 9; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 353) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 18; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 368) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 19; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 37) { if (Main.netMode == 0) { NPC.SpawnSkeletron(); } else { NetMessage.SendData(51, -1, -1, "", Main.myPlayer, 1f, 0f, 0f, 0); } Main.npcChatText = ""; return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 20) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 3; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 38) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 4; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 54) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 5; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 107) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 6; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 108) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 7; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 160) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 10; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 178) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 11; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 207) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 12; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 208) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 13; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 209) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 14; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 227) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 15; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 228) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 16; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 229) { Main.playerInventory = true; Main.npcChatText = ""; Main.npcShop = 17; this.shop[Main.npcShop].SetupShop(Main.npcShop); Main.PlaySound(12, -1, -1, 1); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 22) { Main.PlaySound(12, -1, -1, 1); Main.HelpText(); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 18) { Main.PlaySound(12, -1, -1, 1); if (num4 > 0) { if (Main.player[Main.myPlayer].BuyItem(num4)) { Main.PlaySound(2, -1, -1, 4); Main.player[Main.myPlayer].HealEffect(Main.player[Main.myPlayer].statLifeMax2 - Main.player[Main.myPlayer].statLife, true); if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.25) { Main.npcChatText = Lang.dialog(227, false); } else { if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.5) { Main.npcChatText = Lang.dialog(228, false); } else { if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.75) { Main.npcChatText = Lang.dialog(229, false); } else { Main.npcChatText = Lang.dialog(230, false); } } } Main.player[Main.myPlayer].statLife = Main.player[Main.myPlayer].statLifeMax2; for (int k = 0; k < 22; k++) { int num17 = Main.player[Main.myPlayer].buffType[k]; if (Main.debuff[num17] && Main.player[Main.myPlayer].buffTime[k] > 0 && num17 != 28 && num17 != 34 && num17 != 87 && num17 != 89 && num17 != 21 && num17 != 86) { Main.player[Main.myPlayer].DelBuff(k); } } return; } int num18 = Main.rand.Next(3); if (num18 == 0) { Main.npcChatText = Lang.dialog(52, false); } if (num18 == 1) { Main.npcChatText = Lang.dialog(53, false); } if (num18 == 2) { Main.npcChatText = Lang.dialog(54, false); return; } } else { int num19 = Main.rand.Next(3); if (num19 == 0) { Main.npcChatText = Lang.dialog(55, false); } if (num19 == 1) { Main.npcChatText = Lang.dialog(56, false); } if (num19 == 2) { Main.npcChatText = Lang.dialog(57, false); return; } } } } } } else { if (Main.npcChatFocus3 && Main.player[Main.myPlayer].talkNPC >= 0) { if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 20) { Main.PlaySound(12, -1, -1, 1); Main.npcChatText = Lang.evilGood(); return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 22) { Main.playerInventory = true; Main.npcChatText = ""; Main.PlaySound(12, -1, -1, 1); Main.craftGuide = true; return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 107) { Main.playerInventory = true; Main.npcChatText = ""; Main.PlaySound(12, -1, -1, 1); Main.reforge = true; return; } if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 353) { Main.OpenHairWindow(); } } } } }
protected void DrawItem(Item item) { int arg_22_0 = (int)((double)item.position.X + (double)item.width * 0.5) / 16; int arg_28_0 = Lighting.offScreenTiles; int arg_4B_0 = (int)((double)item.position.Y + (double)item.height * 0.5) / 16; int arg_51_0 = Lighting.offScreenTiles; Color color = Lighting.GetColor((int)((double)item.position.X + (double)item.width * 0.5) / 16, (int)((double)item.position.Y + (double)item.height * 0.5) / 16); if (!Main.gamePaused && base.IsActive && ((item.type >= 71 && item.type <= 74) || item.type == 58 || item.type == 109) && color.R > 60) { float num = (float)Main.rand.Next(500) - (Math.Abs(item.velocity.X) + Math.Abs(item.velocity.Y)) * 10f; if (num < (float)(color.R / 50)) { int num2 = Dust.NewDust(item.position, item.width, item.height, 43, 0f, 0f, 254, default(Color), 0.5f); Main.dust[num2].velocity *= 0f; } } float rotation = item.velocity.X * 0.2f; float num3 = 1f; Color alpha = item.GetAlpha(color); if (item.type == 662 || item.type == 663) { alpha.R = (byte)Main.DiscoR; alpha.G = (byte)Main.DiscoG; alpha.B = (byte)Main.DiscoB; alpha.A = 255; } if (item.type == 520 || item.type == 521 || item.type == 547 || item.type == 548 || item.type == 549) { num3 = Main.essScale; alpha.R = (byte)((float)alpha.R * num3); alpha.G = (byte)((float)alpha.G * num3); alpha.B = (byte)((float)alpha.B * num3); alpha.A = (byte)((float)alpha.A * num3); } else { if (item.type == 58 || item.type == 184) { num3 = Main.essScale * 0.25f + 0.75f; alpha.R = (byte)((float)alpha.R * num3); alpha.G = (byte)((float)alpha.G * num3); alpha.B = (byte)((float)alpha.B * num3); alpha.A = (byte)((float)alpha.A * num3); } } float num4 = (float)(item.height - Main.itemTexture[item.type].Height); float num5 = (float)(item.width / 2 - Main.itemTexture[item.type].Width / 2); if (item.type >= 1522 && item.type <= 1527) { Main.spriteBatch.Draw(Main.itemTexture[item.type], new Vector2(item.position.X - Main.screenPosition.X + (float)(Main.itemTexture[item.type].Width / 2) + num5, item.position.Y - Main.screenPosition.Y + (float)(Main.itemTexture[item.type].Height / 2) + num4 + 2f), new Rectangle?(new Rectangle(0, 0, Main.itemTexture[item.type].Width, Main.itemTexture[item.type].Height)), new Color(250, 250, 250, (int)(Main.mouseTextColor / 2)), rotation, new Vector2((float)(Main.itemTexture[item.type].Width / 2), (float)(Main.itemTexture[item.type].Height / 2)), (float)Main.mouseTextColor / 1000f + 0.8f, SpriteEffects.None, 0f); return; } Main.spriteBatch.Draw(Main.itemTexture[item.type], new Vector2(item.position.X - Main.screenPosition.X + (float)(Main.itemTexture[item.type].Width / 2) + num5, item.position.Y - Main.screenPosition.Y + (float)(Main.itemTexture[item.type].Height / 2) + num4 + 2f), new Rectangle?(new Rectangle(0, 0, Main.itemTexture[item.type].Width, Main.itemTexture[item.type].Height)), alpha, rotation, new Vector2((float)(Main.itemTexture[item.type].Width / 2), (float)(Main.itemTexture[item.type].Height / 2)), num3, SpriteEffects.None, 0f); if (item.color != default(Color)) { Main.spriteBatch.Draw(Main.itemTexture[item.type], new Vector2(item.position.X - Main.screenPosition.X + (float)(Main.itemTexture[item.type].Width / 2) + num5, item.position.Y - Main.screenPosition.Y + (float)(Main.itemTexture[item.type].Height / 2) + num4 + 2f), new Rectangle?(new Rectangle(0, 0, Main.itemTexture[item.type].Width, Main.itemTexture[item.type].Height)), item.GetColor(color), rotation, new Vector2((float)(Main.itemTexture[item.type].Width / 2), (float)(Main.itemTexture[item.type].Height / 2)), num3, SpriteEffects.None, 0f); } }
static void DrawItem(Item item, SpriteBatch sb, Vector2 position, float rotation, Vector2 origin, Vector2 scale, SpriteEffects effects, float layerDepth, Color? tint = null) { sb.Draw(item.GetTexture(), position, item.GetAlpha(tint ?? Color.White)); if (item.color != default(Color)) sb.Draw(item.GetTexture(), position, null, ComposeColour(item, tint), rotation, origin, scale, effects, layerDepth); }