// 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;
		}
Exemplo n.º 2
0
 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);
         }
     }
 }
Exemplo n.º 3
0
		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();
						}
					}
				}
			}
		}
Exemplo n.º 4
0
		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);
			}
		}
Exemplo n.º 5
0
		protected void DrawTiles(bool solidOnly = true)
		{
			if (!solidOnly)
			{
				Main.critterCage = false;
			}
			Stopwatch stopwatch = new Stopwatch();
			stopwatch.Start();
			int num = (int)(255f * (1f - Main.gfxQuality) + 30f * Main.gfxQuality);
			int num2 = (int)(50f * (1f - Main.gfxQuality) + 2f * Main.gfxQuality);
			Vector2 zero = new Vector2((float)Main.offScreenRange, (float)Main.offScreenRange);
			if (Main.drawToScreen)
			{
				zero = Vector2.Zero;
			}
			int num3 = 0;
			int[] array = new int[1000];
			int[] array2 = new int[1000];
			int num4 = array.Length - 1;
			int num5 = (int)((Main.screenPosition.X - zero.X) / 16f - 1f);
			int num6 = (int)((Main.screenPosition.X + (float)Main.screenWidth + zero.X) / 16f) + 2;
			int num7 = (int)((Main.screenPosition.Y - zero.Y) / 16f - 1f);
			int num8 = (int)((Main.screenPosition.Y + (float)Main.screenHeight + zero.Y) / 16f) + 5;
			if (num5 < 0)
			{
				num5 = 0;
			}
			if (num6 > Main.maxTilesX)
			{
				num6 = Main.maxTilesX;
			}
			if (num7 < 0)
			{
				num7 = 0;
			}
			if (num8 > Main.maxTilesY)
			{
				num8 = Main.maxTilesY;
			}
			if (Main.sectionManager.FrameSectionsLeft > 0)
			{
				TimeLogger.DetailedDrawReset();
				WorldGen.SectionTileFrameWithCheck(num5, num7, num6, num8);
				TimeLogger.DetailedDrawTime(5);
			}
			int num9 = 16;
			Color[] array3 = new Color[9];
			for (int i = num7; i < num8 + 4; i++)
			{
				for (int j = num5 - 2; j < num6 + 2; j++)
				{
					Tile tile = Main.tile[j, i];
					if (tile == null)
					{
						tile = new Tile();
						Main.tile[j, i] = tile;
						Main.mapTime += 60;
					}
					ushort type = tile.type;
					bool flag = Main.tileSolid[(int)type];
					if (type == 11)
					{
						flag = true;
					}
					if (tile.active() && flag == solidOnly)
					{
						if (!Main.tileSetsLoaded[(int)type])
						{
							this.LoadTiles((int)type);
						}
						SpriteEffects effects = SpriteEffects.None;
						if (type == 3 || type == 13 || type == 20 || type == 24 || type == 49 || type == 50 || type == 52 || type == 61 || type == 62 || type == 71 || type == 73 || type == 74 || type == 81 || type == 82 || type == 83 || type == 84 || type == 91 || type == 92 || type == 93 || type == 110 || type == 113 || type == 115 || type == 135 || type == 141 || type == 165 || type == 174 || type == 201 || type == 205 || type == 227 || type == 270 || type == 271)
						{
							if (j % 2 == 1)
							{
								effects = SpriteEffects.FlipHorizontally;
							}
						}
						else
						{
							if (type == 184)
							{
								if (tile.frameY < 108)
								{
									if (j % 2 == 1)
									{
										effects = SpriteEffects.FlipHorizontally;
									}
								}
								else
								{
									if (i % 2 == 1)
									{
										effects = SpriteEffects.FlipVertically;
									}
								}
							}
							else
							{
								if (type == 185 && tile.frameY == 0 && j % 2 == 1)
								{
									effects = SpriteEffects.FlipHorizontally;
								}
							}
						}
						Color color = Lighting.GetColor(j, i);
						int num10 = 0;
						int num11 = 16;
						if (type >= 330 && type <= 333)
						{
							num10 += 2;
						}
						if (type == 4 && WorldGen.SolidTile(j, i - 1))
						{
							num10 = 2;
							if (WorldGen.SolidTile(j - 1, i + 1) || WorldGen.SolidTile(j + 1, i + 1))
							{
								num10 = 4;
							}
						}
						if (type == 336)
						{
							num10 = 2;
						}
						if (type >= 275 && type <= 282)
						{
							num10 = 2;
						}
						if (type == 285 || type == 286 || type == 309 || type == 310)
						{
							num10 = 2;
						}
						if (type == 100 || type == 283)
						{
							num10 = 2;
						}
						if (type == 78 || type == 85 || type == 210 || type == 133 || type == 134 || type == 233)
						{
							num10 = 2;
						}
						if (type == 33 || type == 49 || type == 174)
						{
							num10 = -4;
						}
						if (type == 3 || type == 4 || type == 5 || type == 24 || type == 33 || type == 49 || type == 61 || type == 71 || type == 110 || type == 174 || type == 201 || type == 323 || type == 324)
						{
							num11 = 20;
						}
						else
						{
							if (type == 16 || type == 17 || type == 18 || type == 20 || type == 26 || type == 27 || type == 32 || type == 69 || type == 72 || type == 77 || type == 80)
							{
								num11 = 18;
							}
							else
							{
								if (type == 14 || type == 15 || type == 21)
								{
									if (tile.frameY == 18)
									{
										num11 = 18;
									}
								}
								else
								{
									if (type == 137)
									{
										num11 = 18;
									}
									else
									{
										if (type == 135)
										{
											num10 = 2;
											num11 = 18;
										}
										else
										{
											if (type == 254)
											{
												num10 = 2;
											}
											else
											{
												if (type == 132)
												{
													num10 = 2;
													num11 = 18;
												}
												else
												{
													num11 = 16;
												}
											}
										}
									}
								}
							}
						}
						if (type == 52)
						{
							num10 -= 2;
						}
						if (type == 324)
						{
							num10 = -2;
						}
						if (type == 231 || type == 238)
						{
							num10 += 2;
						}
						if (type == 207)
						{
							num10 = 2;
						}
						if (type == 4 || type == 5 || type == 323 || type == 324)
						{
							num9 = 20;
						}
						else
						{
							num9 = 16;
						}
						if (type == 73 || type == 74 || type == 113)
						{
							num10 -= 12;
							num11 = 32;
						}
						if (type == 227)
						{
							num9 = 32;
							num11 = 38;
							if (tile.frameX == 238)
							{
								num10 -= 6;
							}
							else
							{
								num10 -= 20;
							}
						}
						if (type == 185 || type == 186 || type == 187)
						{
							num10 = 2;
							if (type == 185)
							{
								if (tile.frameY == 18 && tile.frameX >= 576 && tile.frameX <= 882)
								{
									Main.tileShine2[185] = true;
								}
								else
								{
									Main.tileShine2[185] = false;
								}
							}
							else
							{
								if (type == 186)
								{
									if (tile.frameX >= 864 && tile.frameX <= 1170)
									{
										Main.tileShine2[186] = true;
									}
									else
									{
										Main.tileShine2[186] = false;
									}
								}
							}
						}
						if (type == 178 && tile.frameY <= 36)
						{
							num10 = 2;
						}
						if (type == 184)
						{
							num9 = 20;
							if (tile.frameY <= 36)
							{
								num10 = 2;
							}
							else
							{
								if (tile.frameY <= 108)
								{
									num10 = -2;
								}
							}
						}
						if (type == 28)
						{
							num10 += 2;
						}
						if (type == 81)
						{
							num10 -= 8;
							num11 = 26;
							num9 = 24;
						}
						if (type == 105)
						{
							num10 = 2;
						}
						if (type == 124)
						{
							num11 = 18;
						}
						if (type == 137)
						{
							num11 = 18;
						}
						if (type == 138)
						{
							num11 = 18;
						}
						if (type == 139 || type == 142 || type == 143)
						{
							num10 = 2;
						}
						int num12 = 0;
						if (tile.halfBrick())
						{
							num12 = 8;
						}
						int num13 = Main.tileFrame[(int)type] * 38;
						int num14 = 0;
						if (type == 272)
						{
							num13 = 0;
						}
						if (type == 106)
						{
							num13 = Main.tileFrame[(int)type] * 54;
						}
						if (type >= 300 && type <= 308)
						{
							num13 = Main.tileFrame[(int)type] * 54;
							num10 = 2;
						}
						if (type == 12)
						{
							num13 = Main.tileFrame[(int)type] * 36;
						}
						if (type == 96)
						{
							num13 = Main.tileFrame[(int)type] * 36;
						}
						if (type == 238)
						{
							num13 = Main.tileFrame[(int)type] * 36;
						}
						if (type == 31)
						{
							num13 = Main.tileFrame[(int)type] * 36;
						}
						if (type == 215)
						{
							num13 = Main.tileFrame[(int)type] * 36;
							num10 = 2;
						}
						if (type == 231)
						{
							num13 = Main.tileFrame[(int)type] * 54;
							num10 = 2;
						}
						if (type == 243)
						{
							num13 = Main.tileFrame[(int)type] * 54;
							num10 = 2;
						}
						if (type == 247)
						{
							num13 = Main.tileFrame[(int)type] * 54;
							num10 = 2;
						}
						if (type == 244)
						{
							num10 = 2;
							if (tile.frameX < 54)
							{
								num13 = Main.tileFrame[(int)type] * 36;
							}
							else
							{
								num13 = 0;
							}
						}
						if (type == 235)
						{
							num13 = Main.tileFrame[(int)type] * 18;
						}
						if (type == 217 || type == 218)
						{
							num13 = Main.tileFrame[(int)type] * 36;
							num10 = 2;
						}
						if (type == 219 || type == 220)
						{
							num13 = Main.tileFrame[(int)type] * 54;
							num10 = 2;
						}
						if (type == 270 || type == 271)
						{
							int k = Main.tileFrame[(int)type] + j % 6;
							if (j % 2 == 0)
							{
								k += 3;
							}
							if (j % 3 == 0)
							{
								k += 3;
							}
							if (j % 4 == 0)
							{
								k += 3;
							}
							while (k > 5)
							{
								k -= 6;
							}
							num14 = k * 18;
							num13 = 0;
						}
						if ((type >= 275 && type <= 281) || type == 296 || type == 297 || type == 309)
						{
							Main.critterCage = true;
							int num15 = j - (int)(tile.frameX / 18);
							int num16 = i - (int)(tile.frameY / 18);
							int num17 = num15 / 6 * (num16 / 4);
							num17 %= Main.cageFrames;
							if (type == 275)
							{
								num13 = Main.bunnyCageFrame[num17] * 54;
							}
							if (type == 276)
							{
								num13 = Main.squirrelCageFrame[num17] * 54;
							}
							if (type == 277)
							{
								num13 = Main.mallardCageFrame[num17] * 54;
							}
							if (type == 278)
							{
								num13 = Main.duckCageFrame[num17] * 54;
							}
							if (type == 279)
							{
								num13 = Main.birdCageFrame[num17] * 54;
							}
							if (type == 280)
							{
								num13 = Main.blueBirdCageFrame[num17] * 54;
							}
							if (type == 281)
							{
								num13 = Main.redBirdCageFrame[num17] * 54;
							}
							if (type == 296)
							{
								num13 = Main.scorpionCageFrame[0, num17] * 54;
							}
							if (type == 297)
							{
								num13 = Main.scorpionCageFrame[0, num17] * 54;
							}
							if (type == 309)
							{
								num13 = Main.penguinCageFrame[num17] * 54;
							}
						}
						else
						{
							if (type == 285 || type == 286 || type == 298 || type == 299 || type == 310 || type == 339)
							{
								Main.critterCage = true;
								int num18 = j - (int)(tile.frameX / 18);
								int num19 = i - (int)(tile.frameY / 18);
								int num20 = num18 / 3 * (num19 / 3);
								num20 %= Main.cageFrames;
								if (type == 285)
								{
									num13 = Main.snailCageFrame[num20] * 36;
								}
								if (type == 286)
								{
									num13 = Main.snail2CageFrame[num20] * 36;
								}
								if (type == 298)
								{
									num13 = Main.frogCageFrame[num20] * 36;
								}
								if (type == 299)
								{
									num13 = Main.mouseCageFrame[num20] * 36;
								}
								if (type == 310)
								{
									num13 = Main.wormCageFrame[num20] * 36;
								}
								if (type == 339)
								{
									num13 = Main.grasshopperCageFrame[num20] * 36;
								}
							}
							else
							{
								if (type == 282 || (type >= 288 && type <= 295) || (type >= 316 && type <= 318))
								{
									Main.critterCage = true;
									int num21 = j - (int)(tile.frameX / 18);
									int num22 = i - (int)(tile.frameY / 18);
									int num23 = num21 / 2 * (num22 / 3);
									num23 %= Main.cageFrames;
									if (type == 282)
									{
										num13 = Main.fishBowlFrame[num23] * 36;
									}
									else
									{
										if (type >= 288 && type <= 295)
										{
											int num24 = (int)(type - 288);
											num13 = Main.butterflyCageFrame[num24, num23] * 36;
										}
										else
										{
											if (type >= 316 && type <= 318)
											{
												int num25 = (int)(type - 316);
												num13 = Main.jellyfishCageFrame[num25, num23] * 36;
											}
										}
									}
								}
								else
								{
									if (type == 207)
									{
										if (tile.frameY >= 72)
										{
											num13 = Main.tileFrame[(int)type];
											int num26 = j;
											if (tile.frameX % 36 != 0)
											{
												num26--;
											}
											num13 += num26 % 6;
											if (num13 >= 6)
											{
												num13 -= 6;
											}
											num13 *= 72;
										}
										else
										{
											num13 = 0;
										}
									}
									else
									{
										if (type == 326 || type == 327 || type == 328 || type == 329 || type == 336)
										{
											num13 = Main.tileFrame[(int)type] * 90;
										}
									}
								}
							}
						}
						if (Main.player[Main.myPlayer].dangerSense)
						{
							bool flag2 = false || type == 135 || type == 137 || type == 138 || type == 141 || type == 210;
							if (tile.slope() == 0 && !tile.inActive())
							{
								flag2 = (flag2 || type == 32 || type == 69 || type == 48 || type == 232 || type == 51 || type == 229);
								if (!Main.player[Main.myPlayer].fireWalk)
								{
									flag2 = (flag2 || type == 37 || type == 58 || type == 76);
								}
								if (!Main.player[Main.myPlayer].iceSkate)
								{
									flag2 = (flag2 || type == 162);
								}
							}
							if (flag2)
							{
								if (color.R < 255)
								{
									color.R = 255;
								}
								if (color.G < 50)
								{
									color.G = 50;
								}
								if (color.B < 50)
								{
									color.B = 50;
								}
								color.A = Main.mouseTextColor;
								if (!Main.gamePaused && base.IsActive && Main.rand.Next(30) == 0)
								{
									int num27 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 60, 0f, 0f, 100, default(Color), 0.3f);
									Main.dust[num27].fadeIn = 1f;
									Main.dust[num27].velocity *= 0.1f;
									Main.dust[num27].noLight = true;
									Main.dust[num27].noGravity = true;
								}
							}
						}
						if (Main.player[Main.myPlayer].findTreasure)
						{
							bool flag3 = false;
							if (type == 185 && tile.frameY == 18 && tile.frameX >= 576 && tile.frameX <= 882)
							{
								flag3 = true;
							}
							if (type == 186 && tile.frameX >= 864 && tile.frameX <= 1170)
							{
								flag3 = true;
							}
							if (flag3 || type == 6 || type == 7 || type == 8 || type == 9 || type == 12 || type == 21 || type == 22 || type == 28 || type == 107 || type == 108 || type == 111 || (type >= 63 && type <= 68) || Main.tileAlch[(int)type] || type == 166 || type == 167 || type == 168 || type == 169 || type == 178 || type == 211 || type == 221 || type == 222 || type == 223 || type == 236)
							{
								byte b = 200;
								byte b2 = 170;
								if (color.R < b)
								{
									color.R = b;
								}
								if (color.G < b2)
								{
									color.G = b2;
								}
								color.A = Main.mouseTextColor;
								if (!Main.gamePaused && base.IsActive && Main.rand.Next(60) == 0)
								{
									int num28 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 204, 0f, 0f, 150, default(Color), 0.3f);
									Main.dust[num28].fadeIn = 1f;
									Main.dust[num28].velocity *= 0.1f;
									Main.dust[num28].noLight = true;
								}
							}
						}
						if (!Main.gamePaused && base.IsActive && (Lighting.lightMode < 2 || Main.rand.Next(4) == 0))
						{
							if (type == 238 && Main.rand.Next(10) == 0)
							{
								int num29 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 168, 0f, 0f, 0, default(Color), 1f);
								Main.dust[num29].noGravity = true;
								Main.dust[num29].alpha = 200;
							}
							if (type == 244 && tile.frameX == 18 && tile.frameY == 18 && Main.rand.Next(2) == 0)
							{
								if (Main.rand.Next(500) == 0)
								{
									Gore.NewGore(new Vector2((float)(j * 16 + 8), (float)(i * 16 + 8)), default(Vector2), 415, (float)Main.rand.Next(51, 101) * 0.01f);
								}
								else
								{
									if (Main.rand.Next(250) == 0)
									{
										Gore.NewGore(new Vector2((float)(j * 16 + 8), (float)(i * 16 + 8)), default(Vector2), 414, (float)Main.rand.Next(51, 101) * 0.01f);
									}
									else
									{
										if (Main.rand.Next(80) == 0)
										{
											Gore.NewGore(new Vector2((float)(j * 16 + 8), (float)(i * 16 + 8)), default(Vector2), 413, (float)Main.rand.Next(51, 101) * 0.01f);
										}
										else
										{
											if (Main.rand.Next(10) == 0)
											{
												Gore.NewGore(new Vector2((float)(j * 16 + 8), (float)(i * 16 + 8)), default(Vector2), 412, (float)Main.rand.Next(51, 101) * 0.01f);
											}
											else
											{
												if (Main.rand.Next(3) == 0)
												{
													Gore.NewGore(new Vector2((float)(j * 16 + 8), (float)(i * 16 + 8)), default(Vector2), 411, (float)Main.rand.Next(51, 101) * 0.01f);
												}
											}
										}
									}
								}
							}
							if (type == 139 && tile.frameX == 36 && tile.frameY % 36 == 0 && Main.time % 7.0 == 0.0 && Main.rand.Next(3) == 0)
							{
								int num30 = Main.rand.Next(570, 573);
								Vector2 position = new Vector2((float)(j * 16 + 8), (float)(i * 16 - 8));
								Vector2 velocity = new Vector2(Main.windSpeed * 2f, -0.5f);
								velocity.X *= 1f + (float)Main.rand.Next(-50, 51) * 0.01f;
								velocity.Y *= 1f + (float)Main.rand.Next(-50, 51) * 0.01f;
								if (num30 == 572)
								{
									position.X -= 8f;
								}
								if (num30 == 571)
								{
									position.X -= 4f;
								}
								Gore.NewGore(position, velocity, num30, 0.8f);
							}
							if (type == 165 && tile.frameX >= 162 && tile.frameX <= 214 && tile.frameY == 72 && Main.rand.Next(60) == 0)
							{
								int num31 = Dust.NewDust(new Vector2((float)(j * 16 + 2), (float)(i * 16 + 6)), 8, 4, 153, 0f, 0f, 0, default(Color), 1f);
								Main.dust[num31].scale -= (float)Main.rand.Next(3) * 0.1f;
								Main.dust[num31].velocity.Y = 0f;
								Dust expr_160B_cp_0 = Main.dust[num31];
								expr_160B_cp_0.velocity.X = expr_160B_cp_0.velocity.X * 0.05f;
								Main.dust[num31].alpha = 100;
							}
							if (type == 42 && tile.frameX == 0)
							{
								int num32 = (int)(tile.frameY / 36);
								int num33 = (int)(tile.frameY / 18 % 2);
								if (num32 == 7 && num33 == 1)
								{
									if (Main.rand.Next(50) == 0)
									{
										int num34 = Dust.NewDust(new Vector2((float)(j * 16 + 4), (float)(i * 16 + 4)), 8, 8, 58, 0f, 0f, 150, default(Color), 1f);
										Main.dust[num34].velocity *= 0.5f;
									}
									if (Main.rand.Next(100) == 0)
									{
										int num35 = Gore.NewGore(new Vector2((float)(j * 16 - 2), (float)(i * 16 - 4)), default(Vector2), Main.rand.Next(16, 18), 1f);
										Main.gore[num35].scale *= 0.7f;
										Main.gore[num35].velocity *= 0.25f;
									}
								}
								else
								{
									if (num32 == 29 && num33 == 1 && Main.rand.Next(40) == 0)
									{
										int num36 = Dust.NewDust(new Vector2((float)(j * 16 + 4), (float)(i * 16)), 8, 8, 59, 0f, 0f, 100, default(Color), 1f);
										if (Main.rand.Next(3) != 0)
										{
											Main.dust[num36].noGravity = true;
										}
										Main.dust[num36].velocity *= 0.3f;
										Dust expr_1804_cp_0 = Main.dust[num36];
										expr_1804_cp_0.velocity.Y = expr_1804_cp_0.velocity.Y - 1.5f;
									}
								}
							}
							if (type == 215 && Main.rand.Next(2) == 0 && ((Main.drawToScreen && Main.rand.Next(4) == 0) || !Main.drawToScreen) && tile.frameY == 0)
							{
								int num37 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16 - 4)), 8, 8, 31, 0f, 0f, 100, default(Color), 1f);
								if (tile.frameX == 0)
								{
									Dust expr_18AE_cp_0 = Main.dust[num37];
									expr_18AE_cp_0.position.X = expr_18AE_cp_0.position.X + (float)Main.rand.Next(8);
								}
								if (tile.frameX == 36)
								{
									Dust expr_18DE_cp_0 = Main.dust[num37];
									expr_18DE_cp_0.position.X = expr_18DE_cp_0.position.X - (float)Main.rand.Next(8);
								}
								Main.dust[num37].alpha += Main.rand.Next(100);
								Main.dust[num37].velocity *= 0.2f;
								Dust expr_1940_cp_0 = Main.dust[num37];
								expr_1940_cp_0.velocity.Y = expr_1940_cp_0.velocity.Y - (0.5f + (float)Main.rand.Next(10) * 0.1f);
								Main.dust[num37].fadeIn = 0.5f + (float)Main.rand.Next(10) * 0.1f;
								if (Main.rand.Next(4) == 0)
								{
									num37 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 8, 8, 6, 0f, 0f, 0, default(Color), 1f);
									if (tile.frameX == 0)
									{
										Dust expr_19EA_cp_0 = Main.dust[num37];
										expr_19EA_cp_0.position.X = expr_19EA_cp_0.position.X + (float)Main.rand.Next(8);
									}
									if (tile.frameX == 36)
									{
										Dust expr_1A1A_cp_0 = Main.dust[num37];
										expr_1A1A_cp_0.position.X = expr_1A1A_cp_0.position.X - (float)Main.rand.Next(8);
									}
									if (Main.rand.Next(20) != 0)
									{
										Main.dust[num37].noGravity = true;
										Main.dust[num37].scale *= 1f + (float)Main.rand.Next(10) * 0.1f;
										Dust expr_1A88_cp_0 = Main.dust[num37];
										expr_1A88_cp_0.velocity.Y = expr_1A88_cp_0.velocity.Y - 1f;
									}
								}
							}
							if (type == 4 && Main.rand.Next(40) == 0 && tile.frameX < 66)
							{
								int num38 = (int)(tile.frameY / 22);
								if (num38 == 0)
								{
									num38 = 6;
								}
								else
								{
									if (num38 == 8)
									{
										num38 = 75;
									}
									else
									{
										if (num38 == 9)
										{
											num38 = 135;
										}
										else
										{
											if (num38 == 10)
											{
												num38 = 158;
											}
											else
											{
												if (num38 == 11)
												{
													num38 = 169;
												}
												else
												{
													if (num38 == 12)
													{
														num38 = 156;
													}
													else
													{
														num38 = 58 + num38;
													}
												}
											}
										}
									}
								}
								int num39;
								if (tile.frameX == 22)
								{
									num39 = Dust.NewDust(new Vector2((float)(j * 16 + 6), (float)(i * 16)), 4, 4, num38, 0f, 0f, 100, default(Color), 1f);
								}
								if (tile.frameX == 44)
								{
									num39 = Dust.NewDust(new Vector2((float)(j * 16 + 2), (float)(i * 16)), 4, 4, num38, 0f, 0f, 100, default(Color), 1f);
								}
								else
								{
									num39 = Dust.NewDust(new Vector2((float)(j * 16 + 4), (float)(i * 16)), 4, 4, num38, 0f, 0f, 100, default(Color), 1f);
								}
								if (Main.rand.Next(3) != 0)
								{
									Main.dust[num39].noGravity = true;
								}
								Main.dust[num39].velocity *= 0.3f;
								Dust expr_1C3A_cp_0 = Main.dust[num39];
								expr_1C3A_cp_0.velocity.Y = expr_1C3A_cp_0.velocity.Y - 1.5f;
							}
							if (type == 93 && Main.rand.Next(40) == 0 && tile.frameX == 0)
							{
								int num40 = (int)(tile.frameY / 54);
								if (tile.frameY / 18 % 3 == 0)
								{
									int num41 = num40;
									if (num41 == 0)
									{
										goto IL_1CE8;
									}
									int num42;
									switch (num41)
									{
									case 6:
									case 7:
									case 8:
									case 10:
									case 14:
									case 15:
									case 16:
										goto IL_1CE8;
									case 20:
										num42 = 59;
										goto IL_1CF6;
									}
									num42 = -1;
									IL_1CF6:
									if (num42 != -1)
									{
										int num43 = Dust.NewDust(new Vector2((float)(j * 16 + 4), (float)(i * 16 + 2)), 4, 4, num42, 0f, 0f, 100, default(Color), 1f);
										if (Main.rand.Next(3) != 0)
										{
											Main.dust[num43].noGravity = true;
										}
										Main.dust[num43].velocity *= 0.3f;
										Dust expr_1D82_cp_0 = Main.dust[num43];
										expr_1D82_cp_0.velocity.Y = expr_1D82_cp_0.velocity.Y - 1.5f;
										goto IL_1D93;
									}
									goto IL_1D93;
									IL_1CE8:
									num42 = 6;
									goto IL_1CF6;
								}
							}
							IL_1D93:
							if (type == 100 && Main.rand.Next(40) == 0 && tile.frameX < 36)
							{
								int num44 = (int)(tile.frameY / 36);
								if (tile.frameY / 18 % 2 == 0)
								{
									int num45;
									switch (num44)
									{
									case 0:
									case 2:
									case 5:
									case 7:
									case 8:
									case 10:
									case 12:
									case 14:
									case 15:
									case 16:
										num45 = 6;
										break;
									case 1:
									case 3:
									case 4:
									case 6:
									case 9:
									case 11:
									case 13:
									case 17:
									case 18:
									case 19:
										goto IL_1E4C;
									case 20:
										num45 = 59;
										break;
									default:
										goto IL_1E4C;
									}
									IL_1E4F:
									if (num45 != -1)
									{
										Vector2 position2;
										if (tile.frameX == 0)
										{
											if (Main.rand.Next(3) == 0)
											{
												position2 = new Vector2((float)(j * 16 + 4), (float)(i * 16 + 2));
											}
											else
											{
												position2 = new Vector2((float)(j * 16 + 14), (float)(i * 16 + 2));
											}
										}
										else
										{
											if (Main.rand.Next(3) == 0)
											{
												position2 = new Vector2((float)(j * 16 + 6), (float)(i * 16 + 2));
											}
											else
											{
												position2 = new Vector2((float)(j * 16), (float)(i * 16 + 2));
											}
										}
										int num46 = Dust.NewDust(position2, 4, 4, num45, 0f, 0f, 100, default(Color), 1f);
										if (Main.rand.Next(3) != 0)
										{
											Main.dust[num46].noGravity = true;
										}
										Main.dust[num46].velocity *= 0.3f;
										Dust expr_1F4F_cp_0 = Main.dust[num46];
										expr_1F4F_cp_0.velocity.Y = expr_1F4F_cp_0.velocity.Y - 1.5f;
										goto IL_1F60;
									}
									goto IL_1F60;
									IL_1E4C:
									num45 = -1;
									goto IL_1E4F;
								}
							}
							IL_1F60:
							if (type == 98 && Main.rand.Next(40) == 0 && tile.frameY == 0 && tile.frameX == 0)
							{
								int num47 = Dust.NewDust(new Vector2((float)(j * 16 + 12), (float)(i * 16 + 2)), 4, 4, 6, 0f, 0f, 100, default(Color), 1f);
								if (Main.rand.Next(3) != 0)
								{
									Main.dust[num47].noGravity = true;
								}
								Main.dust[num47].velocity *= 0.3f;
								Dust expr_2016_cp_0 = Main.dust[num47];
								expr_2016_cp_0.velocity.Y = expr_2016_cp_0.velocity.Y - 1.5f;
							}
							if (type == 49 && Main.rand.Next(2) == 0)
							{
								int num48 = Dust.NewDust(new Vector2((float)(j * 16 + 4), (float)(i * 16 - 4)), 4, 4, 172, 0f, 0f, 100, default(Color), 1f);
								if (Main.rand.Next(3) == 0)
								{
									Main.dust[num48].scale = 0.5f;
								}
								else
								{
									Main.dust[num48].scale = 0.9f;
									Main.dust[num48].noGravity = true;
								}
								Main.dust[num48].velocity *= 0.3f;
								Dust expr_20ED_cp_0 = Main.dust[num48];
								expr_20ED_cp_0.velocity.Y = expr_20ED_cp_0.velocity.Y - 1.5f;
							}
							if (type == 34 && Main.rand.Next(40) == 0 && tile.frameX < 54)
							{
								int num49 = (int)(tile.frameY / 54);
								int num50 = (int)(tile.frameX / 18 % 3);
								int num51 = (int)(tile.frameY / 18 % 3);
								if (num51 == 1 && num50 != 1)
								{
									int num41 = num49;
									int num52;
									switch (num41)
									{
									case 0:
									case 1:
									case 2:
									case 3:
									case 4:
									case 5:
									case 12:
									case 13:
									case 16:
										goto IL_21D3;
									case 6:
									case 7:
									case 8:
									case 9:
									case 10:
									case 11:
									case 14:
									case 15:
										goto IL_21DE;
									default:
										switch (num41)
										{
										case 19:
										case 21:
											goto IL_21D3;
										case 20:
											goto IL_21DE;
										default:
											if (num41 != 25)
											{
												goto IL_21DE;
											}
											num52 = 59;
											break;
										}
										break;
									}
									IL_21E1:
									if (num52 != 1)
									{
										int num53 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16 + 2)), 14, 6, num52, 0f, 0f, 100, default(Color), 1f);
										if (Main.rand.Next(3) != 0)
										{
											Main.dust[num53].noGravity = true;
										}
										Main.dust[num53].velocity *= 0.3f;
										Dust expr_226C_cp_0 = Main.dust[num53];
										expr_226C_cp_0.velocity.Y = expr_226C_cp_0.velocity.Y - 1.5f;
										goto IL_227D;
									}
									goto IL_227D;
									IL_21DE:
									num52 = -1;
									goto IL_21E1;
									IL_21D3:
									num52 = 6;
									goto IL_21E1;
								}
							}
							IL_227D:
							if (type == 22 && Main.rand.Next(400) == 0)
							{
								Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 14, 0f, 0f, 0, default(Color), 1f);
							}
							else
							{
								if ((type == 23 || type == 24 || type == 32) && Main.rand.Next(500) == 0)
								{
									Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 14, 0f, 0f, 0, default(Color), 1f);
								}
								else
								{
									if (type == 25 && Main.rand.Next(700) == 0)
									{
										Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 14, 0f, 0f, 0, default(Color), 1f);
									}
									else
									{
										if (type == 112 && Main.rand.Next(700) == 0)
										{
											Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 14, 0f, 0f, 0, default(Color), 1f);
										}
										else
										{
											if (type == 31 && Main.rand.Next(20) == 0)
											{
												if (tile.frameX >= 36)
												{
													int num54 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 5, 0f, 0f, 100, default(Color), 1f);
													Main.dust[num54].velocity.Y = 0f;
													Dust expr_246A_cp_0 = Main.dust[num54];
													expr_246A_cp_0.velocity.X = expr_246A_cp_0.velocity.X * 0.3f;
												}
												else
												{
													Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 14, 0f, 0f, 100, default(Color), 1f);
												}
											}
											else
											{
												if (type == 26 && Main.rand.Next(20) == 0)
												{
													if (tile.frameX >= 54)
													{
														int num55 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 5, 0f, 0f, 100, default(Color), 1f);
														Main.dust[num55].scale = 1.5f;
														Main.dust[num55].noGravity = true;
														Main.dust[num55].velocity *= 0.75f;
													}
													else
													{
														Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 14, 0f, 0f, 100, default(Color), 1f);
													}
												}
												else
												{
													if ((type == 71 || type == 72) && Main.rand.Next(500) == 0)
													{
														Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 41, 0f, 0f, 250, default(Color), 0.8f);
													}
													else
													{
														if ((type == 17 || type == 77 || type == 133) && Main.rand.Next(40) == 0)
														{
															if (tile.frameX == 18 & tile.frameY == 18)
															{
																int num56 = Dust.NewDust(new Vector2((float)(j * 16 - 4), (float)(i * 16 - 6)), 8, 6, 6, 0f, 0f, 100, default(Color), 1f);
																if (Main.rand.Next(3) != 0)
																{
																	Main.dust[num56].noGravity = true;
																}
															}
														}
														else
														{
															if (type == 37 && Main.rand.Next(250) == 0)
															{
																int num57 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 6, 0f, 0f, 0, default(Color), (float)Main.rand.Next(3));
																if (Main.dust[num57].scale > 1f)
																{
																	Main.dust[num57].noGravity = true;
																}
															}
															else
															{
																if ((type == 58 || type == 76) && Main.rand.Next(250) == 0)
																{
																	int num58 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 6, 0f, 0f, 0, default(Color), (float)Main.rand.Next(3));
																	if (Main.dust[num58].scale > 1f)
																	{
																		Main.dust[num58].noGravity = true;
																	}
																	Main.dust[num58].noLight = true;
																}
																else
																{
																	if (type == 61)
																	{
																		if (tile.frameX == 144)
																		{
																			if (Main.rand.Next(60) == 0)
																			{
																				int num59 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 44, 0f, 0f, 250, default(Color), 0.4f);
																				Main.dust[num59].fadeIn = 0.7f;
																			}
																			color.A = (byte)(245f - (float)Main.mouseTextColor * 1.5f);
																			color.R = (byte)(245f - (float)Main.mouseTextColor * 1.5f);
																			color.B = (byte)(245f - (float)Main.mouseTextColor * 1.5f);
																			color.G = (byte)(245f - (float)Main.mouseTextColor * 1.5f);
																		}
																	}
																	else
																	{
																		if (Main.tileShine[(int)type] > 0)
																		{
																			Main.tileShine[211] = 500;
																			if (color.R > 20 || color.B > 20 || color.G > 20)
																			{
																				int num60 = (int)color.R;
																				if ((int)color.G > num60)
																				{
																					num60 = (int)color.G;
																				}
																				if ((int)color.B > num60)
																				{
																					num60 = (int)color.B;
																				}
																				num60 /= 30;
																				if (Main.rand.Next(Main.tileShine[(int)type]) < num60 && (type != 21 || (tile.frameX >= 36 && tile.frameX < 180) || (tile.frameX >= 360 && tile.frameX < 1008)))
																				{
																					Color white = Color.White;
																					if (type == 178)
																					{
																						int num61 = (int)(tile.frameX / 18);
																						if (num61 == 0)
																						{
																							white = new Color(255, 0, 255, 255);
																						}
																						else
																						{
																							if (num61 == 1)
																							{
																								white = new Color(255, 255, 0, 255);
																							}
																							else
																							{
																								if (num61 == 2)
																								{
																									white = new Color(0, 0, 255, 255);
																								}
																								else
																								{
																									if (num61 == 3)
																									{
																										white = new Color(0, 255, 0, 255);
																									}
																									else
																									{
																										if (num61 == 4)
																										{
																											white = new Color(255, 0, 0, 255);
																										}
																										else
																										{
																											if (num61 == 5)
																											{
																												white = new Color(255, 255, 255, 255);
																											}
																											else
																											{
																												if (num61 == 6)
																												{
																													white = new Color(255, 255, 0, 255);
																												}
																											}
																										}
																									}
																								}
																							}
																						}
																						int num62 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 43, 0f, 0f, 254, white, 0.5f);
																						Main.dust[num62].velocity *= 0f;
																					}
																					else
																					{
																						if (type == 63)
																						{
																							white = new Color(0, 0, 255, 255);
																						}
																						if (type == 64)
																						{
																							white = new Color(255, 0, 0, 255);
																						}
																						if (type == 65)
																						{
																							white = new Color(0, 255, 0, 255);
																						}
																						if (type == 66)
																						{
																							white = new Color(255, 255, 0, 255);
																						}
																						if (type == 67)
																						{
																							white = new Color(255, 0, 255, 255);
																						}
																						if (type == 68)
																						{
																							white = new Color(255, 255, 255, 255);
																						}
																						if (type == 12)
																						{
																							white = new Color(255, 0, 0, 255);
																						}
																						if (type == 204)
																						{
																							white = new Color(255, 0, 0, 255);
																						}
																						if (type == 211)
																						{
																							white = new Color(50, 255, 100, 255);
																						}
																						int num63 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 43, 0f, 0f, 254, white, 0.5f);
																						Main.dust[num63].velocity *= 0f;
																					}
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
						if (type == 269 || type == 128)
						{
							int num64 = (int)(tile.frameY / 18);
							if (num64 == 2)
							{
								if (tile.frameX >= 100)
								{
									bool flag4 = false;
									int l = (int)Main.tile[j, i - 1].frameX;
									if (l >= 100)
									{
										int num65 = 0;
										while (l >= 100)
										{
											num65++;
											l -= 100;
										}
										int num41 = num65;
										if (num41 <= 36)
										{
											if (num41 != 15 && num41 != 36)
											{
												goto IL_2CD6;
											}
										}
										else
										{
											switch (num41)
											{
											case 41:
											case 42:
												break;
											default:
												switch (num41)
												{
												case 58:
												case 59:
												case 60:
												case 61:
												case 62:
												case 63:
													break;
												default:
													goto IL_2CD6;
												}
												break;
											}
										}
										flag4 = true;
									}
									IL_2CD6:
									if (!flag4)
									{
										array[num3] = j;
										array2[num3] = i;
										num3++;
									}
								}
								if (Main.tile[j, i - 1].frameX >= 100)
								{
									array[num3] = j;
									array2[num3] = i - 1;
									num3++;
								}
								if (Main.tile[j, i - 2].frameX >= 100)
								{
									array[num3] = j;
									array2[num3] = i - 2;
									num3++;
								}
							}
						}
						if (type == 5 && tile.frameY >= 198 && tile.frameX >= 22)
						{
							array[num3] = j;
							array2[num3] = i;
							num3++;
						}
						if (type == 323 && tile.frameX <= 132 && tile.frameX >= 88)
						{
							array[num3] = j;
							array2[num3] = i;
							num3++;
						}
						if (type == 237 && tile.frameX == 18 && tile.frameY == 0)
						{
							array[num3] = j;
							array2[num3] = i;
							num3++;
						}
						if (type == 334)
						{
							int num66 = (int)(tile.frameY / 18);
							if (num66 == 1 && tile.frameX >= 5000)
							{
								int m = (int)Main.tile[j, i].frameX;
								int num67 = 0;
								while (m >= 5000)
								{
									num67++;
									m -= 5000;
								}
								if (num67 == 1 || num67 == 4)
								{
									array[num3] = j;
									array2[num3] = i;
									num3++;
								}
							}
						}
						if (type == 5 && tile.frameY >= 198 && tile.frameX >= 22)
						{
							array[num3] = j;
							array2[num3] = i;
							num3++;
						}
						if (type == 323 && tile.frameX <= 132 && tile.frameX >= 88)
						{
							array[num3] = j;
							array2[num3] = i;
							num3++;
						}
						if (type == 237 && tile.frameX == 18 && tile.frameY == 0)
						{
							array[num3] = j;
							array2[num3] = i;
							num3++;
						}
						if (type == 72 && tile.frameX >= 36)
						{
							int num68 = 0;
							if (tile.frameY == 18)
							{
								num68 = 1;
							}
							else
							{
								if (tile.frameY == 36)
								{
									num68 = 2;
								}
							}
							Main.spriteBatch.Draw(Main.shroomCapTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X - 22), (float)(i * 16 - (int)Main.screenPosition.Y - 26)) + zero, new Rectangle?(new Rectangle(num68 * 62, 0, 60, 42)), Lighting.GetColor(j, i), 0f, default(Vector2), 1f, effects, 0f);
						}
						if (color.R > 1 || color.G > 1 || color.B > 1)
						{
							Tile tile2 = Main.tile[j + 1, i];
							Tile tile3 = Main.tile[j - 1, i];
							Tile tile4 = Main.tile[j, i - 1];
							Tile tile5 = Main.tile[j, i + 1];
							if (tile2 == null)
							{
								tile2 = new Tile();
								Main.tile[j + 1, i] = tile2;
							}
							if (tile3 == null)
							{
								tile3 = new Tile();
								Main.tile[j - 1, i] = tile3;
							}
							if (tile4 == null)
							{
								tile4 = new Tile();
								Main.tile[j, i - 1] = tile4;
							}
							if (tile5 == null)
							{
								tile5 = new Tile();
								Main.tile[j, i + 1] = tile5;
							}
							if (solidOnly && flag && !tile.inActive() && !Main.tileSolidTop[(int)type])
							{
								bool flag5 = false;
								if (tile.halfBrick())
								{
									int num69 = 160;
									if (((int)tile3.liquid > num69 || (int)tile2.liquid > num69) && this.waterfallManager.CheckForWaterfall(j, i))
									{
										flag5 = true;
									}
								}
								if (!flag5)
								{
									int num70 = 0;
									bool flag6 = false;
									bool flag7 = false;
									bool flag8 = false;
									bool flag9 = false;
									int num71 = 0;
									bool flag10 = false;
									int num72 = (int)tile.slope();
									if (tile3.liquid > 0 && num72 != 1 && num72 != 3)
									{
										flag6 = true;
										switch (tile3.liquidType())
										{
										case 0:
											flag10 = true;
											break;
										case 1:
											num71 = 1;
											break;
										case 2:
											num71 = 11;
											break;
										}
										if ((int)tile3.liquid > num70)
										{
											num70 = (int)tile3.liquid;
										}
									}
									if (tile2.liquid > 0 && num72 != 2 && num72 != 4)
									{
										flag7 = true;
										switch (tile2.liquidType())
										{
										case 0:
											flag10 = true;
											break;
										case 1:
											num71 = 1;
											break;
										case 2:
											num71 = 11;
											break;
										}
										if ((int)tile2.liquid > num70)
										{
											num70 = (int)tile2.liquid;
										}
									}
									if (tile4.liquid > 0 && num72 != 3 && num72 != 4)
									{
										flag8 = true;
										switch (tile4.liquidType())
										{
										case 0:
											flag10 = true;
											break;
										case 1:
											num71 = 1;
											break;
										case 2:
											num71 = 11;
											break;
										}
									}
									if (tile5.liquid > 0 && num72 != 1 && num72 != 2)
									{
										if (tile5.liquid > 240)
										{
											flag9 = true;
										}
										switch (tile5.liquidType())
										{
										case 0:
											flag10 = true;
											break;
										case 1:
											num71 = 1;
											break;
										case 2:
											num71 = 11;
											break;
										}
									}
									if (num71 == 0)
									{
										num71 = Main.waterStyle;
									}
									if ((flag8 || flag9 || flag6 || flag7) && (!flag10 || num71 != 1))
									{
										Color color2 = Lighting.GetColor(j, i);
										Vector2 value = new Vector2((float)(j * 16), (float)(i * 16));
										Rectangle value2 = new Rectangle(0, 4, 16, 16);
										if (flag9 && (flag6 || flag7))
										{
											flag6 = true;
											flag7 = true;
										}
										if ((!flag8 || (!flag6 && !flag7)) && (!flag9 || !flag8))
										{
											if (flag8)
											{
												value2 = new Rectangle(0, 4, 16, 4);
												if (tile.halfBrick() || tile.slope() != 0)
												{
													value2 = new Rectangle(0, 4, 16, 12);
												}
											}
											else
											{
												if (flag9 && !flag6 && !flag7)
												{
													value = new Vector2((float)(j * 16), (float)(i * 16 + 12));
													value2 = new Rectangle(0, 4, 16, 4);
												}
												else
												{
													float num73 = (float)(256 - num70);
													num73 /= 32f;
													int y = 4;
													if (tile4.liquid == 0 && !WorldGen.SolidTile(j, i - 1))
													{
														y = 0;
													}
													if ((flag6 && flag7) || tile.halfBrick() || tile.slope() != 0)
													{
														value = new Vector2((float)(j * 16), (float)(i * 16 + (int)num73 * 2));
														value2 = new Rectangle(0, y, 16, 16 - (int)num73 * 2);
													}
													else
													{
														if (flag6)
														{
															value = new Vector2((float)(j * 16), (float)(i * 16 + (int)num73 * 2));
															value2 = new Rectangle(0, y, 4, 16 - (int)num73 * 2);
														}
														else
														{
															value = new Vector2((float)(j * 16 + 12), (float)(i * 16 + (int)num73 * 2));
															value2 = new Rectangle(0, y, 4, 16 - (int)num73 * 2);
														}
													}
												}
											}
										}
										float num74 = 0.5f;
										if (num71 == 1)
										{
											num74 = 1f;
										}
										else
										{
											if (num71 == 11)
											{
												num74 *= 1.7f;
												if (num74 > 1f)
												{
													num74 = 1f;
												}
											}
										}
										if ((double)i < Main.worldSurface || num74 > 1f)
										{
											num74 = 1f;
											if (tile4.wall > 0 || tile3.wall > 0 || tile2.wall > 0 || tile5.wall > 0)
											{
												num74 = 0.65f;
											}
											if (tile.wall > 0)
											{
												num74 = 0.5f;
											}
										}
										if (tile.halfBrick() && tile4.liquid > 0 && tile.wall > 0)
										{
											num74 = 0f;
										}
										float num75 = (float)color2.R * num74;
										float num76 = (float)color2.G * num74;
										float num77 = (float)color2.B * num74;
										float num78 = (float)color2.A * num74;
										color2 = new Color((int)((byte)num75), (int)((byte)num76), (int)((byte)num77), (int)((byte)num78));
										Main.spriteBatch.Draw(Main.liquidTexture[num71], value - Main.screenPosition + zero, new Rectangle?(value2), color2, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
									}
								}
							}
							if (type == 314)
							{
								if (tile.inActive())
								{
									color = tile.actColor(color);
								}
								else
								{
									if (Main.tileShine2[(int)type])
									{
										color = Main.shine(color, (int)type);
									}
								}
								int num79;
								int num80;
								Minecart.TrackColors(j, i, tile, out num79, out num80);
								Texture2D texture;
								if (Main.canDrawColorTile(type, num79))
								{
									texture = Main.tileAltTexture[(int)type, num79];
								}
								else
								{
									texture = Main.tileTexture[(int)type];
								}
								Texture2D texture2;
								if (Main.canDrawColorTile(type, num80))
								{
									texture2 = Main.tileAltTexture[(int)type, num80];
								}
								else
								{
									texture2 = Main.tileTexture[(int)type];
								}
								tile.frameNumber();
								if (tile.frameY != -1)
								{
									Main.spriteBatch.Draw(texture2, new Vector2((float)(j * 16 - (int)Main.screenPosition.X), (float)(i * 16 - (int)Main.screenPosition.Y)) + zero, new Rectangle?(Minecart.GetSourceRect((int)tile.frameY, Main.tileFrame[314])), color, 0f, default(Vector2), 1f, effects, 0f);
								}
								Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X), (float)(i * 16 - (int)Main.screenPosition.Y)) + zero, new Rectangle?(Minecart.GetSourceRect((int)tile.frameX, Main.tileFrame[314])), color, 0f, default(Vector2), 1f, effects, 0f);
								if (Minecart.DrawLeftDecoration((int)tile.frameY))
								{
									Main.spriteBatch.Draw(texture2, new Vector2((float)(j * 16 - (int)Main.screenPosition.X), (float)((i + 1) * 16 - (int)Main.screenPosition.Y)) + zero, new Rectangle?(Minecart.GetSourceRect(36, 0)), color, 0f, default(Vector2), 1f, effects, 0f);
								}
								if (Minecart.DrawLeftDecoration((int)tile.frameX))
								{
									Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X), (float)((i + 1) * 16 - (int)Main.screenPosition.Y)) + zero, new Rectangle?(Minecart.GetSourceRect(36, 0)), color, 0f, default(Vector2), 1f, effects, 0f);
								}
								if (Minecart.DrawRightDecoration((int)tile.frameY))
								{
									Main.spriteBatch.Draw(texture2, new Vector2((float)(j * 16 - (int)Main.screenPosition.X), (float)((i + 1) * 16 - (int)Main.screenPosition.Y)) + zero, new Rectangle?(Minecart.GetSourceRect(37, Main.tileFrame[314])), color, 0f, default(Vector2), 1f, effects, 0f);
								}
								if (Minecart.DrawRightDecoration((int)tile.frameX))
								{
									Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X), (float)((i + 1) * 16 - (int)Main.screenPosition.Y)) + zero, new Rectangle?(Minecart.GetSourceRect(37, 0)), color, 0f, default(Vector2), 1f, effects, 0f);
								}
								if (Minecart.DrawBumper((int)tile.frameX))
								{
									Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X), (float)((i - 1) * 16 - (int)Main.screenPosition.Y)) + zero, new Rectangle?(Minecart.GetSourceRect(39, 0)), color, 0f, default(Vector2), 1f, effects, 0f);
								}
								else
								{
									if (Minecart.DrawBouncyBumper((int)tile.frameX))
									{
										Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X), (float)((i - 1) * 16 - (int)Main.screenPosition.Y)) + zero, new Rectangle?(Minecart.GetSourceRect(38, 0)), color, 0f, default(Vector2), 1f, effects, 0f);
									}
								}
							}
							else
							{
								if (type == 51)
								{
									Color color3 = Lighting.GetColor(j, i);
									float num81 = 0.5f;
									float num82 = (float)color3.R * num81;
									float num83 = (float)color3.G * num81;
									float num84 = (float)color3.B * num81;
									float num85 = (float)color3.A * num81;
									color3 = new Color((int)((byte)num82), (int)((byte)num83), (int)((byte)num84), (int)((byte)num85));
									if (Main.canDrawColorTile(j, i))
									{
										Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color3, 0f, default(Vector2), 1f, effects, 0f);
									}
									else
									{
										Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color3, 0f, default(Vector2), 1f, effects, 0f);
									}
								}
								else
								{
									if (type == 171)
									{
										if (tile.frameX >= 10)
										{
											int num86 = 0;
											if ((tile.frameY & 1) == 1)
											{
												num86++;
											}
											if ((tile.frameY & 2) == 2)
											{
												num86 += 2;
											}
											if ((tile.frameY & 4) == 4)
											{
												num86 += 4;
											}
											int num87 = 0;
											if ((tile.frameY & 8) == 8)
											{
												num87++;
											}
											if ((tile.frameY & 16) == 16)
											{
												num87 += 2;
											}
											if ((tile.frameY & 32) == 32)
											{
												num87 += 4;
											}
											int num88 = 0;
											if ((tile.frameY & 64) == 64)
											{
												num88++;
											}
											if ((tile.frameY & 128) == 128)
											{
												num88 += 2;
											}
											if ((tile.frameY & 256) == 256)
											{
												num88 += 4;
											}
											if ((tile.frameY & 512) == 512)
											{
												num88 += 8;
											}
											int num89 = 0;
											if ((tile.frameY & 1024) == 1024)
											{
												num89++;
											}
											if ((tile.frameY & 2048) == 2048)
											{
												num89 += 2;
											}
											if ((tile.frameY & 4096) == 4096)
											{
												num89 += 4;
											}
											if ((tile.frameY & 8192) == 8192)
											{
												num89 += 8;
											}
											Color color4 = Lighting.GetColor(j + 1, i + 4);
											Main.spriteBatch.Draw(Main.xmasTree[0], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(0, 0, 64, 128)), color4, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
											if (num86 > 0)
											{
												num86--;
												Color color5 = color4;
												if (num86 != 3)
												{
													color5 = new Color(255, 255, 255, 255);
												}
												Main.spriteBatch.Draw(Main.xmasTree[3], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(66 * num86, 0, 64, 128)), color5, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
											}
											if (num87 > 0)
											{
												num87--;
												Main.spriteBatch.Draw(Main.xmasTree[1], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(66 * num87, 0, 64, 128)), color4, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
											}
											if (num88 > 0)
											{
												num88--;
												Main.spriteBatch.Draw(Main.xmasTree[2], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(66 * num88, 0, 64, 128)), color4, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
											}
											if (num89 > 0)
											{
												num89--;
												Main.spriteBatch.Draw(Main.xmasTree[4], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(66 * num89, 130 * Main.tileFrame[171], 64, 128)), new Color(255, 255, 255, 255), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
											}
										}
									}
									else
									{
										if (type == 160 && !tile.halfBrick())
										{
											Color color6 = default(Color);
											color6 = new Color(Main.DiscoR, Main.DiscoG, Main.DiscoB, 255);
											if (tile.inActive())
											{
												color6 = tile.actColor(color6);
											}
											if (tile.slope() == 0)
											{
												Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color6, 0f, default(Vector2), 1f, effects, 0f);
											}
											else
											{
												if (tile.slope() > 2)
												{
													if (tile.slope() == 3)
													{
														for (int n = 0; n < 8; n++)
														{
															int num90 = 2;
															int num91 = n * 2;
															int num92 = n * -2;
															int num93 = 16 - n * 2;
															if (Main.canDrawColorTile(j, i))
															{
																Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num91, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + n * num90 + num92)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num91, (int)(tile.frameY + 16) - num93, num90, num93)), color6, 0f, default(Vector2), 1f, effects, 0f);
															}
															else
															{
																Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num91, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + n * num90 + num92)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num91, (int)(tile.frameY + 16) - num93, num90, num93)), color6, 0f, default(Vector2), 1f, effects, 0f);
															}
														}
													}
													else
													{
														for (int num94 = 0; num94 < 8; num94++)
														{
															int num95 = 2;
															int num96 = 16 - num94 * num95 - num95;
															int num97 = 16 - num94 * num95;
															int num98 = num94 * -2;
															if (Main.canDrawColorTile(j, i))
															{
																Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num96, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num94 * num95 + num98)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num96, (int)(tile.frameY + 16) - num97, num95, num97)), color6, 0f, default(Vector2), 1f, effects, 0f);
															}
															else
															{
																Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num96, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num94 * num95 + num98)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num96, (int)(tile.frameY + 16) - num97, num95, num97)), color6, 0f, default(Vector2), 1f, effects, 0f);
															}
														}
													}
													if (Main.canDrawColorTile(j, i))
													{
														Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, 16, 2)), color6, 0f, default(Vector2), 1f, effects, 0f);
													}
													else
													{
														Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, 16, 2)), color6, 0f, default(Vector2), 1f, effects, 0f);
													}
												}
												else
												{
													if (tile.slope() == 1)
													{
														for (int num99 = 0; num99 < 8; num99++)
														{
															int num100 = 2;
															int num101 = num99 * 2;
															int height = 14 - num99 * num100;
															Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num101, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num99 * num100)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num101, (int)tile.frameY, num100, height)), color6, 0f, default(Vector2), 1f, effects, 0f);
														}
													}
													if (tile.slope() == 2)
													{
														for (int num102 = 0; num102 < 8; num102++)
														{
															int num103 = 2;
															int num104 = 16 - num102 * num103 - num103;
															int height2 = 14 - num102 * num103;
															Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num104, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num102 * num103)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num104, (int)tile.frameY, num103, height2)), color6, 0f, default(Vector2), 1f, effects, 0f);
														}
													}
													Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 14)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)(tile.frameY + 14), 16, 2)), color6, 0f, default(Vector2), 1f, effects, 0f);
												}
											}
										}
										else
										{
											if (tile.slope() > 0)
											{
												if (tile.inActive())
												{
													color = tile.actColor(color);
												}
												else
												{
													if (Main.tileShine2[(int)type])
													{
														color = Main.shine(color, (int)type);
													}
												}
												if (tile.type == 19)
												{
													if (Main.canDrawColorTile(j, i))
													{
														Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
													}
													else
													{
														Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
													}
													if (tile.slope() == 1 && Main.tile[j + 1, i + 1].active() && Main.tile[j + 1, i + 1].slope() != 2 && !Main.tile[j + 1, i + 1].halfBrick())
													{
														if (Main.tile[j + 1, i + 1].type == 19 && Main.tile[j + 1, i + 1].slope() == 0)
														{
															if (Main.canDrawColorTile(j, i))
															{
																Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 16)) + zero, new Rectangle?(new Rectangle(324, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
															}
															else
															{
																Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 16)) + zero, new Rectangle?(new Rectangle(324, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
															}
														}
														else
														{
															if (Main.canDrawColorTile(j, i))
															{
																Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 16)) + zero, new Rectangle?(new Rectangle(198, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
															}
															else
															{
																Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 16)) + zero, new Rectangle?(new Rectangle(198, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
															}
														}
													}
													else
													{
														if (tile.slope() == 2 && Main.tile[j - 1, i + 1].active() && Main.tile[j - 1, i + 1].slope() != 1 && !Main.tile[j - 1, i + 1].halfBrick())
														{
															if (Main.tile[j - 1, i + 1].type == 19 && Main.tile[j - 1, i + 1].slope() == 0)
															{
																if (Main.canDrawColorTile(j, i))
																{
																	Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 16)) + zero, new Rectangle?(new Rectangle(306, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
																else
																{
																	Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 16)) + zero, new Rectangle?(new Rectangle(306, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
															}
															else
															{
																if (Main.canDrawColorTile(j, i))
																{
																	Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 16)) + zero, new Rectangle?(new Rectangle(162, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
																else
																{
																	Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 16)) + zero, new Rectangle?(new Rectangle(162, (int)tile.frameY, 16, 16)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
															}
														}
													}
												}
												else
												{
													if (tile.slope() > 2)
													{
														if (tile.slope() == 3)
														{
															for (int num105 = 0; num105 < 8; num105++)
															{
																int num106 = 2;
																int num107 = num105 * 2;
																int num108 = num105 * -2;
																int num109 = 16 - num105 * 2;
																if (Main.canDrawColorTile(j, i))
																{
																	Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num107, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num105 * num106 + num108)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num107 + num14, (int)(tile.frameY + 16) - num109 + num13, num106, num109)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
																else
																{
																	Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num107, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num105 * num106 + num108)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num107 + num14, (int)(tile.frameY + 16) - num109 + num13, num106, num109)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
															}
														}
														else
														{
															for (int num110 = 0; num110 < 8; num110++)
															{
																int num111 = 2;
																int num112 = 16 - num110 * num111 - num111;
																int num113 = 16 - num110 * num111;
																int num114 = num110 * -2;
																if (Main.canDrawColorTile(j, i))
																{
																	Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num112, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num110 * num111 + num114)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num112 + num14, (int)(tile.frameY + 16) - num113 + num13, num111, num113)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
																else
																{
																	Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num112, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num110 * num111 + num114)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num112 + num14, (int)(tile.frameY + 16) - num113 + num13, num111, num113)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
															}
														}
														if (Main.canDrawColorTile(j, i))
														{
															Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)tile.frameY + num13, 16, 2)), color, 0f, default(Vector2), 1f, effects, 0f);
														}
														else
														{
															Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)tile.frameY + num13, 16, 2)), color, 0f, default(Vector2), 1f, effects, 0f);
														}
													}
													else
													{
														if (tile.slope() == 1)
														{
															for (int num115 = 0; num115 < 8; num115++)
															{
																int num116 = 2;
																int num117 = num115 * 2;
																int height3 = 14 - num115 * num116;
																if (Main.canDrawColorTile(j, i))
																{
																	Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num117, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num115 * num116)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num117 + num14, (int)tile.frameY + num13, num116, height3)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
																else
																{
																	Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num117, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num115 * num116)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num117 + num14, (int)tile.frameY + num13, num116, height3)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
															}
														}
														if (tile.slope() == 2)
														{
															for (int num118 = 0; num118 < 8; num118++)
															{
																int num119 = 2;
																int num120 = 16 - num118 * num119 - num119;
																int height4 = 14 - num118 * num119;
																if (Main.canDrawColorTile(j, i))
																{
																	Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num120, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num118 * num119)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num120 + num14, (int)tile.frameY + num13, num119, height4)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
																else
																{
																	Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num120, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num118 * num119)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num120 + num14, (int)tile.frameY + num13, num119, height4)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
															}
														}
														if (Main.canDrawColorTile(j, i))
														{
															Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 14)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)(tile.frameY + 14) + num13, 16, 2)), color, 0f, default(Vector2), 1f, effects, 0f);
														}
														else
														{
															Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 14)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)(tile.frameY + 14) + num13, 16, 2)), color, 0f, default(Vector2), 1f, effects, 0f);
														}
													}
												}
											}
											else
											{
												if (type == 129)
												{
													Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(200, 200, 200, 0), 0f, default(Vector2), 1f, effects, 0f);
												}
												else
												{
													if (Main.tileAlch[(int)type])
													{
														num11 = 20;
														num10 = -1;
														int num121 = (int)type;
														int num122 = (int)(tile.frameX / 18);
														if (num121 > 82)
														{
															if (num122 == 0 && Main.dayTime)
															{
																num121 = 84;
															}
															if (num122 == 1 && !Main.dayTime)
															{
																num121 = 84;
															}
															if (num122 == 3 && Main.bloodMoon)
															{
																num121 = 84;
															}
															if (num122 == 4 && (Main.raining || Main.cloudAlpha > 0f))
															{
																num121 = 84;
															}
														}
														if (num121 == 84)
														{
															if (num122 == 0 && Main.rand.Next(100) == 0)
															{
																int num123 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16 - 4)), 16, 16, 19, 0f, 0f, 160, default(Color), 0.1f);
																Dust expr_5AF7_cp_0 = Main.dust[num123];
																expr_5AF7_cp_0.velocity.X = expr_5AF7_cp_0.velocity.X / 2f;
																Dust expr_5B15_cp_0 = Main.dust[num123];
																expr_5B15_cp_0.velocity.Y = expr_5B15_cp_0.velocity.Y / 2f;
																Main.dust[num123].noGravity = true;
																Main.dust[num123].fadeIn = 1f;
															}
															if (num122 == 1 && Main.rand.Next(100) == 0)
															{
																Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 41, 0f, 0f, 250, default(Color), 0.8f);
															}
															if (num122 == 3)
															{
																if (Main.rand.Next(200) == 0)
																{
																	int num124 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 14, 0f, 0f, 100, default(Color), 0.2f);
																	Main.dust[num124].fadeIn = 1.2f;
																}
																if (Main.rand.Next(75) == 0)
																{
																	int num125 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 27, 0f, 0f, 100, default(Color), 1f);
																	Dust expr_5C58_cp_0 = Main.dust[num125];
																	expr_5C58_cp_0.velocity.X = expr_5C58_cp_0.velocity.X / 2f;
																	Dust expr_5C76_cp_0 = Main.dust[num125];
																	expr_5C76_cp_0.velocity.Y = expr_5C76_cp_0.velocity.Y / 2f;
																}
															}
															if (num122 == 4 && Main.rand.Next(150) == 0)
															{
																int num126 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 8, 16, 0f, 0f, 0, default(Color), 1f);
																Dust expr_5CEB_cp_0 = Main.dust[num126];
																expr_5CEB_cp_0.velocity.X = expr_5CEB_cp_0.velocity.X / 3f;
																Dust expr_5D09_cp_0 = Main.dust[num126];
																expr_5D09_cp_0.velocity.Y = expr_5D09_cp_0.velocity.Y / 3f;
																Dust expr_5D27_cp_0 = Main.dust[num126];
																expr_5D27_cp_0.velocity.Y = expr_5D27_cp_0.velocity.Y - 0.7f;
																Main.dust[num126].alpha = 50;
																Main.dust[num126].scale *= 0.1f;
																Main.dust[num126].fadeIn = 0.9f;
																Main.dust[num126].noGravity = true;
															}
															if (num122 == 5)
															{
																if (Main.rand.Next(40) == 0)
																{
																	int num127 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16 - 6)), 16, 16, 6, 0f, 0f, 0, default(Color), 1.5f);
																	Dust expr_5DE0_cp_0 = Main.dust[num127];
																	expr_5DE0_cp_0.velocity.Y = expr_5DE0_cp_0.velocity.Y - 2f;
																	Main.dust[num127].noGravity = true;
																}
																color.A = Main.mouseTextColor / 2;
																color.G = Main.mouseTextColor;
																color.B = Main.mouseTextColor;
															}
															if (num122 == 6)
															{
																if (Main.rand.Next(30) == 0)
																{
																	Color newColor = new Color(50, 255, 255, 255);
																	int num128 = Dust.NewDust(new Vector2((float)(j * 16), (float)(i * 16)), 16, 16, 43, 0f, 0f, 254, newColor, 0.5f);
																	Main.dust[num128].velocity *= 0f;
																}
																byte b3 = (Main.mouseTextColor + color.G * 2) / 3;
																byte b4 = (Main.mouseTextColor + color.B * 2) / 3;
																if (b3 > color.G)
																{
																	color.G = b3;
																}
																if (b4 > color.B)
																{
																	color.B = b4;
																}
															}
														}
														if (Main.canDrawColorTile(j, i))
														{
															Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
														}
														else
														{
															this.LoadTiles(num121);
															Main.spriteBatch.Draw(Main.tileTexture[num121], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
														}
													}
													else
													{
														if (type == 80)
														{
															bool flag11 = false;
															bool flag12 = false;
															bool flag13 = false;
															if (!Main.canDrawColorTile(j, i))
															{
																int num129 = j;
																if (tile.frameX == 36)
																{
																	num129--;
																}
																if (tile.frameX == 54)
																{
																	num129++;
																}
																if (tile.frameX == 108)
																{
																	if (tile.frameY == 18)
																	{
																		num129--;
																	}
																	else
																	{
																		num129++;
																	}
																}
																int num130 = i;
																bool flag14 = false;
																if (Main.tile[num129, num130].type == 80 && Main.tile[num129, num130].active())
																{
																	flag14 = true;
																}
																while (!Main.tile[num129, num130].active() || !Main.tileSolid[(int)Main.tile[num129, num130].type] || !flag14)
																{
																	if (Main.tile[num129, num130].type == 80 && Main.tile[num129, num130].active())
																	{
																		flag14 = true;
																	}
																	num130++;
																	if (num130 > i + 20)
																	{
																		break;
																	}
																}
																if (Main.tile[num129, num130].type == 112)
																{
																	flag11 = true;
																}
																if (Main.tile[num129, num130].type == 116)
																{
																	flag12 = true;
																}
																if (Main.tile[num129, num130].type == 234)
																{
																	flag13 = true;
																}
															}
															if (flag11)
															{
																Main.spriteBatch.Draw(Main.evilCactusTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
															}
															else
															{
																if (flag13)
																{
																	Main.spriteBatch.Draw(Main.crimsonCactusTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
																else
																{
																	if (flag12)
																	{
																		Main.spriteBatch.Draw(Main.goodCactusTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																	}
																	else
																	{
																		if (Main.canDrawColorTile(j, i))
																		{
																			Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																		}
																		else
																		{
																			Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																		}
																	}
																}
															}
														}
														else
														{
															if (type == 272 && !tile.halfBrick() && !Main.tile[j - 1, i].halfBrick() && !Main.tile[j + 1, i].halfBrick())
															{
																int num131 = Main.tileFrame[(int)type];
																num131 += j % 2;
																num131 += i % 2;
																num131 += j % 3;
																for (num131 += i % 3; num131 > 1; num131 -= 2)
																{
																}
																num131 *= 90;
																if (tile.inActive())
																{
																	color = tile.actColor(color);
																}
																else
																{
																	if (Main.tileShine2[(int)type])
																	{
																		color = Main.shine(color, (int)type);
																	}
																}
																if (Main.canDrawColorTile(j, i))
																{
																	Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY + num131, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
																else
																{
																	Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY + num131, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																}
															}
															else
															{
																if (type == 160)
																{
																	color = new Color(Main.DiscoR, Main.DiscoG, Main.DiscoB, 255);
																}
																if (type != 19 && Main.tileSolid[(int)type] && !tile.halfBrick() && (Main.tile[j - 1, i].halfBrick() || Main.tile[j + 1, i].halfBrick()))
																{
																	if (tile.inActive())
																	{
																		color = tile.actColor(color);
																	}
																	else
																	{
																		if (Main.tileShine2[(int)type])
																		{
																			color = Main.shine(color, (int)type);
																		}
																	}
																	if (Main.tile[j - 1, i].halfBrick() && Main.tile[j + 1, i].halfBrick())
																	{
																		if (Main.canDrawColorTile(j, i))
																		{
																			Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 8)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)(tile.frameY + 8), num9, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																			Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(126, 0, 16, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																		}
																		else
																		{
																			Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 8)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)(tile.frameY + 8), num9, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																			if (!Main.tile[j, i - 1].bottomSlope() && Main.tile[j, i - 1].type == type)
																			{
																				Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(90, 0, 16, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																			}
																			else
																			{
																				Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(126, 0, 16, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																			}
																		}
																	}
																	else
																	{
																		if (Main.tile[j - 1, i].halfBrick())
																		{
																			if (Main.canDrawColorTile(j, i))
																			{
																				Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 8)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)(tile.frameY + 8), num9, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																				Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + 4f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)(tile.frameX + 4), (int)tile.frameY, num9 - 4, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																				Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(126, 0, 4, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																			}
																			else
																			{
																				Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 8)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)(tile.frameY + 8), num9, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																				Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + 4f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)(tile.frameX + 4), (int)tile.frameY, num9 - 4, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																				Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(126, 0, 4, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																			}
																		}
																		else
																		{
																			if (Main.tile[j + 1, i].halfBrick())
																			{
																				if (Main.canDrawColorTile(j, i))
																				{
																					Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 8)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)(tile.frameY + 8), num9, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																					Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9 - 4, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																					Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + 12f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(138, 0, 4, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																				}
																				else
																				{
																					Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 8)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)(tile.frameY + 8), num9, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																					Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9 - 4, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																					Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + 12f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(138, 0, 4, 8)), color, 0f, default(Vector2), 1f, effects, 0f);
																				}
																			}
																			else
																			{
																				if (Main.canDrawColorTile(j, i))
																				{
																					Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																				}
																				else
																				{
																					Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																				}
																			}
																		}
																	}
																}
																else
																{
																	if (Lighting.lightMode < 2 && Main.tileSolid[(int)type] && type != 137 && type != 235 && !tile.halfBrick() && !tile.inActive())
																	{
																		if ((int)color.R > num || (double)color.G > (double)num * 1.1 || (double)color.B > (double)num * 1.2)
																		{
																			Lighting.GetColor9Slice(j, i, ref array3);
																			bool flag15 = tile.inActive();
																			bool flag16 = Main.tileShine2[(int)type];
																			Texture2D texture;
																			if (Main.canDrawColorTile(j, i))
																			{
																				texture = Main.tileAltTexture[(int)type, (int)tile.color()];
																			}
																			else
																			{
																				texture = Main.tileTexture[(int)type];
																			}
																			for (int num132 = 0; num132 < 9; num132++)
																			{
																				int num133 = 0;
																				int num134 = 0;
																				int width = 4;
																				int height5 = 4;
																				switch (num132)
																				{
																				case 1:
																					width = 8;
																					num133 = 4;
																					break;
																				case 2:
																					num133 = 12;
																					break;
																				case 3:
																					height5 = 8;
																					num134 = 4;
																					break;
																				case 4:
																					width = 8;
																					height5 = 8;
																					num133 = 4;
																					num134 = 4;
																					break;
																				case 5:
																					num133 = 12;
																					num134 = 4;
																					height5 = 8;
																					break;
																				case 6:
																					num134 = 12;
																					break;
																				case 7:
																					width = 8;
																					height5 = 4;
																					num133 = 4;
																					num134 = 12;
																					break;
																				case 8:
																					num133 = 12;
																					num134 = 12;
																					break;
																				}
																				Color color7 = color;
																				Color color8 = array3[num132];
																				color7.R = (color.R + color8.R) / 2;
																				color7.G = (color.G + color8.G) / 2;
																				color7.B = (color.B + color8.B) / 2;
																				if (flag15)
																				{
																					color7 = tile.actColor(color7);
																				}
																				else
																				{
																					if (flag16)
																					{
																						color7 = Main.shine(color7, (int)type);
																					}
																				}
																				Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num133, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num134)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num133 + num14, (int)tile.frameY + num134 + num13, width, height5)), color7, 0f, default(Vector2), 1f, effects, 0f);
																			}
																		}
																		else
																		{
																			if ((int)color.R > num2 || (double)color.G > (double)num2 * 1.1 || (double)color.B > (double)num2 * 1.2)
																			{
																				Lighting.GetColor4Slice(j, i, ref array3);
																				bool flag17 = tile.inActive();
																				bool flag18 = Main.tileShine2[(int)type];
																				Texture2D texture;
																				if (Main.canDrawColorTile(j, i))
																				{
																					texture = Main.tileAltTexture[(int)type, (int)tile.color()];
																				}
																				else
																				{
																					texture = Main.tileTexture[(int)type];
																				}
																				for (int num135 = 0; num135 < 4; num135++)
																				{
																					int num136 = 0;
																					int num137 = 0;
																					switch (num135)
																					{
																					case 1:
																						num136 = 8;
																						break;
																					case 2:
																						num137 = 8;
																						break;
																					case 3:
																						num136 = 8;
																						num137 = 8;
																						break;
																					}
																					Color color9 = color;
																					Color color10 = array3[num135];
																					color9.R = (color.R + color10.R) / 2;
																					color9.G = (color.G + color10.G) / 2;
																					color9.B = (color.B + color10.B) / 2;
																					if (flag17)
																					{
																						color9 = tile.actColor(color9);
																					}
																					else
																					{
																						if (flag18)
																						{
																							color9 = Main.shine(color9, (int)type);
																						}
																					}
																					Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)num136, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num137)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num136 + num14, (int)tile.frameY + num137 + num13, 8, 8)), color9, 0f, default(Vector2), 1f, effects, 0f);
																				}
																			}
																			else
																			{
																				if (tile.inActive())
																				{
																					color = tile.actColor(color);
																				}
																				else
																				{
																					if (Main.tileShine2[(int)type])
																					{
																						color = Main.shine(color, (int)type);
																					}
																				}
																				Texture2D texture;
																				if (Main.canDrawColorTile(j, i))
																				{
																					texture = Main.tileAltTexture[(int)type, (int)tile.color()];
																				}
																				else
																				{
																					texture = Main.tileTexture[(int)type];
																				}
																				Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)tile.frameY + num13, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																			}
																		}
																	}
																	else
																	{
																		if (Lighting.lightMode < 2 && Main.tileShine2[(int)type])
																		{
																			if (type == 21)
																			{
																				if (tile.frameX >= 36 && tile.frameX < 178)
																				{
																					color = Main.shine(color, (int)type);
																				}
																			}
																			else
																			{
																				if (!tile.inActive())
																				{
																					color = Main.shine(color, (int)type);
																				}
																			}
																		}
																		if (tile.inActive())
																		{
																			color = tile.actColor(color);
																		}
																		if (type == 128 || type == 269)
																		{
																			int num138;
																			for (num138 = (int)tile.frameX; num138 >= 100; num138 -= 100)
																			{
																			}
																			Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(num138, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																		}
																		else
																		{
																			if (type == 334)
																			{
																				int num139 = (int)tile.frameX;
																				int num140 = 0;
																				while (num139 >= 5000)
																				{
																					num139 -= 5000;
																					num140++;
																				}
																				if (num140 != 0)
																				{
																					num139 = (num140 - 1) * 18;
																				}
																				Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle(num139, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																			}
																			else
																			{
																				if (type == 5)
																				{
																					int num141 = -1;
																					int num142 = j;
																					int num143 = i;
																					if (tile.frameX == 66 && tile.frameY <= 45)
																					{
																						num142++;
																					}
																					if (tile.frameX == 88 && tile.frameY >= 66 && tile.frameY <= 110)
																					{
																						num142--;
																					}
																					if (tile.frameX == 22 && tile.frameY >= 132)
																					{
																						num142--;
																					}
																					if (tile.frameX == 44 && tile.frameY >= 132)
																					{
																						num142++;
																					}
																					while (Main.tile[num142, num143].active() && Main.tile[num142, num143].type == 5)
																					{
																						num143++;
																					}
																					if (Main.tile[num142, num143].active() && Main.tile[num142, num143].type == 23)
																					{
																						num141 = 0;
																					}
																					if (Main.tile[num142, num143].active() && Main.tile[num142, num143].type == 60)
																					{
																						num141 = 1;
																					}
																					if (Main.tile[num142, num143].active() && Main.tile[num142, num143].type == 70)
																					{
																						num141 = 6;
																					}
																					if (Main.tile[num142, num143].active() && Main.tile[num142, num143].type == 60 && (double)num143 > Main.worldSurface)
																					{
																						num141 = 5;
																					}
																					if (Main.tile[num142, num143].active() && Main.tile[num142, num143].type == 109)
																					{
																						num141 = 2;
																					}
																					if (Main.tile[num142, num143].active() && Main.tile[num142, num143].type == 147)
																					{
																						num141 = 3;
																						if (WorldGen.snowBG == 0)
																						{
																							num141 = -1;
																						}
																					}
																					if (Main.tile[num142, num143].active() && Main.tile[num142, num143].type == 199)
																					{
																						num141 = 4;
																					}
																					if (num141 == -1 || Main.canDrawColorTile(j, i))
																					{
																						if (Main.canDrawColorTile(j, i))
																						{
																							Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																						}
																						else
																						{
																							Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																						}
																					}
																					else
																					{
																						Main.spriteBatch.Draw(Main.woodTexture[num141], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																					}
																				}
																				else
																				{
																					if (type == 323)
																					{
																						int num144 = -1;
																						int num145 = j;
																						int num146 = i;
																						while (Main.tile[num145, num146].active() && Main.tile[num145, num146].type == 323)
																						{
																							num146++;
																						}
																						if (Main.tile[num145, num146].active() && Main.tile[num145, num146].type == 53)
																						{
																							num144 = 0;
																						}
																						if (Main.tile[num145, num146].active() && Main.tile[num145, num146].type == 234)
																						{
																							num144 = 1;
																						}
																						if (Main.tile[num145, num146].active() && Main.tile[num145, num146].type == 116)
																						{
																							num144 = 2;
																						}
																						if (Main.tile[num145, num146].active() && Main.tile[num145, num146].type == 112)
																						{
																							num144 = 3;
																						}
																						int y2 = 22 * num144;
																						int frameY = (int)tile.frameY;
																						if (Main.canDrawColorTile(j, i))
																						{
																							Main.spriteBatch.Draw(Main.tileAltTexture[(int)type, (int)tile.color()], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)frameY, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, y2, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																						}
																						else
																						{
																							Main.spriteBatch.Draw(Main.tileTexture[(int)type], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + (float)frameY, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, y2, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																						}
																					}
																					else
																					{
																						if (num12 == 8 && (!Main.tile[j, i + 1].active() || !Main.tileSolid[(int)Main.tile[j, i + 1].type] || Main.tile[j, i + 1].halfBrick()))
																						{
																							Texture2D texture;
																							if (Main.canDrawColorTile(j, i))
																							{
																								texture = Main.tileAltTexture[(int)type, (int)tile.color()];
																							}
																							else
																							{
																								texture = Main.tileTexture[(int)type];
																							}
																							if (type == 19)
																							{
																								Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num12)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), color, 0f, default(Vector2), 1f, effects, 0f);
																							}
																							else
																							{
																								Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num12)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11 - num12 - 4)), color, 0f, default(Vector2), 1f, effects, 0f);
																								Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + 12)) + zero, new Rectangle?(new Rectangle(144, 66, num9, 4)), color, 0f, default(Vector2), 1f, effects, 0f);
																							}
																						}
																						else
																						{
																							Texture2D texture;
																							if (Main.canDrawColorTile(j, i))
																							{
																								texture = Main.tileAltTexture[(int)type, (int)tile.color()];
																							}
																							else
																							{
																								texture = Main.tileTexture[(int)type];
																							}
																							Main.spriteBatch.Draw(texture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10 + num12)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)tile.frameY + num13, num9, num11 - num12)), color, 0f, default(Vector2), 1f, effects, 0f);
																						}
																						if (type == 286)
																						{
																							Main.spriteBatch.Draw(Main.glowSnailTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)tile.frameY + num13, num9, num11)), new Color(75, 100, 255, 0), 0f, default(Vector2), 1f, effects, 0f);
																						}
																						if (type == 270)
																						{
																							Main.spriteBatch.Draw(Main.fireflyJarTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)tile.frameY, num9, num11)), new Color(200, 200, 200, 0), 0f, default(Vector2), 1f, effects, 0f);
																						}
																						if (type == 271)
																						{
																							Main.spriteBatch.Draw(Main.lightningbugJarTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)tile.frameY, num9, num11)), new Color(200, 200, 200, 0), 0f, default(Vector2), 1f, effects, 0f);
																						}
																						if (type == 316 || type == 317 || type == 318)
																						{
																							int num147 = j - (int)(tile.frameX / 18);
																							int num148 = i - (int)(tile.frameY / 18);
																							int num149 = num147 / 2 * (num148 / 3);
																							num149 %= Main.cageFrames;
																							Main.spriteBatch.Draw(Main.jellyfishBowlTexture[(int)(type - 316)], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX + num14, (int)tile.frameY + Main.jellyfishCageFrame[(int)(type - 316), num149] * 36, num9, num11)), new Color(200, 200, 200, 0), 0f, default(Vector2), 1f, effects, 0f);
																						}
																						if (type == 149 && tile.frameX < 54)
																						{
																							Main.spriteBatch.Draw(Main.xmasLightTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(200, 200, 200, 0), 0f, default(Vector2), 1f, effects, 0f);
																						}
																						if (type == 300 || type == 302 || type == 303 || type == 306)
																						{
																							int num150 = 9;
																							if (type == 302)
																							{
																								num150 = 10;
																							}
																							if (type == 303)
																							{
																								num150 = 11;
																							}
																							if (type == 306)
																							{
																								num150 = 12;
																							}
																							Main.spriteBatch.Draw(Main.FlameTexture[num150], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY + num13, num9, num11)), new Color(200, 200, 200, 0), 0f, default(Vector2), 1f, effects, 0f);
																						}
																						else
																						{
																							if (Main.tileFlame[(int)type])
																							{
																								int num151 = (int)type;
																								int num152 = 0;
																								if (num151 == 4)
																								{
																									num152 = 0;
																								}
																								else
																								{
																									if (num151 == 33 || num151 == 174)
																									{
																										num152 = 1;
																									}
																									else
																									{
																										if (num151 == 100 || num151 == 173)
																										{
																											num152 = 2;
																										}
																										else
																										{
																											if (num151 == 34)
																											{
																												num152 = 3;
																											}
																											else
																											{
																												if (num151 == 93)
																												{
																													num152 = 4;
																												}
																												else
																												{
																													if (num151 == 49)
																													{
																														num152 = 5;
																													}
																													else
																													{
																														if (num151 == 98)
																														{
																															num152 = 6;
																														}
																														else
																														{
																															if (num151 == 35)
																															{
																																num152 = 7;
																															}
																															else
																															{
																																if (num151 == 42)
																																{
																																	num152 = 13;
																																}
																															}
																														}
																													}
																												}
																											}
																										}
																									}
																								}
																								if (num152 == 7)
																								{
																									for (int num153 = 0; num153 < 4; num153++)
																									{
																										float num154 = (float)Main.rand.Next(-10, 11) * 0.15f;
																										float num155 = (float)Main.rand.Next(-10, 10) * 0.15f;
																										Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num154, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num155) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																									}
																								}
																								if (num152 == 1)
																								{
																									int num156 = (int)(Main.tile[j, i].frameY / 22);
																									if (num156 == 5 || num156 == 6 || num156 == 7 || num156 == 10)
																									{
																										for (int num157 = 0; num157 < 7; num157++)
																										{
																											float num158 = (float)Main.rand.Next(-10, 11) * 0.075f;
																											float num159 = (float)Main.rand.Next(-10, 11) * 0.075f;
																											Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num158, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num159) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																										}
																									}
																									else
																									{
																										if (num156 == 8)
																										{
																											for (int num160 = 0; num160 < 7; num160++)
																											{
																												float num161 = (float)Main.rand.Next(-10, 11) * 0.3f;
																												float num162 = (float)Main.rand.Next(-10, 11) * 0.3f;
																												Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num161, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num162) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																											}
																										}
																										else
																										{
																											if (num156 == 12)
																											{
																												for (int num163 = 0; num163 < 7; num163++)
																												{
																													float num164 = (float)Main.rand.Next(-10, 11) * 0.1f;
																													float num165 = (float)Main.rand.Next(-10, 1) * 0.15f;
																													Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num164, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num165) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																												}
																											}
																											else
																											{
																												if (num156 == 14)
																												{
																													for (int num166 = 0; num166 < 8; num166++)
																													{
																														float num167 = (float)Main.rand.Next(-10, 11) * 0.1f;
																														float num168 = (float)Main.rand.Next(-10, 11) * 0.1f;
																														Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num167, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num168) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(75, 75, 75, 0), 0f, default(Vector2), 1f, effects, 0f);
																													}
																												}
																												else
																												{
																													if (num156 == 16)
																													{
																														for (int num169 = 0; num169 < 4; num169++)
																														{
																															float num170 = (float)Main.rand.Next(-10, 11) * 0.15f;
																															float num171 = (float)Main.rand.Next(-10, 11) * 0.15f;
																															Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num170, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num171) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(75, 75, 75, 0), 0f, default(Vector2), 1f, effects, 0f);
																														}
																													}
																													else
																													{
																														for (int num172 = 0; num172 < 7; num172++)
																														{
																															float num173 = (float)Main.rand.Next(-10, 11) * 0.15f;
																															float num174 = (float)Main.rand.Next(-10, 1) * 0.35f;
																															Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num173, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num174) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(100, 100, 100, 0), 0f, default(Vector2), 1f, effects, 0f);
																														}
																													}
																												}
																											}
																										}
																									}
																								}
																								else
																								{
																									if (num152 == 2)
																									{
																										int num175 = (int)(Main.tile[j, i].frameY / 36);
																										if (num175 == 3)
																										{
																											for (int num176 = 0; num176 < 3; num176++)
																											{
																												float num177 = (float)Main.rand.Next(-10, 11) * 0.05f;
																												float num178 = (float)Main.rand.Next(-10, 11) * 0.15f;
																												Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num177, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num178) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																											}
																										}
																										else
																										{
																											if (num175 == 6)
																											{
																												for (int num179 = 0; num179 < 5; num179++)
																												{
																													float num180 = (float)Main.rand.Next(-10, 11) * 0.15f;
																													float num181 = (float)Main.rand.Next(-10, 11) * 0.15f;
																													Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num180, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num181) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(75, 75, 75, 0), 0f, default(Vector2), 1f, effects, 0f);
																												}
																											}
																											else
																											{
																												if (num175 == 9)
																												{
																													for (int num182 = 0; num182 < 7; num182++)
																													{
																														float num183 = (float)Main.rand.Next(-10, 11) * 0.3f;
																														float num184 = (float)Main.rand.Next(-10, 11) * 0.3f;
																														Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num183, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num184) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(100, 100, 100, 0), 0f, default(Vector2), 1f, effects, 0f);
																													}
																												}
																												else
																												{
																													if (num175 == 11)
																													{
																														for (int num185 = 0; num185 < 7; num185++)
																														{
																															float num186 = (float)Main.rand.Next(-10, 11) * 0.1f;
																															float num187 = (float)Main.rand.Next(-10, 1) * 0.15f;
																															Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num186, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num187) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																														}
																													}
																													else
																													{
																														if (num175 == 13)
																														{
																															for (int num188 = 0; num188 < 8; num188++)
																															{
																																float num189 = (float)Main.rand.Next(-10, 11) * 0.1f;
																																float num190 = (float)Main.rand.Next(-10, 11) * 0.1f;
																																Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num189, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num190) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(75, 75, 75, 0), 0f, default(Vector2), 1f, effects, 0f);
																															}
																														}
																														else
																														{
																															for (int num191 = 0; num191 < 7; num191++)
																															{
																																float num192 = (float)Main.rand.Next(-10, 11) * 0.15f;
																																float num193 = (float)Main.rand.Next(-10, 1) * 0.35f;
																																Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num192, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num193) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(100, 100, 100, 0), 0f, default(Vector2), 1f, effects, 0f);
																															}
																														}
																													}
																												}
																											}
																										}
																									}
																									else
																									{
																										if (num152 == 3)
																										{
																											int num194 = (int)(Main.tile[j, i].frameY / 54);
																											if (num194 == 8)
																											{
																												for (int num195 = 0; num195 < 7; num195++)
																												{
																													float num196 = (float)Main.rand.Next(-10, 11) * 0.075f;
																													float num197 = (float)Main.rand.Next(-10, 11) * 0.075f;
																													Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num196, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num197) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																												}
																											}
																											else
																											{
																												if (num194 == 9)
																												{
																													for (int num198 = 0; num198 < 3; num198++)
																													{
																														float num199 = (float)Main.rand.Next(-10, 11) * 0.05f;
																														float num200 = (float)Main.rand.Next(-10, 11) * 0.15f;
																														Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num199, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num200) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																													}
																												}
																												else
																												{
																													if (num194 == 11)
																													{
																														for (int num201 = 0; num201 < 7; num201++)
																														{
																															float num202 = (float)Main.rand.Next(-10, 11) * 0.3f;
																															float num203 = (float)Main.rand.Next(-10, 11) * 0.3f;
																															Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num202, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num203) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																														}
																													}
																													else
																													{
																														if (num194 == 15)
																														{
																															for (int num204 = 0; num204 < 7; num204++)
																															{
																																float num205 = (float)Main.rand.Next(-10, 11) * 0.1f;
																																float num206 = (float)Main.rand.Next(-10, 1) * 0.15f;
																																Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num205, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num206) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																															}
																														}
																														else
																														{
																															if (num194 == 17 || num194 == 20)
																															{
																																for (int num207 = 0; num207 < 7; num207++)
																																{
																																	float num208 = (float)Main.rand.Next(-10, 11) * 0.075f;
																																	float num209 = (float)Main.rand.Next(-10, 11) * 0.075f;
																																	Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num208, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num209) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																																}
																															}
																															else
																															{
																																if (num194 == 18)
																																{
																																	for (int num210 = 0; num210 < 8; num210++)
																																	{
																																		float num211 = (float)Main.rand.Next(-10, 11) * 0.1f;
																																		float num212 = (float)Main.rand.Next(-10, 11) * 0.1f;
																																		Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num211, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num212) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(75, 75, 75, 0), 0f, default(Vector2), 1f, effects, 0f);
																																	}
																																}
																																else
																																{
																																	for (int num213 = 0; num213 < 7; num213++)
																																	{
																																		float num214 = (float)Main.rand.Next(-10, 11) * 0.15f;
																																		float num215 = (float)Main.rand.Next(-10, 1) * 0.35f;
																																		Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num214, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num215) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(100, 100, 100, 0), 0f, default(Vector2), 1f, effects, 0f);
																																	}
																																}
																															}
																														}
																													}
																												}
																											}
																										}
																										else
																										{
																											if (num152 == 4)
																											{
																												int num216 = (int)(Main.tile[j, i].frameY / 54);
																												if (num216 == 1)
																												{
																													for (int num217 = 0; num217 < 3; num217++)
																													{
																														float num218 = (float)Main.rand.Next(-10, 11) * 0.15f;
																														float num219 = (float)Main.rand.Next(-10, 11) * 0.15f;
																														Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num218, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num219) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																													}
																												}
																												else
																												{
																													if (num216 == 2 || num216 == 4)
																													{
																														for (int num220 = 0; num220 < 7; num220++)
																														{
																															float num221 = (float)Main.rand.Next(-10, 11) * 0.075f;
																															float num222 = (float)Main.rand.Next(-10, 11) * 0.075f;
																															Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num221, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num222) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																														}
																													}
																													else
																													{
																														if (num216 == 3)
																														{
																															for (int num223 = 0; num223 < 7; num223++)
																															{
																																float num224 = (float)Main.rand.Next(-10, 11) * 0.2f;
																																float num225 = (float)Main.rand.Next(-20, 1) * 0.35f;
																																Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num224, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num225) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(100, 100, 100, 0), 0f, default(Vector2), 1f, effects, 0f);
																															}
																														}
																														else
																														{
																															if (num216 == 5)
																															{
																																for (int num226 = 0; num226 < 7; num226++)
																																{
																																	float num227 = (float)Main.rand.Next(-10, 11) * 0.3f;
																																	float num228 = (float)Main.rand.Next(-10, 11) * 0.3f;
																																	Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num227, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num228) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																																}
																															}
																															else
																															{
																																if (num216 == 9)
																																{
																																	for (int num229 = 0; num229 < 7; num229++)
																																	{
																																		float num230 = (float)Main.rand.Next(-10, 11) * 0.1f;
																																		float num231 = (float)Main.rand.Next(-10, 1) * 0.15f;
																																		Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num230, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num231) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																																	}
																																}
																																else
																																{
																																	if (num216 == 13)
																																	{
																																		for (int num232 = 0; num232 < 8; num232++)
																																		{
																																			float num233 = (float)Main.rand.Next(-10, 11) * 0.1f;
																																			float num234 = (float)Main.rand.Next(-10, 11) * 0.1f;
																																			Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num233, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num234) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(75, 75, 75, 0), 0f, default(Vector2), 1f, effects, 0f);
																																		}
																																	}
																																	else
																																	{
																																		if (num216 == 12)
																																		{
																																			float num235 = (float)Main.rand.Next(-10, 11) * 0.01f;
																																			float num236 = (float)Main.rand.Next(-10, 11) * 0.01f;
																																			Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num235, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num236) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(Main.rand.Next(90, 111), Main.rand.Next(90, 111), Main.rand.Next(90, 111), 0), 0f, default(Vector2), 1f, effects, 0f);
																																		}
																																		else
																																		{
																																			for (int num237 = 0; num237 < 7; num237++)
																																			{
																																				float num238 = (float)Main.rand.Next(-10, 11) * 0.15f;
																																				float num239 = (float)Main.rand.Next(-10, 1) * 0.35f;
																																				Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num238, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num239) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(100, 100, 100, 0), 0f, default(Vector2), 1f, effects, 0f);
																																			}
																																		}
																																	}
																																}
																															}
																														}
																													}
																												}
																											}
																											else
																											{
																												if (num152 == 13)
																												{
																													int num240 = (int)(tile.frameY / 36);
																													if (num240 == 1 || num240 == 3 || num240 == 6 || num240 == 8 || num240 == 19 || num240 == 27 || num240 == 29 || num240 == 30 || num240 == 31 || num240 == 32)
																													{
																														for (int num241 = 0; num241 < 7; num241++)
																														{
																															float num242 = (float)Main.rand.Next(-10, 11) * 0.15f;
																															float num243 = (float)Main.rand.Next(-10, 1) * 0.35f;
																															Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num242, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num243) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(100, 100, 100, 0), 0f, default(Vector2), 1f, effects, 0f);
																														}
																													}
																													else
																													{
																														if (num240 == 25 || num240 == 16 || num240 == 2)
																														{
																															for (int num244 = 0; num244 < 7; num244++)
																															{
																																float num245 = (float)Main.rand.Next(-10, 11) * 0.15f;
																																float num246 = (float)Main.rand.Next(-10, 1) * 0.1f;
																																Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num245, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num246) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(50, 50, 50, 0), 0f, default(Vector2), 1f, effects, 0f);
																															}
																														}
																														else
																														{
																															if (num240 == 29)
																															{
																																for (int num247 = 0; num247 < 7; num247++)
																																{
																																	float num248 = (float)Main.rand.Next(-10, 11) * 0.15f;
																																	float num249 = (float)Main.rand.Next(-10, 1) * 0.15f;
																																	Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num248, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num249) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(25, 25, 25, 0), 0f, default(Vector2), 1f, effects, 0f);
																																}
																															}
																														}
																													}
																												}
																												else
																												{
																													for (int num250 = 0; num250 < 7; num250++)
																													{
																														float num251 = (float)Main.rand.Next(-10, 11) * 0.15f;
																														float num252 = (float)Main.rand.Next(-10, 1) * 0.35f;
																														Main.spriteBatch.Draw(Main.FlameTexture[num152], new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f + num251, (float)(i * 16 - (int)Main.screenPosition.Y + num10) + num252) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(100, 100, 100, 0), 0f, default(Vector2), 1f, effects, 0f);
																													}
																												}
																											}
																										}
																									}
																								}
																							}
																						}
																						if (type == 144)
																						{
																							Main.spriteBatch.Draw(Main.timerTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color(200, 200, 200, 0), 0f, default(Vector2), 1f, effects, 0f);
																						}
																						if (type == 237)
																						{
																							Main.spriteBatch.Draw(Main.sunAltarTexture, new Vector2((float)(j * 16 - (int)Main.screenPosition.X) - ((float)num9 - 16f) / 2f, (float)(i * 16 - (int)Main.screenPosition.Y + num10)) + zero, new Rectangle?(new Rectangle((int)tile.frameX, (int)tile.frameY, num9, num11)), new Color((int)(Main.mouseTextColor / 2), (int)(Main.mouseTextColor / 2), (int)(Main.mouseTextColor / 2), 0), 0f, default(Vector2), 1f, effects, 0f);
																						}
																					}
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
			for (int num253 = array.Length - 1; num253 > num4; num253--)
			{
				int num254 = array[num253];
				int num255 = array2[num253];
				Tile tile6 = Main.tile[num254, num255];
				ushort type2 = tile6.type;
				if ((type2 == 128 || type2 == 269) && tile6.frameX >= 100)
				{
					int num256 = (int)(tile6.frameY / 18);
					int num257 = (int)tile6.frameX;
					int num258 = 0;
					while (num257 >= 100)
					{
						num258++;
						num257 -= 100;
					}
					int num259 = -4;
					SpriteEffects effects2 = SpriteEffects.FlipHorizontally;
					if (num257 >= 36)
					{
						effects2 = SpriteEffects.None;
						num259 = -4;
					}
					if (num256 == 0)
					{
						this.LoadArmorHead(num258);
						Main.spriteBatch.Draw(Main.armorHeadTexture[num258], new Vector2((float)(num254 * 16 - (int)Main.screenPosition.X + num259), (float)(num255 * 16 - (int)Main.screenPosition.Y - 12)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 36)), Lighting.GetColor(num254, num255), 0f, default(Vector2), 1f, effects2, 0f);
					}
					else
					{
						if (num256 == 1)
						{
							int num260 = -1;
							int num41 = num258;
							if (num41 <= 36)
							{
								if (num41 != 15)
								{
									if (num41 == 36)
									{
										num260 = 89;
									}
								}
								else
								{
									num260 = 88;
								}
							}
							else
							{
								switch (num41)
								{
								case 41:
									num260 = 97;
									break;
								case 42:
									num260 = 90;
									break;
								default:
									switch (num41)
									{
									case 58:
										num260 = 91;
										break;
									case 59:
										num260 = 92;
										break;
									case 60:
										num260 = 93;
										break;
									case 61:
										num260 = 94;
										break;
									case 62:
										num260 = 95;
										break;
									case 63:
										num260 = 96;
										break;
									default:
										switch (num41)
										{
										case 165:
											num260 = 99;
											break;
										case 166:
											num260 = 100;
											break;
										case 167:
											if (type2 == 128)
											{
												num260 = 101;
											}
											else
											{
												num260 = 102;
											}
											break;
										}
										break;
									}
									break;
								}
							}
							if (num260 != -1)
							{
								this.LoadArmorLegs(num260);
								Main.spriteBatch.Draw(Main.armorLegTexture[num260], new Vector2((float)(num254 * 16 - (int)Main.screenPosition.X + num259), (float)(num255 * 16 - (int)Main.screenPosition.Y - 28)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 54)), Lighting.GetColor(num254, num255), 0f, default(Vector2), 1f, effects2, 0f);
							}
							this.LoadArmorBody(num258);
							if (type2 == 269)
							{
								Main.spriteBatch.Draw(Main.femaleBodyTexture[num258], new Vector2((float)(num254 * 16 - (int)Main.screenPosition.X + num259), (float)(num255 * 16 - (int)Main.screenPosition.Y - 28)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 54)), Lighting.GetColor(num254, num255), 0f, default(Vector2), 1f, effects2, 0f);
							}
							else
							{
								Main.spriteBatch.Draw(Main.armorBodyTexture[num258], new Vector2((float)(num254 * 16 - (int)Main.screenPosition.X + num259), (float)(num255 * 16 - (int)Main.screenPosition.Y - 28)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 54)), Lighting.GetColor(num254, num255), 0f, default(Vector2), 1f, effects2, 0f);
							}
						}
						else
						{
							if (num256 == 2)
							{
								this.LoadArmorLegs(num258);
								Main.spriteBatch.Draw(Main.armorLegTexture[num258], new Vector2((float)(num254 * 16 - (int)Main.screenPosition.X + num259), (float)(num255 * 16 - (int)Main.screenPosition.Y - 44)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 54)), Lighting.GetColor(num254, num255), 0f, default(Vector2), 1f, effects2, 0f);
							}
						}
					}
				}
			}
			for (int num261 = 0; num261 < num3; num261++)
			{
				int num262 = array[num261];
				int num263 = array2[num261];
				Tile tile7 = Main.tile[num262, num263];
				ushort type3 = tile7.type;
				if (type3 == 237)
				{
					Main.spriteBatch.Draw(Main.sunOrbTexture, new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X) + (float)num9 / 2f, (float)(num263 * 16 - (int)Main.screenPosition.Y - 36)) + zero, new Rectangle?(new Rectangle(0, 0, Main.sunOrbTexture.Width, Main.sunOrbTexture.Height)), new Color((int)Main.mouseTextColor, (int)Main.mouseTextColor, (int)Main.mouseTextColor, 0), Main.sunCircle, new Vector2((float)(Main.sunOrbTexture.Width / 2), (float)(Main.sunOrbTexture.Height / 2)), 1f, SpriteEffects.None, 0f);
				}
				if ((type3 == 128 || type3 == 269) && tile7.frameX >= 100)
				{
					int num264 = (int)(tile7.frameY / 18);
					int num265 = (int)tile7.frameX;
					int num266 = 0;
					while (num265 >= 100)
					{
						num266++;
						num265 -= 100;
					}
					int num267 = -4;
					SpriteEffects effects3 = SpriteEffects.FlipHorizontally;
					if (num265 >= 36)
					{
						effects3 = SpriteEffects.None;
						num267 = -4;
					}
					if (num264 == 0)
					{
						this.LoadArmorHead(num266);
						Main.spriteBatch.Draw(Main.armorHeadTexture[num266], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X + num267), (float)(num263 * 16 - (int)Main.screenPosition.Y - 12)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 36)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, effects3, 0f);
					}
					else
					{
						if (num264 == 1)
						{
							int num268 = -1;
							int num41 = num266;
							if (num41 <= 36)
							{
								if (num41 != 15)
								{
									if (num41 == 36)
									{
										num268 = 89;
									}
								}
								else
								{
									num268 = 88;
								}
							}
							else
							{
								switch (num41)
								{
								case 41:
									num268 = 97;
									break;
								case 42:
									num268 = 90;
									break;
								default:
									switch (num41)
									{
									case 58:
										num268 = 91;
										break;
									case 59:
										num268 = 92;
										break;
									case 60:
										num268 = 93;
										break;
									case 61:
										num268 = 94;
										break;
									case 62:
										num268 = 95;
										break;
									case 63:
										num268 = 96;
										break;
									default:
										switch (num41)
										{
										case 165:
											num268 = 99;
											break;
										case 166:
											num268 = 100;
											break;
										case 167:
											if (type3 == 128)
											{
												num268 = 101;
											}
											else
											{
												num268 = 102;
											}
											break;
										}
										break;
									}
									break;
								}
							}
							if (num268 != -1)
							{
								this.LoadArmorLegs(num268);
								Main.spriteBatch.Draw(Main.armorLegTexture[num268], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X + num267), (float)(num263 * 16 - (int)Main.screenPosition.Y - 28)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 54)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, effects3, 0f);
							}
							this.LoadArmorBody(num266);
							if (type3 == 269)
							{
								Main.spriteBatch.Draw(Main.femaleBodyTexture[num266], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X + num267), (float)(num263 * 16 - (int)Main.screenPosition.Y - 28)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 54)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, effects3, 0f);
							}
							else
							{
								Main.spriteBatch.Draw(Main.armorBodyTexture[num266], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X + num267), (float)(num263 * 16 - (int)Main.screenPosition.Y - 28)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 54)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, effects3, 0f);
							}
						}
						else
						{
							if (num264 == 2)
							{
								this.LoadArmorLegs(num266);
								Main.spriteBatch.Draw(Main.armorLegTexture[num266], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X + num267), (float)(num263 * 16 - (int)Main.screenPosition.Y - 44)) + zero, new Rectangle?(new Rectangle(0, 0, 40, 54)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, effects3, 0f);
							}
						}
					}
				}
				if (type3 == 334 && tile7.frameX >= 5000)
				{
					short arg_B6AA_0 = tile7.frameY / 18;
					int num269 = (int)tile7.frameX;
					int num270 = 0;
					int num271 = num269 % 5000;
					num271 -= 100;
					while (num269 >= 5000)
					{
						num270++;
						num269 -= 5000;
					}
					int num272 = (int)Main.tile[num262 + 1, num263].frameX;
					if (num272 >= 25000)
					{
						num272 -= 25000;
					}
					else
					{
						num272 -= 10000;
					}
					Item item = new Item();
					item.netDefaults(num271);
					item.Prefix(num272);
					Texture2D texture2D = Main.itemTexture[item.type];
					int width2 = texture2D.Width;
					int height6 = texture2D.Height;
					float num273 = 1f;
					if (width2 > 40 || height6 > 40)
					{
						if (width2 > height6)
						{
							num273 = 40f / (float)width2;
						}
						else
						{
							num273 = 40f / (float)height6;
						}
					}
					num273 *= item.scale;
					SpriteEffects effects4 = SpriteEffects.None;
					if (num270 >= 3)
					{
						effects4 = SpriteEffects.FlipHorizontally;
					}
					Color color11 = Lighting.GetColor(num262, num263);
					Main.spriteBatch.Draw(texture2D, new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X + 24), (float)(num263 * 16 - (int)Main.screenPosition.Y + 8)) + zero, new Rectangle?(new Rectangle(0, 0, width2, height6)), Lighting.GetColor(num262, num263), 0f, new Vector2((float)(width2 / 2), (float)(height6 / 2)), num273, effects4, 0f);
					if (item.color != default(Color))
					{
						Main.spriteBatch.Draw(texture2D, new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X + 24), (float)(num263 * 16 - (int)Main.screenPosition.Y + 8)) + zero, new Rectangle?(new Rectangle(0, 0, width2, height6)), item.GetColor(color11), 0f, new Vector2((float)(width2 / 2), (float)(height6 / 2)), num273, effects4, 0f);
					}
				}
				try
				{
					if (type3 == 5 && tile7.frameY >= 198 && tile7.frameX >= 22)
					{
						int num274 = 0;
						if (tile7.frameX == 22)
						{
							if (tile7.frameY == 220)
							{
								num274 = 1;
							}
							else
							{
								if (tile7.frameY == 242)
								{
									num274 = 2;
								}
							}
							int num275 = 0;
							int num276 = 80;
							int num277 = 80;
							int num278 = 32;
							int num279 = 0;
							int num280 = num263;
							while (num280 < num263 + 100)
							{
								if (Main.tile[num262, num280].type == 2)
								{
									num275 = Main.GetTreeStyle(num262);
									break;
								}
								if (Main.tile[num262, num280].type == 23)
								{
									num275 = 1;
									break;
								}
								if (Main.tile[num262, num280].type == 70)
								{
									num275 = 14;
									break;
								}
								if (Main.tile[num262, num280].type == 60)
								{
									num275 = 2;
									if (WorldGen.jungleBG == 1)
									{
										num275 = 11;
									}
									if ((double)num280 > Main.worldSurface)
									{
										num275 = 13;
									}
									num276 = 114;
									num277 = 96;
									num278 = 48;
									break;
								}
								if (Main.tile[num262, num280].type == 147)
								{
									num275 = 4;
									if (WorldGen.snowBG == 0)
									{
										num275 = 12;
										break;
									}
									break;
								}
								else
								{
									if (Main.tile[num262, num280].type == 199)
									{
										num275 = 5;
										break;
									}
									if (Main.tile[num262, num280].type == 109)
									{
										num275 = 3;
										num277 = 140;
										if (num262 % 3 == 1)
										{
											num274 += 3;
											break;
										}
										if (num262 % 3 == 2)
										{
											num274 += 6;
											break;
										}
										break;
									}
									else
									{
										num280++;
									}
								}
							}
							if (num275 == 14)
							{
								float num281 = (float)Main.rand.Next(28, 42) * 0.005f;
								num281 += (float)(270 - (int)Main.mouseTextColor) / 1000f;
								Lighting.addLight(num262, num263, 0.1f, 0.2f + num281 / 2f, 0.7f + num281);
							}
							if (tile7.color() > 0)
							{
								Main.checkTreeAlt[num275, (int)tile7.color()] = true;
							}
							if (tile7.color() > 0 && Main.treeAltTextureDrawn[num275, (int)tile7.color()])
							{
								Main.spriteBatch.Draw(Main.treeTopAltTexture[num275, (int)tile7.color()], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X - num278), (float)(num263 * 16 - (int)Main.screenPosition.Y - num277 + 16 + num279)) + zero, new Rectangle?(new Rectangle(num274 * (num276 + 2), 0, num276, num277)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
							}
							else
							{
								Main.spriteBatch.Draw(Main.treeTopTexture[num275], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X - num278), (float)(num263 * 16 - (int)Main.screenPosition.Y - num277 + 16 + num279)) + zero, new Rectangle?(new Rectangle(num274 * (num276 + 2), 0, num276, num277)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
							}
						}
						else
						{
							if (tile7.frameX == 44)
							{
								if (tile7.frameY == 220)
								{
									num274 = 1;
								}
								else
								{
									if (tile7.frameY == 242)
									{
										num274 = 2;
									}
								}
								int num282 = 0;
								int num283 = num263;
								while (num283 < num263 + 100)
								{
									if (Main.tile[num262 + 1, num283].type == 2)
									{
										num282 = Main.GetTreeStyle(num262 + 1);
										break;
									}
									if (Main.tile[num262 + 1, num283].type == 23)
									{
										num282 = 1;
										break;
									}
									if (Main.tile[num262 + 1, num283].type == 70)
									{
										num282 = 14;
										break;
									}
									if (Main.tile[num262 + 1, num283].type == 60)
									{
										num282 = 2;
										if ((double)num283 > Main.worldSurface)
										{
											num282 = 13;
											break;
										}
										break;
									}
									else
									{
										if (Main.tile[num262 + 1, num283].type == 147)
										{
											num282 = 4;
											if (WorldGen.snowBG == 0)
											{
												num282 = 12;
												break;
											}
											break;
										}
										else
										{
											if (Main.tile[num262 + 1, num283].type == 199)
											{
												num282 = 5;
												break;
											}
											if (Main.tile[num262 + 1, num283].type == 109)
											{
												num282 = 3;
												if (num262 % 3 == 1)
												{
													num274 += 3;
													break;
												}
												if (num262 % 3 == 2)
												{
													num274 += 6;
													break;
												}
												break;
											}
											else
											{
												num283++;
											}
										}
									}
								}
								if (num282 == 14)
								{
									float num284 = (float)Main.rand.Next(28, 42) * 0.005f;
									num284 += (float)(270 - (int)Main.mouseTextColor) / 1000f;
									Lighting.addLight(num262, num263, 0.1f, 0.2f + num284 / 2f, 0.7f + num284);
								}
								if (tile7.color() > 0)
								{
									Main.checkTreeAlt[num282, (int)tile7.color()] = true;
								}
								if (tile7.color() > 0 && Main.treeAltTextureDrawn[num282, (int)tile7.color()])
								{
									Main.spriteBatch.Draw(Main.treeBranchAltTexture[num282, (int)tile7.color()], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X - 24), (float)(num263 * 16 - (int)Main.screenPosition.Y - 12)) + zero, new Rectangle?(new Rectangle(0, num274 * 42, 40, 40)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
								}
								else
								{
									Main.spriteBatch.Draw(Main.treeBranchTexture[num282], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X - 24), (float)(num263 * 16 - (int)Main.screenPosition.Y - 12)) + zero, new Rectangle?(new Rectangle(0, num274 * 42, 40, 40)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
								}
							}
							else
							{
								if (tile7.frameX == 66)
								{
									if (tile7.frameY == 220)
									{
										num274 = 1;
									}
									else
									{
										if (tile7.frameY == 242)
										{
											num274 = 2;
										}
									}
									int num285 = 0;
									int num286 = num263;
									while (num286 < num263 + 100)
									{
										if (Main.tile[num262 - 1, num286].type == 2)
										{
											num285 = Main.GetTreeStyle(num262 - 1);
											break;
										}
										if (Main.tile[num262 - 1, num286].type == 23)
										{
											num285 = 1;
											break;
										}
										if (Main.tile[num262 - 1, num286].type == 70)
										{
											num285 = 14;
											break;
										}
										if (Main.tile[num262 - 1, num286].type == 60)
										{
											num285 = 2;
											if ((double)num286 > Main.worldSurface)
											{
												num285 = 13;
												break;
											}
											break;
										}
										else
										{
											if (Main.tile[num262 - 1, num286].type == 147)
											{
												num285 = 4;
												if (WorldGen.snowBG == 0)
												{
													num285 = 12;
													break;
												}
												break;
											}
											else
											{
												if (Main.tile[num262 - 1, num286].type == 199)
												{
													num285 = 5;
													break;
												}
												if (Main.tile[num262 - 1, num286].type == 109)
												{
													num285 = 3;
													if (num262 % 3 == 1)
													{
														num274 += 3;
														break;
													}
													if (num262 % 3 == 2)
													{
														num274 += 6;
														break;
													}
													break;
												}
												else
												{
													num286++;
												}
											}
										}
									}
									if (num285 == 14)
									{
										float num287 = (float)Main.rand.Next(28, 42) * 0.005f;
										num287 += (float)(270 - (int)Main.mouseTextColor) / 1000f;
										Lighting.addLight(num262, num263, 0.1f, 0.2f + num287 / 2f, 0.7f + num287);
									}
									if (tile7.color() > 0)
									{
										Main.checkTreeAlt[num285, (int)tile7.color()] = true;
									}
									if (tile7.color() > 0 && Main.treeAltTextureDrawn[num285, (int)tile7.color()])
									{
										Main.spriteBatch.Draw(Main.treeBranchAltTexture[num285, (int)tile7.color()], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X), (float)(num263 * 16 - (int)Main.screenPosition.Y - 12)) + zero, new Rectangle?(new Rectangle(42, num274 * 42, 40, 40)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
									}
									else
									{
										Main.spriteBatch.Draw(Main.treeBranchTexture[num285], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X), (float)(num263 * 16 - (int)Main.screenPosition.Y - 12)) + zero, new Rectangle?(new Rectangle(42, num274 * 42, 40, 40)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
									}
								}
							}
						}
					}
					if (type3 == 323 && tile7.frameX >= 88 && tile7.frameX <= 132)
					{
						int num288 = 0;
						if (tile7.frameX == 110)
						{
							num288 = 1;
						}
						else
						{
							if (tile7.frameX == 132)
							{
								num288 = 2;
							}
						}
						int num289 = 15;
						int num290 = 0;
						int num291 = 80;
						int num292 = 80;
						int num293 = 32;
						int num294 = 0;
						for (int num295 = num263; num295 < num263 + 100; num295++)
						{
							if (Main.tile[num262, num295].type == 53)
							{
								num290 = 0;
								break;
							}
							if (Main.tile[num262, num295].type == 234)
							{
								num290 = 1;
								break;
							}
							if (Main.tile[num262, num295].type == 116)
							{
								num290 = 2;
								break;
							}
							if (Main.tile[num262, num295].type == 112)
							{
								num290 = 3;
								break;
							}
						}
						int frameY2 = (int)Main.tile[num262, num263].frameY;
						int y3 = num290 * 82;
						if (tile7.color() > 0)
						{
							Main.checkTreeAlt[num289, (int)tile7.color()] = true;
						}
						if (tile7.color() > 0 && Main.treeAltTextureDrawn[num289, (int)tile7.color()])
						{
							Main.spriteBatch.Draw(Main.treeTopAltTexture[num289, (int)tile7.color()], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X - num293 + frameY2), (float)(num263 * 16 - (int)Main.screenPosition.Y - num292 + 16 + num294)) + zero, new Rectangle?(new Rectangle(num288 * (num291 + 2), y3, num291, num292)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
						}
						else
						{
							Main.spriteBatch.Draw(Main.treeTopTexture[num289], new Vector2((float)(num262 * 16 - (int)Main.screenPosition.X - num293 + frameY2), (float)(num263 * 16 - (int)Main.screenPosition.Y - num292 + 16 + num294)) + zero, new Rectangle?(new Rectangle(num288 * (num291 + 2), y3, num291, num292)), Lighting.GetColor(num262, num263), 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
						}
					}
				}
				catch
				{
				}
			}
			if (solidOnly)
			{
				TimeLogger.DrawTime(0, stopwatch.Elapsed.TotalMilliseconds);
				return;
			}
			TimeLogger.DrawTime(1, stopwatch.Elapsed.TotalMilliseconds);
		}
Exemplo n.º 6
0
 //near end of Terraria.Main.DrawItem before default drawing call
 //  if(ItemLoader.animations.Contains(item.type))
 //  { ItemLoader.DrawAnimatedItem(item, whoAmI, color, alpha, rotation, scale); return; }
 internal static void DrawAnimatedItem(Item item, int whoAmI, Color color, Color alpha, float rotation, float scale)
 {
     int frameCount = Main.itemAnimations[item.type].FrameCount;
     int frameDuration = Main.itemAnimations[item.type].TicksPerFrame;
     Main.itemFrameCounter[whoAmI]++;
     if (Main.itemFrameCounter[whoAmI] >= frameDuration)
     {
         Main.itemFrameCounter[whoAmI] = 0;
         Main.itemFrame[whoAmI]++;
     }
     if (Main.itemFrame[whoAmI] >= frameCount)
     {
         Main.itemFrame[whoAmI] = 0;
     }
     Rectangle frame = Main.itemTexture[item.type].Frame(1, frameCount, 0, Main.itemFrame[whoAmI]);
     float offX = (float)(item.width / 2 - frame.Width / 2);
     float offY = (float)(item.height - frame.Height);
     Main.spriteBatch.Draw(Main.itemTexture[item.type], new Vector2(item.position.X - Main.screenPosition.X + (float)(frame.Width / 2) + offX, item.position.Y - Main.screenPosition.Y + (float)(frame.Height / 2) + offY), new Rectangle?(frame), alpha, rotation, frame.Size() / 2f, scale, SpriteEffects.None, 0f);
     if (item.color != default(Color))
     {
         Main.spriteBatch.Draw(Main.itemTexture[item.type], new Vector2(item.position.X - Main.screenPosition.X + (float)(frame.Width / 2) + offX, item.position.Y - Main.screenPosition.Y + (float)(frame.Height / 2) + offY), new Rectangle?(frame), item.GetColor(color), rotation, frame.Size() / 2f, scale, SpriteEffects.None, 0f);
     }
 }