示例#1
0
 public override void ReadExtraData(BinaryReader reader)
 {
     item = new Item();
     item.netDefaults((int)reader.ReadInt16());
     item.Prefix((int)reader.ReadByte());
     item.stack = (int)reader.ReadInt16();
 }
示例#2
0
        void entry_OnClick(Terraria.UI.UIMouseEvent evt, Terraria.UI.UIElement listeningElement)
        {
            var entry = (PrefixEntry)listeningElement;

            var baseItem = new Item();
            baseItem.SetDefaults(entry.Item.type);
            baseItem.Prefix(entry.Item.prefix);
            _itemSlot.Item = baseItem;
        }
示例#3
0
		public static IList<Item> SetupStartInventory(Player player)
		{
			IList<Item> items = new List<Item>();
			Item item = new Item();
			item.SetDefaults("Copper Shortsword");
			item.Prefix(-1);
			items.Add(item);
			item = new Item();
			item.SetDefaults("Copper Pickaxe");
			item.Prefix(-1);
			items.Add(item);
			item = new Item();
			item.SetDefaults("Copper Axe");
			item.Prefix(-1);
			items.Add(item);
			foreach (ModPlayer modPlayer in player.modPlayers)
			{
				modPlayer.SetupStartInventory(items);
			}
			IDictionary<int, int> counts = new Dictionary<int, int>();
			foreach (Item item0 in items)
			{
				if (item0.maxStack > 1)
				{
					if (!counts.ContainsKey(item0.netID))
					{
						counts[item0.netID] = 0;
					}
					counts[item0.netID] += item0.stack;
				}
			}
			int k = 0;
			while (k < items.Count)
			{
				bool flag = true;
				int id = items[k].netID;
				if (counts.ContainsKey(id))
				{
					items[k].stack = counts[id];
					if (items[k].stack > items[k].maxStack)
					{
						items[k].stack = items[k].maxStack;
					}
					counts[id] -= items[k].stack;
					if (items[k].stack <= 0)
					{
						items.RemoveAt(k);
						flag = false;
					}
				}
				if (flag)
				{
					k++;
				}
			}
			return items;
		}
示例#4
0
        TextSnippet ITagHandler.Parse(string text, Color baseColor, string options)
        {
            Item obj = new Item();
            int result1;
            if (int.TryParse(text, out result1))
                obj.netDefaults(result1);
            else
                obj.SetDefaults(text);

            if (obj.itemId <= 0)
                return new TextSnippet(text);

            obj.stack = 1;
            if (options != null)
            {
                string[] strArray = options.Split(',');
                for (int index = 0; index < strArray.Length; ++index)
                {
                    if (strArray[index].Length != 0)
                    {
                        switch (strArray[index][0])
                        {
                            case 'p':
                                int result2;
                                if (int.TryParse(strArray[index].Substring(1), out result2))
                                {
                                    obj.Prefix(Utils.Clamp<int>(result2, 0, 84));
                                    continue;
                                }
                                continue;
                            case 's':
                            case 'x':
                                int result3;
                                if (int.TryParse(strArray[index].Substring(1), out result3))
                                {
                                    obj.stack = Utils.Clamp<int>(result3, 1, obj.maxStack);
                                    continue;
                                }
                                continue;
                            default:
                                continue;
                        }
                    }
                }
            }

            string str = "";
            if (obj.stack > 1)
                str = " (" + obj.stack + ")";

            ItemSnippet itemSnippet = new ItemSnippet(obj);
            itemSnippet.Text = "[" + obj.AffixName() + str + "]";
            itemSnippet.CheckForHover = true;
            itemSnippet.DeleteWhole = true;
            return itemSnippet;
        }
示例#5
0
 internal static void ReadModItem(Item item, BinaryReader reader)
 {
     string modName = reader.ReadString();
     string itemName = reader.ReadString();
     Mod mod = ModLoader.GetMod(modName);
     int type = mod == null ? 0 : mod.ItemType(itemName);
     if (type != 0)
     {
         item.netDefaults(type);
         int dataLength = reader.ReadUInt16();
         if (dataLength > 0)
         {
             byte[] data = reader.ReadBytes(dataLength);
             using (MemoryStream memoryStream = new MemoryStream(data))
             {
                 using (BinaryReader customReader = new BinaryReader(memoryStream))
                 {
                     item.modItem.LoadCustomData(customReader);
                 }
             }
         }
         if (type == ModLoader.GetMod("ModLoader").ItemType("MysteryItem"))
         {
             MysteryItem mystery = item.modItem as MysteryItem;
             modName = mystery.GetModName();
             itemName = mystery.GetItemName();
             mod = ModLoader.GetMod(modName);
             type = mod == null ? 0 : mod.ItemType(itemName);
             if (type != 0)
             {
                 item.netDefaults(type);
             }
         }
     }
     else
     {
         item.netDefaults(ModLoader.GetMod("ModLoader").ItemType("MysteryItem"));
         MysteryItem mystery = item.modItem as MysteryItem;
         mystery.SetModName(modName);
         mystery.SetItemName(itemName);
         reader.ReadBytes(reader.ReadUInt16());
     }
     item.Prefix(reader.ReadByte());
 }
 public static Chest ReadChest(this BinaryReader reader)
 {
     Chest chest = new Chest(false);
     chest.x = reader.ReadInt32();
     chest.y = reader.ReadInt32();
     chest.name = "World Chest";
     for (int l = 0; l < 40; l++)
     {
         Item item = new Item();
         int stack = reader.ReadInt16();
         if (stack > 0)
         {
             int netID = reader.ReadInt32();
             byte prefix = reader.ReadByte();
             item.netDefaults(netID);
             item.stack = stack;
             item.Prefix(prefix);
         }
         chest.item[l] = item;
     }            
     return chest;
 }
示例#7
0
		private static void LoadChests(BinaryReader reader)
		{
			int num = (int)reader.ReadInt16();
			int num2 = (int)reader.ReadInt16();
			int num3;
			int num4;
			if (num2 < Chest.maxItems)
			{
				num3 = num2;
				num4 = 0;
			}
			else
			{
				num3 = Chest.maxItems;
				num4 = num2 - Chest.maxItems;
			}
			int i;
			for (i = 0; i < num; i++)
			{
				Chest chest = new Chest(false);
				chest.x = reader.ReadInt32();
				chest.y = reader.ReadInt32();
				chest.name = reader.ReadString();
				for (int j = 0; j < num3; j++)
				{
					short num5 = reader.ReadInt16();
					Item item = new Item();
					if (num5 > 0)
					{
						item.netDefaults(reader.ReadInt32());
						item.stack = (int)num5;
						item.Prefix((int)reader.ReadByte());
					}
					else if (num5 < 0)
					{
						item.netDefaults(reader.ReadInt32());
						item.Prefix((int)reader.ReadByte());
						item.stack = 1;
					}
					chest.item[j] = item;
				}
				for (int j = 0; j < num4; j++)
				{
					short num5 = reader.ReadInt16();
					if (num5 > 0)
					{
						reader.ReadInt32();
						reader.ReadByte();
					}
				}
				Main.chest[i] = chest;
			}
			while (i < 1000)
			{
				Main.chest[i] = null;
				i++;
			}
		}
 private static void LoadChests(BinaryReader reader)
 {
     short num;
     int i;
     int j;
     int num1;
     int num2;
     Chest chest = null;
     int num3 = reader.ReadInt16();
     int num4 = reader.ReadInt16();
     if (num4 >= 40)
     {
         num1 = 40;
         num2 = num4 - 40;
     }
     else
     {
         num1 = num4;
         num2 = 0;
     }
     for (i = 0; i < num3; i++)
     {
         chest = new Chest(false)
         {
             x = reader.ReadInt32(),
             y = reader.ReadInt32(),
             name = reader.ReadString()
         };
         for (j = 0; j < num1; j++)
         {
             num = reader.ReadInt16();
             Item item = new Item();
             if (num > 0)
             {
                 item.netDefaults(reader.ReadInt32());
                 item.stack = num;
                 item.Prefix((int)reader.ReadByte());
             }
             else if (num < 0)
             {
                 item.netDefaults(reader.ReadInt32());
                 item.Prefix((int)reader.ReadByte());
                 item.stack = 1;
             }
             chest.item[j] = item;
         }
         for (j = 0; j < num2; j++)
         {
             num = reader.ReadInt16();
             if (num > 0)
             {
                 reader.ReadInt32();
                 reader.ReadByte();
             }
         }
         Main.chest[i] = chest;
     }
     while (i < 1000)
     {
         Main.chest[i] = null;
         i++;
     }
     if (WorldFile.versionNumber < 115)
     {
         WorldFile.FixDresserChests();
     }
 }
示例#9
0
 public static void KillTile(int i, int j, bool fail = false, bool effectOnly = false, bool noItem = false)
 {
     if (i >= 0 && j >= 0 && i < Main.maxTilesX && j < Main.maxTilesY)
     {
         Tile tile = Main.tile[i, j];
         if (tile == null)
         {
             tile = new Tile();
             Main.tile[i, j] = tile;
         }
         if (tile.active())
         {
             if (j >= 1 && Main.tile[i, j - 1] == null)
             {
                 Main.tile[i, j - 1] = new Tile();
             }
             if (j >= 1 && Main.tile[i, j - 1].active() && ((Main.tile[i, j - 1].type == 5 && tile.type != 5) || (Main.tile[i, j - 1].type == 323 && tile.type != 323) || (Main.tile[i, j - 1].type == 21 && tile.type != 21) || (Main.tile[i, j - 1].type == 323 && tile.type != 323) || (Main.tile[i, j - 1].type == 88 && tile.type != 88) || (Main.tile[i, j - 1].type == 26 && tile.type != 26) || (Main.tile[i, j - 1].type == 72 && tile.type != 72)))
             {
                 if (Main.tile[i, j - 1].type == 5)
                 {
                     if ((Main.tile[i, j - 1].frameX != 66 || Main.tile[i, j - 1].frameY < 0 || Main.tile[i, j - 1].frameY > 44) && (Main.tile[i, j - 1].frameX != 88 || Main.tile[i, j - 1].frameY < 66 || Main.tile[i, j - 1].frameY > 110) && Main.tile[i, j - 1].frameY < 198)
                     {
                         return;
                     }
                 }
                 else if (Main.tile[i, j - 1].type != 323 || Main.tile[i, j - 1].frameX == 66 || Main.tile[i, j - 1].frameX == 220)
                 {
                     return;
                 }
             }
             if (tile.type == 10 && tile.frameY >= 594 && tile.frameY <= 646)
             {
                 fail = true;
             }
             if (tile.type == 138)
             {
                 fail = WorldGen.CheckBoulderChest(i, j);
             }
             if (tile.type == 235)
             {
                 int frameX = (int)tile.frameX;
                 int num = i - frameX % 54 / 18;
                 for (int k = 0; k < 3; k++)
                 {
                     if (Main.tile[num + k, j - 1].active() && Main.tile[num + k, j - 1].type == 21)
                     {
                         fail = true;
                         break;
                     }
                 }
             }
             if (!effectOnly && !WorldGen.stopDrops)
             {
                 if (tile.type == 3 || tile.type == 110)
                 {
                     if (tile.frameX == 144)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, 5, 1, false, 0, false, false);
                     }
                 }
                 else if (tile.type == 24)
                 {
                     if (tile.frameX == 144)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, 60, 1, false, 0, false, false);
                     }
                 }
                 else if (tile.type == 201)
                 {
                     if (tile.frameX == 270)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, 2887, 1, false, 0, false, false);
                     }
                 }
             }
             if (tile.type == 128 || tile.type == 269)
             {
                 int num2 = i;
                 int l = (int)tile.frameX;
                 int m;
                 for (m = (int)tile.frameX; m >= 100; m -= 100)
                 {
                 }
                 while (m >= 36)
                 {
                     m -= 36;
                 }
                 if (m == 18)
                 {
                     l = (int)Main.tile[i - 1, j].frameX;
                     num2--;
                 }
                 if (l >= 100)
                 {
                     int num3 = 0;
                     while (l >= 100)
                     {
                         l -= 100;
                         num3++;
                     }
                     int num4 = (int)(Main.tile[num2, j].frameY / 18);
                     if (num4 == 0)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, Item.headType[num3], 1, false, 0, false, false);
                     }
                     if (num4 == 1)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, Item.bodyType[num3], 1, false, 0, false, false);
                     }
                     if (num4 == 2)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, Item.legType[num3], 1, false, 0, false, false);
                     }
                     for (l = (int)Main.tile[num2, j].frameX; l >= 100; l -= 100)
                     {
                     }
                     Main.tile[num2, j].frameX = (short)l;
                 }
             }
             if (tile.type == 334)
             {
                 int num5 = i;
                 int n = (int)tile.frameX;
                 int num6 = (int)tile.frameX;
                 int num7 = 0;
                 while (num6 >= 5000)
                 {
                     num6 -= 5000;
                     num7++;
                 }
                 if (num7 != 0)
                 {
                     num6 = (num7 - 1) * 18;
                 }
                 num6 %= 54;
                 if (num6 == 18)
                 {
                     n = (int)Main.tile[i - 1, j].frameX;
                     num5--;
                 }
                 if (num6 == 36)
                 {
                     n = (int)Main.tile[i - 2, j].frameX;
                     num5 -= 2;
                 }
                 if (n >= 5000)
                 {
                     int num8 = n % 5000;
                     num8 -= 100;
                     int num9 = (int)Main.tile[num5 + 1, j].frameX;
                     if (num9 >= 25000)
                     {
                         num9 -= 25000;
                     }
                     else
                     {
                         num9 -= 10000;
                     }
                     if (Main.netMode != 1)
                     {
                         Item item = new Item();
                         item.netDefaults(num8);
                         item.Prefix(num9);
                         int num10 = Item.NewItem(i * 16, j * 16, 16, 16, num8, 1, true, 0, false, false);
                         item.position = Main.item[num10].position;
                         Main.item[num10] = item;
                         NetMessage.SendData(21, -1, -1, "", num10, 0f, 0f, 0f, 0, 0, 0);
                     }
                     n = (int)Main.tile[num5, j].frameX;
                     int num11 = 0;
                     while (n >= 5000)
                     {
                         n -= 5000;
                         num11++;
                     }
                     if (num11 != 0)
                     {
                         n = (num11 - 1) * 18;
                     }
                     Main.tile[num5, j].frameX = (short)n;
                     Main.tile[num5 + 1, j].frameX = (short)(n + 18);
                 }
             }
             if (tile.type == 395)
             {
                 int num12 = TEItemFrame.Find(i - (int)(tile.frameX % 36 / 18), j - (int)(tile.frameY % 36 / 18));
                 if (num12 != -1 && ((TEItemFrame)TileEntity.ByID[num12]).item.stack > 0)
                 {
                     ((TEItemFrame)TileEntity.ByID[num12]).DropItem();
                     if (Main.netMode != 2)
                     {
                         Main.blockMouse = true;
                     }
                     return;
                 }
             }
             int num13 = 10;
             if (tile.type == 231)
             {
                 num13 = 6;
             }
             if (fail)
             {
                 num13 = 3;
             }
             if (tile.type == 138)
             {
                 num13 = 0;
             }
             if (tile.type == 373)
             {
                 num13 = 0;
             }
             if (tile.type == 374)
             {
                 num13 = 0;
             }
             if (tile.type == 375)
             {
                 num13 = 0;
             }
             if (tile.type >= 300 && tile.type <= 308)
             {
                 num13 = 0;
             }
             if (tile.type == 125)
             {
                 num13 = 0;
             }
             if (tile.type == 287)
             {
                 num13 = 0;
             }
             if (tile.type == 354)
             {
                 num13 = 0;
             }
             if (tile.type == 355)
             {
                 num13 = 0;
             }
             if (tile.type == 376)
             {
                 num13 = 0;
             }
             int num14 = 0;
             while (num14 < num13)
             {
                 int num15 = 0;
                 if (tile.type == 216)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 335)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 338)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 0)
                 {
                     num15 = 0;
                 }
                 if (tile.type == 192)
                 {
                     num15 = 3;
                 }
                 if (tile.type == 208)
                 {
                     num15 = 126;
                 }
                 else if (tile.type == 408 || tile.type == 409)
                 {
                     num15 = 265;
                 }
                 if (tile.type == 16)
                 {
                     num15 = 1;
                     if (tile.frameX >= 36)
                     {
                         num15 = 82;
                     }
                 }
                 else if (tile.type == 415)
                 {
                     num15 = 6;
                 }
                 else if (tile.type == 416)
                 {
                     num15 = 61;
                 }
                 else if (tile.type == 417)
                 {
                     num15 = 242;
                 }
                 else if (tile.type == 418)
                 {
                     num15 = 135;
                 }
                 if (tile.type == 1 || tile.type == 17 || tile.type == 38 || tile.type == 39 || tile.type == 41 || tile.type == 43 || tile.type == 44 || tile.type == 48 || Main.tileStone[(int)tile.type] || tile.type == 85 || tile.type == 90 || tile.type == 92 || tile.type == 96 || tile.type == 97 || tile.type == 99 || tile.type == 117 || tile.type == 130 || tile.type == 131 || tile.type == 132 || tile.type == 135 || tile.type == 135 || tile.type == 142 || tile.type == 143 || tile.type == 144 || tile.type == 210 || tile.type == 207 || tile.type == 235 || tile.type == 247 || tile.type == 272 || tile.type == 273 || tile.type == 283 || tile.type == 410)
                 {
                     num15 = 1;
                 }
                 if (tile.type == 379)
                 {
                     num15 = 257;
                 }
                 if (tile.type == 311)
                 {
                     num15 = 207;
                 }
                 if (tile.type == 312)
                 {
                     num15 = 208;
                 }
                 if (tile.type == 313)
                 {
                     num15 = 209;
                 }
                 if (tile.type == 104)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 95 || tile.type == 98 || tile.type == 100 || tile.type == 174 || tile.type == 173)
                 {
                     num15 = 6;
                 }
                 if (tile.type == 30 || tile.type == 86 || tile.type == 94 || tile.type == 106 || tile.type == 114 || tile.type == 124 || tile.type == 128 || tile.type == 269)
                 {
                     num15 = 7;
                 }
                 if (tile.type == 372)
                 {
                     num15 = 242;
                 }
                 if (tile.type == 371)
                 {
                     num15 = 243;
                 }
                 if (tile.type == 334)
                 {
                     num15 = 7;
                 }
                 ushort type = tile.type;
                 if (type <= 139)
                 {
                     if (type <= 89)
                     {
                         switch (type)
                         {
                             case 10:
                             case 11:
                                 goto IL_14A0;
                             default:
                                 switch (type)
                                 {
                                     case 87:
                                     case 89:
                                         goto IL_14A0;
                                 }
                                 break;
                         }
                     }
                     else if (type == 93 || type == 139)
                     {
                         goto IL_14A0;
                     }
                 }
                 else if (type <= 320)
                 {
                     if (type == 209)
                     {
                         goto IL_14A0;
                     }
                     switch (type)
                     {
                         case 319:
                         case 320:
                             goto IL_14A0;
                     }
                 }
                 else
                 {
                     switch (type)
                     {
                         case 386:
                         case 387:
                         case 390:
                             goto IL_14A0;
                         case 388:
                         case 389:
                             break;
                         default:
                             switch (type)
                             {
                                 case 405:
                                 case 406:
                                 case 411:
                                 case 412:
                                     goto IL_14A0;
                                 case 407:
                                     num15 = 10;
                                     break;
                             }
                             break;
                     }
                 }
                 IL_14A9:
                 if (tile.type == 240)
                 {
                     int num16 = (int)(tile.frameX / 54);
                     if (tile.frameY >= 54)
                     {
                         num16 += 36;
                     }
                     num15 = 7;
                     if (num16 == 16 || num16 == 17)
                     {
                         num15 = 26;
                     }
                     if (num16 >= 46 && num16 <= 49)
                     {
                         num15 = -1;
                     }
                 }
                 if (tile.type == 241)
                 {
                     num15 = 1;
                 }
                 if (tile.type == 242)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 356)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 351)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 246)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 36)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 365)
                 {
                     num15 = 239;
                 }
                 if (tile.type == 366)
                 {
                     num15 = 30;
                 }
                 if (tile.type == 357 || tile.type == 367)
                 {
                     num15 = 236;
                 }
                 if (tile.type == 368 || tile.type == 369)
                 {
                     num15 = 240;
                 }
                 if (tile.type == 170)
                 {
                     num15 = 196;
                 }
                 if (tile.type == 315)
                 {
                     num15 = 225;
                 }
                 if (tile.type == 346)
                 {
                     num15 = 128;
                 }
                 if (tile.type == 347)
                 {
                     num15 = 117;
                 }
                 if (tile.type == 348)
                 {
                     num15 = 42;
                 }
                 if (tile.type == 350)
                 {
                     num15 = 226;
                 }
                 if (tile.type == 370)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 6;
                     }
                     else
                     {
                         num15 = 23;
                     }
                 }
                 if (tile.type == 171)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 196;
                     }
                     else
                     {
                         num15 = -1;
                     }
                 }
                 if (tile.type == 326)
                 {
                     num15 = 13;
                 }
                 if (tile.type == 327)
                 {
                     num15 = 13;
                 }
                 if (tile.type == 345)
                 {
                     num15 = 13;
                 }
                 if (tile.type == 336)
                 {
                     num15 = 6;
                 }
                 if (tile.type == 340)
                 {
                     num15 = 75;
                 }
                 if (tile.type == 341)
                 {
                     num15 = 65;
                 }
                 if (tile.type == 342)
                 {
                     num15 = 135;
                 }
                 if (tile.type == 343)
                 {
                     num15 = 169;
                 }
                 if (tile.type == 344)
                 {
                     num15 = 156;
                 }
                 if (tile.type == 328)
                 {
                     num15 = 13;
                 }
                 if (tile.type == 329)
                 {
                     num15 = 13;
                 }
                 if (tile.type == 330)
                 {
                     num15 = 9;
                 }
                 if (tile.type == 331)
                 {
                     num15 = 11;
                 }
                 if (tile.type == 332)
                 {
                     num15 = 19;
                 }
                 if (tile.type == 333)
                 {
                     num15 = 11;
                 }
                 if (tile.type == 101)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 19)
                 {
                     int num17 = (int)(tile.frameY / 18);
                     if (num17 == 0 || num17 == 9 || num17 == 10 || num17 == 11 || num17 == 12)
                     {
                         num15 = 7;
                     }
                     else if (num17 == 1)
                     {
                         num15 = 77;
                     }
                     else if (num17 == 2)
                     {
                         num15 = 78;
                     }
                     else if (num17 == 3)
                     {
                         num15 = 79;
                     }
                     else if (num17 == 4)
                     {
                         num15 = 26;
                     }
                     else if (num17 == 5)
                     {
                         num15 = 126;
                     }
                     else if (num17 == 13)
                     {
                         num15 = 109;
                     }
                     else if (num17 == 14)
                     {
                         num15 = 13;
                     }
                     else if (num17 >= 15 || num17 <= 16)
                     {
                         num15 = -1;
                     }
                     else if (num17 == 17)
                     {
                         num15 = 215;
                     }
                     else if (num17 == 18)
                     {
                         num15 = 214;
                     }
                     else
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == 79)
                 {
                     int num18 = (int)(tile.frameY / 36);
                     if (num18 == 0)
                     {
                         num15 = 7;
                     }
                     else if (num18 == 1)
                     {
                         num15 = 77;
                     }
                     else if (num18 == 2)
                     {
                         num15 = 78;
                     }
                     else if (num18 == 3)
                     {
                         num15 = 79;
                     }
                     else if (num18 == 4)
                     {
                         num15 = 126;
                     }
                     else if (num18 == 8)
                     {
                         num15 = 109;
                     }
                     else if (num18 >= 9)
                     {
                         num15 = -1;
                     }
                     else
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == 18)
                 {
                     int num19 = (int)(tile.frameX / 36);
                     if (num19 == 0)
                     {
                         num15 = 7;
                     }
                     else if (num19 == 1)
                     {
                         num15 = 77;
                     }
                     else if (num19 == 2)
                     {
                         num15 = 78;
                     }
                     else if (num19 == 3)
                     {
                         num15 = 79;
                     }
                     else if (num19 == 4)
                     {
                         num15 = 26;
                     }
                     else if (num19 == 5)
                     {
                         num15 = 40;
                     }
                     else if (num19 == 6)
                     {
                         num15 = 5;
                     }
                     else if (num19 == 7)
                     {
                         num15 = 26;
                     }
                     else if (num19 == 8)
                     {
                         num15 = 4;
                     }
                     else if (num19 == 9)
                     {
                         num15 = 126;
                     }
                     else if (num19 == 10)
                     {
                         num15 = 148;
                     }
                     else if (num19 == 11 || num19 == 12 || num19 == 13)
                     {
                         num15 = 1;
                     }
                     else if (num19 == 14)
                     {
                         num15 = 109;
                     }
                     else if (num19 == 15)
                     {
                         num15 = 126;
                     }
                     else
                     {
                         num15 = -1;
                     }
                 }
                 if (tile.type == 14 || tile.type == 87 || tile.type == 88)
                 {
                     num15 = -1;
                 }
                 if (tile.type >= 255 && tile.type <= 261)
                 {
                     int num20 = (int)(tile.type - 255);
                     num15 = 86 + num20;
                     if (num20 == 6)
                     {
                         num15 = 138;
                     }
                 }
                 if (tile.type >= 262 && tile.type <= 268)
                 {
                     int num21 = (int)(tile.type - 262);
                     num15 = 86 + num21;
                     if (num21 == 6)
                     {
                         num15 = 138;
                     }
                 }
                 if (tile.type == 178)
                 {
                     int num22 = (int)(tile.frameX / 18);
                     num15 = 86 + num22;
                     if (num22 == 6)
                     {
                         num15 = 138;
                     }
                 }
                 if (tile.type == 186)
                 {
                     if (tile.frameX <= 360)
                     {
                         num15 = 26;
                     }
                     else if (tile.frameX <= 846)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX <= 954)
                     {
                         num15 = 9;
                     }
                     else if (tile.frameX <= 1062)
                     {
                         num15 = 11;
                     }
                     else if (tile.frameX <= 1170)
                     {
                         num15 = 10;
                     }
                     else if (tile.frameX <= 1332)
                     {
                         num15 = 0;
                     }
                     else if (tile.frameX <= 1386)
                     {
                         num15 = 10;
                     }
                     else
                     {
                         num15 = 80;
                     }
                 }
                 if (tile.type == 187)
                 {
                     if (tile.frameX <= 144)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX <= 306)
                     {
                         num15 = 38;
                     }
                     else if (tile.frameX <= 468)
                     {
                         num15 = 36;
                     }
                     else if (tile.frameX <= 738)
                     {
                         num15 = 30;
                     }
                     else if (tile.frameX <= 970)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX <= 1132)
                     {
                         num15 = 148;
                     }
                     else if (tile.frameX <= 1132)
                     {
                         num15 = 155;
                     }
                     else if (tile.frameX <= 1348)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX <= 1564)
                     {
                         num15 = 0;
                     }
                 }
                 if (tile.type == 105)
                 {
                     num15 = 1;
                     if (tile.frameX >= 1548 && tile.frameX <= 1654)
                     {
                         num15 = 148;
                     }
                 }
                 if (tile.type == 349)
                 {
                     num15 = 1;
                 }
                 if (tile.type == 337)
                 {
                     num15 = 1;
                 }
                 if (tile.type == 239)
                 {
                     int num23 = (int)(tile.frameX / 18);
                     if (num23 == 0)
                     {
                         num15 = 9;
                     }
                     if (num23 == 1)
                     {
                         num15 = 81;
                     }
                     if (num23 == 2)
                     {
                         num15 = 8;
                     }
                     if (num23 == 3)
                     {
                         num15 = 82;
                     }
                     if (num23 == 4)
                     {
                         num15 = 11;
                     }
                     if (num23 == 5)
                     {
                         num15 = 83;
                     }
                     if (num23 == 6)
                     {
                         num15 = 10;
                     }
                     if (num23 == 7)
                     {
                         num15 = 84;
                     }
                     if (num23 == 8)
                     {
                         num15 = 14;
                     }
                     if (num23 == 9)
                     {
                         num15 = 23;
                     }
                     if (num23 == 10)
                     {
                         num15 = 25;
                     }
                     if (num23 == 11)
                     {
                         num15 = 48;
                     }
                     if (num23 == 12)
                     {
                         num15 = 144;
                     }
                     if (num23 == 13)
                     {
                         num15 = 49;
                     }
                     if (num23 == 14)
                     {
                         num15 = 145;
                     }
                     if (num23 == 15)
                     {
                         num15 = 50;
                     }
                     if (num23 == 16)
                     {
                         num15 = 146;
                     }
                     if (num23 == 17)
                     {
                         num15 = 128;
                     }
                     if (num23 == 18)
                     {
                         num15 = 84;
                     }
                     if (num23 == 19)
                     {
                         num15 = 117;
                     }
                     if (num23 == 20)
                     {
                         num15 = 42;
                     }
                     if (num23 == 21)
                     {
                         num15 = -1;
                     }
                     if (num23 == 22)
                     {
                         num15 = 265;
                     }
                 }
                 if (tile.type == 185)
                 {
                     if (tile.frameY == 18)
                     {
                         int num24 = (int)(tile.frameX / 36);
                         if (num24 < 6)
                         {
                             num15 = 1;
                         }
                         else if (num24 < 16)
                         {
                             num15 = 26;
                         }
                         else if (num24 == 16)
                         {
                             num15 = 9;
                         }
                         else if (num24 == 17)
                         {
                             num15 = 11;
                         }
                         else if (num24 == 18)
                         {
                             num15 = 10;
                         }
                         else if (num24 == 19)
                         {
                             num15 = 86;
                         }
                         else if (num24 == 20)
                         {
                             num15 = 87;
                         }
                         else if (num24 == 21)
                         {
                             num15 = 88;
                         }
                         else if (num24 == 22)
                         {
                             num15 = 89;
                         }
                         else if (num24 == 23)
                         {
                             num15 = 90;
                         }
                         else if (num24 == 24)
                         {
                             num15 = 91;
                         }
                         else if (num24 < 31)
                         {
                             num15 = 80;
                         }
                         else if (num24 < 33)
                         {
                             num15 = 7;
                         }
                         else if (num24 < 34)
                         {
                             num15 = 8;
                         }
                         else if (num24 < 39)
                         {
                             num15 = 30;
                         }
                         else if (num24 < 42)
                         {
                             num15 = 1;
                         }
                     }
                     else
                     {
                         int num25 = (int)(tile.frameX / 18);
                         if (num25 < 6)
                         {
                             num15 = 1;
                         }
                         else if (num25 < 12)
                         {
                             num15 = 0;
                         }
                         else if (num25 < 27)
                         {
                             num15 = 26;
                         }
                         else if (num25 < 32)
                         {
                             num15 = 1;
                         }
                         else if (num25 < 35)
                         {
                             num15 = 0;
                         }
                         else if (num25 < 46)
                         {
                             num15 = 80;
                         }
                         else if (num25 < 52)
                         {
                             num15 = 30;
                         }
                     }
                 }
                 if (tile.type == 184)
                 {
                     int num26 = (int)(tile.frameX / 22);
                     if (num26 == 5)
                     {
                         num15 = 258;
                     }
                     else
                     {
                         num15 = 93 + num26;
                     }
                 }
                 if (tile.type == 237)
                 {
                     num15 = 148;
                 }
                 if (tile.type == 157)
                 {
                     num15 = 77;
                 }
                 if (tile.type == 158 || tile.type == 232 || tile.type == 383)
                 {
                     num15 = 78;
                 }
                 if (tile.type == 159)
                 {
                     num15 = 78;
                 }
                 if (tile.type == 15)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 191)
                 {
                     num15 = 7;
                 }
                 if (tile.type == 5)
                 {
                     num15 = 7;
                     if (i > 5 && i < Main.maxTilesX - 5)
                     {
                         int num27 = i;
                         int num28 = j;
                         if (tile.frameX == 66 && tile.frameY <= 45)
                         {
                             num27++;
                         }
                         if (tile.frameX == 88 && tile.frameY >= 66 && tile.frameY <= 110)
                         {
                             num27--;
                         }
                         if (tile.frameX == 22 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num27--;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num27++;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num27++;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 198)
                         {
                             num27++;
                         }
                         if (tile.frameX == 66 && tile.frameY >= 198)
                         {
                             num27--;
                         }
                         while (Main.tile[num27, num28] != null && (!Main.tile[num27, num28].active() || !Main.tileSolid[(int)Main.tile[num27, num28].type]))
                         {
                             num28++;
                         }
                         if (Main.tile[num27, num28] != null)
                         {
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == 23)
                             {
                                 num15 = 77;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == 60)
                             {
                                 num15 = 78;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == 70)
                             {
                                 num15 = 26;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == 109)
                             {
                                 num15 = 79;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == 199)
                             {
                                 num15 = 121;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == 147)
                             {
                                 num15 = 122;
                             }
                         }
                     }
                 }
                 if (tile.type == 323)
                 {
                     num15 = 215;
                     if (i > 5 && i < Main.maxTilesX - 5)
                     {
                         int num29 = j;
                         while (Main.tile[i, num29] != null && (!Main.tile[i, num29].active() || !Main.tileSolid[(int)Main.tile[i, num29].type]))
                         {
                             num29++;
                         }
                         if (Main.tile[i, num29] != null)
                         {
                             if (Main.tile[i, num29].active() && Main.tile[i, num29].type == 234)
                             {
                                 num15 = 121;
                             }
                             if (Main.tile[i, num29].active() && Main.tile[i, num29].type == 116)
                             {
                                 num15 = 79;
                             }
                             if (Main.tile[i, num29].active() && Main.tile[i, num29].type == 112)
                             {
                                 num15 = 77;
                             }
                         }
                     }
                 }
                 if (tile.type == 137)
                 {
                     num15 = 1;
                     int num30 = (int)(tile.frameY / 18);
                     if (num30 > 0)
                     {
                         num15 = 148;
                     }
                 }
                 if (tile.type == 212)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 213)
                 {
                     num15 = 129;
                 }
                 if (tile.type == 214)
                 {
                     num15 = 1;
                 }
                 if (tile.type == 215)
                 {
                     num15 = -6;
                 }
                 if (tile.type == 325)
                 {
                     num15 = 81;
                 }
                 if (tile.type == 251)
                 {
                     num15 = 189;
                 }
                 if (tile.type == 252)
                 {
                     num15 = 190;
                 }
                 if (tile.type == 253)
                 {
                     num15 = 191;
                 }
                 if (tile.type == 254)
                 {
                     if (tile.frameX < 72)
                     {
                         num15 = 3;
                     }
                     else if (tile.frameX < 108)
                     {
                         num15 = 3;
                         if (WorldGen.genRand.Next(3) == 0)
                         {
                             num15 = 189;
                         }
                     }
                     else if (tile.frameX < 144)
                     {
                         num15 = 3;
                         if (WorldGen.genRand.Next(2) == 0)
                         {
                             num15 = 189;
                         }
                     }
                     else
                     {
                         num15 = 3;
                         if (WorldGen.genRand.Next(4) != 0)
                         {
                             num15 = 189;
                         }
                     }
                 }
                 if (tile.type == 21)
                 {
                     if (tile.frameX >= 1008)
                     {
                         num15 = -1;
                     }
                     else if (tile.frameX >= 612)
                     {
                         num15 = 11;
                     }
                     else if (tile.frameX >= 576)
                     {
                         num15 = 148;
                     }
                     else if (tile.frameX >= 540)
                     {
                         num15 = 26;
                     }
                     else if (tile.frameX >= 504)
                     {
                         num15 = 126;
                     }
                     else if (tile.frameX >= 468)
                     {
                         num15 = 116;
                     }
                     else if (tile.frameX >= 432)
                     {
                         num15 = 7;
                     }
                     else if (tile.frameX >= 396)
                     {
                         num15 = 11;
                     }
                     else if (tile.frameX >= 360)
                     {
                         num15 = 10;
                     }
                     else if (tile.frameX >= 324)
                     {
                         num15 = 79;
                     }
                     else if (tile.frameX >= 288)
                     {
                         num15 = 78;
                     }
                     else if (tile.frameX >= 252)
                     {
                         num15 = 77;
                     }
                     else if (tile.frameX >= 216)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX >= 180)
                     {
                         num15 = 7;
                     }
                     else if (tile.frameX >= 108)
                     {
                         num15 = 37;
                     }
                     else if (tile.frameX >= 36)
                     {
                         num15 = 10;
                     }
                     else
                     {
                         num15 = 7;
                     }
                 }
                 if (tile.type == 2)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 0;
                     }
                     else
                     {
                         num15 = 2;
                     }
                 }
                 if (Main.tileMoss[(int)tile.type])
                 {
                     if (tile.type == 381)
                     {
                         num15 = 258;
                     }
                     else
                     {
                         num15 = (int)(tile.type - 179 + 93);
                     }
                 }
                 if (tile.type == 127)
                 {
                     num15 = 67;
                 }
                 if (tile.type == 91)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 198)
                 {
                     num15 = 109;
                 }
                 if (tile.type == 26)
                 {
                     if (tile.frameX >= 54)
                     {
                         num15 = 5;
                     }
                     else
                     {
                         num15 = 8;
                     }
                 }
                 if (tile.type == 34)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 6)
                 {
                     num15 = 8;
                 }
                 if (tile.type == 7 || tile.type == 47 || tile.type == 284)
                 {
                     num15 = 9;
                 }
                 if (tile.type == 8 || tile.type == 45 || tile.type == 102)
                 {
                     num15 = 10;
                 }
                 if (tile.type == 9 || tile.type == 42 || tile.type == 46 || tile.type == 126 || tile.type == 136)
                 {
                     num15 = 11;
                 }
                 if (tile.type == 166 || tile.type == 175)
                 {
                     num15 = 81;
                 }
                 if (tile.type == 167)
                 {
                     num15 = 82;
                 }
                 if (tile.type == 168 || tile.type == 176)
                 {
                     num15 = 83;
                 }
                 if (tile.type == 169 || tile.type == 177)
                 {
                     num15 = 84;
                 }
                 if (tile.type == 199)
                 {
                     num15 = 117;
                 }
                 if (tile.type == 205)
                 {
                     num15 = 125;
                 }
                 if (tile.type == 201)
                 {
                     num15 = 125;
                 }
                 if (tile.type == 211)
                 {
                     num15 = 128;
                 }
                 if (tile.type == 227)
                 {
                     int num31 = (int)(tile.frameX / 34);
                     if (num31 == 0 || num31 == 1)
                     {
                         num15 = 26;
                     }
                     else if (num31 == 3)
                     {
                         num15 = 3;
                     }
                     else if (num31 == 2 || num31 == 4 || num31 == 5 || num31 == 6)
                     {
                         num15 = 40;
                     }
                     else if (num31 == 7)
                     {
                         num15 = 117;
                     }
                     else if (num31 == 8)
                     {
                         num15 = 17;
                     }
                     else if (num31 == 9)
                     {
                         num15 = 6;
                     }
                     else if (num31 == 10)
                     {
                         num15 = 3;
                     }
                     else if (num31 == 11)
                     {
                         num15 = 26;
                     }
                 }
                 if (tile.type == 204)
                 {
                     num15 = 117;
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == 203)
                 {
                     num15 = 117;
                 }
                 if (tile.type == 243)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 7;
                     }
                     else
                     {
                         num15 = 13;
                     }
                 }
                 if (tile.type == 244)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 1;
                     }
                     else
                     {
                         num15 = 13;
                     }
                 }
                 else if ((tile.type >= 358 && tile.type <= 364) || (tile.type >= 275 && tile.type <= 282) || (tile.type == 285 || tile.type == 286 || (tile.type >= 288 && tile.type <= 297)) || (tile.type >= 316 && tile.type <= 318) || tile.type == 298 || tile.type == 299 || tile.type == 309 || tile.type == 310 || tile.type == 339 || tile.type == 413 || tile.type == 414)
                 {
                     num15 = 13;
                     if (WorldGen.genRand.Next(3) != 0)
                     {
                         num15 = -1;
                     }
                 }
                 if (tile.type == 13)
                 {
                     if (tile.frameX >= 90)
                     {
                         num15 = -1;
                     }
                     else
                     {
                         num15 = 13;
                     }
                 }
                 if (tile.type == 189)
                 {
                     num15 = 16;
                 }
                 if (tile.type == 12)
                 {
                     num15 = 12;
                 }
                 if (tile.type == 3 || tile.type == 73)
                 {
                     num15 = 3;
                 }
                 if (tile.type == 54)
                 {
                     num15 = 13;
                 }
                 if (tile.type == 22 || tile.type == 140)
                 {
                     num15 = 14;
                 }
                 if (tile.type == 78)
                 {
                     num15 = 22;
                 }
                 if (tile.type == 28)
                 {
                     num15 = 22;
                     if (tile.frameY >= 72 && tile.frameY <= 90)
                     {
                         num15 = 1;
                     }
                     if (tile.frameY >= 144 && tile.frameY <= 234)
                     {
                         num15 = 48;
                     }
                     if (tile.frameY >= 252 && tile.frameY <= 358)
                     {
                         num15 = 85;
                     }
                     if (tile.frameY >= 360 && tile.frameY <= 466)
                     {
                         num15 = 26;
                     }
                     if (tile.frameY >= 468 && tile.frameY <= 574)
                     {
                         num15 = 36;
                     }
                     if (tile.frameY >= 576 && tile.frameY <= 790)
                     {
                         num15 = 18;
                     }
                     if (tile.frameY >= 792 && tile.frameY <= 898)
                     {
                         num15 = 5;
                     }
                     if (tile.frameY >= 900 && tile.frameY <= 1006)
                     {
                         num15 = 0;
                     }
                     if (tile.frameY >= 1008 && tile.frameY <= 1114)
                     {
                         num15 = 148;
                     }
                     if (tile.frameY >= 1116 && tile.frameY <= 1222)
                     {
                         num15 = 241;
                     }
                 }
                 if (tile.type == 163)
                 {
                     num15 = 118;
                 }
                 if (tile.type == 164)
                 {
                     num15 = 119;
                 }
                 if (tile.type == 200)
                 {
                     num15 = 120;
                 }
                 if (tile.type == 221 || tile.type == 248)
                 {
                     num15 = 144;
                 }
                 if (tile.type == 222 || tile.type == 249)
                 {
                     num15 = 145;
                 }
                 if (tile.type == 223 || tile.type == 250)
                 {
                     num15 = 146;
                 }
                 if (tile.type == 224)
                 {
                     num15 = 149;
                 }
                 if (tile.type == 225)
                 {
                     num15 = 147;
                 }
                 if (tile.type == 229)
                 {
                     num15 = 153;
                 }
                 if (tile.type == 231)
                 {
                     num15 = 153;
                     if (WorldGen.genRand.Next(3) == 0)
                     {
                         num15 = 26;
                     }
                 }
                 if (tile.type == 226)
                 {
                     num15 = 148;
                 }
                 if (tile.type == 103)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 29)
                 {
                     num15 = 23;
                 }
                 if (tile.type == 40)
                 {
                     num15 = 28;
                 }
                 if (tile.type == 49)
                 {
                     num15 = 29;
                 }
                 if (tile.type == 50)
                 {
                     num15 = 22;
                 }
                 if (tile.type == 51)
                 {
                     num15 = 30;
                 }
                 if (tile.type == 52 || tile.type == 353)
                 {
                     num15 = 3;
                 }
                 if (tile.type == 53 || tile.type == 81 || tile.type == 151 || tile.type == 202 || tile.type == 274)
                 {
                     num15 = 32;
                 }
                 if (tile.type == 56 || tile.type == 152)
                 {
                     num15 = 37;
                 }
                 if (tile.type == 75)
                 {
                     num15 = 109;
                 }
                 if (tile.type == 57 || tile.type == 119 || tile.type == 141 || tile.type == 234)
                 {
                     num15 = 36;
                 }
                 if (tile.type == 59 || tile.type == 120)
                 {
                     num15 = 38;
                 }
                 if (tile.type == 61 || tile.type == 62 || tile.type == 74 || tile.type == 80 || tile.type == 188 || tile.type == 233 || tile.type == 236 || tile.type == 384)
                 {
                     num15 = 40;
                 }
                 if (tile.type == 238)
                 {
                     if (WorldGen.genRand.Next(3) == 0)
                     {
                         num15 = 167;
                     }
                     else
                     {
                         num15 = 166;
                     }
                 }
                 if (tile.type == 69)
                 {
                     num15 = 7;
                 }
                 if (tile.type == 71 || tile.type == 72 || tile.type == 190)
                 {
                     num15 = 26;
                 }
                 if (tile.type == 70)
                 {
                     num15 = 17;
                 }
                 if (tile.type == 112)
                 {
                     num15 = 14;
                 }
                 if (tile.type == 123)
                 {
                     num15 = 53;
                 }
                 if (tile.type == 161)
                 {
                     num15 = 80;
                 }
                 if (tile.type == 206)
                 {
                     num15 = 80;
                 }
                 if (tile.type == 162)
                 {
                     num15 = 80;
                 }
                 if (tile.type == 165)
                 {
                     if (tile.frameX < 54)
                     {
                         num15 = 80;
                     }
                     else if (tile.frameX >= 324)
                     {
                         num15 = 117;
                     }
                     else if (tile.frameX >= 270)
                     {
                         num15 = 14;
                     }
                     else if (tile.frameX >= 216)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX >= 162)
                     {
                         num15 = 147;
                     }
                     else if (tile.frameX >= 108)
                     {
                         num15 = 30;
                     }
                     else
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == 193)
                 {
                     num15 = 4;
                 }
                 if (tile.type == 194)
                 {
                     num15 = 26;
                 }
                 if (tile.type == 195)
                 {
                     num15 = 5;
                 }
                 if (tile.type == 196)
                 {
                     num15 = 108;
                 }
                 if (tile.type == 197)
                 {
                     num15 = 4;
                 }
                 if (tile.type == 153)
                 {
                     num15 = 26;
                 }
                 if (tile.type == 154)
                 {
                     num15 = 32;
                 }
                 if (tile.type == 155)
                 {
                     num15 = 2;
                 }
                 if (tile.type == 156)
                 {
                     num15 = 1;
                 }
                 if (tile.type == 116 || tile.type == 118 || tile.type == 147 || tile.type == 148)
                 {
                     num15 = 51;
                 }
                 if (tile.type == 109)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 0;
                     }
                     else
                     {
                         num15 = 47;
                     }
                 }
                 if (tile.type == 110 || tile.type == 113 || tile.type == 115)
                 {
                     num15 = 47;
                 }
                 if (tile.type == 107 || tile.type == 121)
                 {
                     num15 = 48;
                 }
                 if (tile.type == 108 || tile.type == 122 || tile.type == 146)
                 {
                     num15 = 49;
                 }
                 if (tile.type == 111 || tile.type == 145 || tile.type == 150)
                 {
                     num15 = 50;
                 }
                 if (tile.type == 133)
                 {
                     num15 = 50;
                     if (tile.frameX >= 54)
                     {
                         num15 = 146;
                     }
                 }
                 if (tile.type == 134)
                 {
                     num15 = 49;
                     if (tile.frameX >= 36)
                     {
                         num15 = 145;
                     }
                 }
                 if (tile.type == 149)
                 {
                     num15 = 49;
                 }
                 if (Main.tileAlch[(int)tile.type])
                 {
                     int num32 = (int)(tile.frameX / 18);
                     if (num32 == 0)
                     {
                         num15 = 3;
                     }
                     if (num32 == 1)
                     {
                         num15 = 3;
                     }
                     if (num32 == 2)
                     {
                         num15 = 7;
                     }
                     if (num32 == 3)
                     {
                         num15 = 17;
                     }
                     if (num32 == 4)
                     {
                         num15 = 3;
                     }
                     if (num32 == 5)
                     {
                         num15 = 6;
                     }
                     if (num32 == 6)
                     {
                         num15 = 224;
                     }
                 }
                 if (tile.type == 58 || tile.type == 76 || tile.type == 77)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 6;
                     }
                     else
                     {
                         num15 = 25;
                     }
                 }
                 if (tile.type == 37)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 6;
                     }
                     else
                     {
                         num15 = 23;
                     }
                 }
                 if (tile.type == 32)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 14;
                     }
                     else
                     {
                         num15 = 24;
                     }
                 }
                 if (tile.type == 352)
                 {
                     if (WorldGen.genRand.Next(3) == 0)
                     {
                         num15 = 5;
                     }
                     else
                     {
                         num15 = 125;
                     }
                 }
                 if (tile.type == 23 || tile.type == 24)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 14;
                     }
                     else
                     {
                         num15 = 17;
                     }
                 }
                 if (tile.type == 25 || tile.type == 31)
                 {
                     if (tile.type == 31 && tile.frameX >= 36)
                     {
                         num15 = 5;
                     }
                     else if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 14;
                     }
                     else
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == 20)
                 {
                     int num33 = (int)(tile.frameX / 54);
                     if (num33 == 1)
                     {
                         num15 = 122;
                     }
                     else if (num33 == 2)
                     {
                         num15 = 78;
                     }
                     else if (num33 == 3)
                     {
                         num15 = 77;
                     }
                     else if (num33 == 4)
                     {
                         num15 = 121;
                     }
                     else if (num33 == 5)
                     {
                         num15 = 79;
                     }
                     else
                     {
                         num15 = 7;
                     }
                 }
                 if (tile.type == 27)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 3;
                     }
                     else
                     {
                         num15 = 19;
                     }
                 }
                 if (tile.type == 129)
                 {
                     if (tile.frameX == 0 || tile.frameX == 54 || tile.frameX == 108)
                     {
                         num15 = 68;
                     }
                     else if (tile.frameX == 18 || tile.frameX == 72 || tile.frameX == 126)
                     {
                         num15 = 69;
                     }
                     else
                     {
                         num15 = 70;
                     }
                 }
                 if (tile.type == 385)
                 {
                     num15 = WorldGen.genRand.Next(68, 71);
                 }
                 if (tile.type == 4)
                 {
                     int num34 = (int)(tile.frameY / 22);
                     if (num34 == 0)
                     {
                         num15 = 6;
                     }
                     else if (num34 == 8)
                     {
                         num15 = 75;
                     }
                     else if (num34 == 9)
                     {
                         num15 = 135;
                     }
                     else if (num34 == 10)
                     {
                         num15 = 158;
                     }
                     else if (num34 == 11)
                     {
                         num15 = 169;
                     }
                     else if (num34 == 12)
                     {
                         num15 = 156;
                     }
                     else if (num34 == 13)
                     {
                         num15 = 234;
                     }
                     else if (num34 == 14)
                     {
                         num15 = 66;
                     }
                     else if (num34 == 15)
                     {
                         num15 = 242;
                     }
                     else
                     {
                         num15 = 58 + num34;
                     }
                 }
                 if (tile.type == 35)
                 {
                     num15 = 189;
                     if (tile.frameX < 36 && WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 6;
                     }
                 }
                 if ((tile.type == 34 || tile.type == 42) && WorldGen.genRand.Next(2) == 0)
                 {
                     num15 = 6;
                 }
                 if (tile.type == 270)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 271)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 79 || tile.type == 90 || tile.type == 101)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 33 || tile.type == 34 || tile.type == 42 || tile.type == 93 || tile.type == 100)
                 {
                     num15 = -1;
                 }
                 if (tile.type == 321)
                 {
                     num15 = 214;
                 }
                 if (tile.type == 322)
                 {
                     num15 = 215;
                 }
                 num14++;
                 continue;
                 IL_14A0:
                 num15 = -1;
                 goto IL_14A9;
             }
             if (effectOnly)
             {
                 return;
             }
             if (fail)
             {
                 if (tile.type == 2 || tile.type == 23 || tile.type == 109 || tile.type == 199)
                 {
                     tile.type = 0;
                 }
                 if (tile.type == 60 || tile.type == 70)
                 {
                     tile.type = 59;
                 }
                 if (Main.tileMoss[(int)tile.type])
                 {
                     tile.type = 1;
                 }
                 WorldGen.SquareTileFrame(i, j, true);
                 return;
             }
             if (tile.type == 21 && Main.netMode != 1)
             {
                 int num41 = (int)(tile.frameX / 18);
                 int y = j - (int)(tile.frameY / 18);
                 while (num41 > 1)
                 {
                     num41 -= 2;
                 }
                 num41 = i - num41;
                 if (!Chest.DestroyChest(num41, y))
                 {
                     return;
                 }
             }
             if (tile.type == 88 && Main.netMode != 1)
             {
                 int num42 = (int)(tile.frameX / 18);
                 int y2 = j - (int)(tile.frameY / 18);
                 num42 %= 3;
                 num42 = i - num42;
                 if (!Chest.DestroyChest(num42, y2))
                 {
                     return;
                 }
             }
             if (tile.type == 51 && tile.wall == 62 && WorldGen.genRand.Next(4) != 0)
             {
                 noItem = true;
             }
             if (!noItem && !WorldGen.stopDrops && Main.netMode != 1)
             {
                 bool flag = false;
                 int num43 = -1;
                 int num44 = -1;
                 int num45 = -1;
                 if (tile.type == 3)
                 {
                     num43 = 400;
                     num44 = 100;
                     if (tile.frameX >= 108)
                     {
                         num43 *= 3;
                         num44 *= 3;
                     }
                 }
                 if (tile.type == 73)
                 {
                     num43 = 200;
                     num44 = 50;
                     if (tile.frameX >= 108)
                     {
                         num43 *= 3;
                         num44 *= 3;
                     }
                 }
                 if (tile.type == 61)
                 {
                     num45 = 80;
                     if (tile.frameX >= 108)
                     {
                         num45 *= 3;
                     }
                 }
                 if (tile.type == 74)
                 {
                     num45 = 40;
                     if (tile.frameX >= 108)
                     {
                         num45 *= 3;
                     }
                 }
                 if (tile.type == 62)
                 {
                     num45 = 250;
                 }
                 if (tile.type == 185)
                 {
                     if (tile.frameY == 0 && tile.frameX < 214)
                     {
                         num43 = 6;
                     }
                     if (tile.frameY == 18 && (tile.frameX < 214 || tile.frameX >= 1368))
                     {
                         num43 = 6;
                     }
                 }
                 else if (tile.type == 186)
                 {
                     if (tile.frameX >= 378 && tile.frameX <= 700)
                     {
                         num43 = 6;
                     }
                 }
                 else if (tile.type == 187)
                 {
                     if (tile.frameX >= 756 && tile.frameX <= 916)
                     {
                         num43 = 6;
                     }
                     if (tile.frameX <= 322)
                     {
                         num43 = 6;
                     }
                 }
                 else if (tile.type == 233)
                 {
                     num45 = 10;
                 }
                 if (num43 > 0 && NPC.CountNPCS(357) < 5 && WorldGen.genRand.Next(num43) == 0)
                 {
                     int type2 = 357;
                     if (WorldGen.genRand.Next(NPC.goldCritterChance) == 0)
                     {
                         type2 = 448;
                     }
                     int num46 = NPC.NewNPC(i * 16 + 10, j * 16, type2, 0, 0f, 0f, 0f, 0f, 255);
                     Main.npc[num46].TargetClosest(true);
                     Main.npc[num46].velocity.Y = (float)WorldGen.genRand.Next(-50, -21) * 0.1f;
                     Main.npc[num46].velocity.X = (float)WorldGen.genRand.Next(0, 26) * 0.1f * (float)(-(float)Main.npc[num46].direction);
                     Main.npc[num46].direction *= -1;
                     Main.npc[num46].netUpdate = true;
                 }
                 if (num44 > 0 && NPC.CountNPCS(377) < 5 && WorldGen.genRand.Next(num44) == 0)
                 {
                     int type3 = 377;
                     if (WorldGen.genRand.Next(NPC.goldCritterChance) == 0)
                     {
                         type3 = 446;
                     }
                     int num47 = NPC.NewNPC(i * 16 + 10, j * 16, type3, 0, 0f, 0f, 0f, 0f, 255);
                     Main.npc[num47].TargetClosest(true);
                     Main.npc[num47].velocity.Y = (float)WorldGen.genRand.Next(-50, -21) * 0.1f;
                     Main.npc[num47].velocity.X = (float)WorldGen.genRand.Next(0, 26) * 0.1f * (float)(-(float)Main.npc[num47].direction);
                     Main.npc[num47].direction *= -1;
                     Main.npc[num47].netUpdate = true;
                 }
                 if (num45 > 0 && NPC.CountNPCS(485) + NPC.CountNPCS(486) + NPC.CountNPCS(487) < 8 && WorldGen.genRand.Next(num45) == 0)
                 {
                     int type4 = 485;
                     if (WorldGen.genRand.Next(4) == 0)
                     {
                         type4 = 486;
                     }
                     if (WorldGen.genRand.Next(12) == 0)
                     {
                         type4 = 487;
                     }
                     int num48 = NPC.NewNPC(i * 16 + 10, j * 16, type4, 0, 0f, 0f, 0f, 0f, 255);
                     Main.npc[num48].TargetClosest(true);
                     Main.npc[num48].velocity.Y = (float)WorldGen.genRand.Next(-50, -21) * 0.1f;
                     Main.npc[num48].velocity.X = (float)WorldGen.genRand.Next(0, 26) * 0.1f * (float)(-(float)Main.npc[num48].direction);
                     Main.npc[num48].direction *= -1;
                     Main.npc[num48].netUpdate = true;
                 }
                 int num49 = 0;
                 int num50 = 0;
                 if (tile.type == 0 || tile.type == 2 || tile.type == 109)
                 {
                     num49 = 2;
                 }
                 else if (tile.type == 368)
                 {
                     num49 = 3086;
                 }
                 else if (tile.type == 369)
                 {
                     num49 = 3087;
                 }
                 else if (tile.type == 367)
                 {
                     num49 = 3081;
                 }
                 else if (tile.type == 379)
                 {
                     num49 = 3214;
                 }
                 else if (tile.type == 353)
                 {
                     num49 = 2996;
                 }
                 else if (tile.type == 365)
                 {
                     num49 = 3077;
                 }
                 else if (tile.type == 366)
                 {
                     num49 = 3078;
                 }
                 else if ((tile.type == 52 || tile.type == 62) && WorldGen.genRand.Next(2) == 0 && Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].cordage)
                 {
                     num49 = 2996;
                 }
                 else if (tile.type == 357)
                 {
                     num49 = 3066;
                 }
                 else if (tile.type == 1)
                 {
                     num49 = 3;
                 }
                 else if (tile.type == 3 || tile.type == 73)
                 {
                     if (WorldGen.genRand.Next(2) == 0 && (Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].HasItem(281) || Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].HasItem(986)))
                     {
                         num49 = 283;
                     }
                 }
                 else if (tile.type == 227)
                 {
                     int num51 = (int)(tile.frameX / 34);
                     num49 = 1107 + num51;
                     if (num51 >= 8 && num51 <= 11)
                     {
                         num49 = 3385 + num51 - 8;
                     }
                 }
                 else if (tile.type == 4)
                 {
                     int num52 = (int)(tile.frameY / 22);
                     if (num52 == 0)
                     {
                         num49 = 8;
                     }
                     else if (num52 == 8)
                     {
                         num49 = 523;
                     }
                     else if (num52 == 9)
                     {
                         num49 = 974;
                     }
                     else if (num52 == 10)
                     {
                         num49 = 1245;
                     }
                     else if (num52 == 11)
                     {
                         num49 = 1333;
                     }
                     else if (num52 == 12)
                     {
                         num49 = 2274;
                     }
                     else if (num52 == 13)
                     {
                         num49 = 3004;
                     }
                     else if (num52 == 14)
                     {
                         num49 = 3045;
                     }
                     else if (num52 == 15)
                     {
                         num49 = 3114;
                     }
                     else
                     {
                         num49 = 426 + num52;
                     }
                 }
                 else if (tile.type == 239)
                 {
                     int num53 = (int)(tile.frameX / 18);
                     if (num53 == 0)
                     {
                         num49 = 20;
                     }
                     if (num53 == 1)
                     {
                         num49 = 703;
                     }
                     if (num53 == 2)
                     {
                         num49 = 22;
                     }
                     if (num53 == 3)
                     {
                         num49 = 704;
                     }
                     if (num53 == 4)
                     {
                         num49 = 21;
                     }
                     if (num53 == 5)
                     {
                         num49 = 705;
                     }
                     if (num53 == 6)
                     {
                         num49 = 19;
                     }
                     if (num53 == 7)
                     {
                         num49 = 706;
                     }
                     if (num53 == 8)
                     {
                         num49 = 57;
                     }
                     if (num53 == 9)
                     {
                         num49 = 117;
                     }
                     if (num53 == 10)
                     {
                         num49 = 175;
                     }
                     if (num53 == 11)
                     {
                         num49 = 381;
                     }
                     if (num53 == 12)
                     {
                         num49 = 1184;
                     }
                     if (num53 == 13)
                     {
                         num49 = 382;
                     }
                     if (num53 == 14)
                     {
                         num49 = 1191;
                     }
                     if (num53 == 15)
                     {
                         num49 = 391;
                     }
                     if (num53 == 16)
                     {
                         num49 = 1198;
                     }
                     if (num53 == 17)
                     {
                         num49 = 1006;
                     }
                     if (num53 == 18)
                     {
                         num49 = 1225;
                     }
                     if (num53 == 19)
                     {
                         num49 = 1257;
                     }
                     if (num53 == 20)
                     {
                         num49 = 1552;
                     }
                     if (num53 == 21)
                     {
                         num49 = 3261;
                     }
                     if (num53 == 22)
                     {
                         num49 = 3467;
                     }
                 }
                 else if (tile.type == 380)
                 {
                     int num54 = (int)(tile.frameY / 18);
                     num49 = 3215 + num54;
                 }
                 else if (tile.type == 383)
                 {
                     num49 = 620;
                 }
                 else if (tile.type == 315)
                 {
                     num49 = 2435;
                 }
                 else if (tile.type == 330)
                 {
                     num49 = 71;
                 }
                 else if (tile.type == 331)
                 {
                     num49 = 72;
                 }
                 else if (tile.type == 332)
                 {
                     num49 = 73;
                 }
                 else if (tile.type == 333)
                 {
                     num49 = 74;
                 }
                 else if (tile.type == 5)
                 {
                     if (tile.frameX >= 22 && tile.frameY >= 198)
                     {
                         if (Main.netMode != 1)
                         {
                             if (WorldGen.genRand.Next(2) == 0)
                             {
                                 int num55 = j;
                                 while (Main.tile[i, num55] != null && (!Main.tile[i, num55].active() || !Main.tileSolid[(int)Main.tile[i, num55].type] || Main.tileSolidTop[(int)Main.tile[i, num55].type]))
                                 {
                                     num55++;
                                 }
                                 if (Main.tile[i, num55] != null)
                                 {
                                     if (Main.tile[i, num55].type == 2 || Main.tile[i, num55].type == 109 || Main.tile[i, num55].type == 147 || Main.tile[i, num55].type == 199 || Main.tile[i, num55].type == 23)
                                     {
                                         num49 = 9;
                                         num50 = 27;
                                     }
                                     else
                                     {
                                         num49 = 9;
                                     }
                                 }
                             }
                             else
                             {
                                 num49 = 9;
                             }
                         }
                     }
                     else
                     {
                         num49 = 9;
                     }
                     if (num49 == 9)
                     {
                         int num56 = i;
                         int num57 = j;
                         if (tile.frameX == 66 && tile.frameY <= 45)
                         {
                             num56++;
                         }
                         if (tile.frameX == 88 && tile.frameY >= 66 && tile.frameY <= 110)
                         {
                             num56--;
                         }
                         if (tile.frameX == 22 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num56--;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num56++;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 198)
                         {
                             num56++;
                         }
                         if (tile.frameX == 66 && tile.frameY >= 198)
                         {
                             num56--;
                         }
                         while (!Main.tile[num56, num57].active() || !Main.tileSolid[(int)Main.tile[num56, num57].type])
                         {
                             num57++;
                         }
                         if (Main.tile[num56, num57].active())
                         {
                             ushort type = Main.tile[num56, num57].type;
                             if (type <= 70)
                             {
                                 if (type != 23)
                                 {
                                     if (type != 60)
                                     {
                                         if (type == 70)
                                         {
                                             num49 = 183;
                                         }
                                     }
                                     else
                                     {
                                         num49 = 620;
                                     }
                                 }
                                 else
                                 {
                                     num49 = 619;
                                 }
                             }
                             else if (type != 109)
                             {
                                 if (type != 147)
                                 {
                                     if (type == 199)
                                     {
                                         num49 = 911;
                                     }
                                 }
                                 else
                                 {
                                     num49 = 2503;
                                 }
                             }
                             else
                             {
                                 num49 = 621;
                             }
                         }
                         int num58 = (int)Player.FindClosest(new Vector2((float)(num56 * 16), (float)(num57 * 16)), 16, 16);
                         int axe = Main.player[num58].inventory[Main.player[num58].selectedItem].axe;
                         if (WorldGen.genRand.Next(200) < axe)
                         {
                             flag = true;
                         }
                     }
                 }
                 else if (tile.type == 323)
                 {
                     num49 = 2504;
                     if (tile.frameX <= 132 && tile.frameX >= 88)
                     {
                         num50 = 27;
                     }
                     int num59 = j;
                     while (!Main.tile[i, num59].active() || !Main.tileSolid[(int)Main.tile[i, num59].type])
                     {
                         num59++;
                     }
                     if (Main.tile[i, num59].active())
                     {
                         ushort type = Main.tile[i, num59].type;
                         if (type != 112)
                         {
                             if (type != 116)
                             {
                                 if (type == 234)
                                 {
                                     num49 = 911;
                                 }
                             }
                             else
                             {
                                 num49 = 621;
                             }
                         }
                         else
                         {
                             num49 = 619;
                         }
                     }
                 }
                 else if (tile.type == 408)
                 {
                     num49 = 3460;
                 }
                 else if (tile.type == 409)
                 {
                     num49 = 3461;
                 }
                 else if (tile.type == 415)
                 {
                     num49 = 3573;
                 }
                 else if (tile.type == 416)
                 {
                     num49 = 3574;
                 }
                 else if (tile.type == 417)
                 {
                     num49 = 3575;
                 }
                 else if (tile.type == 418)
                 {
                     num49 = 3576;
                 }
                 else if (tile.type >= 255 && tile.type <= 261)
                 {
                     num49 = (int)(1970 + tile.type - 255);
                 }
                 else if (tile.type >= 262 && tile.type <= 268)
                 {
                     num49 = (int)(1970 + tile.type - 262);
                 }
                 else if (tile.type == 171)
                 {
                     if (tile.frameX >= 10)
                     {
                         WorldGen.dropXmasTree(i, j, 0);
                         WorldGen.dropXmasTree(i, j, 1);
                         WorldGen.dropXmasTree(i, j, 2);
                         WorldGen.dropXmasTree(i, j, 3);
                     }
                 }
                 else if (tile.type == 324)
                 {
                     switch (tile.frameY / 22)
                     {
                         case 0:
                             num49 = 2625;
                             break;
                         case 1:
                             num49 = 2626;
                             break;
                     }
                 }
                 else if (tile.type == 272)
                 {
                     num49 = 1344;
                 }
                 else if (tile.type == 273)
                 {
                     num49 = 2119;
                 }
                 else if (tile.type == 274)
                 {
                     num49 = 2120;
                 }
                 else if (tile.type == 326)
                 {
                     num49 = 2693;
                 }
                 else if (tile.type == 327)
                 {
                     num49 = 2694;
                 }
                 else if (tile.type == 345)
                 {
                     num49 = 2787;
                 }
                 else if (tile.type == 328)
                 {
                     num49 = 2695;
                 }
                 else if (tile.type == 329)
                 {
                     num49 = 2697;
                 }
                 else if (tile.type == 346)
                 {
                     num49 = 2792;
                 }
                 else if (tile.type == 347)
                 {
                     num49 = 2793;
                 }
                 else if (tile.type == 348)
                 {
                     num49 = 2794;
                 }
                 else if (tile.type == 350)
                 {
                     num49 = 2860;
                 }
                 else if (tile.type == 336)
                 {
                     num49 = 2701;
                 }
                 else if (tile.type == 340)
                 {
                     num49 = 2751;
                 }
                 else if (tile.type == 341)
                 {
                     num49 = 2752;
                 }
                 else if (tile.type == 342)
                 {
                     num49 = 2753;
                 }
                 else if (tile.type == 343)
                 {
                     num49 = 2754;
                 }
                 else if (tile.type == 344)
                 {
                     num49 = 2755;
                 }
                 else if (tile.type == 351)
                 {
                     num49 = 2868;
                 }
                 else if (tile.type == 251)
                 {
                     num49 = 1725;
                 }
                 else if (tile.type == 252)
                 {
                     num49 = 1727;
                 }
                 else if (tile.type == 253)
                 {
                     num49 = 1729;
                 }
                 else if (tile.type == 325)
                 {
                     num49 = 2692;
                 }
                 else if (tile.type == 370)
                 {
                     num49 = 3100;
                 }
                 else if (tile.type == 396)
                 {
                     num49 = 3271;
                 }
                 else if (tile.type == 400)
                 {
                     num49 = 3276;
                 }
                 else if (tile.type == 401)
                 {
                     num49 = 3277;
                 }
                 else if (tile.type == 403)
                 {
                     num49 = 3339;
                 }
                 else if (tile.type == 397)
                 {
                     num49 = 3272;
                 }
                 else if (tile.type == 398)
                 {
                     num49 = 3274;
                 }
                 else if (tile.type == 399)
                 {
                     num49 = 3275;
                 }
                 else if (tile.type == 402)
                 {
                     num49 = 3338;
                 }
                 else if (tile.type == 404)
                 {
                     num49 = 3347;
                 }
                 else if (tile.type == 407)
                 {
                     num49 = 3380;
                 }
                 else if (tile.type == 170)
                 {
                     num49 = 1872;
                 }
                 else if (tile.type == 284)
                 {
                     num49 = 2173;
                 }
                 else if (tile.type == 214)
                 {
                     num49 = 85;
                 }
                 else if (tile.type == 213)
                 {
                     num49 = 965;
                 }
                 else if (tile.type == 211)
                 {
                     num49 = 947;
                 }
                 else if (tile.type == 6)
                 {
                     num49 = 11;
                 }
                 else if (tile.type == 7)
                 {
                     num49 = 12;
                 }
                 else if (tile.type == 8)
                 {
                     num49 = 13;
                 }
                 else if (tile.type == 9)
                 {
                     num49 = 14;
                 }
                 else if (tile.type == 202)
                 {
                     num49 = 824;
                 }
                 else if (tile.type == 234)
                 {
                     num49 = 1246;
                 }
                 else if (tile.type == 226)
                 {
                     num49 = 1101;
                 }
                 else if (tile.type == 224)
                 {
                     num49 = 1103;
                 }
                 else if (tile.type == 36)
                 {
                     num49 = 1869;
                 }
                 else if (tile.type == 311)
                 {
                     num49 = 2260;
                 }
                 else if (tile.type == 312)
                 {
                     num49 = 2261;
                 }
                 else if (tile.type == 313)
                 {
                     num49 = 2262;
                 }
                 else if (tile.type == 229)
                 {
                     num49 = 1125;
                 }
                 else if (tile.type == 230)
                 {
                     num49 = 1127;
                 }
                 else if (tile.type == 225)
                 {
                     if (WorldGen.genRand.Next(3) == 0)
                     {
                         tile.honey(true);
                         tile.liquid = 255;
                     }
                     else
                     {
                         num49 = 1124;
                         if (Main.netMode != 1 && WorldGen.genRand.Next(2) == 0)
                         {
                             int num60 = 1;
                             if (WorldGen.genRand.Next(3) == 0)
                             {
                                 num60 = 2;
                             }
                             for (int num61 = 0; num61 < num60; num61++)
                             {
                                 int type5 = WorldGen.genRand.Next(210, 212);
                                 int num62 = NPC.NewNPC(i * 16 + 8, j * 16 + 15, type5, 1, 0f, 0f, 0f, 0f, 255);
                                 Main.npc[num62].velocity.X = (float)WorldGen.genRand.Next(-200, 201) * 0.002f;
                                 Main.npc[num62].velocity.Y = (float)WorldGen.genRand.Next(-200, 201) * 0.002f;
                                 Main.npc[num62].netUpdate = true;
                             }
                         }
                     }
                 }
                 else if (tile.type == 221)
                 {
                     num49 = 1104;
                 }
                 else if (tile.type == 222)
                 {
                     num49 = 1105;
                 }
                 else if (tile.type == 223)
                 {
                     num49 = 1106;
                 }
                 else if (tile.type == 248)
                 {
                     num49 = 1589;
                 }
                 else if (tile.type == 249)
                 {
                     num49 = 1591;
                 }
                 else if (tile.type == 250)
                 {
                     num49 = 1593;
                 }
                 else if (tile.type == 191)
                 {
                     num49 = 9;
                 }
                 else if (tile.type == 203)
                 {
                     num49 = 836;
                 }
                 else if (tile.type == 204)
                 {
                     num49 = 880;
                 }
                 else if (tile.type == 166)
                 {
                     num49 = 699;
                 }
                 else if (tile.type == 167)
                 {
                     num49 = 700;
                 }
                 else if (tile.type == 168)
                 {
                     num49 = 701;
                 }
                 else if (tile.type == 169)
                 {
                     num49 = 702;
                 }
                 else if (tile.type == 123)
                 {
                     num49 = 424;
                 }
                 else if (tile.type == 124)
                 {
                     num49 = 480;
                 }
                 else if (tile.type == 157)
                 {
                     num49 = 619;
                 }
                 else if (tile.type == 158)
                 {
                     num49 = 620;
                 }
                 else if (tile.type == 159)
                 {
                     num49 = 621;
                 }
                 else if (tile.type == 161)
                 {
                     num49 = 664;
                 }
                 else if (tile.type == 206)
                 {
                     num49 = 883;
                 }
                 else if (tile.type == 232)
                 {
                     num49 = 1150;
                 }
                 else if (tile.type == 198)
                 {
                     num49 = 775;
                 }
                 else if (tile.type == 314)
                 {
                     num49 = Minecart.GetTrackItem(tile);
                 }
                 else if (tile.type == 189)
                 {
                     num49 = 751;
                 }
                 else if (tile.type == 195)
                 {
                     num49 = 763;
                 }
                 else if (tile.type == 194)
                 {
                     num49 = 766;
                 }
                 else if (tile.type == 193)
                 {
                     num49 = 762;
                 }
                 else if (tile.type == 196)
                 {
                     num49 = 765;
                 }
                 else if (tile.type == 197)
                 {
                     num49 = 767;
                 }
                 else if (tile.type == 178)
                 {
                     int num63 = (int)(tile.frameX / 18);
                     if (num63 == 0)
                     {
                         num49 = 181;
                     }
                     else if (num63 == 1)
                     {
                         num49 = 180;
                     }
                     else if (num63 == 2)
                     {
                         num49 = 177;
                     }
                     else if (num63 == 3)
                     {
                         num49 = 179;
                     }
                     else if (num63 == 4)
                     {
                         num49 = 178;
                     }
                     else if (num63 == 5)
                     {
                         num49 = 182;
                     }
                     else if (num63 == 6)
                     {
                         num49 = 999;
                     }
                 }
                 else if (tile.type == 149)
                 {
                     if (tile.frameX == 0 || tile.frameX == 54)
                     {
                         num49 = 596;
                     }
                     else if (tile.frameX == 18 || tile.frameX == 72)
                     {
                         num49 = 597;
                     }
                     else if (tile.frameX == 36 || tile.frameX == 90)
                     {
                         num49 = 598;
                     }
                 }
                 else if (tile.type == 13)
                 {
                     int num64 = (int)(tile.frameX / 18);
                     if (num64 == 1)
                     {
                         num49 = 28;
                     }
                     else if (num64 == 2)
                     {
                         num49 = 110;
                     }
                     else if (num64 == 3)
                     {
                         num49 = 350;
                     }
                     else if (num64 == 4)
                     {
                         num49 = 351;
                     }
                     else if (num64 == 5)
                     {
                         num49 = 2234;
                     }
                     else if (num64 == 6)
                     {
                         num49 = 2244;
                     }
                     else if (num64 == 7)
                     {
                         num49 = 2257;
                     }
                     else if (num64 == 8)
                     {
                         num49 = 2258;
                     }
                     else
                     {
                         num49 = 31;
                     }
                 }
                 else if (tile.type == 19)
                 {
                     int num65 = (int)(tile.frameY / 18);
                     if (num65 == 0)
                     {
                         num49 = 94;
                     }
                     else if (num65 == 1)
                     {
                         num49 = 631;
                     }
                     else if (num65 == 2)
                     {
                         num49 = 632;
                     }
                     else if (num65 == 3)
                     {
                         num49 = 633;
                     }
                     else if (num65 == 4)
                     {
                         num49 = 634;
                     }
                     else if (num65 == 5)
                     {
                         num49 = 913;
                     }
                     else if (num65 == 6)
                     {
                         num49 = 1384;
                     }
                     else if (num65 == 7)
                     {
                         num49 = 1385;
                     }
                     else if (num65 == 8)
                     {
                         num49 = 1386;
                     }
                     else if (num65 == 9)
                     {
                         num49 = 1387;
                     }
                     else if (num65 == 10)
                     {
                         num49 = 1388;
                     }
                     else if (num65 == 11)
                     {
                         num49 = 1389;
                     }
                     else if (num65 == 12)
                     {
                         num49 = 1418;
                     }
                     else if (num65 == 13)
                     {
                         num49 = 1457;
                     }
                     else if (num65 == 14)
                     {
                         num49 = 1702;
                     }
                     else if (num65 == 15)
                     {
                         num49 = 1796;
                     }
                     else if (num65 == 16)
                     {
                         num49 = 1818;
                     }
                     else if (num65 == 17)
                     {
                         num49 = 2518;
                     }
                     else if (num65 == 18)
                     {
                         num49 = 2549;
                     }
                     else if (num65 == 19)
                     {
                         num49 = 2566;
                     }
                     else if (num65 == 20)
                     {
                         num49 = 2581;
                     }
                     else if (num65 == 21)
                     {
                         num49 = 2627;
                     }
                     else if (num65 == 22)
                     {
                         num49 = 2628;
                     }
                     else if (num65 == 23)
                     {
                         num49 = 2629;
                     }
                     else if (num65 == 24)
                     {
                         num49 = 2630;
                     }
                     else if (num65 == 25)
                     {
                         num49 = 2744;
                     }
                     else if (num65 == 26)
                     {
                         num49 = 2822;
                     }
                     else if (num65 == 27)
                     {
                         num49 = 3144;
                     }
                     else if (num65 == 28)
                     {
                         num49 = 3146;
                     }
                     else if (num65 == 29)
                     {
                         num49 = 3145;
                     }
                 }
                 else if (tile.type == 22)
                 {
                     num49 = 56;
                 }
                 else if (tile.type == 140)
                 {
                     num49 = 577;
                 }
                 else if (tile.type == 23)
                 {
                     num49 = 2;
                 }
                 else if (tile.type == 25)
                 {
                     num49 = 61;
                 }
                 else if (tile.type == 30)
                 {
                     num49 = 9;
                 }
                 else if (tile.type == 191)
                 {
                     num49 = 9;
                 }
                 else if (tile.type == 208)
                 {
                     num49 = 911;
                 }
                 else if (tile.type == 33)
                 {
                     int num66 = (int)(tile.frameY / 22);
                     num49 = 105;
                     if (num66 == 1)
                     {
                         num49 = 1405;
                     }
                     else if (num66 == 2)
                     {
                         num49 = 1406;
                     }
                     else if (num66 == 3)
                     {
                         num49 = 1407;
                     }
                     else if (num66 >= 4 && num66 <= 13)
                     {
                         num49 = 2045 + num66 - 4;
                     }
                     else if (num66 >= 14 && num66 <= 16)
                     {
                         num49 = 2153 + num66 - 14;
                     }
                     else if (num66 == 17)
                     {
                         num49 = 2236;
                     }
                     else if (num66 == 18)
                     {
                         num49 = 2523;
                     }
                     else if (num66 == 19)
                     {
                         num49 = 2542;
                     }
                     else if (num66 == 20)
                     {
                         num49 = 2556;
                     }
                     else if (num66 == 21)
                     {
                         num49 = 2571;
                     }
                     else if (num66 == 22)
                     {
                         num49 = 2648;
                     }
                     else if (num66 == 23)
                     {
                         num49 = 2649;
                     }
                     else if (num66 == 24)
                     {
                         num49 = 2650;
                     }
                     else if (num66 == 25)
                     {
                         num49 = 2651;
                     }
                     else if (num66 == 26)
                     {
                         num49 = 2818;
                     }
                     else if (num66 == 27)
                     {
                         num49 = 3171;
                     }
                     else if (num66 == 28)
                     {
                         num49 = 3173;
                     }
                     else if (num66 == 29)
                     {
                         num49 = 3172;
                     }
                 }
                 else if (tile.type == 372)
                 {
                     num49 = 3117;
                 }
                 else if (tile.type == 371)
                 {
                     num49 = 3113;
                 }
                 else if (tile.type == 174)
                 {
                     num49 = 713;
                 }
                 else if (tile.type == 37)
                 {
                     num49 = 116;
                 }
                 else if (tile.type == 38)
                 {
                     num49 = 129;
                 }
                 else if (tile.type == 39)
                 {
                     num49 = 131;
                 }
                 else if (tile.type == 40)
                 {
                     num49 = 133;
                 }
                 else if (tile.type == 41)
                 {
                     num49 = 134;
                 }
                 else if (tile.type == 43)
                 {
                     num49 = 137;
                 }
                 else if (tile.type == 44)
                 {
                     num49 = 139;
                 }
                 else if (tile.type == 45)
                 {
                     num49 = 141;
                 }
                 else if (tile.type == 46)
                 {
                     num49 = 143;
                 }
                 else if (tile.type == 47)
                 {
                     num49 = 145;
                 }
                 else if (tile.type == 48)
                 {
                     num49 = 147;
                 }
                 else if (tile.type == 49)
                 {
                     num49 = 148;
                 }
                 else if (tile.type == 51)
                 {
                     num49 = 150;
                 }
                 else if (tile.type == 53)
                 {
                     num49 = 169;
                 }
                 else if (tile.type == 151)
                 {
                     num49 = 607;
                 }
                 else if (tile.type == 152)
                 {
                     num49 = 609;
                 }
                 else if (tile.type == 54)
                 {
                     num49 = 170;
                 }
                 else if (tile.type == 56)
                 {
                     num49 = 173;
                 }
                 else if (tile.type == 57)
                 {
                     num49 = 172;
                 }
                 else if (tile.type == 58)
                 {
                     num49 = 174;
                 }
                 else if (tile.type == 60)
                 {
                     num49 = 176;
                 }
                 else if (tile.type == 70)
                 {
                     num49 = 176;
                 }
                 else if (tile.type == 75)
                 {
                     num49 = 192;
                 }
                 else if (tile.type == 76)
                 {
                     num49 = 214;
                 }
                 else if (tile.type == 78)
                 {
                     num49 = 222;
                 }
                 else if (tile.type == 81)
                 {
                     num49 = 275;
                 }
                 else if (tile.type == 80)
                 {
                     num49 = 276;
                 }
                 else if (tile.type == 188)
                 {
                     num49 = 276;
                 }
                 else if (tile.type == 107)
                 {
                     num49 = 364;
                 }
                 else if (tile.type == 108)
                 {
                     num49 = 365;
                 }
                 else if (tile.type == 111)
                 {
                     num49 = 366;
                 }
                 else if (tile.type == 150)
                 {
                     num49 = 604;
                 }
                 else if (tile.type == 112)
                 {
                     num49 = 370;
                 }
                 else if (tile.type == 116)
                 {
                     num49 = 408;
                 }
                 else if (tile.type == 117)
                 {
                     num49 = 409;
                 }
                 else if (tile.type == 129)
                 {
                     num49 = 502;
                 }
                 else if (tile.type == 118)
                 {
                     num49 = 412;
                 }
                 else if (tile.type == 119)
                 {
                     num49 = 413;
                 }
                 else if (tile.type == 120)
                 {
                     num49 = 414;
                 }
                 else if (tile.type == 121)
                 {
                     num49 = 415;
                 }
                 else if (tile.type == 122)
                 {
                     num49 = 416;
                 }
                 else if (tile.type == 136)
                 {
                     num49 = 538;
                 }
                 else if (tile.type == 385)
                 {
                     num49 = 3234;
                 }
                 else if (tile.type == 137)
                 {
                     int num67 = (int)(tile.frameY / 18);
                     if (num67 == 0)
                     {
                         num49 = 539;
                     }
                     if (num67 == 1)
                     {
                         num49 = 1146;
                     }
                     if (num67 == 2)
                     {
                         num49 = 1147;
                     }
                     if (num67 == 3)
                     {
                         num49 = 1148;
                     }
                     if (num67 == 4)
                     {
                         num49 = 1149;
                     }
                 }
                 else if (tile.type == 141)
                 {
                     num49 = 580;
                 }
                 else if (tile.type == 145)
                 {
                     num49 = 586;
                 }
                 else if (tile.type == 146)
                 {
                     num49 = 591;
                 }
                 else if (tile.type == 147)
                 {
                     num49 = 593;
                 }
                 else if (tile.type == 148)
                 {
                     num49 = 594;
                 }
                 else if (tile.type == 153)
                 {
                     num49 = 611;
                 }
                 else if (tile.type == 154)
                 {
                     num49 = 612;
                 }
                 else if (tile.type == 155)
                 {
                     num49 = 613;
                 }
                 else if (tile.type == 156)
                 {
                     num49 = 614;
                 }
                 else if (tile.type == 160)
                 {
                     num49 = 662;
                 }
                 else if (tile.type == 175)
                 {
                     num49 = 717;
                 }
                 else if (tile.type == 176)
                 {
                     num49 = 718;
                 }
                 else if (tile.type == 177)
                 {
                     num49 = 719;
                 }
                 else if (tile.type == 163)
                 {
                     num49 = 833;
                 }
                 else if (tile.type == 164)
                 {
                     num49 = 834;
                 }
                 else if (tile.type == 200)
                 {
                     num49 = 835;
                 }
                 else if (tile.type == 210)
                 {
                     num49 = 937;
                 }
                 else if (tile.type == 135)
                 {
                     int num68 = (int)(tile.frameY / 18);
                     if (num68 == 0)
                     {
                         num49 = 529;
                     }
                     if (num68 == 1)
                     {
                         num49 = 541;
                     }
                     if (num68 == 2)
                     {
                         num49 = 542;
                     }
                     if (num68 == 3)
                     {
                         num49 = 543;
                     }
                     if (num68 == 4)
                     {
                         num49 = 852;
                     }
                     if (num68 == 5)
                     {
                         num49 = 853;
                     }
                     if (num68 == 6)
                     {
                         num49 = 1151;
                     }
                 }
                 else if (tile.type == 144)
                 {
                     if (tile.frameX == 0)
                     {
                         num49 = 583;
                     }
                     if (tile.frameX == 18)
                     {
                         num49 = 584;
                     }
                     if (tile.frameX == 36)
                     {
                         num49 = 585;
                     }
                 }
                 else if (tile.type == 130)
                 {
                     num49 = 511;
                 }
                 else if (tile.type == 131)
                 {
                     num49 = 512;
                 }
                 else if (tile.type == 61 || tile.type == 74)
                 {
                     if (tile.frameX == 144 && tile.type == 61)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, 331, WorldGen.genRand.Next(2, 4), false, 0, false, false);
                     }
                     else if (tile.frameX == 162 && tile.type == 61)
                     {
                         num49 = 223;
                     }
                     else if (tile.frameX >= 108 && tile.frameX <= 126 && tile.type == 61 && WorldGen.genRand.Next(20) == 0)
                     {
                         num49 = 208;
                     }
                     else if (WorldGen.genRand.Next(100) == 0)
                     {
                         num49 = 195;
                     }
                 }
                 else if (tile.type == 59 || tile.type == 60)
                 {
                     num49 = 176;
                 }
                 else if (tile.type == 190)
                 {
                     num49 = 183;
                 }
                 else if (tile.type == 71 || tile.type == 72)
                 {
                     if (WorldGen.genRand.Next(50) == 0)
                     {
                         num49 = 194;
                     }
                     else if (WorldGen.genRand.Next(2) == 0)
                     {
                         num49 = 183;
                     }
                 }
                 else if (tile.type >= 63 && tile.type <= 68)
                 {
                     num49 = (int)(tile.type - 63 + 177);
                 }
                 else if (tile.type == 50)
                 {
                     if (tile.frameX == 90)
                     {
                         num49 = 165;
                     }
                     else
                     {
                         num49 = 149;
                     }
                 }
                 else if (Main.tileAlch[(int)tile.type])
                 {
                     if (tile.type > 82)
                     {
                         int num69 = (int)(tile.frameX / 18);
                         bool flag2 = false;
                         num49 = 313 + num69;
                         int type6 = 307 + num69;
                         if (tile.type == 84)
                         {
                             flag2 = true;
                         }
                         if (num69 == 0 && Main.dayTime)
                         {
                             flag2 = true;
                         }
                         if (num69 == 1 && !Main.dayTime)
                         {
                             flag2 = true;
                         }
                         if (num69 == 3 && !Main.dayTime && (Main.bloodMoon || Main.moonPhase == 0))
                         {
                             flag2 = true;
                         }
                         if (num69 == 4 && (Main.raining || Main.cloudAlpha > 0f))
                         {
                             flag2 = true;
                         }
                         if (num69 == 5 && !Main.raining && Main.dayTime && Main.time > 40500.0)
                         {
                             flag2 = true;
                         }
                         if (num69 == 6)
                         {
                             num49 = 2358;
                             type6 = 2357;
                         }
                         int num70 = (int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16);
                         if (Main.player[num70].inventory[Main.player[num70].selectedItem].type == 213)
                         {
                             Item.NewItem(i * 16, j * 16, 16, 16, type6, WorldGen.genRand.Next(1, 6), false, 0, false, false);
                             Item.NewItem(i * 16, j * 16, 16, 16, num49, WorldGen.genRand.Next(1, 3), false, 0, false, false);
                             num49 = -1;
                         }
                         else if (flag2)
                         {
                             int stack = WorldGen.genRand.Next(1, 4);
                             Item.NewItem(i * 16, j * 16, 16, 16, type6, stack, false, 0, false, false);
                         }
                     }
                 }
                 else if (tile.type == 321)
                 {
                     num49 = 2503;
                 }
                 else if (tile.type == 322)
                 {
                     num49 = 2504;
                 }
                 if (num49 > 0)
                 {
                     int num71 = 1;
                     if (flag)
                     {
                         num71++;
                     }
                     Item.NewItem(i * 16, j * 16, 16, 16, num49, num71, false, -1, false, false);
                 }
                 if (num50 > 0)
                 {
                     Item.NewItem(i * 16, j * 16, 16, 16, num50, 1, false, -1, false, false);
                 }
             }
             if (Main.netMode != 2)
             {
                 AchievementsHelper.NotifyTileDestroyed(Main.player[Main.myPlayer], tile.type);
             }
             tile.active(false);
             tile.halfBrick(false);
             tile.frameX = -1;
             tile.frameY = -1;
             tile.color(0);
             tile.frameNumber(0);
             if (tile.type == 58 && j > Main.maxTilesY - 200)
             {
                 tile.lava(true);
                 tile.liquid = 128;
             }
             else if (tile.type == 54)
             {
                 WorldGen.SquareWallFrame(i, j, true);
             }
             tile.type = 0;
             tile.inActive(false);
             WorldGen.SquareTileFrame(i, j, true);
         }
     }
 }
示例#10
0
        private void NetHooks_GetData(GetDataEventArgs e)
        {
            switch (e.MsgID)
            {
                case PacketTypes.ChestGetContents:
                    if (!e.Handled)
                        using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
                        {
                            var reader = new BinaryReader(data);
                            int x = reader.ReadInt32();
                            int y = reader.ReadInt32();
                            reader.Close();
                            int id = Terraria.Chest.FindChest(x, y);
                            CPlayer player = Players[e.Msg.whoAmI];
                            TPPlayer tplayer = tPulse.Players[e.Msg.whoAmI];
                            if (id != -1)
                            {
                                Chest chest = ChestManager.GetChest(id);
                                bool naggedAboutLock = false;

                                switch (player.GetState())
                                {
                                    case SettingState.Setting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                                player.SendMessage("You already own this chest!", Color.Red);
                                            else
                                            {
                                                player.SendMessage("This chest is already owned by someone!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);
                                            chest.Lock();

                                            player.SendMessage("This chest is now yours, and yours only.", Color.Red);
                                        }

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.RegionSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                                if (chest.IsRegionLocked())
                                                {
                                                    chest.regionLock(false);

                                                    player.SendMessage(
                                                        "Region share disabled. This chest is now only yours. To fully remove protection use \"cunset\".",
                                                        Color.Red);
                                                }
                                                else if (tPulse.Regions.InArea(x, y))
                                                {
                                                    chest.regionLock(true);

                                                    player.SendMessage(
                                                        "This chest is now shared between region users. Use this command again to disable it.",
                                                        Color.Red);
                                                }
                                                else
                                                    player.SendMessage(
                                                        "You can region share chest only if the chest is inside region!",
                                                        Color.Red);
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else if (tPulse.Regions.InArea(x, y))
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);
                                            chest.Lock();
                                            chest.regionLock(true);

                                            player.SendMessage(
                                                "This chest is now shared between region users with you as owner. Use this command again to disable region sharing (You will still be owner).",
                                                Color.Red);
                                        }
                                        else
                                            player.SendMessage(
                                                "You can region share chest only if the chest is inside region!",
                                                Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.PublicSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                                if (chest.IsLocked())
                                                {
                                                    chest.UnLock();
                                                    player.SendMessage(
                                                        "This chest is now public! Use \"/cpset\" to set it private.",
                                                        Color.Red);
                                                }
                                                else
                                                {
                                                    chest.Lock();
                                                    player.SendMessage(
                                                        "This chest is now private! Use \"/cpset\" to set it public.",
                                                        Color.Red);
                                                }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);

                                            player.SendMessage(
                                                "This chest is now yours. This chest is public. Use \"/cpset\" to set it private.",
                                                Color.Red);
                                        }
                                        break;

                                    case SettingState.Deleting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player) ||
                                                tplayer.Group.HasPermission("removechestprotection"))
                                            {
                                                chest.Reset();
                                                player.SendMessage("This chest is no longer yours!", Color.Red);
                                            }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                            player.SendMessage("This chest is not protected!", Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.PasswordSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                            {
                                                chest.SetPassword(player.PasswordForChest);
                                                player.SendMessage("This chest is now protected with password.",
                                                    Color.Red);
                                            }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);
                                            chest.Lock();
                                            chest.SetPassword(player.PasswordForChest);

                                            player.SendMessage(
                                                "This chest is now protected with password, with you as owner.",
                                                Color.Red);
                                        }

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.PasswordUnSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                            {
                                                chest.SetPassword("");
                                                player.SendMessage("This chest password has been removed.", Color.Red);
                                            }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                            player.SendMessage("This chest is not protected!", Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.RefillSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                            {
                                                chest.SetRefill(true);
                                                player.SendMessage("This chest is will now always refill with items.",
                                                    Color.Red);
                                            }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);
                                            chest.SetRefill(true);

                                            player.SendMessage(
                                                "This chest is will now always refill with items, with you as owner.",
                                                Color.Red);
                                        }

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.RefillUnSetting:
                                        if (chest.IsRefill())
                                            if (chest.HasOwner())
                                                if (chest.IsOwnerConvert(player))
                                                {
                                                    chest.SetRefill(false);
                                                    player.SendMessage(
                                                        "This chest is will no longer refill with items.", Color.Red);
                                                }
                                                else
                                                {
                                                    player.SendMessage("This chest isn't yours!", Color.Red);
                                                    naggedAboutLock = true;
                                                }
                                            else
                                            {
                                                chest.SetID(id);
                                                chest.SetPosition(x, y);
                                                chest.SetOwner(player);
                                                chest.SetRefill(false);

                                                player.SendMessage("This chest is will no longer refill with items",
                                                    Color.Red);
                                            }
                                        else
                                            player.SendMessage("This chest is not refilling!", Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.UnLocking:
                                        if (chest.HasOwner())
                                            if (chest.IsLocked())
                                                if (chest.GetPassword() == "")
                                                {
                                                    player.SendMessage("This chest can't be unlocked with password!",
                                                        Color.Red);
                                                    naggedAboutLock = true;
                                                }
                                                else if (chest.IsOwnerConvert(player))
                                                    player.SendMessage(
                                                        "You are owner of this chest, you dont need to unlock it. If you want to remove password use \"/lockchest remove\".",
                                                        Color.Red);
                                                else if (player.HasAccessToChest(chest.GetID()))
                                                    player.SendMessage("You already have access to this chest!",
                                                        Color.Red);
                                                else if (chest.CheckPassword(player.PasswordForChest))
                                                {
                                                    player.UnlockedChest(chest.GetID());
                                                    player.SendMessage(
                                                        "Chest unlocked! When you leave game you must unlock it again.",
                                                        Color.Red);
                                                }
                                                else
                                                {
                                                    player.SendMessage("Wrong password for chest!", Color.Red);
                                                    naggedAboutLock = true;
                                                }
                                            else
                                                player.SendMessage("This chest is not locked!", Color.Red);
                                        else
                                            player.SendMessage("This chest is not protected!", Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;
                                }

                                if (tplayer.Group.HasPermission("showchestinfo")) //if player should see chest info
                                    player.SendMessage(
                                        string.Format(
                                            "Chest Owner: {0} || Public: {1} || RegionShare: {2} || Password: {3} || Refill: {4}",
                                            chest.GetOwner() == "" ? "-None-" : chest.GetOwner(),
                                            chest.IsLocked() ? "No" : "Yes", chest.IsRegionLocked() ? "Yes" : "No",
                                            chest.GetPassword() == "" ? "No" : "Yes",
                                            chest.IsRefill() ? "Yes" : "No"), Color.Yellow);

                                if (!tplayer.Group.HasPermission("openallchests") && !chest.IsOpenFor(player))
                                    //if player doesnt has permission to see inside chest, then break and message
                                {
                                    e.Handled = true;
                                    if (!naggedAboutLock)
                                        player.SendMessage(
                                            chest.GetPassword() != ""
                                                ? "This chest is magically locked with password. ( Use \"/cunlock PASSWORD\" to unlock it. )"
                                                : "This chest is magically locked.", Color.IndianRed);
                                    return;
                                }
                            }
                            if (player.GetState() != SettingState.None)
                                //if player is still setting something - end his setting
                                player.SetState(SettingState.None);
                        }
                    break;
                case PacketTypes.TileKill:
                case PacketTypes.Tile:
                    using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
                        try
                        {
                            var reader = new BinaryReader(data);
                            if (e.MsgID == PacketTypes.Tile)
                            {
                                byte type = reader.ReadByte();
                                if (!(type == 0 || type == 4))
                                    return;
                            }
                            int x = reader.ReadInt32();
                            int y = reader.ReadInt32();
                            reader.Close();

                            if (Chest.TileIsChest(x, y)) //if is Chest
                            {
                                int id = Terraria.Chest.FindChest(x, y);
                                CPlayer player = Players[e.Msg.whoAmI];
                                TPPlayer tplayer = tPulse.Players[e.Msg.whoAmI];

                                //dirty fix for finding chest, try to find chest point around
                                if (id == -1)
                                    try
                                    {
                                        id = Terraria.Chest.FindChest(x - 1, y); //search one tile left
                                        if (id == -1)
                                        {
                                            id = Terraria.Chest.FindChest(x - 1, y - 1);
                                            //search one tile left and one tile up
                                            if (id == -1)
                                                id = Terraria.Chest.FindChest(x, y - 1); //search one tile up
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        Log.Write(ex.ToString(), LogLevel.Error);
                                    }

                                if (id != -1) //if have found chest
                                {
                                    Chest chest = ChestManager.GetChest(id);
                                    if (chest.HasOwner()) //if owned stop removing
                                    {
                                        if (tplayer.Group.HasPermission("removechestprotection") ||
                                            chest.IsOwnerConvert(player))
                                            //display more verbose info to player who has permission to remove protection on this chest
                                            player.SendMessage(
                                                "This chest is protected. To remove it, first remove protection using \"/cunset\" command.",
                                                Color.Red);
                                        else
                                            player.SendMessage("This chest is protected!", Color.Red);

                                        player.SendTileSquare(x, y);
                                        e.Handled = true;
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Log.Write(ex.ToString(), LogLevel.Error);
                        }
                    break;
                case PacketTypes.ChestItem:
                    using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
                    {
                        var reader = new BinaryReader(data);
                        short id = reader.ReadInt16();
                        byte slot = reader.ReadByte();
                        byte stack = reader.ReadByte();
                        byte prefix = reader.ReadByte();
                        short type = reader.ReadByte();
                        if (id != -1)
                        {
                            Chest chest = ChestManager.GetChest(id);
                            if (chest.IsRefill())
                                e.Handled = true;
                            if (!e.Handled)
                            {
                                var item = Main.chest[id].item[slot];
                                var newitem = new Item();
                                newitem.netDefaults(type);
                                newitem.Prefix(prefix);
                                newitem.AffixName();
                                Log.Write(string.Format("{0}({1}) in slot {2} in chest at {3}x{4} was modified to {5}({6}) by {7}",
                                    item.name, item.stack, slot, Main.chest[id].x, Main.chest[id].y, newitem.name, stack, tPulse.Players[e.Msg.whoAmI].UserAccountName),
                                    LogLevel.Info, false);
                            }
                        }
                    }
                    break;
            }
        }
示例#11
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);
		}
示例#12
0
        private static bool HandlePlayerSlot(GetDataHandlerArgs args)
        {
            int plr = args.Data.ReadInt8();
            int slot = args.Data.ReadInt8();
            int stack = args.Data.ReadInt8();
            short prefix = (short) args.Data.ReadInt8();
            int type = (int) args.Data.ReadInt16();

            if (plr != args.Player.Index)
            {
                return true;
            }

            if (slot < 0 || slot > NetItem.maxNetInventory)
            {
                return true;
            }

            var item = new Item();
            item.netDefaults(type);
            item.Prefix(prefix);

            if (stack > item.maxStack && type != 0)
            {
                args.Player.IgnoreActionsForCheating = true;
            }

            if (args.Player.IsLoggedIn)
            {
                args.Player.PlayerData.StoreSlot(slot, type, prefix, stack);
            }

            return false;
        }
示例#13
0
文件: TShock.cs 项目: InanZen/TShock
        public static bool HackedInventory(TSPlayer player)
        {
            bool check = false;

            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            for (int i = 0; i < NetItem.maxNetInventory; i++)
            {
                if (i < 49)
                {
                    Item item = new Item();
                    if (inventory[i] != null && inventory[i].netID != 0)
                    {
                        item.netDefaults(inventory[i].netID);
                        item.Prefix(inventory[i].prefix);
                        item.AffixName();
                        if (inventory[i].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, inventory[i].stack),
                                Color.Cyan);
                        }
                    }
                }
                else
                {
                    Item item = new Item();
                    if (armor[i - 48] != null && armor[i - 48].netID != 0)
                    {
                        item.netDefaults(armor[i - 48].netID);
                        item.Prefix(armor[i - 48].prefix);
                        item.AffixName();
                        if (armor[i - 48].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.name, armor[i - 48].stack),
                                Color.Cyan);
                        }
                    }
                }
            }

            return check;
        }
示例#14
0
        void Craft(CommandArgs args)
        {
            if (!args.Player.IsLoggedIn) {
            args.Player.SendErrorMessage("You must be logged in to use this command!");
            return;
              }

              Item item;
              var player = RPlayers[args.Player.Index];
              int page = 1;

              if (args.Parameters.Count == 0) {
            if (player.activeRecipe != null) {
              Utils.PrintCurrentRecipe(args.Player);
              return;
            }
            else {
              args.Player.SendErrorMessage("Invalid syntax! Proper syntax: /craft <recipe/-quit/-list/-allcats/-cat/-confirm>");
              return;
            }
              }

              switch (args.Parameters[0].ToLowerInvariant()) {
            #region -list
            case "-list":
              if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out page))
            return;

              List<string> allRec = CommandRecipes.config.Recipes.Where(r => !r.invisible).Select(r => r.name).ToList();

              PaginationTools.SendPage(args.Player, page, PaginationTools.BuildLinesFromTerms(allRec),
            new PaginationTools.Settings {
              HeaderFormat = "All Recipes ({0}/{1}):",
              FooterFormat = "Type /craft -list {0} for more.",
              NothingToDisplayString = "There are currently no recipes defined!"
            });
              return;
            #endregion

            #region -allcats
            case "-allcats":
              if (!PaginationTools.TryParsePageNumber(args.Parameters, 1, args.Player, out page))
            return;

              List<string> cats = config.Recipes.SelectMany(x => x.categories).Distinct().ToList();

              PaginationTools.SendPage(args.Player, page, PaginationTools.BuildLinesFromTerms(cats),
            new PaginationTools.Settings {
              HeaderFormat = "Recipe Categories ({0}/{1}):",
              FooterFormat = "Type /craft -allcats {0} for more.",
              NothingToDisplayString = "There are currently no categories defined!"
            });
              return;
            #endregion

            #region -cat
            case "-cat":
              if (!PaginationTools.TryParsePageNumber(args.Parameters, 2, args.Player, out page))
            return;

              if (args.Parameters.Count < 2) {
            args.Player.SendErrorMessage("Invalid category!");
            return;
              }

              args.Parameters.RemoveAt(0);
              string cat = string.Join(" ", args.Parameters);
              List<string> catrec = config.Recipes
            .Where(r => !r.invisible && r.categories.Contains(cat, StringComparer.InvariantCultureIgnoreCase))
            .Select(x => x.name).ToList();

              PaginationTools.SendPage(args.Player, page, PaginationTools.BuildLinesFromTerms(catrec),
            new PaginationTools.Settings {
              HeaderFormat = "Recipes in this category ({0}/{1}):",
              FooterFormat = string.Format("Type /craft -cat {0} {{{0}}} for more.", cat),
              NothingToDisplayString = "There are currently no recipes in this category defined!"
            });
              return;
            #endregion

            #region -quit
            case "-quit":
              //args.Player.SendInfoMessage("Returning dropped items...");
              //foreach (RecItem itm in player.droppedItems) {
              //  item = new Item();
              //  item.SetDefaults(itm.name);
              //  args.Player.GiveItem(item.type, itm.name, item.width, item.height, itm.stack, itm.prefix);
              //  player.TSPlayer.SendInfoMessage("Returned {0}.", Utils.FormatItem((Item)itm));
              //}
              player.activeRecipe = null;
              player.TSPlayer.SendInfoMessage("Successfully quit crafting.");
              return;
            #endregion

            #region -confirm
            case "-confirm":
              int ingcount = 0;
              Dictionary<int, bool> finishedGroup = new Dictionary<int, bool>();
              Dictionary<int, int> slots = new Dictionary<int, int>();
              int ingredientCount = player.activeRecipe.ingredients.Count;
              foreach (Ingredient ing in player.activeRecipe.ingredients) {
            if (!finishedGroup.ContainsKey(ing.group)) {
              finishedGroup.Add(ing.group, false);
            }
            else if (ing.group != 0)
              ingredientCount--;
              }
              foreach (Ingredient ing in player.activeRecipe.ingredients) {
            if (ing.group == 0 || !finishedGroup[ing.group]) {
              Dictionary<int, RecItem> ingSlots = new Dictionary<int, RecItem>();
              for (int i = 58; i >= 0; i--) {
                item = args.TPlayer.inventory[i];
                if (ing.name == item.name && (ing.prefix == -1 || ing.prefix == item.prefix)) {
                  ingSlots.Add(i, new RecItem(item.name, item.stack, item.prefix));
                }
              }
              if (ingSlots.Count == 0)
                continue;

              int totalStack = 0;
              foreach (var key in ingSlots.Keys)
                totalStack += ingSlots[key].stack;

              if (totalStack >= ing.stack) {
                foreach (var key in ingSlots.Keys)
                  slots.Add(key, (ingSlots[key].stack < ing.stack) ? args.TPlayer.inventory[key].stack : ing.stack);
                if (ing.group != 0)
                  finishedGroup[ing.group] = true;
                ingcount++;
              }
            }
              }

              if (ingcount < ingredientCount) {
            args.Player.SendErrorMessage("Insufficient ingredients!");
            return;
              }

              if (!args.Player.InventorySlotAvailable) {
            args.Player.SendErrorMessage("Insufficient inventory space!");
            return;
              }

              if (player.activeRecipe.SEconomyCost != 0 && SEconomyPlugin.Instance != null) {
            IBankAccount bankAccount = SEconomyPlugin.Instance.GetPlayerBankAccount(args.Player.Name);
            SEconomy seconomy = SEconomyPlugin.Instance;
            if (bankAccount.Balance < player.activeRecipe.SEconomyCost) {
              args.Player.SendErrorMessage("You don't have the necessary amount of {0} {1} to craft this recipe.", player.activeRecipe.SEconomyCost, seconomy.Configuration.MoneyConfiguration.MoneyNamePlural);
              return;
            }

            bankAccount.TransferTo(seconomy.WorldAccount, player.activeRecipe.SEconomyCost, BankAccountTransferOptions.AnnounceToSender, "Crafted " + player.activeRecipe.name, "/craft " + player.activeRecipe.name);
              }

              foreach (var slot in slots) {
            item = args.TPlayer.inventory[slot.Key];
            var ing = player.activeRecipe.ingredients.GetIngredient(item.name, item.prefix);
            if (ing.stack > 0) {
              int stack;
              if (ing.stack < slot.Value)
                stack = ing.stack;
              else
                stack = slot.Value;

              item.stack -= stack;
              ing.stack -= stack;
              if (!player.droppedItems.ContainsItem(item.name, item.prefix))
                player.droppedItems.Add(new RecItem(item.name, stack, item.prefix));
              else
                player.droppedItems.GetItem(item.name, item.prefix).stack += slot.Value;
              NetMessage.SendData((int)PacketTypes.PlayerSlot, -1, -1, "", args.Player.Index, slot.Key);
            }
              }
              List<Product> lDetPros = Utils.DetermineProducts(player.activeRecipe.products);
              foreach (Product pro in lDetPros) {
            Item product = new Item();
            product.SetDefaults(pro.name);
            product.Prefix(pro.prefix);
            pro.prefix = product.prefix;
            player.TSPlayer.GiveItem(product.type, product.name, product.width, product.height, pro.stack, product.prefix);
            player.TSPlayer.SendSuccessMessage("Received {0}.", Utils.FormatItem((Item)pro));
              }
              List<RecItem> prods = new List<RecItem>();
              lDetPros.ForEach(i => prods.Add(new RecItem(i.name, i.stack, i.prefix)));
              Log.Recipe(player.activeRecipe.name, player.droppedItems, prods, player.name);
              player.activeRecipe = null;
              player.droppedItems.Clear();
              player.TSPlayer.SendInfoMessage("Finished crafting.");
              return;
            #endregion

            #region default
            default:
              if (player.activeRecipe != null) {
            args.Player.SendErrorMessage("You must finish crafting or \"/craft -quit\" your current recipe!");
            return;
              }

              string recipe = string.Join(" ", args.Parameters);
              Recipe rec = config.Recipes.Where(r => r.name.ToLower() == recipe.ToLower()).FirstOrDefault();
              if (rec == null) {
            args.Player.SendErrorMessage("Invalid recipe!");
            return;
              }
              if (!rec.permissions.Contains("") && !args.Player.Group.CheckPermissions(rec.permissions)) {
            args.Player.SendErrorMessage("You do not have the required permission to craft the recipe: {0}!", rec.name);
            return;
              }
              if (!Utils.CheckIfInRegion(args.Player, rec.regions)) {
            args.Player.SendErrorMessage("You are not in a valid region to craft the recipe: {0}!", rec.name);
            return;
              }

              player.activeRecipe = rec.Clone();

              if (player.activeRecipe == null)
            return;

              Utils.PrintCurrentRecipe(args.Player);
              return;
              #endregion
              }
        }
示例#15
0
        private static bool HandlePlayerSlot(GetDataHandlerArgs args)
        {
            byte plr = args.Data.ReadInt8();
            byte slot = args.Data.ReadInt8();
            byte stack = args.Data.ReadInt8();
            byte prefix = args.Data.ReadInt8();
            short type = args.Data.ReadInt16();

            if (OnPlayerSlot(plr, slot, stack, prefix, type))
                return true;

            if (plr != args.Player.Index)
            {
                return true;
            }

            if (slot < 0 || slot > NetItem.maxNetInventory)
            {
                return true;
            }

            var item = new Item();
            item.netDefaults(type);
            item.Prefix(prefix);

            if (args.Player.IsLoggedIn)
            {
                args.Player.PlayerData.StoreSlot(slot, type, prefix, stack);
            }

            return false;
        }
示例#16
0
 public static void KillTile(int i, int j, bool fail = false, bool effectOnly = false, bool noItem = false)
 {
     if (i >= 0 && j >= 0 && i < Main.maxTilesX && j < Main.maxTilesY)
     {
         Tile tile = Main.tile[i, j];
         if (tile == null)
         {
             tile = new Tile();
             Main.tile[i, j] = tile;
         }
         if (tile.active())
         {
             if (j >= 1 && Main.tile[i, j - 1] == null)
             {
                 Main.tile[i, j - 1] = new Tile();
             }
             if (j >= 1 && Main.tile[i, j - 1].active() && ((Main.tile[i, j - 1].type == 5 && tile.type != TileID.Trees) || (Main.tile[i, j - 1].type == 323 && tile.type != TileID.PalmTree) || (Main.tile[i, j - 1].type == 21 && tile.type != TileID.Containers) || (Main.tile[i, j - 1].type == 323 && tile.type != TileID.PalmTree) || (Main.tile[i, j - 1].type == 88 && tile.type != TileID.Dressers) || (Main.tile[i, j - 1].type == 26 && tile.type != TileID.DemonAltar) || (Main.tile[i, j - 1].type == 72 && tile.type != TileID.MushroomTrees)))
             {
                 if (Main.tile[i, j - 1].type == 5)
                 {
                     if ((Main.tile[i, j - 1].frameX != 66 || Main.tile[i, j - 1].frameY < 0 || Main.tile[i, j - 1].frameY > 44) && (Main.tile[i, j - 1].frameX != 88 || Main.tile[i, j - 1].frameY < 66 || Main.tile[i, j - 1].frameY > 110) && Main.tile[i, j - 1].frameY < 198)
                     {
                         return;
                     }
                 }
                 else if (Main.tile[i, j - 1].type != 323 || Main.tile[i, j - 1].frameX == 66 || Main.tile[i, j - 1].frameX == 220)
                 {
                     return;
                 }
             }
             if (tile.type == TileID.ClosedDoor && tile.frameY >= 594 && tile.frameY <= 646)
             {
                 fail = true;
             }
             if (tile.type == TileID.Boulder)
             {
                 fail = WorldGen.CheckBoulderChest(i, j);
             }
             if (tile.type == TileID.Teleporter)
             {
                 int frameX = (int)tile.frameX;
                 int num = i - frameX % 54 / 18;
                 for (int k = 0; k < 3; k++)
                 {
                     if (Main.tile[num + k, j - 1].active() && Main.tile[num + k, j - 1].type == 21)
                     {
                         fail = true;
                         break;
                     }
                 }
             }
             if (!effectOnly && !WorldGen.stopDrops)
             {
                 if (tile.type == TileID.Plants || tile.type == TileID.HallowedPlants)
                 {
                     if (tile.frameX == 144)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, 5, 1, false, 0, false, false);
                     }
                 }
                 else if (tile.type == TileID.CorruptPlants)
                 {
                     if (tile.frameX == 144)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, 60, 1, false, 0, false, false);
                     }
                 }
                 else if (tile.type == TileID.FleshWeeds)
                 {
                     if (tile.frameX == 270)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, 2887, 1, false, 0, false, false);
                     }
                 }
             }
             if (tile.type == TileID.Mannequin || tile.type == TileID.Womannequin)
             {
                 int num2 = i;
                 int l = (int)tile.frameX;
                 int m;
                 for (m = (int)tile.frameX; m >= 100; m -= 100)
                 {
                 }
                 while (m >= 36)
                 {
                     m -= 36;
                 }
                 if (m == 18)
                 {
                     l = (int)Main.tile[i - 1, j].frameX;
                     num2--;
                 }
                 if (l >= 100)
                 {
                     int num3 = 0;
                     while (l >= 100)
                     {
                         l -= 100;
                         num3++;
                     }
                     int num4 = (int)(Main.tile[num2, j].frameY / 18);
                     if (num4 == 0)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, Item.headType[num3], 1, false, 0, false, false);
                     }
                     if (num4 == 1)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, Item.bodyType[num3], 1, false, 0, false, false);
                     }
                     if (num4 == 2)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, Item.legType[num3], 1, false, 0, false, false);
                     }
                     for (l = (int)Main.tile[num2, j].frameX; l >= 100; l -= 100)
                     {
                     }
                     Main.tile[num2, j].frameX = (short)l;
                 }
             }
             if (tile.type == TileID.WeaponsRack)
             {
                 int num5 = i;
                 int n = (int)tile.frameX;
                 int num6 = (int)tile.frameX;
                 int num7 = 0;
                 while (num6 >= 5000)
                 {
                     num6 -= 5000;
                     num7++;
                 }
                 if (num7 != 0)
                 {
                     num6 = (num7 - 1) * 18;
                 }
                 num6 %= 54;
                 if (num6 == 18)
                 {
                     n = (int)Main.tile[i - 1, j].frameX;
                     num5--;
                 }
                 if (num6 == 36)
                 {
                     n = (int)Main.tile[i - 2, j].frameX;
                     num5 -= 2;
                 }
                 if (n >= 5000)
                 {
                     int num8 = n % 5000;
                     num8 -= 100;
                     int num9 = (int)Main.tile[num5 + 1, j].frameX;
                     if (num9 >= 25000)
                     {
                         num9 -= 25000;
                     }
                     else
                     {
                         num9 -= 10000;
                     }
                     if (Main.netMode != 1)
                     {
                         Item item = new Item();
                         item.netDefaults(num8);
                         item.Prefix(num9);
                         int num10 = Item.NewItem(i * 16, j * 16, 16, 16, num8, 1, true, 0, false, false);
                         item.position = Main.item[num10].position;
                         Main.item[num10] = item;
                         NetMessage.SendData((int)PacketTypes.ItemDrop, -1, -1, "", num10, 0f, 0f, 0f, 0, 0, 0);
                     }
                     n = (int)Main.tile[num5, j].frameX;
                     int num11 = 0;
                     while (n >= 5000)
                     {
                         n -= 5000;
                         num11++;
                     }
                     if (num11 != 0)
                     {
                         n = (num11 - 1) * 18;
                     }
                     Main.tile[num5, j].frameX = (short)n;
                     Main.tile[num5 + 1, j].frameX = (short)(n + 18);
                 }
             }
             if (tile.type == TileID.ItemFrame)
             {
                 int num12 = TEItemFrame.Find(i - (int)(tile.frameX % 36 / 18), j - (int)(tile.frameY % 36 / 18));
                 if (num12 != -1 && ((TEItemFrame)TileEntity.ByID[num12]).item.stack > 0)
                 {
                     ((TEItemFrame)TileEntity.ByID[num12]).DropItem();
                     if (Main.netMode != 2)
                     {
                         Main.blockMouse = true;
                     }
                     return;
                 }
             }
             int num13 = 10;
             if (tile.type == TileID.Larva)
             {
                 num13 = 6;
             }
             if (fail)
             {
                 num13 = 3;
             }
             if (tile.type == TileID.Boulder)
             {
                 num13 = 0;
             }
             if (tile.type == TileID.WaterDrip)
             {
                 num13 = 0;
             }
             if (tile.type == TileID.LavaDrip)
             {
                 num13 = 0;
             }
             if (tile.type == TileID.HoneyDrip)
             {
                 num13 = 0;
             }
             if (tile.type >= TileID.BoneWelder && tile.type <= TileID.HoneyDispenser)
             {
                 num13 = 0;
             }
             if (tile.type == TileID.CrystalBall)
             {
                 num13 = 0;
             }
             if (tile.type == TileID.AmmoBox)
             {
                 num13 = 0;
             }
             if (tile.type == TileID.BewitchingTable)
             {
                 num13 = 0;
             }
             if (tile.type == TileID.AlchemyTable)
             {
                 num13 = 0;
             }
             if (tile.type == TileID.FishingCrate)
             {
                 num13 = 0;
             }
             int num14 = 0;
             while (num14 < num13)
             {
                 int num15 = 0;
                 if (tile.type == TileID.Firework)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.FireworksBox)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.FireworkFountain)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Dirt)
                 {
                     num15 = 0;
                 }
                 if (tile.type == TileID.LeafBlock)
                 {
                     num15 = 3;
                 }
                 if (tile.type == TileID.Shadewood)
                 {
                     num15 = 126;
                 }
                 else if (tile.type == TileID.LunarOre || tile.type == TileID.LunarBrick)
                 {
                     num15 = 265;
                 }
                 if (tile.type == TileID.Anvils)
                 {
                     num15 = 1;
                     if (tile.frameX >= 36)
                     {
                         num15 = 82;
                     }
                 }
                 else if (tile.type == TileID.LunarBlockSolar)
                 {
                     num15 = 6;
                 }
                 else if (tile.type == TileID.LunarBlockVortex)
                 {
                     num15 = 61;
                 }
                 else if (tile.type == TileID.LunarBlockNebula)
                 {
                     num15 = 242;
                 }
                 else if (tile.type == TileID.LunarBlockStardust)
                 {
                     num15 = 135;
                 }
                 if (tile.type == TileID.Stone || tile.type == TileID.Furnaces || tile.type == TileID.GrayBrick || tile.type == TileID.RedBrick || tile.type == TileID.BlueDungeonBrick || tile.type == TileID.GreenDungeonBrick || tile.type == TileID.PinkDungeonBrick || tile.type == TileID.Spikes || Main.tileStone[(int)tile.type] || tile.type == TileID.Tombstones || tile.type == TileID.Bathtubs || tile.type == TileID.Lampposts || tile.type == TileID.CookingPots || tile.type == TileID.Safes || tile.type == TileID.TrashCan || tile.type == TileID.Pearlstone || tile.type == TileID.ActiveStoneBlock || tile.type == TileID.InactiveStoneBlock || tile.type == TileID.Lever || tile.type == TileID.PressurePlates || tile.type == TileID.PressurePlates || tile.type == TileID.InletPump || tile.type == TileID.OutletPump || tile.type == TileID.Timers || tile.type == TileID.LandMine || tile.type == TileID.WaterFountain || tile.type == TileID.Teleporter || tile.type == TileID.Autohammer || tile.type == TileID.Cog || tile.type == TileID.StoneSlab || tile.type == TileID.HeavyWorkBench || tile.type == TileID.LunarMonolith)
                 {
                     num15 = 1;
                 }
                 if (tile.type == TileID.Bubble)
                 {
                     num15 = 257;
                 }
                 if (tile.type == TileID.DynastyWood)
                 {
                     num15 = 207;
                 }
                 if (tile.type == TileID.RedDynastyShingles)
                 {
                     num15 = 208;
                 }
                 if (tile.type == TileID.BlueDynastyShingles)
                 {
                     num15 = 209;
                 }
                 if (tile.type == TileID.GrandfatherClocks)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.ChineseLanterns || tile.type == TileID.SkullLanterns || tile.type == TileID.Candelabras || tile.type == TileID.PlatinumCandle || tile.type == TileID.PlatinumCandelabra)
                 {
                     num15 = 6;
                 }
                 if (tile.type == TileID.WoodBlock || tile.type == TileID.Loom || tile.type == TileID.Kegs || tile.type == TileID.Sawmill || tile.type == TileID.TinkerersWorkbench || tile.type == TileID.WoodenBeam || tile.type == TileID.Mannequin || tile.type == TileID.Womannequin)
                 {
                     num15 = 7;
                 }
                 if (tile.type == TileID.PeaceCandle)
                 {
                     num15 = 242;
                 }
                 if (tile.type == TileID.PinkSlimeBlock)
                 {
                     num15 = 243;
                 }
                 if (tile.type == TileID.WeaponsRack)
                 {
                     num15 = 7;
                 }
                 ushort type = tile.type;
                 if (type <= 139)
                 {
                     if (type <= 89)
                     {
                         switch (type)
                         {
                             case 10:
                             case 11:
                                 goto IL_14A0;
                             default:
                                 switch (type)
                                 {
                                     case 87:
                                     case 89:
                                         goto IL_14A0;
                                 }
                                 break;
                         }
                     }
                     else if (type == 93 || type == 139)
                     {
                         goto IL_14A0;
                     }
                 }
                 else if (type <= 320)
                 {
                     if (type == 209)
                     {
                         goto IL_14A0;
                     }
                     switch (type)
                     {
                         case 319:
                         case 320:
                             goto IL_14A0;
                     }
                 }
                 else
                 {
                     switch (type)
                     {
                         case 386:
                         case 387:
                         case 390:
                             goto IL_14A0;
                         case 388:
                         case 389:
                             break;
                         default:
                             switch (type)
                             {
                                 case 405:
                                 case 406:
                                 case 411:
                                 case 412:
                                     goto IL_14A0;
                                 case 407:
                                     num15 = 10;
                                     break;
                             }
                             break;
                     }
                 }
                 IL_14A9:
                 if (tile.type == TileID.Painting3X3)
                 {
                     int num16 = (int)(tile.frameX / 54);
                     if (tile.frameY >= 54)
                     {
                         num16 += 36;
                     }
                     num15 = 7;
                     if (num16 == 16 || num16 == 17)
                     {
                         num15 = 26;
                     }
                     if (num16 >= 46 && num16 <= 49)
                     {
                         num15 = -1;
                     }
                 }
                 if (tile.type == TileID.Painting4X3)
                 {
                     num15 = 1;
                 }
                 if (tile.type == TileID.Painting6X4)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Sundial)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.ChimneySmoke)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Painting3X2)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Presents)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.SilkRope)
                 {
                     num15 = 239;
                 }
                 if (tile.type == TileID.WebRope)
                 {
                     num15 = 30;
                 }
                 if (tile.type == TileID.MarbleBlock || tile.type == TileID.Marble)
                 {
                     num15 = 236;
                 }
                 if (tile.type == TileID.Granite || tile.type == TileID.GraniteBlock)
                 {
                     num15 = 240;
                 }
                 if (tile.type == TileID.PineTree)
                 {
                     num15 = 196;
                 }
                 if (tile.type == TileID.Coralstone)
                 {
                     num15 = 225;
                 }
                 if (tile.type == TileID.ChlorophyteBrick)
                 {
                     num15 = 128;
                 }
                 if (tile.type == TileID.CrimtaneBrick)
                 {
                     num15 = 117;
                 }
                 if (tile.type == TileID.ShroomitePlating)
                 {
                     num15 = 42;
                 }
                 if (tile.type == TileID.MartianConduitPlating)
                 {
                     num15 = 226;
                 }
                 if (tile.type == TileID.MeteoriteBrick)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 6;
                     }
                     else
                     {
                         num15 = 23;
                     }
                 }
                 if (tile.type == TileID.ChristmasTree)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 196;
                     }
                     else
                     {
                         num15 = -1;
                     }
                 }
                 if (tile.type == TileID.Waterfall)
                 {
                     num15 = 13;
                 }
                 if (tile.type == TileID.Lavafall)
                 {
                     num15 = 13;
                 }
                 if (tile.type == TileID.Honeyfall)
                 {
                     num15 = 13;
                 }
                 if (tile.type == TileID.LivingFire)
                 {
                     num15 = 6;
                 }
                 if (tile.type == TileID.LivingCursedFire)
                 {
                     num15 = 75;
                 }
                 if (tile.type == TileID.LivingDemonFire)
                 {
                     num15 = 65;
                 }
                 if (tile.type == TileID.LivingFrostFire)
                 {
                     num15 = 135;
                 }
                 if (tile.type == TileID.LivingIchor)
                 {
                     num15 = 169;
                 }
                 if (tile.type == TileID.LivingUltrabrightFire)
                 {
                     num15 = 156;
                 }
                 if (tile.type == TileID.Confetti)
                 {
                     num15 = 13;
                 }
                 if (tile.type == TileID.ConfettiBlack)
                 {
                     num15 = 13;
                 }
                 if (tile.type == TileID.CopperCoinPile)
                 {
                     num15 = 9;
                 }
                 if (tile.type == TileID.SilverCoinPile)
                 {
                     num15 = 11;
                 }
                 if (tile.type == TileID.GoldCoinPile)
                 {
                     num15 = 19;
                 }
                 if (tile.type == TileID.PlatinumCoinPile)
                 {
                     num15 = 11;
                 }
                 if (tile.type == TileID.Bookcases)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Platforms)
                 {
                     int num17 = (int)(tile.frameY / 18);
                     if (num17 == 0 || num17 == 9 || num17 == 10 || num17 == 11 || num17 == 12)
                     {
                         num15 = 7;
                     }
                     else if (num17 == 1)
                     {
                         num15 = 77;
                     }
                     else if (num17 == 2)
                     {
                         num15 = 78;
                     }
                     else if (num17 == 3)
                     {
                         num15 = 79;
                     }
                     else if (num17 == 4)
                     {
                         num15 = 26;
                     }
                     else if (num17 == 5)
                     {
                         num15 = 126;
                     }
                     else if (num17 == 13)
                     {
                         num15 = 109;
                     }
                     else if (num17 == 14)
                     {
                         num15 = 13;
                     }
                     else if (num17 >= 15 || num17 <= 16)
                     {
                         num15 = -1;
                     }
                     else if (num17 == 17)
                     {
                         num15 = 215;
                     }
                     else if (num17 == 18)
                     {
                         num15 = 214;
                     }
                     else
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == TileID.Beds)
                 {
                     int num18 = (int)(tile.frameY / 36);
                     if (num18 == 0)
                     {
                         num15 = 7;
                     }
                     else if (num18 == 1)
                     {
                         num15 = 77;
                     }
                     else if (num18 == 2)
                     {
                         num15 = 78;
                     }
                     else if (num18 == 3)
                     {
                         num15 = 79;
                     }
                     else if (num18 == 4)
                     {
                         num15 = 126;
                     }
                     else if (num18 == 8)
                     {
                         num15 = 109;
                     }
                     else if (num18 >= 9)
                     {
                         num15 = -1;
                     }
                     else
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == TileID.WorkBenches)
                 {
                     int num19 = (int)(tile.frameX / 36);
                     if (num19 == 0)
                     {
                         num15 = 7;
                     }
                     else if (num19 == 1)
                     {
                         num15 = 77;
                     }
                     else if (num19 == 2)
                     {
                         num15 = 78;
                     }
                     else if (num19 == 3)
                     {
                         num15 = 79;
                     }
                     else if (num19 == 4)
                     {
                         num15 = 26;
                     }
                     else if (num19 == 5)
                     {
                         num15 = 40;
                     }
                     else if (num19 == 6)
                     {
                         num15 = 5;
                     }
                     else if (num19 == 7)
                     {
                         num15 = 26;
                     }
                     else if (num19 == 8)
                     {
                         num15 = 4;
                     }
                     else if (num19 == 9)
                     {
                         num15 = 126;
                     }
                     else if (num19 == 10)
                     {
                         num15 = 148;
                     }
                     else if (num19 == 11 || num19 == 12 || num19 == 13)
                     {
                         num15 = 1;
                     }
                     else if (num19 == 14)
                     {
                         num15 = 109;
                     }
                     else if (num19 == 15)
                     {
                         num15 = 126;
                     }
                     else
                     {
                         num15 = -1;
                     }
                 }
                 if (tile.type == TileID.Tables || tile.type == TileID.Pianos || tile.type == TileID.Dressers)
                 {
                     num15 = -1;
                 }
                 if (tile.type >= TileID.AmethystGemsparkOff && tile.type <= TileID.AmberGemsparkOff)
                 {
                     int num20 = (int)(tile.type - 255);
                     num15 = 86 + num20;
                     if (num20 == 6)
                     {
                         num15 = 138;
                     }
                 }
                 if (tile.type >= TileID.AmethystGemspark && tile.type <= TileID.AmberGemspark)
                 {
                     int num21 = (int)(tile.type - 262);
                     num15 = 86 + num21;
                     if (num21 == 6)
                     {
                         num15 = 138;
                     }
                 }
                 if (tile.type == TileID.ExposedGems)
                 {
                     int num22 = (int)(tile.frameX / 18);
                     num15 = 86 + num22;
                     if (num22 == 6)
                     {
                         num15 = 138;
                     }
                 }
                 if (tile.type == TileID.LargePiles)
                 {
                     if (tile.frameX <= 360)
                     {
                         num15 = 26;
                     }
                     else if (tile.frameX <= 846)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX <= 954)
                     {
                         num15 = 9;
                     }
                     else if (tile.frameX <= 1062)
                     {
                         num15 = 11;
                     }
                     else if (tile.frameX <= 1170)
                     {
                         num15 = 10;
                     }
                     else if (tile.frameX <= 1332)
                     {
                         num15 = 0;
                     }
                     else if (tile.frameX <= 1386)
                     {
                         num15 = 10;
                     }
                     else
                     {
                         num15 = 80;
                     }
                 }
                 if (tile.type == TileID.LargePiles2)
                 {
                     if (tile.frameX <= 144)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX <= 306)
                     {
                         num15 = 38;
                     }
                     else if (tile.frameX <= 468)
                     {
                         num15 = 36;
                     }
                     else if (tile.frameX <= 738)
                     {
                         num15 = 30;
                     }
                     else if (tile.frameX <= 970)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX <= 1132)
                     {
                         num15 = 148;
                     }
                     else if (tile.frameX <= 1132)
                     {
                         num15 = 155;
                     }
                     else if (tile.frameX <= 1348)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX <= 1564)
                     {
                         num15 = 0;
                     }
                 }
                 if (tile.type == TileID.Statues)
                 {
                     num15 = 1;
                     if (tile.frameX >= 1548 && tile.frameX <= 1654)
                     {
                         num15 = 148;
                     }
                 }
                 if (tile.type == TileID.MushroomStatue)
                 {
                     num15 = 1;
                 }
                 if (tile.type == TileID.AlphabetStatues)
                 {
                     num15 = 1;
                 }
                 if (tile.type == TileID.MetalBars)
                 {
                     int num23 = (int)(tile.frameX / 18);
                     if (num23 == 0)
                     {
                         num15 = 9;
                     }
                     if (num23 == 1)
                     {
                         num15 = 81;
                     }
                     if (num23 == 2)
                     {
                         num15 = 8;
                     }
                     if (num23 == 3)
                     {
                         num15 = 82;
                     }
                     if (num23 == 4)
                     {
                         num15 = 11;
                     }
                     if (num23 == 5)
                     {
                         num15 = 83;
                     }
                     if (num23 == 6)
                     {
                         num15 = 10;
                     }
                     if (num23 == 7)
                     {
                         num15 = 84;
                     }
                     if (num23 == 8)
                     {
                         num15 = 14;
                     }
                     if (num23 == 9)
                     {
                         num15 = 23;
                     }
                     if (num23 == 10)
                     {
                         num15 = 25;
                     }
                     if (num23 == 11)
                     {
                         num15 = 48;
                     }
                     if (num23 == 12)
                     {
                         num15 = 144;
                     }
                     if (num23 == 13)
                     {
                         num15 = 49;
                     }
                     if (num23 == 14)
                     {
                         num15 = 145;
                     }
                     if (num23 == 15)
                     {
                         num15 = 50;
                     }
                     if (num23 == 16)
                     {
                         num15 = 146;
                     }
                     if (num23 == 17)
                     {
                         num15 = 128;
                     }
                     if (num23 == 18)
                     {
                         num15 = 84;
                     }
                     if (num23 == 19)
                     {
                         num15 = 117;
                     }
                     if (num23 == 20)
                     {
                         num15 = 42;
                     }
                     if (num23 == 21)
                     {
                         num15 = -1;
                     }
                     if (num23 == 22)
                     {
                         num15 = 265;
                     }
                 }
                 if (tile.type == TileID.SmallPiles)
                 {
                     if (tile.frameY == 18)
                     {
                         int num24 = (int)(tile.frameX / 36);
                         if (num24 < 6)
                         {
                             num15 = 1;
                         }
                         else if (num24 < 16)
                         {
                             num15 = 26;
                         }
                         else if (num24 == 16)
                         {
                             num15 = 9;
                         }
                         else if (num24 == 17)
                         {
                             num15 = 11;
                         }
                         else if (num24 == 18)
                         {
                             num15 = 10;
                         }
                         else if (num24 == 19)
                         {
                             num15 = 86;
                         }
                         else if (num24 == 20)
                         {
                             num15 = 87;
                         }
                         else if (num24 == 21)
                         {
                             num15 = 88;
                         }
                         else if (num24 == 22)
                         {
                             num15 = 89;
                         }
                         else if (num24 == 23)
                         {
                             num15 = 90;
                         }
                         else if (num24 == 24)
                         {
                             num15 = 91;
                         }
                         else if (num24 < 31)
                         {
                             num15 = 80;
                         }
                         else if (num24 < 33)
                         {
                             num15 = 7;
                         }
                         else if (num24 < 34)
                         {
                             num15 = 8;
                         }
                         else if (num24 < 39)
                         {
                             num15 = 30;
                         }
                         else if (num24 < 42)
                         {
                             num15 = 1;
                         }
                     }
                     else
                     {
                         int num25 = (int)(tile.frameX / 18);
                         if (num25 < 6)
                         {
                             num15 = 1;
                         }
                         else if (num25 < 12)
                         {
                             num15 = 0;
                         }
                         else if (num25 < 27)
                         {
                             num15 = 26;
                         }
                         else if (num25 < 32)
                         {
                             num15 = 1;
                         }
                         else if (num25 < 35)
                         {
                             num15 = 0;
                         }
                         else if (num25 < 46)
                         {
                             num15 = 80;
                         }
                         else if (num25 < 52)
                         {
                             num15 = 30;
                         }
                     }
                 }
                 if (tile.type == TileID.LongMoss)
                 {
                     int num26 = (int)(tile.frameX / 22);
                     if (num26 == 5)
                     {
                         num15 = 258;
                     }
                     else
                     {
                         num15 = 93 + num26;
                     }
                 }
                 if (tile.type == TileID.LihzahrdAltar)
                 {
                     num15 = 148;
                 }
                 if (tile.type == TileID.Ebonwood)
                 {
                     num15 = 77;
                 }
                 if (tile.type == TileID.RichMahogany || tile.type == TileID.WoodenSpikes || tile.type == TileID.LivingMahogany)
                 {
                     num15 = 78;
                 }
                 if (tile.type == TileID.Pearlwood)
                 {
                     num15 = 78;
                 }
                 if (tile.type == TileID.Chairs)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.LivingWood)
                 {
                     num15 = 7;
                 }
                 if (tile.type == TileID.Trees)
                 {
                     num15 = 7;
                     if (i > 5 && i < Main.maxTilesX - 5)
                     {
                         int num27 = i;
                         int num28 = j;
                         if (tile.frameX == 66 && tile.frameY <= 45)
                         {
                             num27++;
                         }
                         if (tile.frameX == 88 && tile.frameY >= 66 && tile.frameY <= 110)
                         {
                             num27--;
                         }
                         if (tile.frameX == 22 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num27--;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num27++;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num27++;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 198)
                         {
                             num27++;
                         }
                         if (tile.frameX == 66 && tile.frameY >= 198)
                         {
                             num27--;
                         }
                         while (Main.tile[num27, num28] != null && (!Main.tile[num27, num28].active() || !Main.tileSolid[(int)Main.tile[num27, num28].type]))
                         {
                             num28++;
                         }
                         if (Main.tile[num27, num28] != null)
                         {
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == TileID.CorruptGrass)
                             {
                                 num15 = 77;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == TileID.JungleGrass)
                             {
                                 num15 = 78;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == TileID.MushroomGrass)
                             {
                                 num15 = 26;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == TileID.HallowedGrass)
                             {
                                 num15 = 79;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == TileID.FleshGrass)
                             {
                                 num15 = 121;
                             }
                             if (Main.tile[num27, num28].active() && Main.tile[num27, num28].type == TileID.SnowBlock)
                             {
                                 num15 = 122;
                             }
                         }
                     }
                 }
                 if (tile.type == TileID.PalmTree)
                 {
                     num15 = 215;
                     if (i > 5 && i < Main.maxTilesX - 5)
                     {
                         int num29 = j;
                         while (Main.tile[i, num29] != null && (!Main.tile[i, num29].active() || !Main.tileSolid[(int)Main.tile[i, num29].type]))
                         {
                             num29++;
                         }
                         if (Main.tile[i, num29] != null)
                         {
                             if (Main.tile[i, num29].active() && Main.tile[i, num29].type == TileID.Crimsand)
                             {
                                 num15 = 121;
                             }
                             if (Main.tile[i, num29].active() && Main.tile[i, num29].type == TileID.Pearlsand)
                             {
                                 num15 = 79;
                             }
                             if (Main.tile[i, num29].active() && Main.tile[i, num29].type == TileID.Ebonsand)
                             {
                                 num15 = 77;
                             }
                         }
                     }
                 }
                 if (tile.type == TileID.Traps)
                 {
                     num15 = 1;
                     int num30 = (int)(tile.frameY / 18);
                     if (num30 > 0)
                     {
                         num15 = 148;
                     }
                 }
                 if (tile.type == TileID.SnowballLauncher)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Rope)
                 {
                     num15 = 129;
                 }
                 if (tile.type == TileID.Chain)
                 {
                     num15 = 1;
                 }
                 if (tile.type == TileID.Campfire)
                 {
                     num15 = -6;
                 }
                 if (tile.type == TileID.TinPlating)
                 {
                     num15 = 81;
                 }
                 if (tile.type == TileID.PumpkinBlock)
                 {
                     num15 = 189;
                 }
                 if (tile.type == TileID.HayBlock)
                 {
                     num15 = 190;
                 }
                 if (tile.type == TileID.SpookyWood)
                 {
                     num15 = 191;
                 }
                 if (tile.type == TileID.Pumpkins)
                 {
                     if (tile.frameX < 72)
                     {
                         num15 = 3;
                     }
                     else if (tile.frameX < 108)
                     {
                         num15 = 3;
                         if (WorldGen.genRand.Next(3) == 0)
                         {
                             num15 = 189;
                         }
                     }
                     else if (tile.frameX < 144)
                     {
                         num15 = 3;
                         if (WorldGen.genRand.Next(2) == 0)
                         {
                             num15 = 189;
                         }
                     }
                     else
                     {
                         num15 = 3;
                         if (WorldGen.genRand.Next(4) != 0)
                         {
                             num15 = 189;
                         }
                     }
                 }
                 if (tile.type == TileID.Containers)
                 {
                     if (tile.frameX >= 1008)
                     {
                         num15 = -1;
                     }
                     else if (tile.frameX >= 612)
                     {
                         num15 = 11;
                     }
                     else if (tile.frameX >= 576)
                     {
                         num15 = 148;
                     }
                     else if (tile.frameX >= 540)
                     {
                         num15 = 26;
                     }
                     else if (tile.frameX >= 504)
                     {
                         num15 = 126;
                     }
                     else if (tile.frameX >= 468)
                     {
                         num15 = 116;
                     }
                     else if (tile.frameX >= 432)
                     {
                         num15 = 7;
                     }
                     else if (tile.frameX >= 396)
                     {
                         num15 = 11;
                     }
                     else if (tile.frameX >= 360)
                     {
                         num15 = 10;
                     }
                     else if (tile.frameX >= 324)
                     {
                         num15 = 79;
                     }
                     else if (tile.frameX >= 288)
                     {
                         num15 = 78;
                     }
                     else if (tile.frameX >= 252)
                     {
                         num15 = 77;
                     }
                     else if (tile.frameX >= 216)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX >= 180)
                     {
                         num15 = 7;
                     }
                     else if (tile.frameX >= 108)
                     {
                         num15 = 37;
                     }
                     else if (tile.frameX >= 36)
                     {
                         num15 = 10;
                     }
                     else
                     {
                         num15 = 7;
                     }
                 }
                 if (tile.type == TileID.Grass)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 0;
                     }
                     else
                     {
                         num15 = 2;
                     }
                 }
                 if (Main.tileMoss[(int)tile.type])
                 {
                     if (tile.type == TileID.LavaMoss)
                     {
                         num15 = 258;
                     }
                     else
                     {
                         num15 = (int)(tile.type - 179 + 93);
                     }
                 }
                 if (tile.type == TileID.MagicalIceBlock)
                 {
                     num15 = 67;
                 }
                 if (tile.type == TileID.Banners)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Asphalt)
                 {
                     num15 = 109;
                 }
                 if (tile.type == TileID.DemonAltar)
                 {
                     if (tile.frameX >= 54)
                     {
                         num15 = 5;
                     }
                     else
                     {
                         num15 = 8;
                     }
                 }
                 if (tile.type == TileID.Chandeliers)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Iron)
                 {
                     num15 = 8;
                 }
                 if (tile.type == TileID.Copper || tile.type == TileID.CopperBrick || tile.type == TileID.CopperPlating)
                 {
                     num15 = 9;
                 }
                 if (tile.type == TileID.Gold || tile.type == TileID.GoldBrick || tile.type == TileID.Thrones)
                 {
                     num15 = 10;
                 }
                 if (tile.type == TileID.Silver || tile.type == TileID.HangingLanterns || tile.type == TileID.SilverBrick || tile.type == TileID.DiscoBall || tile.type == TileID.Switches)
                 {
                     num15 = 11;
                 }
                 if (tile.type == TileID.Tin || tile.type == TileID.TinBrick)
                 {
                     num15 = 81;
                 }
                 if (tile.type == TileID.Lead)
                 {
                     num15 = 82;
                 }
                 if (tile.type == TileID.Tungsten || tile.type == TileID.TungstenBrick)
                 {
                     num15 = 83;
                 }
                 if (tile.type == TileID.Platinum || tile.type == TileID.PlatinumBrick)
                 {
                     num15 = 84;
                 }
                 if (tile.type == TileID.FleshGrass)
                 {
                     num15 = 117;
                 }
                 if (tile.type == TileID.CrimsonVines)
                 {
                     num15 = 125;
                 }
                 if (tile.type == TileID.FleshWeeds)
                 {
                     num15 = 125;
                 }
                 if (tile.type == TileID.Chlorophyte)
                 {
                     num15 = 128;
                 }
                 if (tile.type == TileID.DyePlants)
                 {
                     int num31 = (int)(tile.frameX / 34);
                     if (num31 == 0 || num31 == 1)
                     {
                         num15 = 26;
                     }
                     else if (num31 == 3)
                     {
                         num15 = 3;
                     }
                     else if (num31 == 2 || num31 == 4 || num31 == 5 || num31 == 6)
                     {
                         num15 = 40;
                     }
                     else if (num31 == 7)
                     {
                         num15 = 117;
                     }
                     else if (num31 == 8)
                     {
                         num15 = 17;
                     }
                     else if (num31 == 9)
                     {
                         num15 = 6;
                     }
                     else if (num31 == 10)
                     {
                         num15 = 3;
                     }
                     else if (num31 == 11)
                     {
                         num15 = 26;
                     }
                 }
                 if (tile.type == TileID.Crimtane)
                 {
                     num15 = 117;
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == TileID.Crimstone)
                 {
                     num15 = 117;
                 }
                 if (tile.type == TileID.ImbuingStation)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 7;
                     }
                     else
                     {
                         num15 = 13;
                     }
                 }
                 if (tile.type == TileID.BubbleMachine)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 1;
                     }
                     else
                     {
                         num15 = 13;
                     }
                 }
                 else if ((tile.type >= TileID.GoldBirdCage && tile.type <= TileID.GoldWormCage) || (tile.type >= TileID.BunnyCage && tile.type <= TileID.FishBowl) || (tile.type == TileID.SnailCage || tile.type == TileID.GlowingSnailCage || (tile.type >= TileID.MonarchButterflyJar && tile.type <= TileID.BlackScorpionCage)) || (tile.type >= TileID.BlueJellyfishBowl && tile.type <= TileID.PinkJellyfishBowl) || tile.type == TileID.FrogCage || tile.type == TileID.MouseCage || tile.type == TileID.PenguinCage || tile.type == TileID.WormCage || tile.type == TileID.GrasshopperCage || tile.type == TileID.SquirrelOrangeCage || tile.type == TileID.SquirrelGoldCage)
                 {
                     num15 = 13;
                     if (WorldGen.genRand.Next(3) != 0)
                     {
                         num15 = -1;
                     }
                 }
                 if (tile.type == TileID.Bottles)
                 {
                     if (tile.frameX >= 90)
                     {
                         num15 = -1;
                     }
                     else
                     {
                         num15 = 13;
                     }
                 }
                 if (tile.type == TileID.Cloud)
                 {
                     num15 = 16;
                 }
                 if (tile.type == TileID.Heart)
                 {
                     num15 = 12;
                 }
                 if (tile.type == TileID.Plants || tile.type == TileID.Plants2)
                 {
                     num15 = 3;
                 }
                 if (tile.type == TileID.Glass)
                 {
                     num15 = 13;
                 }
                 if (tile.type == TileID.Demonite || tile.type == TileID.DemoniteBrick)
                 {
                     num15 = 14;
                 }
                 if (tile.type == TileID.ClayPot)
                 {
                     num15 = 22;
                 }
                 if (tile.type == TileID.Pots)
                 {
                     num15 = 22;
                     if (tile.frameY >= 72 && tile.frameY <= 90)
                     {
                         num15 = 1;
                     }
                     if (tile.frameY >= 144 && tile.frameY <= 234)
                     {
                         num15 = 48;
                     }
                     if (tile.frameY >= 252 && tile.frameY <= 358)
                     {
                         num15 = 85;
                     }
                     if (tile.frameY >= 360 && tile.frameY <= 466)
                     {
                         num15 = 26;
                     }
                     if (tile.frameY >= 468 && tile.frameY <= 574)
                     {
                         num15 = 36;
                     }
                     if (tile.frameY >= 576 && tile.frameY <= 790)
                     {
                         num15 = 18;
                     }
                     if (tile.frameY >= 792 && tile.frameY <= 898)
                     {
                         num15 = 5;
                     }
                     if (tile.frameY >= 900 && tile.frameY <= 1006)
                     {
                         num15 = 0;
                     }
                     if (tile.frameY >= 1008 && tile.frameY <= 1114)
                     {
                         num15 = 148;
                     }
                     if (tile.frameY >= 1116 && tile.frameY <= 1222)
                     {
                         num15 = 241;
                     }
                 }
                 if (tile.type == TileID.CorruptIce)
                 {
                     num15 = 118;
                 }
                 if (tile.type == TileID.HallowedIce)
                 {
                     num15 = 119;
                 }
                 if (tile.type == TileID.FleshIce)
                 {
                     num15 = 120;
                 }
                 if (tile.type == TileID.Palladium || tile.type == TileID.PalladiumColumn)
                 {
                     num15 = 144;
                 }
                 if (tile.type == TileID.Orichalcum || tile.type == TileID.BubblegumBlock)
                 {
                     num15 = 145;
                 }
                 if (tile.type == TileID.Titanium || tile.type == TileID.Titanstone)
                 {
                     num15 = 146;
                 }
                 if (tile.type == TileID.Slush)
                 {
                     num15 = 149;
                 }
                 if (tile.type == TileID.Hive)
                 {
                     num15 = 147;
                 }
                 if (tile.type == TileID.HoneyBlock)
                 {
                     num15 = 153;
                 }
                 if (tile.type == TileID.Larva)
                 {
                     num15 = 153;
                     if (WorldGen.genRand.Next(3) == 0)
                     {
                         num15 = 26;
                     }
                 }
                 if (tile.type == TileID.LihzahrdBrick)
                 {
                     num15 = 148;
                 }
                 if (tile.type == TileID.Bowls)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.PiggyBank)
                 {
                     num15 = 23;
                 }
                 if (tile.type == TileID.ClayBlock)
                 {
                     num15 = 28;
                 }
                 if (tile.type == TileID.WaterCandle)
                 {
                     num15 = 29;
                 }
                 if (tile.type == TileID.Books)
                 {
                     num15 = 22;
                 }
                 if (tile.type == TileID.Cobweb)
                 {
                     num15 = 30;
                 }
                 if (tile.type == TileID.Vines || tile.type == TileID.VineRope)
                 {
                     num15 = 3;
                 }
                 if (tile.type == TileID.Sand || tile.type == TileID.Coral || tile.type == TileID.SandstoneBrick || tile.type == TileID.Sunplate || tile.type == TileID.SandStoneSlab)
                 {
                     num15 = 32;
                 }
                 if (tile.type == TileID.Obsidian || tile.type == TileID.EbonstoneBrick)
                 {
                     num15 = 37;
                 }
                 if (tile.type == TileID.ObsidianBrick)
                 {
                     num15 = 109;
                 }
                 if (tile.type == TileID.Ash || tile.type == TileID.IridescentBrick || tile.type == TileID.Explosives || tile.type == TileID.Crimsand)
                 {
                     num15 = 36;
                 }
                 if (tile.type == TileID.Mud || tile.type == TileID.Mudstone)
                 {
                     num15 = 38;
                 }
                 if (tile.type == TileID.JunglePlants || tile.type == TileID.JungleVines || tile.type == TileID.JunglePlants2 || tile.type == TileID.Cactus || tile.type == TileID.CactusBlock || tile.type == TileID.PlantDetritus || tile.type == TileID.LifeFruit || tile.type == TileID.LivingMahoganyLeaves)
                 {
                     num15 = 40;
                 }
                 if (tile.type == TileID.PlanteraBulb)
                 {
                     if (WorldGen.genRand.Next(3) == 0)
                     {
                         num15 = 167;
                     }
                     else
                     {
                         num15 = 166;
                     }
                 }
                 if (tile.type == TileID.JungleThorns)
                 {
                     num15 = 7;
                 }
                 if (tile.type == TileID.MushroomPlants || tile.type == TileID.MushroomTrees || tile.type == TileID.MushroomBlock)
                 {
                     num15 = 26;
                 }
                 if (tile.type == TileID.MushroomGrass)
                 {
                     num15 = 17;
                 }
                 if (tile.type == TileID.Ebonsand)
                 {
                     num15 = 14;
                 }
                 if (tile.type == TileID.Silt)
                 {
                     num15 = 53;
                 }
                 if (tile.type == TileID.IceBlock)
                 {
                     num15 = 80;
                 }
                 if (tile.type == TileID.IceBrick)
                 {
                     num15 = 80;
                 }
                 if (tile.type == TileID.BreakableIce)
                 {
                     num15 = 80;
                 }
                 if (tile.type == TileID.Stalactite)
                 {
                     if (tile.frameX < 54)
                     {
                         num15 = 80;
                     }
                     else if (tile.frameX >= 324)
                     {
                         num15 = 117;
                     }
                     else if (tile.frameX >= 270)
                     {
                         num15 = 14;
                     }
                     else if (tile.frameX >= 216)
                     {
                         num15 = 1;
                     }
                     else if (tile.frameX >= 162)
                     {
                         num15 = 147;
                     }
                     else if (tile.frameX >= 108)
                     {
                         num15 = 30;
                     }
                     else
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == TileID.SlimeBlock)
                 {
                     num15 = 4;
                 }
                 if (tile.type == TileID.BoneBlock)
                 {
                     num15 = 26;
                 }
                 if (tile.type == TileID.FleshBlock)
                 {
                     num15 = 5;
                 }
                 if (tile.type == TileID.RainCloud)
                 {
                     num15 = 108;
                 }
                 if (tile.type == TileID.FrozenSlimeBlock)
                 {
                     num15 = 4;
                 }
                 if (tile.type == TileID.RedStucco)
                 {
                     num15 = 26;
                 }
                 if (tile.type == TileID.YellowStucco)
                 {
                     num15 = 32;
                 }
                 if (tile.type == TileID.GreenStucco)
                 {
                     num15 = 2;
                 }
                 if (tile.type == TileID.GrayStucco)
                 {
                     num15 = 1;
                 }
                 if (tile.type == TileID.Pearlsand || tile.type == TileID.PearlstoneBrick || tile.type == TileID.SnowBlock || tile.type == TileID.SnowBrick)
                 {
                     num15 = 51;
                 }
                 if (tile.type == TileID.HallowedGrass)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 0;
                     }
                     else
                     {
                         num15 = 47;
                     }
                 }
                 if (tile.type == TileID.HallowedPlants || tile.type == TileID.HallowedPlants2 || tile.type == TileID.HallowedVines)
                 {
                     num15 = 47;
                 }
                 if (tile.type == TileID.Cobalt || tile.type == TileID.CobaltBrick)
                 {
                     num15 = 48;
                 }
                 if (tile.type == TileID.Mythril || tile.type == TileID.MythrilBrick || tile.type == TileID.GreenCandyCaneBlock)
                 {
                     num15 = 49;
                 }
                 if (tile.type == TileID.Adamantite || tile.type == TileID.CandyCaneBlock || tile.type == TileID.AdamantiteBeam)
                 {
                     num15 = 50;
                 }
                 if (tile.type == TileID.AdamantiteForge)
                 {
                     num15 = 50;
                     if (tile.frameX >= 54)
                     {
                         num15 = 146;
                     }
                 }
                 if (tile.type == TileID.MythrilAnvil)
                 {
                     num15 = 49;
                     if (tile.frameX >= 36)
                     {
                         num15 = 145;
                     }
                 }
                 if (tile.type == TileID.HolidayLights)
                 {
                     num15 = 49;
                 }
                 if (Main.tileAlch[(int)tile.type])
                 {
                     int num32 = (int)(tile.frameX / 18);
                     if (num32 == 0)
                     {
                         num15 = 3;
                     }
                     if (num32 == 1)
                     {
                         num15 = 3;
                     }
                     if (num32 == 2)
                     {
                         num15 = 7;
                     }
                     if (num32 == 3)
                     {
                         num15 = 17;
                     }
                     if (num32 == 4)
                     {
                         num15 = 3;
                     }
                     if (num32 == 5)
                     {
                         num15 = 6;
                     }
                     if (num32 == 6)
                     {
                         num15 = 224;
                     }
                 }
                 if (tile.type == TileID.Hellstone || tile.type == TileID.HellstoneBrick || tile.type == TileID.Hellforge)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 6;
                     }
                     else
                     {
                         num15 = 25;
                     }
                 }
                 if (tile.type == TileID.Meteorite)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 6;
                     }
                     else
                     {
                         num15 = 23;
                     }
                 }
                 if (tile.type == TileID.CorruptThorns)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 14;
                     }
                     else
                     {
                         num15 = 24;
                     }
                 }
                 if (tile.type == TileID.CrimtaneThorns)
                 {
                     if (WorldGen.genRand.Next(3) == 0)
                     {
                         num15 = 5;
                     }
                     else
                     {
                         num15 = 125;
                     }
                 }
                 if (tile.type == TileID.CorruptGrass || tile.type == TileID.CorruptPlants)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 14;
                     }
                     else
                     {
                         num15 = 17;
                     }
                 }
                 if (tile.type == TileID.Ebonstone || tile.type == TileID.ShadowOrbs)
                 {
                     if (tile.type == TileID.ShadowOrbs && tile.frameX >= 36)
                     {
                         num15 = 5;
                     }
                     else if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 14;
                     }
                     else
                     {
                         num15 = 1;
                     }
                 }
                 if (tile.type == TileID.Saplings)
                 {
                     int num33 = (int)(tile.frameX / 54);
                     if (num33 == 1)
                     {
                         num15 = 122;
                     }
                     else if (num33 == 2)
                     {
                         num15 = 78;
                     }
                     else if (num33 == 3)
                     {
                         num15 = 77;
                     }
                     else if (num33 == 4)
                     {
                         num15 = 121;
                     }
                     else if (num33 == 5)
                     {
                         num15 = 79;
                     }
                     else
                     {
                         num15 = 7;
                     }
                 }
                 if (tile.type == TileID.Sunflower)
                 {
                     if (WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 3;
                     }
                     else
                     {
                         num15 = 19;
                     }
                 }
                 if (tile.type == TileID.Crystals)
                 {
                     if (tile.frameX == 0 || tile.frameX == 54 || tile.frameX == 108)
                     {
                         num15 = 68;
                     }
                     else if (tile.frameX == 18 || tile.frameX == 72 || tile.frameX == 126)
                     {
                         num15 = 69;
                     }
                     else
                     {
                         num15 = 70;
                     }
                 }
                 if (tile.type == TileID.CrystalBlock)
                 {
                     num15 = WorldGen.genRand.Next(68, 71);
                 }
                 if (tile.type == TileID.Torches)
                 {
                     int num34 = (int)(tile.frameY / 22);
                     if (num34 == 0)
                     {
                         num15 = 6;
                     }
                     else if (num34 == 8)
                     {
                         num15 = 75;
                     }
                     else if (num34 == 9)
                     {
                         num15 = 135;
                     }
                     else if (num34 == 10)
                     {
                         num15 = 158;
                     }
                     else if (num34 == 11)
                     {
                         num15 = 169;
                     }
                     else if (num34 == 12)
                     {
                         num15 = 156;
                     }
                     else if (num34 == 13)
                     {
                         num15 = 234;
                     }
                     else if (num34 == 14)
                     {
                         num15 = 66;
                     }
                     else if (num34 == 15)
                     {
                         num15 = 242;
                     }
                     else
                     {
                         num15 = 58 + num34;
                     }
                 }
                 if (tile.type == TileID.Jackolanterns)
                 {
                     num15 = 189;
                     if (tile.frameX < 36 && WorldGen.genRand.Next(2) == 0)
                     {
                         num15 = 6;
                     }
                 }
                 if ((tile.type == TileID.Chandeliers || tile.type == TileID.HangingLanterns) && WorldGen.genRand.Next(2) == 0)
                 {
                     num15 = 6;
                 }
                 if (tile.type == TileID.FireflyinaBottle)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.LightningBuginaBottle)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Beds || tile.type == TileID.Bathtubs || tile.type == TileID.Bookcases)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.Candles || tile.type == TileID.Chandeliers || tile.type == TileID.HangingLanterns || tile.type == TileID.Lamps || tile.type == TileID.Candelabras)
                 {
                     num15 = -1;
                 }
                 if (tile.type == TileID.BorealWood)
                 {
                     num15 = 214;
                 }
                 if (tile.type == TileID.PalmWood)
                 {
                     num15 = 215;
                 }
                 num14++;
                 continue;
                 IL_14A0:
                 num15 = -1;
                 goto IL_14A9;
             }
             if (effectOnly)
             {
                 return;
             }
             if (fail)
             {
                 if (tile.type == TileID.Grass || tile.type == TileID.CorruptGrass || tile.type == TileID.HallowedGrass || tile.type == TileID.FleshGrass)
                 {
                     tile.type = 0;
                 }
                 if (tile.type == TileID.JungleGrass || tile.type == TileID.MushroomGrass)
                 {
                     tile.type = 59;
                 }
                 if (Main.tileMoss[(int)tile.type])
                 {
                     tile.type = 1;
                 }
                 WorldGen.SquareTileFrame(i, j, true);
                 return;
             }
             if (tile.type == TileID.Containers && Main.netMode != 1)
             {
                 int num41 = (int)(tile.frameX / 18);
                 int y = j - (int)(tile.frameY / 18);
                 while (num41 > 1)
                 {
                     num41 -= 2;
                 }
                 num41 = i - num41;
                 if (!Chest.DestroyChest(num41, y))
                 {
                     return;
                 }
             }
             if (tile.type == TileID.Dressers && Main.netMode != 1)
             {
                 int num42 = (int)(tile.frameX / 18);
                 int y2 = j - (int)(tile.frameY / 18);
                 num42 %= 3;
                 num42 = i - num42;
                 if (!Chest.DestroyChest(num42, y2))
                 {
                     return;
                 }
             }
             if (tile.type == TileID.Cobweb && tile.wall == WallID.SpiderUnsafe && WorldGen.genRand.Next(4) != 0)
             {
                 noItem = true;
             }
             if (!noItem && !WorldGen.stopDrops && Main.netMode != 1)
             {
                 bool flag = false;
                 int num43 = -1;
                 int num44 = -1;
                 int num45 = -1;
                 if (tile.type == TileID.Plants)
                 {
                     num43 = 400;
                     num44 = 100;
                     if (tile.frameX >= 108)
                     {
                         num43 *= 3;
                         num44 *= 3;
                     }
                 }
                 if (tile.type == TileID.Plants2)
                 {
                     num43 = 200;
                     num44 = 50;
                     if (tile.frameX >= 108)
                     {
                         num43 *= 3;
                         num44 *= 3;
                     }
                 }
                 if (tile.type == TileID.JunglePlants)
                 {
                     num45 = 80;
                     if (tile.frameX >= 108)
                     {
                         num45 *= 3;
                     }
                 }
                 if (tile.type == TileID.JunglePlants2)
                 {
                     num45 = 40;
                     if (tile.frameX >= 108)
                     {
                         num45 *= 3;
                     }
                 }
                 if (tile.type == TileID.JungleVines)
                 {
                     num45 = 250;
                 }
                 if (tile.type == TileID.SmallPiles)
                 {
                     if (tile.frameY == 0 && tile.frameX < 214)
                     {
                         num43 = 6;
                     }
                     if (tile.frameY == 18 && (tile.frameX < 214 || tile.frameX >= 1368))
                     {
                         num43 = 6;
                     }
                 }
                 else if (tile.type == TileID.LargePiles)
                 {
                     if (tile.frameX >= 378 && tile.frameX <= 700)
                     {
                         num43 = 6;
                     }
                 }
                 else if (tile.type == TileID.LargePiles2)
                 {
                     if (tile.frameX >= 756 && tile.frameX <= 916)
                     {
                         num43 = 6;
                     }
                     if (tile.frameX <= 322)
                     {
                         num43 = 6;
                     }
                 }
                 else if (tile.type == TileID.PlantDetritus)
                 {
                     num45 = 10;
                 }
                 if (num43 > 0 && NPC.CountNPCS(357) < 5 && WorldGen.genRand.Next(num43) == 0)
                 {
                     int type2 = 357;
                     if (WorldGen.genRand.Next(NPC.goldCritterChance) == 0)
                     {
                         type2 = 448;
                     }
                     int num46 = NPC.NewNPC(i * 16 + 10, j * 16, type2, 0, 0f, 0f, 0f, 0f, 255);
                     Main.npc[num46].TargetClosest(true);
                     Main.npc[num46].velocity.Y = (float)WorldGen.genRand.Next(-50, -21) * 0.1f;
                     Main.npc[num46].velocity.X = (float)WorldGen.genRand.Next(0, 26) * 0.1f * (float)(-(float)Main.npc[num46].direction);
                     Main.npc[num46].direction *= -1;
                     Main.npc[num46].netUpdate = true;
                 }
                 if (num44 > 0 && NPC.CountNPCS(377) < 5 && WorldGen.genRand.Next(num44) == 0)
                 {
                     int type3 = 377;
                     if (WorldGen.genRand.Next(NPC.goldCritterChance) == 0)
                     {
                         type3 = 446;
                     }
                     int num47 = NPC.NewNPC(i * 16 + 10, j * 16, type3, 0, 0f, 0f, 0f, 0f, 255);
                     Main.npc[num47].TargetClosest(true);
                     Main.npc[num47].velocity.Y = (float)WorldGen.genRand.Next(-50, -21) * 0.1f;
                     Main.npc[num47].velocity.X = (float)WorldGen.genRand.Next(0, 26) * 0.1f * (float)(-(float)Main.npc[num47].direction);
                     Main.npc[num47].direction *= -1;
                     Main.npc[num47].netUpdate = true;
                 }
                 if (num45 > 0 && NPC.CountNPCS(485) + NPC.CountNPCS(486) + NPC.CountNPCS(487) < 8 && WorldGen.genRand.Next(num45) == 0)
                 {
                     int type4 = 485;
                     if (WorldGen.genRand.Next(4) == 0)
                     {
                         type4 = 486;
                     }
                     if (WorldGen.genRand.Next(12) == 0)
                     {
                         type4 = 487;
                     }
                     int num48 = NPC.NewNPC(i * 16 + 10, j * 16, type4, 0, 0f, 0f, 0f, 0f, 255);
                     Main.npc[num48].TargetClosest(true);
                     Main.npc[num48].velocity.Y = (float)WorldGen.genRand.Next(-50, -21) * 0.1f;
                     Main.npc[num48].velocity.X = (float)WorldGen.genRand.Next(0, 26) * 0.1f * (float)(-(float)Main.npc[num48].direction);
                     Main.npc[num48].direction *= -1;
                     Main.npc[num48].netUpdate = true;
                 }
                 int num49 = 0;
                 int num50 = 0;
                 if (tile.type == TileID.Dirt || tile.type == TileID.Grass || tile.type == TileID.HallowedGrass)
                 {
                     num49 = 2;
                 }
                 else if (tile.type == TileID.Granite)
                 {
                     num49 = 3086;
                 }
                 else if (tile.type == TileID.GraniteBlock)
                 {
                     num49 = 3087;
                 }
                 else if (tile.type == TileID.Marble)
                 {
                     num49 = 3081;
                 }
                 else if (tile.type == TileID.Bubble)
                 {
                     num49 = 3214;
                 }
                 else if (tile.type == TileID.VineRope)
                 {
                     num49 = 2996;
                 }
                 else if (tile.type == TileID.SilkRope)
                 {
                     num49 = 3077;
                 }
                 else if (tile.type == TileID.WebRope)
                 {
                     num49 = 3078;
                 }
                 else if ((tile.type == TileID.Vines || tile.type == TileID.JungleVines) && WorldGen.genRand.Next(2) == 0 && Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].cordage)
                 {
                     num49 = 2996;
                 }
                 else if (tile.type == TileID.MarbleBlock)
                 {
                     num49 = 3066;
                 }
                 else if (tile.type == TileID.Stone)
                 {
                     num49 = 3;
                 }
                 else if (tile.type == TileID.Plants || tile.type == TileID.Plants2)
                 {
                     if (WorldGen.genRand.Next(2) == 0 && (Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].HasItem(281) || Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].HasItem(986)))
                     {
                         num49 = 283;
                     }
                 }
                 else if (tile.type == TileID.DyePlants)
                 {
                     int num51 = (int)(tile.frameX / 34);
                     num49 = 1107 + num51;
                     if (num51 >= 8 && num51 <= 11)
                     {
                         num49 = 3385 + num51 - 8;
                     }
                 }
                 else if (tile.type == TileID.Torches)
                 {
                     int num52 = (int)(tile.frameY / 22);
                     if (num52 == 0)
                     {
                         num49 = 8;
                     }
                     else if (num52 == 8)
                     {
                         num49 = 523;
                     }
                     else if (num52 == 9)
                     {
                         num49 = 974;
                     }
                     else if (num52 == 10)
                     {
                         num49 = 1245;
                     }
                     else if (num52 == 11)
                     {
                         num49 = 1333;
                     }
                     else if (num52 == 12)
                     {
                         num49 = 2274;
                     }
                     else if (num52 == 13)
                     {
                         num49 = 3004;
                     }
                     else if (num52 == 14)
                     {
                         num49 = 3045;
                     }
                     else if (num52 == 15)
                     {
                         num49 = 3114;
                     }
                     else
                     {
                         num49 = 426 + num52;
                     }
                 }
                 else if (tile.type == TileID.MetalBars)
                 {
                     int num53 = (int)(tile.frameX / 18);
                     if (num53 == 0)
                     {
                         num49 = 20;
                     }
                     if (num53 == 1)
                     {
                         num49 = 703;
                     }
                     if (num53 == 2)
                     {
                         num49 = 22;
                     }
                     if (num53 == 3)
                     {
                         num49 = 704;
                     }
                     if (num53 == 4)
                     {
                         num49 = 21;
                     }
                     if (num53 == 5)
                     {
                         num49 = 705;
                     }
                     if (num53 == 6)
                     {
                         num49 = 19;
                     }
                     if (num53 == 7)
                     {
                         num49 = 706;
                     }
                     if (num53 == 8)
                     {
                         num49 = 57;
                     }
                     if (num53 == 9)
                     {
                         num49 = 117;
                     }
                     if (num53 == 10)
                     {
                         num49 = 175;
                     }
                     if (num53 == 11)
                     {
                         num49 = 381;
                     }
                     if (num53 == 12)
                     {
                         num49 = 1184;
                     }
                     if (num53 == 13)
                     {
                         num49 = 382;
                     }
                     if (num53 == 14)
                     {
                         num49 = 1191;
                     }
                     if (num53 == 15)
                     {
                         num49 = 391;
                     }
                     if (num53 == 16)
                     {
                         num49 = 1198;
                     }
                     if (num53 == 17)
                     {
                         num49 = 1006;
                     }
                     if (num53 == 18)
                     {
                         num49 = 1225;
                     }
                     if (num53 == 19)
                     {
                         num49 = 1257;
                     }
                     if (num53 == 20)
                     {
                         num49 = 1552;
                     }
                     if (num53 == 21)
                     {
                         num49 = 3261;
                     }
                     if (num53 == 22)
                     {
                         num49 = 3467;
                     }
                 }
                 else if (tile.type == TileID.PlanterBox)
                 {
                     int num54 = (int)(tile.frameY / 18);
                     num49 = 3215 + num54;
                 }
                 else if (tile.type == TileID.LivingMahogany)
                 {
                     num49 = 620;
                 }
                 else if (tile.type == TileID.Coralstone)
                 {
                     num49 = 2435;
                 }
                 else if (tile.type == TileID.CopperCoinPile)
                 {
                     num49 = 71;
                 }
                 else if (tile.type == TileID.SilverCoinPile)
                 {
                     num49 = 72;
                 }
                 else if (tile.type == TileID.GoldCoinPile)
                 {
                     num49 = 73;
                 }
                 else if (tile.type == TileID.PlatinumCoinPile)
                 {
                     num49 = 74;
                 }
                 else if (tile.type == TileID.Trees)
                 {
                     if (tile.frameX >= 22 && tile.frameY >= 198)
                     {
                         if (Main.netMode != 1)
                         {
                             if (WorldGen.genRand.Next(2) == 0)
                             {
                                 int num55 = j;
                                 while (Main.tile[i, num55] != null && (!Main.tile[i, num55].active() || !Main.tileSolid[(int)Main.tile[i, num55].type] || Main.tileSolidTop[(int)Main.tile[i, num55].type]))
                                 {
                                     num55++;
                                 }
                                 if (Main.tile[i, num55] != null)
                                 {
                                     if (Main.tile[i, num55].type == TileID.Grass || Main.tile[i, num55].type == TileID.HallowedGrass || Main.tile[i, num55].type == TileID.SnowBlock || Main.tile[i, num55].type == TileID.FleshGrass || Main.tile[i, num55].type == TileID.CorruptGrass)
                                     {
                                         num49 = 9;
                                         num50 = 27;
                                     }
                                     else
                                     {
                                         num49 = 9;
                                     }
                                 }
                             }
                             else
                             {
                                 num49 = 9;
                             }
                         }
                     }
                     else
                     {
                         num49 = 9;
                     }
                     if (num49 == 9)
                     {
                         int num56 = i;
                         int num57 = j;
                         if (tile.frameX == 66 && tile.frameY <= 45)
                         {
                             num56++;
                         }
                         if (tile.frameX == 88 && tile.frameY >= 66 && tile.frameY <= 110)
                         {
                             num56--;
                         }
                         if (tile.frameX == 22 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num56--;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
                         {
                             num56++;
                         }
                         if (tile.frameX == 44 && tile.frameY >= 198)
                         {
                             num56++;
                         }
                         if (tile.frameX == 66 && tile.frameY >= 198)
                         {
                             num56--;
                         }
                         while (!Main.tile[num56, num57].active() || !Main.tileSolid[(int)Main.tile[num56, num57].type])
                         {
                             num57++;
                         }
                         if (Main.tile[num56, num57].active())
                         {
                             ushort type = Main.tile[num56, num57].type;
                             if (type <= 70)
                             {
                                 if (type != 23)
                                 {
                                     if (type != 60)
                                     {
                                         if (type == 70)
                                         {
                                             num49 = 183;
                                         }
                                     }
                                     else
                                     {
                                         num49 = 620;
                                     }
                                 }
                                 else
                                 {
                                     num49 = 619;
                                 }
                             }
                             else if (type != 109)
                             {
                                 if (type != 147)
                                 {
                                     if (type == 199)
                                     {
                                         num49 = 911;
                                     }
                                 }
                                 else
                                 {
                                     num49 = 2503;
                                 }
                             }
                             else
                             {
                                 num49 = 621;
                             }
                         }
                         int num58 = (int)Player.FindClosest(new Vector2((float)(num56 * 16), (float)(num57 * 16)), 16, 16);
                         int axe = Main.player[num58].inventory[Main.player[num58].selectedItem].axe;
                         if (WorldGen.genRand.Next(200) < axe)
                         {
                             flag = true;
                         }
                     }
                 }
                 else if (tile.type == TileID.PalmTree)
                 {
                     num49 = 2504;
                     if (tile.frameX <= 132 && tile.frameX >= 88)
                     {
                         num50 = 27;
                     }
                     int num59 = j;
                     while (!Main.tile[i, num59].active() || !Main.tileSolid[(int)Main.tile[i, num59].type])
                     {
                         num59++;
                     }
                     if (Main.tile[i, num59].active())
                     {
                         ushort type = Main.tile[i, num59].type;
                         if (type != 112)
                         {
                             if (type != 116)
                             {
                                 if (type == 234)
                                 {
                                     num49 = 911;
                                 }
                             }
                             else
                             {
                                 num49 = 621;
                             }
                         }
                         else
                         {
                             num49 = 619;
                         }
                     }
                 }
                 else if (tile.type == TileID.LunarOre)
                 {
                     num49 = 3460;
                 }
                 else if (tile.type == TileID.LunarBrick)
                 {
                     num49 = 3461;
                 }
                 else if (tile.type == TileID.LunarBlockSolar)
                 {
                     num49 = 3573;
                 }
                 else if (tile.type == TileID.LunarBlockVortex)
                 {
                     num49 = 3574;
                 }
                 else if (tile.type == TileID.LunarBlockNebula)
                 {
                     num49 = 3575;
                 }
                 else if (tile.type == TileID.LunarBlockStardust)
                 {
                     num49 = 3576;
                 }
                 else if (tile.type >= TileID.AmethystGemsparkOff && tile.type <= TileID.AmberGemsparkOff)
                 {
                     num49 = (int)(1970 + tile.type - 255);
                 }
                 else if (tile.type >= TileID.AmethystGemspark && tile.type <= TileID.AmberGemspark)
                 {
                     num49 = (int)(1970 + tile.type - 262);
                 }
                 else if (tile.type == TileID.ChristmasTree)
                 {
                     if (tile.frameX >= 10)
                     {
                         WorldGen.dropXmasTree(i, j, 0);
                         WorldGen.dropXmasTree(i, j, 1);
                         WorldGen.dropXmasTree(i, j, 2);
                         WorldGen.dropXmasTree(i, j, 3);
                     }
                 }
                 else if (tile.type == TileID.BeachPiles)
                 {
                     switch (tile.frameY / 22)
                     {
                         case 0:
                             num49 = 2625;
                             break;
                         case 1:
                             num49 = 2626;
                             break;
                     }
                 }
                 else if (tile.type == TileID.Cog)
                 {
                     num49 = 1344;
                 }
                 else if (tile.type == TileID.StoneSlab)
                 {
                     num49 = 2119;
                 }
                 else if (tile.type == TileID.SandStoneSlab)
                 {
                     num49 = 2120;
                 }
                 else if (tile.type == TileID.Waterfall)
                 {
                     num49 = 2693;
                 }
                 else if (tile.type == TileID.Lavafall)
                 {
                     num49 = 2694;
                 }
                 else if (tile.type == TileID.Honeyfall)
                 {
                     num49 = 2787;
                 }
                 else if (tile.type == TileID.Confetti)
                 {
                     num49 = 2695;
                 }
                 else if (tile.type == TileID.ConfettiBlack)
                 {
                     num49 = 2697;
                 }
                 else if (tile.type == TileID.ChlorophyteBrick)
                 {
                     num49 = 2792;
                 }
                 else if (tile.type == TileID.CrimtaneBrick)
                 {
                     num49 = 2793;
                 }
                 else if (tile.type == TileID.ShroomitePlating)
                 {
                     num49 = 2794;
                 }
                 else if (tile.type == TileID.MartianConduitPlating)
                 {
                     num49 = 2860;
                 }
                 else if (tile.type == TileID.LivingFire)
                 {
                     num49 = 2701;
                 }
                 else if (tile.type == TileID.LivingCursedFire)
                 {
                     num49 = 2751;
                 }
                 else if (tile.type == TileID.LivingDemonFire)
                 {
                     num49 = 2752;
                 }
                 else if (tile.type == TileID.LivingFrostFire)
                 {
                     num49 = 2753;
                 }
                 else if (tile.type == TileID.LivingIchor)
                 {
                     num49 = 2754;
                 }
                 else if (tile.type == TileID.LivingUltrabrightFire)
                 {
                     num49 = 2755;
                 }
                 else if (tile.type == TileID.ChimneySmoke)
                 {
                     num49 = 2868;
                 }
                 else if (tile.type == TileID.PumpkinBlock)
                 {
                     num49 = 1725;
                 }
                 else if (tile.type == TileID.HayBlock)
                 {
                     num49 = 1727;
                 }
                 else if (tile.type == TileID.SpookyWood)
                 {
                     num49 = 1729;
                 }
                 else if (tile.type == TileID.TinPlating)
                 {
                     num49 = 2692;
                 }
                 else if (tile.type == TileID.MeteoriteBrick)
                 {
                     num49 = 3100;
                 }
                 else if (tile.type == TileID.Sandstone)
                 {
                     num49 = 3271;
                 }
                 else if (tile.type == TileID.CorruptSandstone)
                 {
                     num49 = 3276;
                 }
                 else if (tile.type == TileID.CrimsonSandstone)
                 {
                     num49 = 3277;
                 }
                 else if (tile.type == TileID.HallowSandstone)
                 {
                     num49 = 3339;
                 }
                 else if (tile.type == TileID.HardenedSand)
                 {
                     num49 = 3272;
                 }
                 else if (tile.type == TileID.CorruptHardenedSand)
                 {
                     num49 = 3274;
                 }
                 else if (tile.type == TileID.CrimsonHardenedSand)
                 {
                     num49 = 3275;
                 }
                 else if (tile.type == TileID.HallowHardenedSand)
                 {
                     num49 = 3338;
                 }
                 else if (tile.type == TileID.DesertFossil)
                 {
                     num49 = 3347;
                 }
                 else if (tile.type == TileID.FossilOre)
                 {
                     num49 = 3380;
                 }
                 else if (tile.type == TileID.PineTree)
                 {
                     num49 = 1872;
                 }
                 else if (tile.type == TileID.CopperPlating)
                 {
                     num49 = 2173;
                 }
                 else if (tile.type == TileID.Chain)
                 {
                     num49 = 85;
                 }
                 else if (tile.type == TileID.Rope)
                 {
                     num49 = 965;
                 }
                 else if (tile.type == TileID.Chlorophyte)
                 {
                     num49 = 947;
                 }
                 else if (tile.type == TileID.Iron)
                 {
                     num49 = 11;
                 }
                 else if (tile.type == TileID.Copper)
                 {
                     num49 = 12;
                 }
                 else if (tile.type == TileID.Gold)
                 {
                     num49 = 13;
                 }
                 else if (tile.type == TileID.Silver)
                 {
                     num49 = 14;
                 }
                 else if (tile.type == TileID.Sunplate)
                 {
                     num49 = 824;
                 }
                 else if (tile.type == TileID.Crimsand)
                 {
                     num49 = 1246;
                 }
                 else if (tile.type == TileID.LihzahrdBrick)
                 {
                     num49 = 1101;
                 }
                 else if (tile.type == TileID.Slush)
                 {
                     num49 = 1103;
                 }
                 else if (tile.type == TileID.Presents)
                 {
                     num49 = 1869;
                 }
                 else if (tile.type == TileID.DynastyWood)
                 {
                     num49 = 2260;
                 }
                 else if (tile.type == TileID.RedDynastyShingles)
                 {
                     num49 = 2261;
                 }
                 else if (tile.type == TileID.BlueDynastyShingles)
                 {
                     num49 = 2262;
                 }
                 else if (tile.type == TileID.HoneyBlock)
                 {
                     num49 = 1125;
                 }
                 else if (tile.type == TileID.CrispyHoneyBlock)
                 {
                     num49 = 1127;
                 }
                 else if (tile.type == TileID.Hive)
                 {
                     if (WorldGen.genRand.Next(3) == 0)
                     {
                         tile.honey(true);
                         tile.liquid = 255;
                     }
                     else
                     {
                         num49 = 1124;
                         if (Main.netMode != 1 && WorldGen.genRand.Next(2) == 0)
                         {
                             int num60 = 1;
                             if (WorldGen.genRand.Next(3) == 0)
                             {
                                 num60 = 2;
                             }
                             for (int num61 = 0; num61 < num60; num61++)
                             {
                                 int type5 = WorldGen.genRand.Next(210, 212);
                                 int num62 = NPC.NewNPC(i * 16 + 8, j * 16 + 15, type5, 1, 0f, 0f, 0f, 0f, 255);
                                 Main.npc[num62].velocity.X = (float)WorldGen.genRand.Next(-200, 201) * 0.002f;
                                 Main.npc[num62].velocity.Y = (float)WorldGen.genRand.Next(-200, 201) * 0.002f;
                                 Main.npc[num62].netUpdate = true;
                             }
                         }
                     }
                 }
                 else if (tile.type == TileID.Palladium)
                 {
                     num49 = 1104;
                 }
                 else if (tile.type == TileID.Orichalcum)
                 {
                     num49 = 1105;
                 }
                 else if (tile.type == TileID.Titanium)
                 {
                     num49 = 1106;
                 }
                 else if (tile.type == TileID.PalladiumColumn)
                 {
                     num49 = 1589;
                 }
                 else if (tile.type == TileID.BubblegumBlock)
                 {
                     num49 = 1591;
                 }
                 else if (tile.type == TileID.Titanstone)
                 {
                     num49 = 1593;
                 }
                 else if (tile.type == TileID.LivingWood)
                 {
                     num49 = 9;
                 }
                 else if (tile.type == TileID.Crimstone)
                 {
                     num49 = 836;
                 }
                 else if (tile.type == TileID.Crimtane)
                 {
                     num49 = 880;
                 }
                 else if (tile.type == TileID.Tin)
                 {
                     num49 = 699;
                 }
                 else if (tile.type == TileID.Lead)
                 {
                     num49 = 700;
                 }
                 else if (tile.type == TileID.Tungsten)
                 {
                     num49 = 701;
                 }
                 else if (tile.type == TileID.Platinum)
                 {
                     num49 = 702;
                 }
                 else if (tile.type == TileID.Silt)
                 {
                     num49 = 424;
                 }
                 else if (tile.type == TileID.WoodenBeam)
                 {
                     num49 = 480;
                 }
                 else if (tile.type == TileID.Ebonwood)
                 {
                     num49 = 619;
                 }
                 else if (tile.type == TileID.RichMahogany)
                 {
                     num49 = 620;
                 }
                 else if (tile.type == TileID.Pearlwood)
                 {
                     num49 = 621;
                 }
                 else if (tile.type == TileID.IceBlock)
                 {
                     num49 = 664;
                 }
                 else if (tile.type == TileID.IceBrick)
                 {
                     num49 = 883;
                 }
                 else if (tile.type == TileID.WoodenSpikes)
                 {
                     num49 = 1150;
                 }
                 else if (tile.type == TileID.Asphalt)
                 {
                     num49 = 775;
                 }
                 else if (tile.type == TileID.MinecartTrack)
                 {
                     num49 = Minecart.GetTrackItem(tile);
                 }
                 else if (tile.type == TileID.Cloud)
                 {
                     num49 = 751;
                 }
                 else if (tile.type == TileID.FleshBlock)
                 {
                     num49 = 763;
                 }
                 else if (tile.type == TileID.BoneBlock)
                 {
                     num49 = 766;
                 }
                 else if (tile.type == TileID.SlimeBlock)
                 {
                     num49 = 762;
                 }
                 else if (tile.type == TileID.RainCloud)
                 {
                     num49 = 765;
                 }
                 else if (tile.type == TileID.FrozenSlimeBlock)
                 {
                     num49 = 767;
                 }
                 else if (tile.type == TileID.ExposedGems)
                 {
                     int num63 = (int)(tile.frameX / 18);
                     if (num63 == 0)
                     {
                         num49 = 181;
                     }
                     else if (num63 == 1)
                     {
                         num49 = 180;
                     }
                     else if (num63 == 2)
                     {
                         num49 = 177;
                     }
                     else if (num63 == 3)
                     {
                         num49 = 179;
                     }
                     else if (num63 == 4)
                     {
                         num49 = 178;
                     }
                     else if (num63 == 5)
                     {
                         num49 = 182;
                     }
                     else if (num63 == 6)
                     {
                         num49 = 999;
                     }
                 }
                 else if (tile.type == TileID.HolidayLights)
                 {
                     if (tile.frameX == 0 || tile.frameX == 54)
                     {
                         num49 = 596;
                     }
                     else if (tile.frameX == 18 || tile.frameX == 72)
                     {
                         num49 = 597;
                     }
                     else if (tile.frameX == 36 || tile.frameX == 90)
                     {
                         num49 = 598;
                     }
                 }
                 else if (tile.type == TileID.Bottles)
                 {
                     int num64 = (int)(tile.frameX / 18);
                     if (num64 == 1)
                     {
                         num49 = 28;
                     }
                     else if (num64 == 2)
                     {
                         num49 = 110;
                     }
                     else if (num64 == 3)
                     {
                         num49 = 350;
                     }
                     else if (num64 == 4)
                     {
                         num49 = 351;
                     }
                     else if (num64 == 5)
                     {
                         num49 = 2234;
                     }
                     else if (num64 == 6)
                     {
                         num49 = 2244;
                     }
                     else if (num64 == 7)
                     {
                         num49 = 2257;
                     }
                     else if (num64 == 8)
                     {
                         num49 = 2258;
                     }
                     else
                     {
                         num49 = 31;
                     }
                 }
                 else if (tile.type == TileID.Platforms)
                 {
                     int num65 = (int)(tile.frameY / 18);
                     if (num65 == 0)
                     {
                         num49 = 94;
                     }
                     else if (num65 == 1)
                     {
                         num49 = 631;
                     }
                     else if (num65 == 2)
                     {
                         num49 = 632;
                     }
                     else if (num65 == 3)
                     {
                         num49 = 633;
                     }
                     else if (num65 == 4)
                     {
                         num49 = 634;
                     }
                     else if (num65 == 5)
                     {
                         num49 = 913;
                     }
                     else if (num65 == 6)
                     {
                         num49 = 1384;
                     }
                     else if (num65 == 7)
                     {
                         num49 = 1385;
                     }
                     else if (num65 == 8)
                     {
                         num49 = 1386;
                     }
                     else if (num65 == 9)
                     {
                         num49 = 1387;
                     }
                     else if (num65 == 10)
                     {
                         num49 = 1388;
                     }
                     else if (num65 == 11)
                     {
                         num49 = 1389;
                     }
                     else if (num65 == 12)
                     {
                         num49 = 1418;
                     }
                     else if (num65 == 13)
                     {
                         num49 = 1457;
                     }
                     else if (num65 == 14)
                     {
                         num49 = 1702;
                     }
                     else if (num65 == 15)
                     {
                         num49 = 1796;
                     }
                     else if (num65 == 16)
                     {
                         num49 = 1818;
                     }
                     else if (num65 == 17)
                     {
                         num49 = 2518;
                     }
                     else if (num65 == 18)
                     {
                         num49 = 2549;
                     }
                     else if (num65 == 19)
                     {
                         num49 = 2566;
                     }
                     else if (num65 == 20)
                     {
                         num49 = 2581;
                     }
                     else if (num65 == 21)
                     {
                         num49 = 2627;
                     }
                     else if (num65 == 22)
                     {
                         num49 = 2628;
                     }
                     else if (num65 == 23)
                     {
                         num49 = 2629;
                     }
                     else if (num65 == 24)
                     {
                         num49 = 2630;
                     }
                     else if (num65 == 25)
                     {
                         num49 = 2744;
                     }
                     else if (num65 == 26)
                     {
                         num49 = 2822;
                     }
                     else if (num65 == 27)
                     {
                         num49 = 3144;
                     }
                     else if (num65 == 28)
                     {
                         num49 = 3146;
                     }
                     else if (num65 == 29)
                     {
                         num49 = 3145;
                     }
                 }
                 else if (tile.type == TileID.Demonite)
                 {
                     num49 = 56;
                 }
                 else if (tile.type == TileID.DemoniteBrick)
                 {
                     num49 = 577;
                 }
                 else if (tile.type == TileID.CorruptGrass)
                 {
                     num49 = 2;
                 }
                 else if (tile.type == TileID.Ebonstone)
                 {
                     num49 = 61;
                 }
                 else if (tile.type == TileID.WoodBlock)
                 {
                     num49 = 9;
                 }
                 else if (tile.type == TileID.LivingWood)
                 {
                     num49 = 9;
                 }
                 else if (tile.type == TileID.Shadewood)
                 {
                     num49 = 911;
                 }
                 else if (tile.type == TileID.Candles)
                 {
                     int num66 = (int)(tile.frameY / 22);
                     num49 = 105;
                     if (num66 == 1)
                     {
                         num49 = 1405;
                     }
                     else if (num66 == 2)
                     {
                         num49 = 1406;
                     }
                     else if (num66 == 3)
                     {
                         num49 = 1407;
                     }
                     else if (num66 >= 4 && num66 <= 13)
                     {
                         num49 = 2045 + num66 - 4;
                     }
                     else if (num66 >= 14 && num66 <= 16)
                     {
                         num49 = 2153 + num66 - 14;
                     }
                     else if (num66 == 17)
                     {
                         num49 = 2236;
                     }
                     else if (num66 == 18)
                     {
                         num49 = 2523;
                     }
                     else if (num66 == 19)
                     {
                         num49 = 2542;
                     }
                     else if (num66 == 20)
                     {
                         num49 = 2556;
                     }
                     else if (num66 == 21)
                     {
                         num49 = 2571;
                     }
                     else if (num66 == 22)
                     {
                         num49 = 2648;
                     }
                     else if (num66 == 23)
                     {
                         num49 = 2649;
                     }
                     else if (num66 == 24)
                     {
                         num49 = 2650;
                     }
                     else if (num66 == 25)
                     {
                         num49 = 2651;
                     }
                     else if (num66 == 26)
                     {
                         num49 = 2818;
                     }
                     else if (num66 == 27)
                     {
                         num49 = 3171;
                     }
                     else if (num66 == 28)
                     {
                         num49 = 3173;
                     }
                     else if (num66 == 29)
                     {
                         num49 = 3172;
                     }
                 }
                 else if (tile.type == TileID.PeaceCandle)
                 {
                     num49 = 3117;
                 }
                 else if (tile.type == TileID.PinkSlimeBlock)
                 {
                     num49 = 3113;
                 }
                 else if (tile.type == TileID.PlatinumCandle)
                 {
                     num49 = 713;
                 }
                 else if (tile.type == TileID.Meteorite)
                 {
                     num49 = 116;
                 }
                 else if (tile.type == TileID.GrayBrick)
                 {
                     num49 = 129;
                 }
                 else if (tile.type == TileID.RedBrick)
                 {
                     num49 = 131;
                 }
                 else if (tile.type == TileID.ClayBlock)
                 {
                     num49 = 133;
                 }
                 else if (tile.type == TileID.BlueDungeonBrick)
                 {
                     num49 = 134;
                 }
                 else if (tile.type == TileID.GreenDungeonBrick)
                 {
                     num49 = 137;
                 }
                 else if (tile.type == TileID.PinkDungeonBrick)
                 {
                     num49 = 139;
                 }
                 else if (tile.type == TileID.GoldBrick)
                 {
                     num49 = 141;
                 }
                 else if (tile.type == TileID.SilverBrick)
                 {
                     num49 = 143;
                 }
                 else if (tile.type == TileID.CopperBrick)
                 {
                     num49 = 145;
                 }
                 else if (tile.type == TileID.Spikes)
                 {
                     num49 = 147;
                 }
                 else if (tile.type == TileID.WaterCandle)
                 {
                     num49 = 148;
                 }
                 else if (tile.type == TileID.Cobweb)
                 {
                     num49 = 150;
                 }
                 else if (tile.type == TileID.Sand)
                 {
                     num49 = 169;
                 }
                 else if (tile.type == TileID.SandstoneBrick)
                 {
                     num49 = 607;
                 }
                 else if (tile.type == TileID.EbonstoneBrick)
                 {
                     num49 = 609;
                 }
                 else if (tile.type == TileID.Glass)
                 {
                     num49 = 170;
                 }
                 else if (tile.type == TileID.Obsidian)
                 {
                     num49 = 173;
                 }
                 else if (tile.type == TileID.Ash)
                 {
                     num49 = 172;
                 }
                 else if (tile.type == TileID.Hellstone)
                 {
                     num49 = 174;
                 }
                 else if (tile.type == TileID.JungleGrass)
                 {
                     num49 = 176;
                 }
                 else if (tile.type == TileID.MushroomGrass)
                 {
                     num49 = 176;
                 }
                 else if (tile.type == TileID.ObsidianBrick)
                 {
                     num49 = 192;
                 }
                 else if (tile.type == TileID.HellstoneBrick)
                 {
                     num49 = 214;
                 }
                 else if (tile.type == TileID.ClayPot)
                 {
                     num49 = 222;
                 }
                 else if (tile.type == TileID.Coral)
                 {
                     num49 = 275;
                 }
                 else if (tile.type == TileID.Cactus)
                 {
                     num49 = 276;
                 }
                 else if (tile.type == TileID.CactusBlock)
                 {
                     num49 = 276;
                 }
                 else if (tile.type == TileID.Cobalt)
                 {
                     num49 = 364;
                 }
                 else if (tile.type == TileID.Mythril)
                 {
                     num49 = 365;
                 }
                 else if (tile.type == TileID.Adamantite)
                 {
                     num49 = 366;
                 }
                 else if (tile.type == TileID.AdamantiteBeam)
                 {
                     num49 = 604;
                 }
                 else if (tile.type == TileID.Ebonsand)
                 {
                     num49 = 370;
                 }
                 else if (tile.type == TileID.Pearlsand)
                 {
                     num49 = 408;
                 }
                 else if (tile.type == TileID.Pearlstone)
                 {
                     num49 = 409;
                 }
                 else if (tile.type == TileID.Crystals)
                 {
                     num49 = 502;
                 }
                 else if (tile.type == TileID.PearlstoneBrick)
                 {
                     num49 = 412;
                 }
                 else if (tile.type == TileID.IridescentBrick)
                 {
                     num49 = 413;
                 }
                 else if (tile.type == TileID.Mudstone)
                 {
                     num49 = 414;
                 }
                 else if (tile.type == TileID.CobaltBrick)
                 {
                     num49 = 415;
                 }
                 else if (tile.type == TileID.MythrilBrick)
                 {
                     num49 = 416;
                 }
                 else if (tile.type == TileID.Switches)
                 {
                     num49 = 538;
                 }
                 else if (tile.type == TileID.CrystalBlock)
                 {
                     num49 = 3234;
                 }
                 else if (tile.type == TileID.Traps)
                 {
                     int num67 = (int)(tile.frameY / 18);
                     if (num67 == 0)
                     {
                         num49 = 539;
                     }
                     if (num67 == 1)
                     {
                         num49 = 1146;
                     }
                     if (num67 == 2)
                     {
                         num49 = 1147;
                     }
                     if (num67 == 3)
                     {
                         num49 = 1148;
                     }
                     if (num67 == 4)
                     {
                         num49 = 1149;
                     }
                 }
                 else if (tile.type == TileID.Explosives)
                 {
                     num49 = 580;
                 }
                 else if (tile.type == TileID.CandyCaneBlock)
                 {
                     num49 = 586;
                 }
                 else if (tile.type == TileID.GreenCandyCaneBlock)
                 {
                     num49 = 591;
                 }
                 else if (tile.type == TileID.SnowBlock)
                 {
                     num49 = 593;
                 }
                 else if (tile.type == TileID.SnowBrick)
                 {
                     num49 = 594;
                 }
                 else if (tile.type == TileID.RedStucco)
                 {
                     num49 = 611;
                 }
                 else if (tile.type == TileID.YellowStucco)
                 {
                     num49 = 612;
                 }
                 else if (tile.type == TileID.GreenStucco)
                 {
                     num49 = 613;
                 }
                 else if (tile.type == TileID.GrayStucco)
                 {
                     num49 = 614;
                 }
                 else if (tile.type == TileID.RainbowBrick)
                 {
                     num49 = 662;
                 }
                 else if (tile.type == TileID.TinBrick)
                 {
                     num49 = 717;
                 }
                 else if (tile.type == TileID.TungstenBrick)
                 {
                     num49 = 718;
                 }
                 else if (tile.type == TileID.PlatinumBrick)
                 {
                     num49 = 719;
                 }
                 else if (tile.type == TileID.CorruptIce)
                 {
                     num49 = 833;
                 }
                 else if (tile.type == TileID.HallowedIce)
                 {
                     num49 = 834;
                 }
                 else if (tile.type == TileID.FleshIce)
                 {
                     num49 = 835;
                 }
                 else if (tile.type == TileID.LandMine)
                 {
                     num49 = 937;
                 }
                 else if (tile.type == TileID.PressurePlates)
                 {
                     int num68 = (int)(tile.frameY / 18);
                     if (num68 == 0)
                     {
                         num49 = 529;
                     }
                     if (num68 == 1)
                     {
                         num49 = 541;
                     }
                     if (num68 == 2)
                     {
                         num49 = 542;
                     }
                     if (num68 == 3)
                     {
                         num49 = 543;
                     }
                     if (num68 == 4)
                     {
                         num49 = 852;
                     }
                     if (num68 == 5)
                     {
                         num49 = 853;
                     }
                     if (num68 == 6)
                     {
                         num49 = 1151;
                     }
                 }
                 else if (tile.type == TileID.Timers)
                 {
                     if (tile.frameX == 0)
                     {
                         num49 = 583;
                     }
                     if (tile.frameX == 18)
                     {
                         num49 = 584;
                     }
                     if (tile.frameX == 36)
                     {
                         num49 = 585;
                     }
                 }
                 else if (tile.type == TileID.ActiveStoneBlock)
                 {
                     num49 = 511;
                 }
                 else if (tile.type == TileID.InactiveStoneBlock)
                 {
                     num49 = 512;
                 }
                 else if (tile.type == TileID.JunglePlants || tile.type == TileID.JunglePlants2)
                 {
                     if (tile.frameX == 144 && tile.type == TileID.JunglePlants)
                     {
                         Item.NewItem(i * 16, j * 16, 16, 16, 331, WorldGen.genRand.Next(2, 4), false, 0, false, false);
                     }
                     else if (tile.frameX == 162 && tile.type == TileID.JunglePlants)
                     {
                         num49 = 223;
                     }
                     else if (tile.frameX >= 108 && tile.frameX <= 126 && tile.type == TileID.JunglePlants && WorldGen.genRand.Next(20) == 0)
                     {
                         num49 = 208;
                     }
                     else if (WorldGen.genRand.Next(100) == 0)
                     {
                         num49 = 195;
                     }
                 }
                 else if (tile.type == TileID.Mud || tile.type == TileID.JungleGrass)
                 {
                     num49 = 176;
                 }
                 else if (tile.type == TileID.MushroomBlock)
                 {
                     num49 = 183;
                 }
                 else if (tile.type == TileID.MushroomPlants || tile.type == TileID.MushroomTrees)
                 {
                     if (WorldGen.genRand.Next(50) == 0)
                     {
                         num49 = 194;
                     }
                     else if (WorldGen.genRand.Next(2) == 0)
                     {
                         num49 = 183;
                     }
                 }
                 else if (tile.type >= TileID.Sapphire && tile.type <= TileID.Diamond)
                 {
                     num49 = (int)(tile.type - 63 + 177);
                 }
                 else if (tile.type == TileID.Books)
                 {
                     if (tile.frameX == 90)
                     {
                         num49 = 165;
                     }
                     else
                     {
                         num49 = 149;
                     }
                 }
                 else if (Main.tileAlch[(int)tile.type])
                 {
                     if (tile.type > 82)
                     {
                         int num69 = (int)(tile.frameX / 18);
                         bool flag2 = false;
                         num49 = 313 + num69;
                         int type6 = 307 + num69;
                         if (tile.type == TileID.BloomingHerbs)
                         {
                             flag2 = true;
                         }
                         if (num69 == 0 && Main.dayTime)
                         {
                             flag2 = true;
                         }
                         if (num69 == 1 && !Main.dayTime)
                         {
                             flag2 = true;
                         }
                         if (num69 == 3 && !Main.dayTime && (Main.bloodMoon || Main.moonPhase == 0))
                         {
                             flag2 = true;
                         }
                         if (num69 == 4 && (Main.raining || Main.cloudAlpha > 0f))
                         {
                             flag2 = true;
                         }
                         if (num69 == 5 && !Main.raining && Main.dayTime && Main.time > 40500.0)
                         {
                             flag2 = true;
                         }
                         if (num69 == 6)
                         {
                             num49 = 2358;
                             type6 = 2357;
                         }
                         int num70 = (int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16);
                         if (Main.player[num70].inventory[Main.player[num70].selectedItem].type == 213)
                         {
                             Item.NewItem(i * 16, j * 16, 16, 16, type6, WorldGen.genRand.Next(1, 6), false, 0, false, false);
                             Item.NewItem(i * 16, j * 16, 16, 16, num49, WorldGen.genRand.Next(1, 3), false, 0, false, false);
                             num49 = -1;
                         }
                         else if (flag2)
                         {
                             int stack = WorldGen.genRand.Next(1, 4);
                             Item.NewItem(i * 16, j * 16, 16, 16, type6, stack, false, 0, false, false);
                         }
                     }
                 }
                 else if (tile.type == TileID.BorealWood)
                 {
                     num49 = 2503;
                 }
                 else if (tile.type == TileID.PalmWood)
                 {
                     num49 = 2504;
                 }
                 if (num49 > 0)
                 {
                     int num71 = 1;
                     if (flag)
                     {
                         num71++;
                     }
                     Item.NewItem(i * 16, j * 16, 16, 16, num49, num71, false, -1, false, false);
                 }
                 if (num50 > 0)
                 {
                     Item.NewItem(i * 16, j * 16, 16, 16, num50, 1, false, -1, false, false);
                 }
             }
             if (Main.netMode != 2)
             {
                 AchievementsHelper.NotifyTileDestroyed(Main.player[Main.myPlayer], tile.type);
             }
             tile.active(false);
             tile.halfBrick(false);
             tile.frameX = -1;
             tile.frameY = -1;
             tile.color(0);
             tile.frameNumber(0);
             if (tile.type == TileID.Hellstone && j > Main.maxTilesY - 200)
             {
                 tile.lava(true);
                 tile.liquid = 128;
             }
             else if (tile.type == TileID.Glass)
             {
                 WorldGen.SquareWallFrame(i, j, true);
             }
             tile.type = 0;
             tile.inActive(false);
             WorldGen.SquareTileFrame(i, j, true);
         }
     }
 }
示例#17
0
        private static bool HandlePlayerSlot(GetDataHandlerArgs args)
        {
            byte plr = args.Data.ReadInt8();
            byte slot = args.Data.ReadInt8();
            byte stack = args.Data.ReadInt8();
            byte prefix = args.Data.ReadInt8();
            short type = args.Data.ReadInt16();
            var user = TShock.Users.GetUserByName(args.Player.Name);

            if (OnPlayerSlot(plr, slot, stack, prefix, type))
                return true;

            if (plr != args.Player.Index)
            {
                return true;
            }

            if (slot < 0 || slot > NetItem.maxNetInventory)
            {
                return true;
            }

            var item = new Item();
            item.netDefaults(type);
            item.Prefix(prefix);

            if (args.Player.IsLoggedIn)
            {
                if (TShock.Config.StoreInventory)
                    TShock.Inventory.UpdateInventory(args.Player);
            }

            return false;
        }
示例#18
0
 public static void ReadChests(this BinaryReader reader, int x, int y)
 {
     int num = (int)reader.ReadInt32();
     int num2 = (int)reader.ReadInt16();
     TSPlayer.All.SendInfoMessage("Total Chests: {0}, Total Slots: {1}", num, num2);
     int num3;
     int num4;
     if (num2 < 40)
     {
         num3 = num2;
         num4 = 0;
     }
     else
     {
         num3 = 40;
         num4 = num2 - 40;
     }
     int i;
     for (i = 0; i < num; i++)
     {
         for (int c = 0; c < 1000; c++)
         {
             if (Main.chest[c] == null)
             {
                 Chest chest = new Chest(false);
                 chest.x = reader.ReadInt32() + x;
                 chest.y = reader.ReadInt32() + y;
                 chest.name = reader.ReadString();
                 TSPlayer.All.SendInfoMessage("Load: {0}x{1} Offset: {2}x{3}", chest.x, chest.y, chest.x - x, chest.y - y);
                 for (int j = 0; j < num3; j++)
                 {
                     short num5 = reader.ReadInt16();
                     Item item = new Item();
                     if (num5 > 0)
                     {
                         item.netDefaults(reader.ReadInt16());
                         item.stack = (int)num5;
                         item.Prefix((int)reader.ReadByte());
                     }
                     else if (num5 < 0)
                     {
                         item.netDefaults(reader.ReadInt16());
                         item.Prefix((int)reader.ReadByte());
                         item.stack = 1;
                     }
                     chest.item[j] = item;
                 }
                 for (int j = 0; j < num4; j++)
                 {
                     short num5 = reader.ReadInt16();
                     if (num5 > 0)
                     {
                         reader.ReadInt16();
                         reader.ReadByte();
                     }
                 }
                 Main.chest[i] = chest;
                 break;
             }
         }
     }
     TSPlayer.All.SendInfoMessage("{0} Chests Loaded.", num);
 }
示例#19
0
 private static void LoadChests(BinaryReader reader)
 {
     Chest chest = null;
     int num6;
     int num7;
     int num4 = reader.ReadInt16();
     int num5 = reader.ReadInt16();
     if (num5 < 40)
     {
         num6 = num5;
         num7 = 0;
     }
     else
     {
         num6 = 40;
         num7 = num5 - 40;
     }
     int index = 0;
     while (index < num4)
     {
         chest = new Chest(false)
         {
             x = reader.ReadInt32(),
             y = reader.ReadInt32(),
             name = reader.ReadString()
         };
         int num3 = 0;
         while (num3 < num6)
         {
             short num = reader.ReadInt16();
             Item item = new Item();
             if (num > 0)
             {
                 item.netDefaults(reader.ReadInt32());
                 item.stack = num;
                 item.Prefix(reader.ReadByte());
             }
             else if (num < 0)
             {
                 item.netDefaults(reader.ReadInt32());
                 item.Prefix(reader.ReadByte());
                 item.stack = 1;
             }
             chest.item[num3] = item;
             num3++;
         }
         for (num3 = 0; num3 < num7; num3++)
         {
             if (reader.ReadInt16() > 0)
             {
                 reader.ReadInt32();
                 reader.ReadByte();
             }
         }
         Main.chest[index] = chest;
         index++;
     }
     while (index < 0x3e8)
     {
         Main.chest[index] = null;
         index++;
     }
     if (versionNumber < 0x73)
     {
         FixDresserChests();
     }
 }
示例#20
0
文件: TShock.cs 项目: B-BOB/TShock
        /// <summary>HackedInventory - Checks to see if a user has a hacked inventory. In addition, messages players the result.</summary>
        /// <param name="player">player - The TSPlayer object.</param>
        /// <returns>bool - True if the player has a hacked inventory.</returns>
        public static bool HackedInventory(TSPlayer player)
        {
            bool check = false;

            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            Item[] dye = player.TPlayer.dye;
            Item[] miscEquips = player.TPlayer.miscEquips;
            Item[] miscDyes = player.TPlayer.miscDyes;
            Item[] piggy = player.TPlayer.bank.item;
            Item[] safe = player.TPlayer.bank2.item;
            Item trash = player.TPlayer.trashItem;

            for (int i = 0; i < NetItem.MaxInventory; i++)
            {
                if (i < NetItem.InventorySlots)
                {
                    //0-58
                    Item item = new Item();
                    if (inventory[i] != null && inventory[i].netID != 0)
                    {
                        item.netDefaults(inventory[i].netID);
                        item.Prefix(inventory[i].prefix);
                        item.AffixName();
                        if (inventory[i].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, inventory[i].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i < NetItem.InventorySlots + NetItem.ArmorSlots)
                {
                    //59-78
                    Item item = new Item();
                    var index = i - NetItem.InventorySlots;
                    if (armor[index] != null && armor[index].netID != 0)
                    {
                        item.netDefaults(armor[index].netID);
                        item.Prefix(armor[index].prefix);
                        item.AffixName();
                        if (armor[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.name, armor[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i < NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots)
                {
                    //79-88
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots);
                    if (dye[index] != null && dye[index].netID != 0)
                    {
                        item.netDefaults(dye[index].netID);
                        item.Prefix(dye[index].prefix);
                        item.AffixName();
                        if (dye[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove dye {0} ({1}) and then rejoin", item.name, dye[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i <
                    NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots)
                {
                    //89-93
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots);
                    if (miscEquips[index] != null && miscEquips[index].netID != 0)
                    {
                        item.netDefaults(miscEquips[index].netID);
                        item.Prefix(miscEquips[index].prefix);
                        item.AffixName();
                        if (miscEquips[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, miscEquips[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i <
                    NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots
                    + NetItem.MiscDyeSlots)
                {
                    //93-98
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
                        + NetItem.MiscEquipSlots);
                    if (miscDyes[index] != null && miscDyes[index].netID != 0)
                    {
                        item.netDefaults(miscDyes[index].netID);
                        item.Prefix(miscDyes[index].prefix);
                        item.AffixName();
                        if (miscDyes[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item dye {0} ({1}) and then rejoin", item.name, miscDyes[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i <
                   NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
                   NetItem.MiscDyeSlots + NetItem.PiggySlots)
                {
                    //98-138
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
                        + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots);
                    if (piggy[index] != null && piggy[index].netID != 0)
                    {
                        item.netDefaults(piggy[index].netID);
                        item.Prefix(piggy[index].prefix);
                        item.AffixName();

                        if (piggy[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove Piggy-bank item {0} ({1}) and then rejoin", item.name, piggy[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i <
                    NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
                    NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots)
                {
                    //138-178
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
                        + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots);
                    if (safe[index] != null && safe[index].netID != 0)
                    {
                        item.netDefaults(safe[index].netID);
                        item.Prefix(safe[index].prefix);
                        item.AffixName();

                        if (safe[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove Safe item {0} ({1}) and then rejoin", item.name, safe[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else
                {
                    Item item = new Item();
                    if (trash != null && trash.netID != 0)
                    {
                        item.netDefaults(trash.netID);
                        item.Prefix(trash.prefix);
                        item.AffixName();

                        if (trash.stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove trash item {0} ({1}) and then rejoin", item.name, trash.stack),
                                Color.Cyan);
                        }
                    }
                }
            }

            return check;
        }
示例#21
0
        private static bool HandlePlayerSlot(GetDataHandlerArgs args)
        {
            byte plr = args.Data.ReadInt8();
            byte slot = args.Data.ReadInt8();
            short stack = args.Data.ReadInt16();
            byte prefix = args.Data.ReadInt8();
            short type = args.Data.ReadInt16();

            // Players send a slot update packet for each inventory slot right after they've joined.
            bool bypassTrashCanCheck = false;
            if (plr == args.Player.Index && !args.Player.HasSentInventory && slot == NetItem.MaxInventory)
            {
                args.Player.HasSentInventory = true;
                bypassTrashCanCheck = true;
            }

            if (OnPlayerSlot(plr, slot, stack, prefix, type) || plr != args.Player.Index || slot < 0 ||
                slot > NetItem.MaxInventory)
                return true;
            if (args.Player.IgnoreSSCPackets)
            {
                args.Player.SendData(PacketTypes.PlayerSlot, "", args.Player.Index, slot, prefix);
                return true;
            }

            // Garabage? Or will it cause some internal initialization or whatever?
            var item = new Item();
            item.netDefaults(type);
            item.Prefix(prefix);

            if (args.Player.IsLoggedIn)
            {
                args.Player.PlayerData.StoreSlot(slot, type, prefix, stack);
            }
            else if (Main.ServerSideCharacter && TShock.Config.DisableLoginBeforeJoin && !bypassTrashCanCheck &&
                args.Player.HasSentInventory && !args.Player.Group.HasPermission(Permissions.bypassssc))
            {
                // The player might have moved an item to their trash can before they performed a single login attempt yet.
                args.Player.IgnoreActionsForClearingTrashCan = true;
            }

            if (slot == 58) //this is the hand
            {
                item.stack = stack;
                args.Player.ItemInHand = item;
            }

            return false;
        }
        /// <summary>
        /// Applies server config data to the player
        /// </summary>
        /// <param name="player"></param>
        public void ApplyToPlayer(Player player)
        {
            //player.male = this.Male;

            player.statMana = this.Mana;
            player.statLife = this.Health;
            player.statLifeMax = this.MaxHealth;

            player.SpawnX = this.SpawnX;
            player.SpawnY = this.SpawnY;

            player.hideVisual = this.HideVisual;
            player.hairDye = this.HairDye;

            player.hair = this.Hair;
            player.difficulty = this.Difficulty;

            player.hairColor = this.HairColor.ToXna();
            player.skinColor = this.SkinColor.ToXna();
            player.eyeColor = this.EyeColor.ToXna();
            player.shirtColor = this.ShirtColor.ToXna();
            player.underShirtColor = this.UnderShirtColor.ToXna();
            player.pantsColor = this.PantsColor.ToXna();
            player.shoeColor = this.ShoeColor.ToXna();

            //Reset and populate inventory
            player.inventory = Enumerable.Repeat(new Item(), player.inventory.Length).ToArray();
            foreach (var slotItem in this.Inventory)
            {
                var item = new Terraria.Item();

                item.netDefaults(slotItem.NetId);
                item.stack = slotItem.Stack;
                item.Prefix(slotItem.Prefix);

                player.inventory[slotItem.Slot] = item;
            }

            //Reset and populate dye
            player.dye = Enumerable.Repeat(new Item(), player.dye.Length).ToArray();
            foreach (var slotItem in this.Dye)
            {
                var item = new Terraria.Item();

                item.netDefaults(slotItem.NetId);
                item.Prefix(slotItem.Prefix);

                player.dye[slotItem.Slot] = item;
            }

            //Reset and populate armor
            player.armor = Enumerable.Repeat(new Item(), player.armor.Length).ToArray();
            foreach (var slotItem in this.Armor)
            {
                var item = new Terraria.Item();

                item.netDefaults(slotItem.NetId);
                item.Prefix(slotItem.Prefix);

                player.armor[slotItem.Slot] = item;
            }

            //Update client
            this.Send(player);
        }
示例#23
0
 public static int PickItemMovementAction(Item[] inv, int context, int slot, Item checkItem)
 {
     Player player = Main.player[Main.myPlayer];
     int num = -1;
     if (context == 0)
         num = 0;
     else if (context == 1)
     {
         if (checkItem.itemId == 0 || checkItem.itemId == 71 || (checkItem.itemId == 72 || checkItem.itemId == 73) || checkItem.itemId == 74)
             num = 0;
     }
     else if (context == 2)
     {
         if ((checkItem.itemId == 0 || checkItem.ammo > 0 || checkItem.bait > 0) && !checkItem.notAmmo || checkItem.itemId == 530)
             num = 0;
     }
     else if (context == 3)
         num = 0;
     else if (context == 4)
         num = 0;
     else if (context == 5)
     {
         if (checkItem.Prefix(-3) || checkItem.itemId == 0)
             num = 0;
     }
     else if (context == 6)
         num = 0;
     else if (context == 7)
     {
         if (checkItem.material || checkItem.itemId == 0)
             num = 0;
     }
     else if (context == 8)
     {
         if (checkItem.itemId == 0 || checkItem.headSlot > -1 && slot == 0 || (checkItem.bodySlot > -1 && slot == 1 || checkItem.legSlot > -1 && slot == 2))
             num = 1;
     }
     else if (context == 9)
     {
         if (checkItem.itemId == 0 || checkItem.headSlot > -1 && slot == 10 || (checkItem.bodySlot > -1 && slot == 11 || checkItem.legSlot > -1 && slot == 12))
             num = 1;
     }
     else if (context == 10)
     {
         if (checkItem.itemId == 0 || checkItem.accessory && !ItemSlot.AccCheck(checkItem, slot))
             num = 1;
     }
     else if (context == 11)
     {
         if (checkItem.itemId == 0 || checkItem.accessory && !ItemSlot.AccCheck(checkItem, slot))
             num = 1;
     }
     else if (context == 12)
         num = 2;
     else if (context == 15)
     {
         if (checkItem.itemId == 0 && inv[slot].itemId > 0)
         {
             if (player.BuyItem(inv[slot].value))
                 num = 3;
         }
         else if (inv[slot].itemId == 0 && checkItem.itemId > 0 && (checkItem.itemId < 71 || checkItem.itemId > 74))
             num = 4;
     }
     else if (context == 16)
     {
         if (checkItem.itemId == 0 || Main.projHook[checkItem.shoot])
             num = 1;
     }
     else if (context == 17)
     {
         if (checkItem.itemId == 0 || checkItem.mountType != -1 && !MountID.Sets.Cart[checkItem.mountType])
             num = 1;
     }
     else if (context == 19)
     {
         if (checkItem.itemId == 0 || checkItem.buffType > 0 && Main.vanityPet[checkItem.buffType] && !Main.lightPet[checkItem.buffType])
             num = 1;
     }
     else if (context == 18)
     {
         if (checkItem.itemId == 0 || checkItem.mountType != -1 && MountID.Sets.Cart[checkItem.mountType])
             num = 1;
     }
     else if (context == 20 && (checkItem.itemId == 0 || checkItem.buffType > 0 && Main.lightPet[checkItem.buffType]))
         num = 1;
     return num;
 }
示例#24
0
文件: TShock.cs 项目: InanZen/TShock
        public static bool CheckInventory(TSPlayer player)
        {
            PlayerData playerData = player.PlayerData;
            bool check = true;

            if (player.TPlayer.statLifeMax > playerData.maxHealth)
            {
                player.SendMessage("Error: Your max health exceeded (" + playerData.maxHealth + ") which is stored on server",
                                   Color.Cyan);
                check = false;
            }

            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            for (int i = 0; i < NetItem.maxNetInventory; i++)
            {
                if (i < 49)
                {
                    Item item = new Item();
                    Item serverItem = new Item();
                    if (inventory[i] != null && inventory[i].netID != 0)
                    {
                        if (playerData.inventory[i].netID != inventory[i].netID)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your item (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (playerData.inventory[i].prefix != inventory[i].prefix)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your item (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (inventory[i].stack > playerData.inventory[i].stack)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(
                                player.IgnoreActionsForInventory =
                                "Your item (" + item.name + ") (" + inventory[i].stack + ") needs to have it's stack decreased to (" +
                                playerData.inventory[i].stack + ").", Color.Cyan);
                            check = false;
                        }
                    }
                }
                else
                {
                    Item item = new Item();
                    Item serverItem = new Item();
                    if (armor[i - 48] != null && armor[i - 48].netID != 0)
                    {
                        if (playerData.inventory[i].netID != armor[i - 48].netID)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your armor (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (playerData.inventory[i].prefix != armor[i - 48].prefix)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your armor (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (armor[i - 48].stack > playerData.inventory[i].stack)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(
                                player.IgnoreActionsForInventory =
                                "Your armor (" + item.name + ") (" + inventory[i].stack + ") needs to have it's stack decreased to (" +
                                playerData.inventory[i].stack + ").", Color.Cyan);
                            check = false;
                        }
                    }
                }
            }

            return check;
        }
示例#25
0
        /// <summary>
        /// Applies server config data to the player
        /// </summary>
        /// <param name="player"></param>
        public void ApplyToPlayer(Player player)
        {
            //player.male = this.Male;

            player.statMana    = this.Mana;
            player.statLife    = this.Health;
            player.statLifeMax = this.MaxHealth;

            player.SpawnX = this.SpawnX;
            player.SpawnY = this.SpawnY;

            player.hideVisual = this.HideVisual;
            player.hairDye    = this.HairDye;

            player.hair       = this.Hair;
            player.difficulty = this.Difficulty;

            player.hairColor       = this.HairColor.ToXna();
            player.skinColor       = this.SkinColor.ToXna();
            player.eyeColor        = this.EyeColor.ToXna();
            player.shirtColor      = this.ShirtColor.ToXna();
            player.underShirtColor = this.UnderShirtColor.ToXna();
            player.pantsColor      = this.PantsColor.ToXna();
            player.shoeColor       = this.ShoeColor.ToXna();

            //Reset and populate inventory
            player.inventory = Enumerable.Repeat(new Item(), player.inventory.Length).ToArray();
            foreach (var slotItem in this.Inventory)
            {
                var item = new Terraria.Item();

                item.netDefaults(slotItem.NetId);
                item.stack = slotItem.Stack;
                item.Prefix(slotItem.Prefix);

                player.inventory[slotItem.Slot] = item;
            }

            //Reset and populate dye
            player.dye = Enumerable.Repeat(new Item(), player.dye.Length).ToArray();
            foreach (var slotItem in this.Dye)
            {
                var item = new Terraria.Item();

                item.netDefaults(slotItem.NetId);
                item.Prefix(slotItem.Prefix);

                player.dye[slotItem.Slot] = item;
            }

            //Reset and populate armor
            player.armor = Enumerable.Repeat(new Item(), player.armor.Length).ToArray();
            foreach (var slotItem in this.Armor)
            {
                var item = new Terraria.Item();

                item.netDefaults(slotItem.NetId);
                item.Prefix(slotItem.Prefix);

                player.armor[slotItem.Slot] = item;
            }

            //Update client
            this.Send(player);
        }
示例#26
0
		public static void KillTile(int i, int j, bool fail = false, bool effectOnly = false, bool noItem = false)
		{
			if (i >= 0 && j >= 0 && i < Main.maxTilesX && j < Main.maxTilesY)
			{
				Tile tile = Main.tile[i, j];
				if (tile == null)
				{
					tile = new Tile();
					Main.tile[i, j] = tile;
				}
				if (tile.active())
				{
					if (j >= 1 && Main.tile[i, j - 1] == null)
					{
						Main.tile[i, j - 1] = new Tile();
					}
					if (j >= 1 && Main.tile[i, j - 1].active() && ((Main.tile[i, j - 1].type == 5 && tile.type != 5) || (Main.tile[i, j - 1].type == 323 && tile.type != 323) || (Main.tile[i, j - 1].type == 21 && tile.type != 21) || (Main.tile[i, j - 1].type == 26 && tile.type != 26) || (Main.tile[i, j - 1].type == 72 && tile.type != 72) || (Main.tile[i, j - 1].type == 12 && tile.type != 12)))
					{
						if (Main.tile[i, j - 1].type == 5)
						{
							if ((Main.tile[i, j - 1].frameX != 66 || Main.tile[i, j - 1].frameY < 0 || Main.tile[i, j - 1].frameY > 44) && (Main.tile[i, j - 1].frameX != 88 || Main.tile[i, j - 1].frameY < 66 || Main.tile[i, j - 1].frameY > 110) && Main.tile[i, j - 1].frameY < 198)
							{
								return;
							}
						}
						else
						{
							if (Main.tile[i, j - 1].type != 323 || Main.tile[i, j - 1].frameX == 66 || Main.tile[i, j - 1].frameX == 220)
							{
								return;
							}
						}
					}
					if (tile.type == 10 && tile.frameY >= 594 && tile.frameY <= 646)
					{
						fail = true;
					}
					if (tile.type == 138)
					{
						fail = WorldGen.CheckBoulderChest(i, j);
					}
					if (tile.type == 235)
					{
						int frameX = (int)tile.frameX;
						int num = i - frameX % 54 / 18;
						for (int k = 0; k < 3; k++)
						{
							if (Main.tile[num + k, j - 1].active() && Main.tile[num + k, j - 1].type == 21)
							{
								fail = true;
								break;
							}
						}
					}
					if (!effectOnly && !WorldGen.stopDrops)
					{
						if (tile.type == 127)
						{
							Main.PlaySound(2, i * 16, j * 16, 27);
						}
						else
						{
							if (tile.type == 147 || tile.type == 224)
							{
								Main.PlaySound(2, i * 16, j * 16, WorldGen.genRand.Next(48, 50));
							}
							else
							{
								if (tile.type == 161 || tile.type == 163 || tile.type == 164 || tile.type == 200)
								{
									Main.PlaySound(2, i * 16, j * 16, 50);
								}
								else
								{
									if (tile.type == 3 || tile.type == 110)
									{
										Main.PlaySound(6, i * 16, j * 16, 1);
										if (tile.frameX == 144)
										{
											Item.NewItem(i * 16, j * 16, 16, 16, 5, 1, false, 0, false);
										}
									}
									else
									{
										if (tile.type == 254)
										{
											Main.PlaySound(6, i * 16, j * 16, 1);
										}
										else
										{
											if (tile.type == 24)
											{
												Main.PlaySound(6, i * 16, j * 16, 1);
												if (tile.frameX == 144)
												{
													Item.NewItem(i * 16, j * 16, 16, 16, 60, 1, false, 0, false);
												}
											}
											else
											{
												if (Main.tileAlch[(int)tile.type] || tile.type == 32 || tile.type == 51 || tile.type == 52 || tile.type == 61 || tile.type == 62 || tile.type == 69 || tile.type == 71 || tile.type == 73 || tile.type == 74 || tile.type == 113 || tile.type == 115 || tile.type == 184 || tile.type == 192 || tile.type == 205 || tile.type == 233)
												{
													Main.PlaySound(6, i * 16, j * 16, 1);
												}
												else
												{
													if (tile.type == 201)
													{
														Main.PlaySound(6, i * 16, j * 16, 1);
													}
													else
													{
														if (tile.type == 1 || tile.type == 6 || tile.type == 7 || tile.type == 8 || tile.type == 9 || tile.type == 22 || tile.type == 140 || tile.type == 25 || tile.type == 37 || tile.type == 38 || tile.type == 39 || tile.type == 41 || tile.type == 43 || tile.type == 44 || tile.type == 45 || tile.type == 46 || tile.type == 47 || tile.type == 48 || tile.type == 56 || tile.type == 58 || tile.type == 63 || tile.type == 64 || tile.type == 65 || tile.type == 66 || tile.type == 67 || tile.type == 68 || tile.type == 75 || tile.type == 76 || tile.type == 107 || tile.type == 108 || tile.type == 111 || tile.type == 117 || tile.type == 118 || tile.type == 119 || tile.type == 120 || tile.type == 121 || tile.type == 122 || tile.type == 150 || tile.type == 151 || tile.type == 152 || tile.type == 153 || tile.type == 154 || tile.type == 155 || tile.type == 156 || tile.type == 160 || tile.type == 161 || tile.type == 166 || tile.type == 167 || tile.type == 168 || tile.type == 169 || tile.type == 175 || tile.type == 176 || tile.type == 177 || tile.type == 203 || tile.type == 202 || tile.type == 204 || tile.type == 206 || tile.type == 211 || tile.type == 221 || tile.type == 222 || tile.type == 223 || tile.type == 226 || tile.type == 248 || tile.type == 249 || tile.type == 250 || tile.type == 272 || tile.type == 273 || tile.type == 274 || tile.type == 284 || tile.type == 325)
														{
															Main.PlaySound(21, i * 16, j * 16, 1);
														}
														else
														{
															if (tile.type == 231 || tile.type == 195)
															{
																Main.PlaySound(4, i * 16, j * 16, 1);
															}
															else
															{
																if (tile.type == 26 && tile.frameX >= 54)
																{
																	Main.PlaySound(4, i * 16, j * 16, 1);
																}
																else
																{
																	if (tile.type == 314)
																	{
																		Main.PlaySound(2, i * 16, j * 16, 52);
																	}
																	else
																	{
																		if (tile.type >= 330 && tile.type <= 333)
																		{
																			Main.PlaySound(18, i * 16, j * 16, 1);
																		}
																		else
																		{
																			if (tile.type != 138)
																			{
																				Main.PlaySound(0, i * 16, j * 16, 1);
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
						if ((tile.type == 162 || tile.type == 129 || (tile.type == 165 && tile.frameX < 54)) && !fail)
						{
							Main.PlaySound(2, i * 16, j * 16, 27);
						}
					}
					int num2 = 10;
					if (tile.type == 231)
					{
						num2 = 6;
					}
					if (tile.type == 128 || tile.type == 269)
					{
						int num3 = i;
						int l = (int)tile.frameX;
						int m;
						for (m = (int)tile.frameX; m >= 100; m -= 100)
						{
						}
						while (m >= 36)
						{
							m -= 36;
						}
						if (m == 18)
						{
							l = (int)Main.tile[i - 1, j].frameX;
							num3--;
						}
						if (l >= 100)
						{
							int num4 = 0;
							while (l >= 100)
							{
								l -= 100;
								num4++;
							}
							int num5 = (int)(Main.tile[num3, j].frameY / 18);
							if (num5 == 0)
							{
								Item.NewItem(i * 16, j * 16, 16, 16, Item.headType[num4], 1, false, 0, false);
							}
							if (num5 == 1)
							{
								Item.NewItem(i * 16, j * 16, 16, 16, Item.bodyType[num4], 1, false, 0, false);
							}
							if (num5 == 2)
							{
								Item.NewItem(i * 16, j * 16, 16, 16, Item.legType[num4], 1, false, 0, false);
							}
							for (l = (int)Main.tile[num3, j].frameX; l >= 100; l -= 100)
							{
							}
							Main.tile[num3, j].frameX = (short)l;
						}
					}
					if (tile.type == 334)
					{
						int num6 = i;
						int n = (int)tile.frameX;
						int num7 = (int)tile.frameX;
						int num8 = 0;
						while (num7 >= 5000)
						{
							num7 -= 5000;
							num8++;
						}
						if (num8 != 0)
						{
							num7 = (num8 - 1) * 18;
						}
						num7 %= 54;
						if (num7 == 18)
						{
							n = (int)Main.tile[i - 1, j].frameX;
							num6--;
						}
						if (num7 == 36)
						{
							n = (int)Main.tile[i - 2, j].frameX;
							num6 -= 2;
						}
						if (n >= 5000)
						{
							int num9 = n % 5000;
							num9 -= 100;
							int num10 = (int)Main.tile[num6 + 1, j].frameX;
							if (num10 >= 25000)
							{
								num10 -= 25000;
							}
							else
							{
								num10 -= 10000;
							}
							if (Main.netMode != 1)
							{
								Item item = new Item();
								item.netDefaults(num9);
								item.Prefix(num10);
								int num11 = Item.NewItem(i * 16, j * 16, 16, 16, num9, 1, true, 0, false);
								item.position = Main.item[num11].position;
								Main.item[num11] = item;
								NetMessage.SendData(21, -1, -1, "", num11, 0f, 0f, 0f, 0);
							}
							n = (int)Main.tile[num6, j].frameX;
							int num12 = 0;
							while (n >= 5000)
							{
								n -= 5000;
								num12++;
							}
							if (num12 != 0)
							{
								n = (num12 - 1) * 18;
							}
							Main.tile[num6, j].frameX = (short)n;
							Main.tile[num6 + 1, j].frameX = (short)(n + 18);
						}
					}
					if (fail)
					{
						num2 = 3;
					}
					if (tile.type == 138)
					{
						num2 = 0;
					}
					if (tile.type >= 300 && tile.type <= 308)
					{
						num2 = 0;
					}
					if (tile.type == 125)
					{
						num2 = 0;
					}
					if (tile.type == 287)
					{
						num2 = 0;
					}
					int num13 = 0;
					while (num13 < num2)
					{
						int num14 = 0;
						if (tile.type == 216)
						{
							num14 = -1;
						}
						if (tile.type == 335)
						{
							num14 = -1;
						}
						if (tile.type == 338)
						{
							num14 = -1;
						}
						if (tile.type == 0)
						{
							num14 = 0;
						}
						if (tile.type == 192)
						{
							num14 = 3;
						}
						if (tile.type == 208)
						{
							num14 = 126;
						}
						if (tile.type == 16)
						{
							num14 = 1;
							if (tile.frameX >= 36)
							{
								num14 = 82;
							}
						}
						if (tile.type == 1 || tile.type == 17 || tile.type == 38 || tile.type == 39 || tile.type == 41 || tile.type == 43 || tile.type == 44 || tile.type == 48 || Main.tileStone[(int)tile.type] || tile.type == 85 || tile.type == 90 || tile.type == 92 || tile.type == 96 || tile.type == 97 || tile.type == 99 || tile.type == 117 || tile.type == 130 || tile.type == 131 || tile.type == 132 || tile.type == 135 || tile.type == 135 || tile.type == 142 || tile.type == 143 || tile.type == 144 || tile.type == 210 || tile.type == 207 || tile.type == 235 || tile.type == 247 || tile.type == 272 || tile.type == 273 || tile.type == 283)
						{
							num14 = 1;
						}
						if (tile.type == 311)
						{
							num14 = 207;
						}
						if (tile.type == 312)
						{
							num14 = 208;
						}
						if (tile.type == 313)
						{
							num14 = 209;
						}
						if (tile.type == 104)
						{
							num14 = -1;
						}
						if (tile.type == 95 || tile.type == 98 || tile.type == 100 || tile.type == 174 || tile.type == 173)
						{
							num14 = 6;
						}
						if (tile.type == 30 || tile.type == 86 || tile.type == 94 || tile.type == 106 || tile.type == 114 || tile.type == 124 || tile.type == 128 || tile.type == 269)
						{
							num14 = 7;
						}
						if (tile.type == 334)
						{
							num14 = 7;
						}
						ushort type = tile.type;
						if (type <= 89)
						{
							switch (type)
							{
							case 10:
							case 11:
								goto IL_1144;
							default:
								switch (type)
								{
								case 87:
								case 89:
									goto IL_1144;
								}
								break;
							}
						}
						else
						{
							if (type == 93 || type == 139)
							{
								goto IL_1144;
							}
							switch (type)
							{
							case 319:
							case 320:
								goto IL_1144;
							}
						}
						IL_1147:
						if (tile.type == 240)
						{
							int num15 = (int)(tile.frameX / 54);
							if (tile.frameY >= 54)
							{
								num15 += 36;
							}
							num14 = 7;
							if (num15 == 16 || num15 == 17)
							{
								num14 = 26;
							}
							if (num15 >= 46 && num15 <= 49)
							{
								num14 = -1;
							}
						}
						if (tile.type == 241)
						{
							num14 = 1;
						}
						if (tile.type == 242)
						{
							num14 = -1;
						}
						if (tile.type == 246)
						{
							num14 = -1;
						}
						if (tile.type == 36)
						{
							num14 = -1;
						}
						if (tile.type == 170)
						{
							num14 = 196;
						}
						if (tile.type == 315)
						{
							num14 = 225;
						}
						if (tile.type == 171)
						{
							if (Main.rand.Next(2) == 0)
							{
								num14 = 196;
							}
							else
							{
								num14 = -1;
							}
						}
						if (tile.type == 326)
						{
							num14 = 13;
						}
						if (tile.type == 327)
						{
							num14 = 13;
						}
						if (tile.type == 336)
						{
							num14 = 6;
						}
						if (tile.type == 328)
						{
							num14 = 13;
						}
						if (tile.type == 329)
						{
							num14 = 13;
						}
						if (tile.type == 330)
						{
							num14 = 9;
						}
						if (tile.type == 331)
						{
							num14 = 11;
						}
						if (tile.type == 332)
						{
							num14 = 19;
						}
						if (tile.type == 333)
						{
							num14 = 11;
						}
						if (tile.type == 101)
						{
							num14 = -1;
						}
						if (tile.type == 19)
						{
							int num16 = (int)(tile.frameY / 18);
							if (num16 == 0 || num16 == 9 || num16 == 10 || num16 == 11 || num16 == 12)
							{
								num14 = 7;
							}
							else
							{
								if (num16 == 1)
								{
									num14 = 77;
								}
								else
								{
									if (num16 == 2)
									{
										num14 = 78;
									}
									else
									{
										if (num16 == 3)
										{
											num14 = 79;
										}
										else
										{
											if (num16 == 4)
											{
												num14 = 26;
											}
											else
											{
												if (num16 == 5)
												{
													num14 = 126;
												}
												else
												{
													if (num16 == 13)
													{
														num14 = 109;
													}
													else
													{
														if (num16 == 14)
														{
															num14 = 13;
														}
														else
														{
															if (num16 >= 15 || num16 <= 16)
															{
																num14 = -1;
															}
															else
															{
																if (num16 == 17)
																{
																	num14 = 215;
																}
																else
																{
																	if (num16 == 18)
																	{
																		num14 = 214;
																	}
																	else
																	{
																		num14 = 1;
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 79)
						{
							int num17 = (int)(tile.frameY / 36);
							if (num17 == 0)
							{
								num14 = 7;
							}
							else
							{
								if (num17 == 1)
								{
									num14 = 77;
								}
								else
								{
									if (num17 == 2)
									{
										num14 = 78;
									}
									else
									{
										if (num17 == 3)
										{
											num14 = 79;
										}
										else
										{
											if (num17 == 4)
											{
												num14 = 126;
											}
											else
											{
												if (num17 == 8)
												{
													num14 = 109;
												}
												else
												{
													if (num17 >= 9)
													{
														num14 = -1;
													}
													else
													{
														num14 = 1;
													}
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 18)
						{
							int num18 = (int)(tile.frameX / 36);
							if (num18 == 0)
							{
								num14 = 7;
							}
							else
							{
								if (num18 == 1)
								{
									num14 = 77;
								}
								else
								{
									if (num18 == 2)
									{
										num14 = 78;
									}
									else
									{
										if (num18 == 3)
										{
											num14 = 79;
										}
										else
										{
											if (num18 == 4)
											{
												num14 = 26;
											}
											else
											{
												if (num18 == 5)
												{
													num14 = 40;
												}
												else
												{
													if (num18 == 6)
													{
														num14 = 5;
													}
													else
													{
														if (num18 == 7)
														{
															num14 = 26;
														}
														else
														{
															if (num18 == 8)
															{
																num14 = 4;
															}
															else
															{
																if (num18 == 9)
																{
																	num14 = 126;
																}
																else
																{
																	if (num18 == 10)
																	{
																		num14 = 148;
																	}
																	else
																	{
																		if (num18 == 11 || num18 == 12 || num18 == 13)
																		{
																			num14 = 1;
																		}
																		else
																		{
																			if (num18 == 14)
																			{
																				num14 = 109;
																			}
																			else
																			{
																				if (num18 == 15)
																				{
																					num14 = 126;
																				}
																				else
																				{
																					num14 = -1;
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 14 || tile.type == 87 || tile.type == 88)
						{
							num14 = -1;
						}
						if (tile.type >= 255 && tile.type <= 261)
						{
							int num19 = (int)(tile.type - 255);
							num14 = 86 + num19;
							if (num19 == 6)
							{
								num14 = 138;
							}
						}
						if (tile.type >= 262 && tile.type <= 268)
						{
							int num20 = (int)(tile.type - 262);
							num14 = 86 + num20;
							if (num20 == 6)
							{
								num14 = 138;
							}
						}
						if (tile.type == 178)
						{
							int num21 = (int)(tile.frameX / 18);
							num14 = 86 + num21;
							if (num21 == 6)
							{
								num14 = 138;
							}
						}
						if (tile.type == 186)
						{
							if (tile.frameX <= 360)
							{
								num14 = 26;
							}
							else
							{
								if (tile.frameX <= 846)
								{
									num14 = 1;
								}
								else
								{
									if (tile.frameX <= 954)
									{
										num14 = 9;
									}
									else
									{
										if (tile.frameX <= 1062)
										{
											num14 = 11;
										}
										else
										{
											if (tile.frameX <= 1170)
											{
												num14 = 10;
											}
											else
											{
												if (tile.frameX <= 1332)
												{
													num14 = 0;
												}
												else
												{
													if (tile.frameX <= 1386)
													{
														num14 = 10;
													}
													else
													{
														num14 = 80;
													}
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 187)
						{
							if (tile.frameX <= 144)
							{
								num14 = 1;
							}
							else
							{
								if (tile.frameX <= 306)
								{
									num14 = 38;
								}
								else
								{
									if (tile.frameX <= 468)
									{
										num14 = 36;
									}
									else
									{
										if (tile.frameX <= 738)
										{
											num14 = 30;
										}
										else
										{
											if (tile.frameX <= 970)
											{
												num14 = 1;
											}
											else
											{
												if (tile.frameX <= 1132)
												{
													num14 = 148;
												}
												else
												{
													if (tile.frameX <= 1132)
													{
														num14 = 155;
													}
													else
													{
														if (tile.frameX <= 1348)
														{
															num14 = 1;
														}
														else
														{
															if (tile.frameX <= 1564)
															{
																num14 = 0;
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 105)
						{
							num14 = 1;
							if (tile.frameX >= 1548 && tile.frameX <= 1654)
							{
								num14 = 148;
							}
						}
						if (tile.type == 337)
						{
							num14 = 1;
						}
						if (tile.type == 239)
						{
							int num22 = (int)(tile.frameX / 18);
							if (num22 == 0)
							{
								num14 = 9;
							}
							if (num22 == 1)
							{
								num14 = 81;
							}
							if (num22 == 2)
							{
								num14 = 8;
							}
							if (num22 == 3)
							{
								num14 = 82;
							}
							if (num22 == 4)
							{
								num14 = 11;
							}
							if (num22 == 5)
							{
								num14 = 83;
							}
							if (num22 == 6)
							{
								num14 = 10;
							}
							if (num22 == 7)
							{
								num14 = 84;
							}
							if (num22 == 8)
							{
								num14 = 14;
							}
							if (num22 == 9)
							{
								num14 = 23;
							}
							if (num22 == 10)
							{
								num14 = 25;
							}
							if (num22 == 11)
							{
								num14 = 48;
							}
							if (num22 == 12)
							{
								num14 = 144;
							}
							if (num22 == 13)
							{
								num14 = 49;
							}
							if (num22 == 14)
							{
								num14 = 145;
							}
							if (num22 == 15)
							{
								num14 = 50;
							}
							if (num22 == 16)
							{
								num14 = 146;
							}
							if (num22 == 17)
							{
								num14 = 128;
							}
							if (num22 == 18)
							{
								num14 = 84;
							}
							if (num22 == 19)
							{
								num14 = 117;
							}
							if (num22 == 20)
							{
								num14 = 26;
							}
						}
						if (tile.type == 185)
						{
							if (tile.frameY == 18)
							{
								int num23 = (int)(tile.frameX / 36);
								if (num23 < 6)
								{
									num14 = 1;
								}
								else
								{
									if (num23 < 16)
									{
										num14 = 26;
									}
									else
									{
										if (num23 == 16)
										{
											num14 = 9;
										}
										else
										{
											if (num23 == 17)
											{
												num14 = 11;
											}
											else
											{
												if (num23 == 18)
												{
													num14 = 10;
												}
												else
												{
													if (num23 == 19)
													{
														num14 = 86;
													}
													else
													{
														if (num23 == 20)
														{
															num14 = 87;
														}
														else
														{
															if (num23 == 21)
															{
																num14 = 88;
															}
															else
															{
																if (num23 == 22)
																{
																	num14 = 89;
																}
																else
																{
																	if (num23 == 23)
																	{
																		num14 = 90;
																	}
																	else
																	{
																		if (num23 == 24)
																		{
																			num14 = 91;
																		}
																		else
																		{
																			if (num23 < 31)
																			{
																				num14 = 80;
																			}
																			else
																			{
																				if (num23 < 33)
																				{
																					num14 = 7;
																				}
																				else
																				{
																					if (num23 < 34)
																					{
																						num14 = 8;
																					}
																					else
																					{
																						if (num23 < 39)
																						{
																							num14 = 30;
																						}
																						else
																						{
																							if (num23 < 42)
																							{
																								num14 = 1;
																							}
																						}
																					}
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
							else
							{
								int num24 = (int)(tile.frameX / 18);
								if (num24 < 6)
								{
									num14 = 1;
								}
								else
								{
									if (num24 < 12)
									{
										num14 = 0;
									}
									else
									{
										if (num24 < 27)
										{
											num14 = 26;
										}
										else
										{
											if (num24 < 32)
											{
												num14 = 1;
											}
											else
											{
												if (num24 < 35)
												{
													num14 = 0;
												}
												else
												{
													if (num24 < 46)
													{
														num14 = 80;
													}
													else
													{
														if (num24 < 52)
														{
															num14 = 30;
														}
													}
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 184)
						{
							int num25 = (int)(tile.frameX / 22);
							num14 = 93 + num25;
						}
						if (tile.type == 237)
						{
							num14 = 148;
						}
						if (tile.type == 157)
						{
							num14 = 77;
						}
						if (tile.type == 158 || tile.type == 232)
						{
							num14 = 78;
						}
						if (tile.type == 159)
						{
							num14 = 78;
						}
						if (tile.type == 15)
						{
							num14 = -1;
						}
						if (tile.type == 191)
						{
							num14 = 7;
						}
						if (tile.type == 5)
						{
							num14 = 7;
							if (i > 5 && i < Main.maxTilesX - 5)
							{
								int num26 = i;
								int num27 = j;
								if (tile.frameX == 66 && tile.frameY <= 45)
								{
									num26++;
								}
								if (tile.frameX == 88 && tile.frameY >= 66 && tile.frameY <= 110)
								{
									num26--;
								}
								if (tile.frameX == 22 && tile.frameY >= 132 && tile.frameY <= 176)
								{
									num26--;
								}
								if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
								{
									num26++;
								}
								if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
								{
									num26++;
								}
								if (tile.frameX == 44 && tile.frameY >= 198)
								{
									num26++;
								}
								if (tile.frameX == 66 && tile.frameY >= 198)
								{
									num26--;
								}
								while (Main.tile[num26, num27] != null && (!Main.tile[num26, num27].active() || !Main.tileSolid[(int)Main.tile[num26, num27].type]))
								{
									num27++;
								}
								if (Main.tile[num26, num27] != null)
								{
									if (Main.tile[num26, num27].active() && Main.tile[num26, num27].type == 23)
									{
										num14 = 77;
									}
									if (Main.tile[num26, num27].active() && Main.tile[num26, num27].type == 60)
									{
										num14 = 78;
									}
									if (Main.tile[num26, num27].active() && Main.tile[num26, num27].type == 70)
									{
										num14 = 26;
									}
									if (Main.tile[num26, num27].active() && Main.tile[num26, num27].type == 109)
									{
										num14 = 79;
									}
									if (Main.tile[num26, num27].active() && Main.tile[num26, num27].type == 199)
									{
										num14 = 121;
									}
									if (Main.tile[num26, num27].active() && Main.tile[num26, num27].type == 147)
									{
										num14 = 122;
									}
								}
							}
						}
						if (tile.type == 323)
						{
							num14 = 215;
							if (i > 5 && i < Main.maxTilesX - 5)
							{
								int num28 = j;
								while (Main.tile[i, num28] != null && (!Main.tile[i, num28].active() || !Main.tileSolid[(int)Main.tile[i, num28].type]))
								{
									num28++;
								}
								if (Main.tile[i, num28] != null)
								{
									if (Main.tile[i, num28].active() && Main.tile[i, num28].type == 234)
									{
										num14 = 121;
									}
									if (Main.tile[i, num28].active() && Main.tile[i, num28].type == 116)
									{
										num14 = 79;
									}
									if (Main.tile[i, num28].active() && Main.tile[i, num28].type == 112)
									{
										num14 = 77;
									}
								}
							}
						}
						if (tile.type == 137)
						{
							num14 = 1;
							int num29 = (int)(tile.frameY / 18);
							if (num29 > 0)
							{
								num14 = 148;
							}
						}
						if (tile.type == 212)
						{
							num14 = -1;
						}
						if (tile.type == 213)
						{
							num14 = 129;
						}
						if (tile.type == 214)
						{
							num14 = 1;
						}
						if (tile.type == 215)
						{
							num14 = 6;
						}
						if (tile.type == 325)
						{
							num14 = 81;
						}
						if (tile.type == 251)
						{
							num14 = 189;
						}
						if (tile.type == 252)
						{
							num14 = 190;
						}
						if (tile.type == 253)
						{
							num14 = 191;
						}
						if (tile.type == 254)
						{
							if (tile.frameX < 72)
							{
								num14 = 3;
							}
							else
							{
								if (tile.frameX < 108)
								{
									num14 = 3;
									if (Main.rand.Next(3) == 0)
									{
										num14 = 189;
									}
								}
								else
								{
									if (tile.frameX < 144)
									{
										num14 = 3;
										if (Main.rand.Next(2) == 0)
										{
											num14 = 189;
										}
									}
									else
									{
										num14 = 3;
										if (Main.rand.Next(4) != 0)
										{
											num14 = 189;
										}
									}
								}
							}
						}
						if (tile.type == 21)
						{
							if (tile.frameX >= 1008)
							{
								num14 = -1;
							}
							else
							{
								if (tile.frameX >= 612)
								{
									num14 = 11;
								}
								else
								{
									if (tile.frameX >= 576)
									{
										num14 = 148;
									}
									else
									{
										if (tile.frameX >= 540)
										{
											num14 = 26;
										}
										else
										{
											if (tile.frameX >= 504)
											{
												num14 = 126;
											}
											else
											{
												if (tile.frameX >= 468)
												{
													num14 = 116;
												}
												else
												{
													if (tile.frameX >= 432)
													{
														num14 = 7;
													}
													else
													{
														if (tile.frameX >= 396)
														{
															num14 = 11;
														}
														else
														{
															if (tile.frameX >= 360)
															{
																num14 = 10;
															}
															else
															{
																if (tile.frameX >= 324)
																{
																	num14 = 79;
																}
																else
																{
																	if (tile.frameX >= 288)
																	{
																		num14 = 78;
																	}
																	else
																	{
																		if (tile.frameX >= 252)
																		{
																			num14 = 77;
																		}
																		else
																		{
																			if (tile.frameX >= 216)
																			{
																				num14 = 1;
																			}
																			else
																			{
																				if (tile.frameX >= 180)
																				{
																					num14 = 7;
																				}
																				else
																				{
																					if (tile.frameX >= 108)
																					{
																						num14 = 37;
																					}
																					else
																					{
																						if (tile.frameX >= 36)
																						{
																							num14 = 10;
																						}
																						else
																						{
																							num14 = 7;
																						}
																					}
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 2)
						{
							if (WorldGen.genRand.Next(2) == 0)
							{
								num14 = 0;
							}
							else
							{
								num14 = 2;
							}
						}
						if (Main.tileMoss[(int)tile.type])
						{
							num14 = (int)(tile.type - 179 + 93);
						}
						if (tile.type == 127)
						{
							num14 = 67;
						}
						if (tile.type == 91)
						{
							num14 = -1;
						}
						if (tile.type == 198)
						{
							num14 = 109;
						}
						if (tile.type == 26)
						{
							if (tile.frameX >= 54)
							{
								num14 = 5;
							}
							else
							{
								num14 = 8;
							}
						}
						if (tile.type == 34)
						{
							num14 = -1;
						}
						if (tile.type == 6)
						{
							num14 = 8;
						}
						if (tile.type == 7 || tile.type == 47 || tile.type == 284)
						{
							num14 = 9;
						}
						if (tile.type == 8 || tile.type == 45 || tile.type == 102)
						{
							num14 = 10;
						}
						if (tile.type == 9 || tile.type == 42 || tile.type == 46 || tile.type == 126 || tile.type == 136)
						{
							num14 = 11;
						}
						if (tile.type == 166 || tile.type == 175)
						{
							num14 = 81;
						}
						if (tile.type == 167)
						{
							num14 = 82;
						}
						if (tile.type == 168 || tile.type == 176)
						{
							num14 = 83;
						}
						if (tile.type == 169 || tile.type == 177)
						{
							num14 = 84;
						}
						if (tile.type == 199)
						{
							num14 = 117;
						}
						if (tile.type == 205)
						{
							num14 = 125;
						}
						if (tile.type == 201)
						{
							num14 = 125;
						}
						if (tile.type == 211)
						{
							num14 = 128;
						}
						if (tile.type == 227)
						{
							int num30 = (int)(tile.frameX / 34);
							if (num30 == 0 || num30 == 1)
							{
								num14 = 26;
							}
							else
							{
								if (num30 == 3)
								{
									num14 = 3;
								}
								else
								{
									if (num30 == 2 || num30 == 4 || num30 == 5 || num30 == 6)
									{
										num14 = 40;
									}
									else
									{
										if (num30 == 7)
										{
											num14 = 117;
										}
									}
								}
							}
						}
						if (tile.type == 204)
						{
							num14 = 117;
							if (WorldGen.genRand.Next(2) == 0)
							{
								num14 = 1;
							}
						}
						if (tile.type == 203)
						{
							num14 = 117;
						}
						if (tile.type == 243)
						{
							if (Main.rand.Next(2) == 0)
							{
								num14 = 7;
							}
							else
							{
								num14 = 13;
							}
						}
						if (tile.type == 244)
						{
							if (Main.rand.Next(2) == 0)
							{
								num14 = 1;
							}
							else
							{
								num14 = 13;
							}
						}
						else
						{
							if ((tile.type >= 275 && tile.type <= 282) || (tile.type == 285 || tile.type == 286 || (tile.type >= 288 && tile.type <= 297)) || (tile.type >= 316 && tile.type <= 318) || tile.type == 298 || tile.type == 299 || tile.type == 309 || tile.type == 310 || tile.type == 339)
							{
								num14 = 13;
								if (Main.rand.Next(3) != 0)
								{
									num14 = -1;
								}
							}
						}
						if (tile.type == 13)
						{
							if (tile.frameX >= 90)
							{
								num14 = -1;
							}
							else
							{
								num14 = 13;
							}
						}
						if (tile.type == 189)
						{
							num14 = 16;
						}
						if (tile.type == 12)
						{
							num14 = 12;
						}
						if (tile.type == 3 || tile.type == 73)
						{
							num14 = 3;
						}
						if (tile.type == 54)
						{
							num14 = 13;
						}
						if (tile.type == 22 || tile.type == 140)
						{
							num14 = 14;
						}
						if (tile.type == 78)
						{
							num14 = 22;
						}
						if (tile.type == 28)
						{
							num14 = 22;
							if (tile.frameY >= 72 && tile.frameY <= 90)
							{
								num14 = 1;
							}
							if (tile.frameY >= 144 && tile.frameY <= 234)
							{
								num14 = 48;
							}
							if (tile.frameY >= 252 && tile.frameY <= 358)
							{
								num14 = 85;
							}
							if (tile.frameY >= 360 && tile.frameY <= 466)
							{
								num14 = 26;
							}
							if (tile.frameY >= 468 && tile.frameY <= 574)
							{
								num14 = 36;
							}
							if (tile.frameY >= 576 && tile.frameY <= 790)
							{
								num14 = 18;
							}
							if (tile.frameY >= 792 && tile.frameY <= 898)
							{
								num14 = 5;
							}
							if (tile.frameY >= 900 && tile.frameY <= 1006)
							{
								num14 = 0;
							}
							if (tile.frameY >= 1008 && tile.frameY <= 1114)
							{
								num14 = 148;
							}
						}
						if (tile.type == 163)
						{
							num14 = 118;
						}
						if (tile.type == 164)
						{
							num14 = 119;
						}
						if (tile.type == 200)
						{
							num14 = 120;
						}
						if (tile.type == 221 || tile.type == 248)
						{
							num14 = 144;
						}
						if (tile.type == 222 || tile.type == 249)
						{
							num14 = 145;
						}
						if (tile.type == 223 || tile.type == 250)
						{
							num14 = 146;
						}
						if (tile.type == 224)
						{
							num14 = 149;
						}
						if (tile.type == 225)
						{
							num14 = 147;
						}
						if (tile.type == 229)
						{
							num14 = 153;
						}
						if (tile.type == 231)
						{
							num14 = 153;
							if (Main.rand.Next(3) == 0)
							{
								num14 = 26;
							}
						}
						if (tile.type == 226)
						{
							num14 = 148;
						}
						if (tile.type == 103)
						{
							num14 = -1;
						}
						if (tile.type == 29)
						{
							num14 = 23;
						}
						if (tile.type == 40)
						{
							num14 = 28;
						}
						if (tile.type == 49)
						{
							num14 = 29;
						}
						if (tile.type == 50)
						{
							num14 = 22;
						}
						if (tile.type == 51)
						{
							num14 = 30;
						}
						if (tile.type == 52)
						{
							num14 = 3;
						}
						if (tile.type == 53 || tile.type == 81 || tile.type == 151 || tile.type == 202 || tile.type == 274)
						{
							num14 = 32;
						}
						if (tile.type == 56 || tile.type == 152)
						{
							num14 = 37;
						}
						if (tile.type == 75)
						{
							num14 = 109;
						}
						if (tile.type == 57 || tile.type == 119 || tile.type == 141 || tile.type == 234)
						{
							num14 = 36;
						}
						if (tile.type == 59 || tile.type == 120)
						{
							num14 = 38;
						}
						if (tile.type == 61 || tile.type == 62 || tile.type == 74 || tile.type == 80 || tile.type == 188 || tile.type == 233 || tile.type == 236)
						{
							num14 = 40;
						}
						if (tile.type == 238)
						{
							if (WorldGen.genRand.Next(3) == 0)
							{
								num14 = 167;
							}
							else
							{
								num14 = 166;
							}
						}
						if (tile.type == 69)
						{
							num14 = 7;
						}
						if (tile.type == 71 || tile.type == 72 || tile.type == 190)
						{
							num14 = 26;
						}
						if (tile.type == 70)
						{
							num14 = 17;
						}
						if (tile.type == 112)
						{
							num14 = 14;
						}
						if (tile.type == 123)
						{
							num14 = 53;
						}
						if (tile.type == 161)
						{
							num14 = 80;
						}
						if (tile.type == 206)
						{
							num14 = 80;
						}
						if (tile.type == 162)
						{
							num14 = 80;
						}
						if (tile.type == 165)
						{
							if (tile.frameX < 54)
							{
								num14 = 80;
							}
							else
							{
								if (tile.frameX >= 324)
								{
									num14 = 117;
								}
								else
								{
									if (tile.frameX >= 270)
									{
										num14 = 14;
									}
									else
									{
										if (tile.frameX >= 216)
										{
											num14 = 1;
										}
										else
										{
											if (tile.frameX >= 162)
											{
												num14 = 147;
											}
											else
											{
												if (tile.frameX >= 108)
												{
													num14 = 30;
												}
												else
												{
													num14 = 1;
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 193)
						{
							num14 = 4;
						}
						if (tile.type == 194)
						{
							num14 = 26;
						}
						if (tile.type == 195)
						{
							num14 = 5;
						}
						if (tile.type == 196)
						{
							num14 = 108;
						}
						if (tile.type == 197)
						{
							num14 = 4;
						}
						if (tile.type == 153)
						{
							num14 = 26;
						}
						if (tile.type == 154)
						{
							num14 = 32;
						}
						if (tile.type == 155)
						{
							num14 = 2;
						}
						if (tile.type == 156)
						{
							num14 = 1;
						}
						if (tile.type == 116 || tile.type == 118 || tile.type == 147 || tile.type == 148)
						{
							num14 = 51;
						}
						if (tile.type == 109)
						{
							if (WorldGen.genRand.Next(2) == 0)
							{
								num14 = 0;
							}
							else
							{
								num14 = 47;
							}
						}
						if (tile.type == 110 || tile.type == 113 || tile.type == 115)
						{
							num14 = 47;
						}
						if (tile.type == 107 || tile.type == 121)
						{
							num14 = 48;
						}
						if (tile.type == 108 || tile.type == 122 || tile.type == 146)
						{
							num14 = 49;
						}
						if (tile.type == 111 || tile.type == 145 || tile.type == 150)
						{
							num14 = 50;
						}
						if (tile.type == 133)
						{
							num14 = 50;
							if (tile.frameX >= 54)
							{
								num14 = 146;
							}
						}
						if (tile.type == 134)
						{
							num14 = 49;
							if (tile.frameX >= 36)
							{
								num14 = 145;
							}
						}
						if (tile.type == 149)
						{
							num14 = 49;
						}
						if (Main.tileAlch[(int)tile.type])
						{
							int num31 = (int)(tile.frameX / 18);
							if (num31 == 0)
							{
								num14 = 3;
							}
							if (num31 == 1)
							{
								num14 = 3;
							}
							if (num31 == 2)
							{
								num14 = 7;
							}
							if (num31 == 3)
							{
								num14 = 17;
							}
							if (num31 == 4)
							{
								num14 = 3;
							}
							if (num31 == 5)
							{
								num14 = 6;
							}
							if (num31 == 6)
							{
								num14 = 224;
							}
						}
						if (tile.type == 58 || tile.type == 76 || tile.type == 77)
						{
							if (WorldGen.genRand.Next(2) == 0)
							{
								num14 = 6;
							}
							else
							{
								num14 = 25;
							}
						}
						if (tile.type == 37)
						{
							if (WorldGen.genRand.Next(2) == 0)
							{
								num14 = 6;
							}
							else
							{
								num14 = 23;
							}
						}
						if (tile.type == 32)
						{
							if (WorldGen.genRand.Next(2) == 0)
							{
								num14 = 14;
							}
							else
							{
								num14 = 24;
							}
						}
						if (tile.type == 23 || tile.type == 24)
						{
							if (WorldGen.genRand.Next(2) == 0)
							{
								num14 = 14;
							}
							else
							{
								num14 = 17;
							}
						}
						if (tile.type == 25 || tile.type == 31)
						{
							if (tile.type == 31 && tile.frameX >= 36)
							{
								num14 = 5;
							}
							else
							{
								if (WorldGen.genRand.Next(2) == 0)
								{
									num14 = 14;
								}
								else
								{
									num14 = 1;
								}
							}
						}
						if (tile.type == 20)
						{
							int num32 = (int)(tile.frameX / 54);
							if (num32 == 1)
							{
								num14 = 122;
							}
							else
							{
								if (num32 == 2)
								{
									num14 = 78;
								}
								else
								{
									if (num32 == 3)
									{
										num14 = 77;
									}
									else
									{
										if (num32 == 4)
										{
											num14 = 121;
										}
										else
										{
											if (num32 == 5)
											{
												num14 = 79;
											}
											else
											{
												num14 = 7;
											}
										}
									}
								}
							}
						}
						if (tile.type == 27)
						{
							if (WorldGen.genRand.Next(2) == 0)
							{
								num14 = 3;
							}
							else
							{
								num14 = 19;
							}
						}
						if (tile.type == 129)
						{
							if (tile.frameX == 0 || tile.frameX == 54 || tile.frameX == 108)
							{
								num14 = 68;
							}
							else
							{
								if (tile.frameX == 18 || tile.frameX == 72 || tile.frameX == 126)
								{
									num14 = 69;
								}
								else
								{
									num14 = 70;
								}
							}
						}
						if (tile.type == 4)
						{
							int num33 = (int)(tile.frameY / 22);
							if (num33 == 0)
							{
								num14 = 6;
							}
							else
							{
								if (num33 == 8)
								{
									num14 = 75;
								}
								else
								{
									if (num33 == 9)
									{
										num14 = 135;
									}
									else
									{
										if (num33 == 10)
										{
											num14 = 158;
										}
										else
										{
											if (num33 == 11)
											{
												num14 = 169;
											}
											else
											{
												if (num33 == 12)
												{
													num14 = 156;
												}
												else
												{
													num14 = 58 + num33;
												}
											}
										}
									}
								}
							}
						}
						if (tile.type == 35)
						{
							num14 = 189;
							if (tile.frameX < 36 && WorldGen.genRand.Next(2) == 0)
							{
								num14 = 6;
							}
						}
						if ((tile.type == 34 || tile.type == 42) && Main.rand.Next(2) == 0)
						{
							num14 = 6;
						}
						if (tile.type == 270)
						{
							num14 = -1;
						}
						if (tile.type == 271)
						{
							num14 = -1;
						}
						if (tile.type == 79 || tile.type == 90 || tile.type == 101)
						{
							num14 = -1;
						}
						if (tile.type == 33 || tile.type == 34 || tile.type == 42 || tile.type == 93 || tile.type == 100)
						{
							num14 = -1;
						}
						if (tile.type == 321)
						{
							num14 = 214;
						}
						if (tile.type == 322)
						{
							num14 = 215;
						}
						if (num14 >= 0)
						{
							if (tile.type == 160)
							{
								int num34 = Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, 66, 0f, 0f, 100, new Color(Main.DiscoR, Main.DiscoG, Main.DiscoB), 0.75f);
								Main.dust[num34].noGravity = true;
							}
							else
							{
								if (tile.type == 323)
								{
									int frameY = (int)tile.frameY;
									Dust.NewDust(new Vector2((float)(i * 16 + frameY), (float)(j * 16)), 16, 16, num14, 0f, 0f, 0, default(Color), 1f);
								}
								else
								{
									if (tile.type == 314)
									{
										int num35 = Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, 213, (float)Main.rand.Next(-2, 3), (float)Main.rand.Next(-2, 3), 0, default(Color), 1f);
										Main.dust[num35].noGravity = true;
										Main.dust[num35].fadeIn = Main.dust[num35].scale + 1f + 0.01f * (float)Main.rand.Next(0, 51);
										Main.dust[num35].noGravity = true;
									}
									else
									{
										if (tile.type == 178)
										{
											int num36 = Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num14, 0f, 0f, 75, default(Color), 0.75f);
											Main.dust[num36].noLight = true;
										}
										else
										{
											if (tile.type == 193 || (tile.type == 18 && num14 == 4))
											{
												Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num14, 0f, 0f, 75, new Color(0, 80, 255, 100), 0.75f);
											}
											else
											{
												if (tile.type == 197)
												{
													Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num14, 0f, 0f, 75, new Color(97, 200, 255, 100), 0.75f);
												}
												else
												{
													if (tile.type == 185 && num14 >= 86 && num14 <= 91)
													{
														int num37 = Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num14, 0f, 0f, 75, default(Color), 0.75f);
														Main.dust[num37].noLight = true;
													}
													else
													{
														Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num14, 0f, 0f, 0, default(Color), 1f);
													}
												}
											}
										}
									}
								}
							}
						}
						num13++;
						continue;
						IL_1144:
						num14 = -1;
						goto IL_1147;
					}
					if (effectOnly)
					{
						return;
					}
					if (fail)
					{
						if (tile.type == 2 || tile.type == 23 || tile.type == 109 || tile.type == 199)
						{
							tile.type = 0;
						}
						if (tile.type == 60 || tile.type == 70)
						{
							tile.type = 59;
						}
						if (Main.tileMoss[(int)tile.type])
						{
							tile.type = 1;
						}
						WorldGen.SquareTileFrame(i, j, true);
						return;
					}
					if (tile.type == 21 && Main.netMode != 1)
					{
						int num38 = (int)(tile.frameX / 18);
						int y = j - (int)(tile.frameY / 18);
						while (num38 > 1)
						{
							num38 -= 2;
						}
						num38 = i - num38;
						if (!Chest.DestroyChest(num38, y))
						{
							return;
						}
					}
					if (tile.type == 51 && tile.wall == 62 && WorldGen.genRand.Next(4) != 0)
					{
						noItem = true;
					}
					if (!noItem && !WorldGen.stopDrops && Main.netMode != 1)
					{
						int num39 = -1;
						int num40 = -1;
						if ((double)j < Main.worldSurface)
						{
							if (tile.type == 3 || tile.type == 60)
							{
								num39 = 400;
								num40 = 100;
							}
							if (tile.type == 73 || tile.type == 74)
							{
								num39 = 200;
								num40 = 50;
							}
						}
						else
						{
							if (tile.type == 3 || tile.type == 60)
							{
								num39 = 600;
							}
							if (tile.type == 73 || tile.type == 74)
							{
								num39 = 300;
							}
						}
						if (tile.type == 185)
						{
							if (tile.frameY == 0 && tile.frameX < 214)
							{
								num39 = 6;
							}
							if (tile.frameY == 18 && (tile.frameX < 214 || tile.frameX >= 1368))
							{
								num39 = 6;
							}
						}
						else
						{
							if (tile.type == 186)
							{
								if (tile.frameX >= 378 && tile.frameX <= 700)
								{
									num39 = 6;
								}
							}
							else
							{
								if (tile.type == 187)
								{
									if (tile.frameX >= 756 && tile.frameX <= 916)
									{
										num39 = 6;
									}
									if (tile.frameX <= 322)
									{
										num39 = 6;
									}
								}
							}
						}
						if (NPC.CountNPCS(357) < 5 && num39 > 0 && Main.rand.Next(num39) == 0)
						{
							int num41 = NPC.NewNPC(i * 16 + 10, j * 16, 357, 0);
							Main.npc[num41].TargetClosest(true);
							Main.npc[num41].velocity.Y = (float)Main.rand.Next(-50, -21) * 0.1f;
							Main.npc[num41].velocity.X = (float)Main.rand.Next(0, 26) * 0.1f * (float)(-(float)Main.npc[num41].direction);
							Main.npc[num41].direction *= -1;
							Main.npc[num41].netUpdate = true;
						}
						if (NPC.CountNPCS(377) < 5 && num40 > 0 && Main.rand.Next(num40) == 0)
						{
							int num42 = NPC.NewNPC(i * 16 + 10, j * 16, 377, 0);
							Main.npc[num42].TargetClosest(true);
							Main.npc[num42].velocity.Y = (float)Main.rand.Next(-50, -21) * 0.1f;
							Main.npc[num42].velocity.X = (float)Main.rand.Next(0, 26) * 0.1f * (float)(-(float)Main.npc[num42].direction);
							Main.npc[num42].direction *= -1;
							Main.npc[num42].netUpdate = true;
						}
						int num43 = 0;
						if (tile.type == 0 || tile.type == 2 || tile.type == 109)
						{
							num43 = 2;
						}
						else
						{
							if (tile.type == 1)
							{
								num43 = 3;
							}
							else
							{
								if (tile.type == 3 || tile.type == 73)
								{
									if (Main.rand.Next(2) == 0 && (Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].HasItem(281) || Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].HasItem(986)))
									{
										num43 = 283;
									}
								}
								else
								{
									if (tile.type == 227)
									{
										int num44 = (int)(tile.frameX / 34);
										num43 = 1107 + num44;
									}
									else
									{
										if (tile.type == 4)
										{
											int num45 = (int)(tile.frameY / 22);
											if (num45 == 0)
											{
												num43 = 8;
											}
											else
											{
												if (num45 == 8)
												{
													num43 = 523;
												}
												else
												{
													if (num45 == 9)
													{
														num43 = 974;
													}
													else
													{
														if (num45 == 10)
														{
															num43 = 1245;
														}
														else
														{
															if (num45 == 11)
															{
																num43 = 1333;
															}
															else
															{
																if (num45 == 12)
																{
																	num43 = 2274;
																}
																else
																{
																	num43 = 426 + num45;
																}
															}
														}
													}
												}
											}
										}
										else
										{
											if (tile.type == 239)
											{
												int num46 = (int)(tile.frameX / 18);
												if (num46 == 0)
												{
													num43 = 20;
												}
												if (num46 == 1)
												{
													num43 = 703;
												}
												if (num46 == 2)
												{
													num43 = 22;
												}
												if (num46 == 3)
												{
													num43 = 704;
												}
												if (num46 == 4)
												{
													num43 = 21;
												}
												if (num46 == 5)
												{
													num43 = 705;
												}
												if (num46 == 6)
												{
													num43 = 19;
												}
												if (num46 == 7)
												{
													num43 = 706;
												}
												if (num46 == 8)
												{
													num43 = 57;
												}
												if (num46 == 9)
												{
													num43 = 117;
												}
												if (num46 == 10)
												{
													num43 = 175;
												}
												if (num46 == 11)
												{
													num43 = 381;
												}
												if (num46 == 12)
												{
													num43 = 1184;
												}
												if (num46 == 13)
												{
													num43 = 382;
												}
												if (num46 == 14)
												{
													num43 = 1191;
												}
												if (num46 == 15)
												{
													num43 = 391;
												}
												if (num46 == 16)
												{
													num43 = 1198;
												}
												if (num46 == 17)
												{
													num43 = 1006;
												}
												if (num46 == 18)
												{
													num43 = 1225;
												}
												if (num46 == 19)
												{
													num43 = 1257;
												}
												if (num46 == 20)
												{
													num43 = 1552;
												}
											}
											else
											{
												if (tile.type == 315)
												{
													num43 = 2435;
												}
												else
												{
													if (tile.type == 330)
													{
														num43 = 71;
													}
													else
													{
														if (tile.type == 331)
														{
															num43 = 72;
														}
														else
														{
															if (tile.type == 332)
															{
																num43 = 73;
															}
															else
															{
																if (tile.type == 333)
																{
																	num43 = 74;
																}
																else
																{
																	if (tile.type == 5)
																	{
																		if (tile.frameX >= 22 && tile.frameY >= 198)
																		{
																			if (Main.netMode != 1)
																			{
																				if (WorldGen.genRand.Next(2) == 0)
																				{
																					int num47 = j;
																					while (Main.tile[i, num47] != null && (!Main.tile[i, num47].active() || !Main.tileSolid[(int)Main.tile[i, num47].type] || Main.tileSolidTop[(int)Main.tile[i, num47].type]))
																					{
																						num47++;
																					}
																					if (Main.tile[i, num47] != null)
																					{
																						if (Main.tile[i, num47].type == 2 || Main.tile[i, num47].type == 109 || Main.tile[i, num47].type == 147)
																						{
																							num43 = 27;
																						}
																						else
																						{
																							num43 = 9;
																						}
																					}
																				}
																				else
																				{
																					num43 = 9;
																				}
																			}
																		}
																		else
																		{
																			num43 = 9;
																		}
																		if (num43 == 9)
																		{
																			int num48 = i;
																			int num49 = j;
																			if (tile.frameX == 66 && tile.frameY <= 45)
																			{
																				num48++;
																			}
																			if (tile.frameX == 88 && tile.frameY >= 66 && tile.frameY <= 110)
																			{
																				num48--;
																			}
																			if (tile.frameX == 22 && tile.frameY >= 132 && tile.frameY <= 176)
																			{
																				num48--;
																			}
																			if (tile.frameX == 44 && tile.frameY >= 132 && tile.frameY <= 176)
																			{
																				num48++;
																			}
																			if (tile.frameX == 44 && tile.frameY >= 198)
																			{
																				num48++;
																			}
																			if (tile.frameX == 66 && tile.frameY >= 198)
																			{
																				num48--;
																			}
																			while (!Main.tile[num48, num49].active() || !Main.tileSolid[(int)Main.tile[num48, num49].type])
																			{
																				num49++;
																			}
																			if (Main.tile[num48, num49].active())
																			{
																				ushort type = Main.tile[num48, num49].type;
																				if (type <= 70)
																				{
																					if (type != 23)
																					{
																						if (type != 60)
																						{
																							if (type == 70)
																							{
																								num43 = 183;
																							}
																						}
																						else
																						{
																							num43 = 620;
																						}
																					}
																					else
																					{
																						num43 = 619;
																					}
																				}
																				else
																				{
																					if (type != 109)
																					{
																						if (type != 147)
																						{
																							if (type == 199)
																							{
																								num43 = 911;
																							}
																						}
																						else
																						{
																							num43 = 2503;
																						}
																					}
																					else
																					{
																						num43 = 621;
																					}
																				}
																			}
																		}
																	}
																	else
																	{
																		if (tile.type == 323)
																		{
																			num43 = 2504;
																			int num50 = j;
																			while (!Main.tile[i, num50].active() || !Main.tileSolid[(int)Main.tile[i, num50].type])
																			{
																				num50++;
																			}
																			if (Main.tile[i, num50].active())
																			{
																				ushort type = Main.tile[i, num50].type;
																				if (type != 112)
																				{
																					if (type != 116)
																					{
																						if (type == 234)
																						{
																							num43 = 911;
																						}
																					}
																					else
																					{
																						num43 = 621;
																					}
																				}
																				else
																				{
																					num43 = 619;
																				}
																			}
																		}
																		else
																		{
																			if (tile.type >= 255 && tile.type <= 261)
																			{
																				num43 = (int)(1970 + tile.type - 255);
																			}
																			else
																			{
																				if (tile.type >= 262 && tile.type <= 268)
																				{
																					num43 = (int)(1970 + tile.type - 262);
																				}
																				else
																				{
																					if (tile.type == 171)
																					{
																						if (tile.frameX >= 10)
																						{
																							WorldGen.dropXmasTree(i, j, 0);
																							WorldGen.dropXmasTree(i, j, 1);
																							WorldGen.dropXmasTree(i, j, 2);
																							WorldGen.dropXmasTree(i, j, 3);
																						}
																					}
																					else
																					{
																						if (tile.type == 324)
																						{
																							switch (tile.frameY / 22)
																							{
																							case 0:
																								num43 = 2625;
																								break;
																							case 1:
																								num43 = 2626;
																								break;
																							}
																						}
																						else
																						{
																							if (tile.type == 272)
																							{
																								num43 = 1344;
																							}
																							else
																							{
																								if (tile.type == 273)
																								{
																									num43 = 2119;
																								}
																								else
																								{
																									if (tile.type == 274)
																									{
																										num43 = 2120;
																									}
																									else
																									{
																										if (tile.type == 326)
																										{
																											num43 = 2693;
																											Main.PlaySound(13, i * 16, j * 16, 1);
																										}
																										else
																										{
																											if (tile.type == 327)
																											{
																												num43 = 2694;
																												Main.PlaySound(13, i * 16, j * 16, 1);
																											}
																											else
																											{
																												if (tile.type == 328)
																												{
																													num43 = 2695;
																													Main.PlaySound(13, i * 16, j * 16, 1);
																												}
																												else
																												{
																													if (tile.type == 329)
																													{
																														num43 = 2697;
																														Main.PlaySound(13, i * 16, j * 16, 1);
																													}
																													else
																													{
																														if (tile.type == 336)
																														{
																															num43 = 2701;
																														}
																														else
																														{
																															if (tile.type == 251)
																															{
																																num43 = 1725;
																															}
																															else
																															{
																																if (tile.type == 252)
																																{
																																	num43 = 1727;
																																}
																																else
																																{
																																	if (tile.type == 253)
																																	{
																																		num43 = 1729;
																																	}
																																	else
																																	{
																																		if (tile.type == 325)
																																		{
																																			num43 = 2692;
																																		}
																																		else
																																		{
																																			if (tile.type == 170)
																																			{
																																				num43 = 1872;
																																			}
																																			else
																																			{
																																				if (tile.type == 284)
																																				{
																																					num43 = 2173;
																																				}
																																				else
																																				{
																																					if (tile.type == 214)
																																					{
																																						num43 = 85;
																																					}
																																					else
																																					{
																																						if (tile.type == 213)
																																						{
																																							num43 = 965;
																																						}
																																						else
																																						{
																																							if (tile.type == 211)
																																							{
																																								num43 = 947;
																																							}
																																							else
																																							{
																																								if (tile.type == 6)
																																								{
																																									num43 = 11;
																																								}
																																								else
																																								{
																																									if (tile.type == 7)
																																									{
																																										num43 = 12;
																																									}
																																									else
																																									{
																																										if (tile.type == 8)
																																										{
																																											num43 = 13;
																																										}
																																										else
																																										{
																																											if (tile.type == 9)
																																											{
																																												num43 = 14;
																																											}
																																											else
																																											{
																																												if (tile.type == 202)
																																												{
																																													num43 = 824;
																																												}
																																												else
																																												{
																																													if (tile.type == 234)
																																													{
																																														num43 = 1246;
																																													}
																																													else
																																													{
																																														if (tile.type == 226)
																																														{
																																															num43 = 1101;
																																														}
																																														else
																																														{
																																															if (tile.type == 224)
																																															{
																																																num43 = 1103;
																																															}
																																															else
																																															{
																																																if (tile.type == 36)
																																																{
																																																	num43 = 1869;
																																																}
																																																else
																																																{
																																																	if (tile.type == 311)
																																																	{
																																																		num43 = 2260;
																																																	}
																																																	else
																																																	{
																																																		if (tile.type == 312)
																																																		{
																																																			num43 = 2261;
																																																		}
																																																		else
																																																		{
																																																			if (tile.type == 313)
																																																			{
																																																				num43 = 2262;
																																																			}
																																																			else
																																																			{
																																																				if (tile.type == 229)
																																																				{
																																																					num43 = 1125;
																																																				}
																																																				else
																																																				{
																																																					if (tile.type == 230)
																																																					{
																																																						num43 = 1127;
																																																					}
																																																					else
																																																					{
																																																						if (tile.type == 225)
																																																						{
																																																							if (WorldGen.genRand.Next(3) == 0)
																																																							{
																																																								tile.honey(true);
																																																								tile.liquid = 255;
																																																							}
																																																							else
																																																							{
																																																								num43 = 1124;
																																																								if (Main.netMode != 1 && WorldGen.genRand.Next(2) == 0)
																																																								{
																																																									int num51 = 1;
																																																									if (WorldGen.genRand.Next(3) == 0)
																																																									{
																																																										num51 = 2;
																																																									}
																																																									for (int num52 = 0; num52 < num51; num52++)
																																																									{
																																																										int type2 = WorldGen.genRand.Next(210, 212);
																																																										int num53 = NPC.NewNPC(i * 16 + 8, j * 16 + 15, type2, 1);
																																																										Main.npc[num53].velocity.X = (float)WorldGen.genRand.Next(-200, 201) * 0.002f;
																																																										Main.npc[num53].velocity.Y = (float)WorldGen.genRand.Next(-200, 201) * 0.002f;
																																																										Main.npc[num53].netUpdate = true;
																																																									}
																																																								}
																																																							}
																																																						}
																																																						else
																																																						{
																																																							if (tile.type == 221)
																																																							{
																																																								num43 = 1104;
																																																							}
																																																							else
																																																							{
																																																								if (tile.type == 222)
																																																								{
																																																									num43 = 1105;
																																																								}
																																																								else
																																																								{
																																																									if (tile.type == 223)
																																																									{
																																																										num43 = 1106;
																																																									}
																																																									else
																																																									{
																																																										if (tile.type == 248)
																																																										{
																																																											num43 = 1589;
																																																										}
																																																										else
																																																										{
																																																											if (tile.type == 249)
																																																											{
																																																												num43 = 1591;
																																																											}
																																																											else
																																																											{
																																																												if (tile.type == 250)
																																																												{
																																																													num43 = 1593;
																																																												}
																																																												else
																																																												{
																																																													if (tile.type == 191)
																																																													{
																																																														num43 = 9;
																																																													}
																																																													else
																																																													{
																																																														if (tile.type == 203)
																																																														{
																																																															num43 = 836;
																																																														}
																																																														else
																																																														{
																																																															if (tile.type == 204)
																																																															{
																																																																num43 = 880;
																																																															}
																																																															else
																																																															{
																																																																if (tile.type == 166)
																																																																{
																																																																	num43 = 699;
																																																																}
																																																																else
																																																																{
																																																																	if (tile.type == 167)
																																																																	{
																																																																		num43 = 700;
																																																																	}
																																																																	else
																																																																	{
																																																																		if (tile.type == 168)
																																																																		{
																																																																			num43 = 701;
																																																																		}
																																																																		else
																																																																		{
																																																																			if (tile.type == 169)
																																																																			{
																																																																				num43 = 702;
																																																																			}
																																																																			else
																																																																			{
																																																																				if (tile.type == 123)
																																																																				{
																																																																					num43 = 424;
																																																																				}
																																																																				else
																																																																				{
																																																																					if (tile.type == 124)
																																																																					{
																																																																						num43 = 480;
																																																																					}
																																																																					else
																																																																					{
																																																																						if (tile.type == 157)
																																																																						{
																																																																							num43 = 619;
																																																																						}
																																																																						else
																																																																						{
																																																																							if (tile.type == 158)
																																																																							{
																																																																								num43 = 620;
																																																																							}
																																																																							else
																																																																							{
																																																																								if (tile.type == 159)
																																																																								{
																																																																									num43 = 621;
																																																																								}
																																																																								else
																																																																								{
																																																																									if (tile.type == 161)
																																																																									{
																																																																										num43 = 664;
																																																																									}
																																																																									else
																																																																									{
																																																																										if (tile.type == 206)
																																																																										{
																																																																											num43 = 883;
																																																																										}
																																																																										else
																																																																										{
																																																																											if (tile.type == 232)
																																																																											{
																																																																												num43 = 1150;
																																																																											}
																																																																											else
																																																																											{
																																																																												if (tile.type == 198)
																																																																												{
																																																																													num43 = 775;
																																																																												}
																																																																												else
																																																																												{
																																																																													if (tile.type == 314)
																																																																													{
																																																																														num43 = Minecart.GetTrackItem(tile);
																																																																													}
																																																																													else
																																																																													{
																																																																														if (tile.type == 189)
																																																																														{
																																																																															num43 = 751;
																																																																														}
																																																																														else
																																																																														{
																																																																															if (tile.type == 195)
																																																																															{
																																																																																num43 = 763;
																																																																															}
																																																																															else
																																																																															{
																																																																																if (tile.type == 194)
																																																																																{
																																																																																	num43 = 766;
																																																																																}
																																																																																else
																																																																																{
																																																																																	if (tile.type == 193)
																																																																																	{
																																																																																		num43 = 762;
																																																																																	}
																																																																																	else
																																																																																	{
																																																																																		if (tile.type == 196)
																																																																																		{
																																																																																			num43 = 765;
																																																																																		}
																																																																																		else
																																																																																		{
																																																																																			if (tile.type == 197)
																																																																																			{
																																																																																				num43 = 767;
																																																																																			}
																																																																																			else
																																																																																			{
																																																																																				if (tile.type == 178)
																																																																																				{
																																																																																					int num54 = (int)(tile.frameX / 18);
																																																																																					if (num54 == 0)
																																																																																					{
																																																																																						num43 = 181;
																																																																																					}
																																																																																					else
																																																																																					{
																																																																																						if (num54 == 1)
																																																																																						{
																																																																																							num43 = 180;
																																																																																						}
																																																																																						else
																																																																																						{
																																																																																							if (num54 == 2)
																																																																																							{
																																																																																								num43 = 177;
																																																																																							}
																																																																																							else
																																																																																							{
																																																																																								if (num54 == 3)
																																																																																								{
																																																																																									num43 = 179;
																																																																																								}
																																																																																								else
																																																																																								{
																																																																																									if (num54 == 4)
																																																																																									{
																																																																																										num43 = 178;
																																																																																									}
																																																																																									else
																																																																																									{
																																																																																										if (num54 == 5)
																																																																																										{
																																																																																											num43 = 182;
																																																																																										}
																																																																																										else
																																																																																										{
																																																																																											if (num54 == 6)
																																																																																											{
																																																																																												num43 = 999;
																																																																																											}
																																																																																										}
																																																																																									}
																																																																																								}
																																																																																							}
																																																																																						}
																																																																																					}
																																																																																				}
																																																																																				else
																																																																																				{
																																																																																					if (tile.type == 149)
																																																																																					{
																																																																																						if (tile.frameX == 0 || tile.frameX == 54)
																																																																																						{
																																																																																							num43 = 596;
																																																																																						}
																																																																																						else
																																																																																						{
																																																																																							if (tile.frameX == 18 || tile.frameX == 72)
																																																																																							{
																																																																																								num43 = 597;
																																																																																							}
																																																																																							else
																																																																																							{
																																																																																								if (tile.frameX == 36 || tile.frameX == 90)
																																																																																								{
																																																																																									num43 = 598;
																																																																																								}
																																																																																							}
																																																																																						}
																																																																																					}
																																																																																					else
																																																																																					{
																																																																																						if (tile.type == 13)
																																																																																						{
																																																																																							Main.PlaySound(13, i * 16, j * 16, 1);
																																																																																							int num55 = (int)(tile.frameX / 18);
																																																																																							if (num55 == 1)
																																																																																							{
																																																																																								num43 = 28;
																																																																																							}
																																																																																							else
																																																																																							{
																																																																																								if (num55 == 2)
																																																																																								{
																																																																																									num43 = 110;
																																																																																								}
																																																																																								else
																																																																																								{
																																																																																									if (num55 == 3)
																																																																																									{
																																																																																										num43 = 350;
																																																																																									}
																																																																																									else
																																																																																									{
																																																																																										if (num55 == 4)
																																																																																										{
																																																																																											num43 = 351;
																																																																																										}
																																																																																										else
																																																																																										{
																																																																																											if (num55 == 5)
																																																																																											{
																																																																																												num43 = 2234;
																																																																																											}
																																																																																											else
																																																																																											{
																																																																																												if (num55 == 6)
																																																																																												{
																																																																																													num43 = 2244;
																																																																																												}
																																																																																												else
																																																																																												{
																																																																																													if (num55 == 7)
																																																																																													{
																																																																																														num43 = 2257;
																																																																																													}
																																																																																													else
																																																																																													{
																																																																																														if (num55 == 8)
																																																																																														{
																																																																																															num43 = 2258;
																																																																																														}
																																																																																														else
																																																																																														{
																																																																																															num43 = 31;
																																																																																														}
																																																																																													}
																																																																																												}
																																																																																											}
																																																																																										}
																																																																																									}
																																																																																								}
																																																																																							}
																																																																																						}
																																																																																						else
																																																																																						{
																																																																																							if (tile.type == 19)
																																																																																							{
																																																																																								int num56 = (int)(tile.frameY / 18);
																																																																																								if (num56 == 0)
																																																																																								{
																																																																																									num43 = 94;
																																																																																								}
																																																																																								else
																																																																																								{
																																																																																									if (num56 == 1)
																																																																																									{
																																																																																										num43 = 631;
																																																																																									}
																																																																																									else
																																																																																									{
																																																																																										if (num56 == 2)
																																																																																										{
																																																																																											num43 = 632;
																																																																																										}
																																																																																										else
																																																																																										{
																																																																																											if (num56 == 3)
																																																																																											{
																																																																																												num43 = 633;
																																																																																											}
																																																																																											else
																																																																																											{
																																																																																												if (num56 == 4)
																																																																																												{
																																																																																													num43 = 634;
																																																																																												}
																																																																																												else
																																																																																												{
																																																																																													if (num56 == 5)
																																																																																													{
																																																																																														num43 = 913;
																																																																																													}
																																																																																													else
																																																																																													{
																																																																																														if (num56 == 6)
																																																																																														{
																																																																																															num43 = 1384;
																																																																																														}
																																																																																														else
																																																																																														{
																																																																																															if (num56 == 7)
																																																																																															{
																																																																																																num43 = 1385;
																																																																																															}
																																																																																															else
																																																																																															{
																																																																																																if (num56 == 8)
																																																																																																{
																																																																																																	num43 = 1386;
																																																																																																}
																																																																																																else
																																																																																																{
																																																																																																	if (num56 == 9)
																																																																																																	{
																																																																																																		num43 = 1387;
																																																																																																	}
																																																																																																	else
																																																																																																	{
																																																																																																		if (num56 == 10)
																																																																																																		{
																																																																																																			num43 = 1388;
																																																																																																		}
																																																																																																		else
																																																																																																		{
																																																																																																			if (num56 == 11)
																																																																																																			{
																																																																																																				num43 = 1389;
																																																																																																			}
																																																																																																			else
																																																																																																			{
																																																																																																				if (num56 == 12)
																																																																																																				{
																																																																																																					num43 = 1418;
																																																																																																				}
																																																																																																				else
																																																																																																				{
																																																																																																					if (num56 == 13)
																																																																																																					{
																																																																																																						num43 = 1457;
																																																																																																					}
																																																																																																					else
																																																																																																					{
																																																																																																						if (num56 == 14)
																																																																																																						{
																																																																																																							num43 = 1702;
																																																																																																						}
																																																																																																						else
																																																																																																						{
																																																																																																							if (num56 == 15)
																																																																																																							{
																																																																																																								num43 = 1796;
																																																																																																							}
																																																																																																							else
																																																																																																							{
																																																																																																								if (num56 == 16)
																																																																																																								{
																																																																																																									num43 = 1818;
																																																																																																								}
																																																																																																								else
																																																																																																								{
																																																																																																									if (num56 == 17)
																																																																																																									{
																																																																																																										num43 = 2518;
																																																																																																									}
																																																																																																									else
																																																																																																									{
																																																																																																										if (num56 == 18)
																																																																																																										{
																																																																																																											num43 = 2549;
																																																																																																										}
																																																																																																										else
																																																																																																										{
																																																																																																											if (num56 == 19)
																																																																																																											{
																																																																																																												num43 = 2566;
																																																																																																											}
																																																																																																											else
																																																																																																											{
																																																																																																												if (num56 == 20)
																																																																																																												{
																																																																																																													num43 = 2581;
																																																																																																												}
																																																																																																												else
																																																																																																												{
																																																																																																													if (num56 == 21)
																																																																																																													{
																																																																																																														num43 = 2627;
																																																																																																													}
																																																																																																													else
																																																																																																													{
																																																																																																														if (num56 == 22)
																																																																																																														{
																																																																																																															num43 = 2628;
																																																																																																														}
																																																																																																														else
																																																																																																														{
																																																																																																															if (num56 == 23)
																																																																																																															{
																																																																																																																num43 = 2629;
																																																																																																															}
																																																																																																															else
																																																																																																															{
																																																																																																																if (num56 == 24)
																																																																																																																{
																																																																																																																	num43 = 2630;
																																																																																																																}
																																																																																																																else
																																																																																																																{
																																																																																																																	if (num56 == 25)
																																																																																																																	{
																																																																																																																		num43 = 2744;
																																																																																																																	}
																																																																																																																}
																																																																																																															}
																																																																																																														}
																																																																																																													}
																																																																																																												}
																																																																																																											}
																																																																																																										}
																																																																																																									}
																																																																																																								}
																																																																																																							}
																																																																																																						}
																																																																																																					}
																																																																																																				}
																																																																																																			}
																																																																																																		}
																																																																																																	}
																																																																																																}
																																																																																															}
																																																																																														}
																																																																																													}
																																																																																												}
																																																																																											}
																																																																																										}
																																																																																									}
																																																																																								}
																																																																																							}
																																																																																							else
																																																																																							{
																																																																																								if (tile.type == 22)
																																																																																								{
																																																																																									num43 = 56;
																																																																																								}
																																																																																								else
																																																																																								{
																																																																																									if (tile.type == 140)
																																																																																									{
																																																																																										num43 = 577;
																																																																																									}
																																																																																									else
																																																																																									{
																																																																																										if (tile.type == 23)
																																																																																										{
																																																																																											num43 = 2;
																																																																																										}
																																																																																										else
																																																																																										{
																																																																																											if (tile.type == 25)
																																																																																											{
																																																																																												num43 = 61;
																																																																																											}
																																																																																											else
																																																																																											{
																																																																																												if (tile.type == 30)
																																																																																												{
																																																																																													num43 = 9;
																																																																																												}
																																																																																												else
																																																																																												{
																																																																																													if (tile.type == 191)
																																																																																													{
																																																																																														num43 = 9;
																																																																																													}
																																																																																													else
																																																																																													{
																																																																																														if (tile.type == 208)
																																																																																														{
																																																																																															num43 = 911;
																																																																																														}
																																																																																														else
																																																																																														{
																																																																																															if (tile.type == 33)
																																																																																															{
																																																																																																int num57 = (int)(tile.frameY / 22);
																																																																																																num43 = 105;
																																																																																																if (num57 == 1)
																																																																																																{
																																																																																																	num43 = 1405;
																																																																																																}
																																																																																																else
																																																																																																{
																																																																																																	if (num57 == 2)
																																																																																																	{
																																																																																																		num43 = 1406;
																																																																																																	}
																																																																																																	else
																																																																																																	{
																																																																																																		if (num57 == 3)
																																																																																																		{
																																																																																																			num43 = 1407;
																																																																																																		}
																																																																																																		else
																																																																																																		{
																																																																																																			if (num57 >= 4 && num57 <= 13)
																																																																																																			{
																																																																																																				num43 = 2045 + num57 - 4;
																																																																																																			}
																																																																																																			else
																																																																																																			{
																																																																																																				if (num57 >= 14 && num57 <= 16)
																																																																																																				{
																																																																																																					num43 = 2153 + num57 - 14;
																																																																																																				}
																																																																																																				else
																																																																																																				{
																																																																																																					if (num57 == 17)
																																																																																																					{
																																																																																																						num43 = 2236;
																																																																																																					}
																																																																																																					else
																																																																																																					{
																																																																																																						if (num57 == 18)
																																																																																																						{
																																																																																																							num43 = 2523;
																																																																																																						}
																																																																																																						else
																																																																																																						{
																																																																																																							if (num57 == 19)
																																																																																																							{
																																																																																																								num43 = 2542;
																																																																																																							}
																																																																																																							else
																																																																																																							{
																																																																																																								if (num57 == 20)
																																																																																																								{
																																																																																																									num43 = 2556;
																																																																																																								}
																																																																																																								else
																																																																																																								{
																																																																																																									if (num57 == 21)
																																																																																																									{
																																																																																																										num43 = 2571;
																																																																																																									}
																																																																																																									else
																																																																																																									{
																																																																																																										if (num57 == 22)
																																																																																																										{
																																																																																																											num43 = 2648;
																																																																																																										}
																																																																																																										else
																																																																																																										{
																																																																																																											if (num57 == 23)
																																																																																																											{
																																																																																																												num43 = 2649;
																																																																																																											}
																																																																																																											else
																																																																																																											{
																																																																																																												if (num57 == 24)
																																																																																																												{
																																																																																																													num43 = 2650;
																																																																																																												}
																																																																																																												else
																																																																																																												{
																																																																																																													if (num57 == 25)
																																																																																																													{
																																																																																																														num43 = 2651;
																																																																																																													}
																																																																																																												}
																																																																																																											}
																																																																																																										}
																																																																																																									}
																																																																																																								}
																																																																																																							}
																																																																																																						}
																																																																																																					}
																																																																																																				}
																																																																																																			}
																																																																																																		}
																																																																																																	}
																																																																																																}
																																																																																															}
																																																																																															else
																																																																																															{
																																																																																																if (tile.type == 174)
																																																																																																{
																																																																																																	num43 = 713;
																																																																																																}
																																																																																																else
																																																																																																{
																																																																																																	if (tile.type == 37)
																																																																																																	{
																																																																																																		num43 = 116;
																																																																																																	}
																																																																																																	else
																																																																																																	{
																																																																																																		if (tile.type == 38)
																																																																																																		{
																																																																																																			num43 = 129;
																																																																																																		}
																																																																																																		else
																																																																																																		{
																																																																																																			if (tile.type == 39)
																																																																																																			{
																																																																																																				num43 = 131;
																																																																																																			}
																																																																																																			else
																																																																																																			{
																																																																																																				if (tile.type == 40)
																																																																																																				{
																																																																																																					num43 = 133;
																																																																																																				}
																																																																																																				else
																																																																																																				{
																																																																																																					if (tile.type == 41)
																																																																																																					{
																																																																																																						num43 = 134;
																																																																																																					}
																																																																																																					else
																																																																																																					{
																																																																																																						if (tile.type == 43)
																																																																																																						{
																																																																																																							num43 = 137;
																																																																																																						}
																																																																																																						else
																																																																																																						{
																																																																																																							if (tile.type == 44)
																																																																																																							{
																																																																																																								num43 = 139;
																																																																																																							}
																																																																																																							else
																																																																																																							{
																																																																																																								if (tile.type == 45)
																																																																																																								{
																																																																																																									num43 = 141;
																																																																																																								}
																																																																																																								else
																																																																																																								{
																																																																																																									if (tile.type == 46)
																																																																																																									{
																																																																																																										num43 = 143;
																																																																																																									}
																																																																																																									else
																																																																																																									{
																																																																																																										if (tile.type == 47)
																																																																																																										{
																																																																																																											num43 = 145;
																																																																																																										}
																																																																																																										else
																																																																																																										{
																																																																																																											if (tile.type == 48)
																																																																																																											{
																																																																																																												num43 = 147;
																																																																																																											}
																																																																																																											else
																																																																																																											{
																																																																																																												if (tile.type == 49)
																																																																																																												{
																																																																																																													num43 = 148;
																																																																																																												}
																																																																																																												else
																																																																																																												{
																																																																																																													if (tile.type == 51)
																																																																																																													{
																																																																																																														num43 = 150;
																																																																																																													}
																																																																																																													else
																																																																																																													{
																																																																																																														if (tile.type == 53)
																																																																																																														{
																																																																																																															num43 = 169;
																																																																																																														}
																																																																																																														else
																																																																																																														{
																																																																																																															if (tile.type == 151)
																																																																																																															{
																																																																																																																num43 = 607;
																																																																																																															}
																																																																																																															else
																																																																																																															{
																																																																																																																if (tile.type == 152)
																																																																																																																{
																																																																																																																	num43 = 609;
																																																																																																																}
																																																																																																																else
																																																																																																																{
																																																																																																																	if (tile.type == 54)
																																																																																																																	{
																																																																																																																		num43 = 170;
																																																																																																																		Main.PlaySound(13, i * 16, j * 16, 1);
																																																																																																																	}
																																																																																																																	else
																																																																																																																	{
																																																																																																																		if (tile.type == 56)
																																																																																																																		{
																																																																																																																			num43 = 173;
																																																																																																																		}
																																																																																																																		else
																																																																																																																		{
																																																																																																																			if (tile.type == 57)
																																																																																																																			{
																																																																																																																				num43 = 172;
																																																																																																																			}
																																																																																																																			else
																																																																																																																			{
																																																																																																																				if (tile.type == 58)
																																																																																																																				{
																																																																																																																					num43 = 174;
																																																																																																																				}
																																																																																																																				else
																																																																																																																				{
																																																																																																																					if (tile.type == 60)
																																																																																																																					{
																																																																																																																						num43 = 176;
																																																																																																																					}
																																																																																																																					else
																																																																																																																					{
																																																																																																																						if (tile.type == 70)
																																																																																																																						{
																																																																																																																							num43 = 176;
																																																																																																																						}
																																																																																																																						else
																																																																																																																						{
																																																																																																																							if (tile.type == 75)
																																																																																																																							{
																																																																																																																								num43 = 192;
																																																																																																																							}
																																																																																																																							else
																																																																																																																							{
																																																																																																																								if (tile.type == 76)
																																																																																																																								{
																																																																																																																									num43 = 214;
																																																																																																																								}
																																																																																																																								else
																																																																																																																								{
																																																																																																																									if (tile.type == 78)
																																																																																																																									{
																																																																																																																										num43 = 222;
																																																																																																																									}
																																																																																																																									else
																																																																																																																									{
																																																																																																																										if (tile.type == 81)
																																																																																																																										{
																																																																																																																											num43 = 275;
																																																																																																																										}
																																																																																																																										else
																																																																																																																										{
																																																																																																																											if (tile.type == 80)
																																																																																																																											{
																																																																																																																												num43 = 276;
																																																																																																																											}
																																																																																																																											else
																																																																																																																											{
																																																																																																																												if (tile.type == 188)
																																																																																																																												{
																																																																																																																													num43 = 276;
																																																																																																																												}
																																																																																																																												else
																																																																																																																												{
																																																																																																																													if (tile.type == 107)
																																																																																																																													{
																																																																																																																														num43 = 364;
																																																																																																																													}
																																																																																																																													else
																																																																																																																													{
																																																																																																																														if (tile.type == 108)
																																																																																																																														{
																																																																																																																															num43 = 365;
																																																																																																																														}
																																																																																																																														else
																																																																																																																														{
																																																																																																																															if (tile.type == 111)
																																																																																																																															{
																																																																																																																																num43 = 366;
																																																																																																																															}
																																																																																																																															else
																																																																																																																															{
																																																																																																																																if (tile.type == 150)
																																																																																																																																{
																																																																																																																																	num43 = 604;
																																																																																																																																}
																																																																																																																																else
																																																																																																																																{
																																																																																																																																	if (tile.type == 112)
																																																																																																																																	{
																																																																																																																																		num43 = 370;
																																																																																																																																	}
																																																																																																																																	else
																																																																																																																																	{
																																																																																																																																		if (tile.type == 116)
																																																																																																																																		{
																																																																																																																																			num43 = 408;
																																																																																																																																		}
																																																																																																																																		else
																																																																																																																																		{
																																																																																																																																			if (tile.type == 117)
																																																																																																																																			{
																																																																																																																																				num43 = 409;
																																																																																																																																			}
																																																																																																																																			else
																																																																																																																																			{
																																																																																																																																				if (tile.type == 129)
																																																																																																																																				{
																																																																																																																																					num43 = 502;
																																																																																																																																				}
																																																																																																																																				else
																																																																																																																																				{
																																																																																																																																					if (tile.type == 118)
																																																																																																																																					{
																																																																																																																																						num43 = 412;
																																																																																																																																					}
																																																																																																																																					else
																																																																																																																																					{
																																																																																																																																						if (tile.type == 119)
																																																																																																																																						{
																																																																																																																																							num43 = 413;
																																																																																																																																						}
																																																																																																																																						else
																																																																																																																																						{
																																																																																																																																							if (tile.type == 120)
																																																																																																																																							{
																																																																																																																																								num43 = 414;
																																																																																																																																							}
																																																																																																																																							else
																																																																																																																																							{
																																																																																																																																								if (tile.type == 121)
																																																																																																																																								{
																																																																																																																																									num43 = 415;
																																																																																																																																								}
																																																																																																																																								else
																																																																																																																																								{
																																																																																																																																									if (tile.type == 122)
																																																																																																																																									{
																																																																																																																																										num43 = 416;
																																																																																																																																									}
																																																																																																																																									else
																																																																																																																																									{
																																																																																																																																										if (tile.type == 136)
																																																																																																																																										{
																																																																																																																																											num43 = 538;
																																																																																																																																										}
																																																																																																																																										else
																																																																																																																																										{
																																																																																																																																											if (tile.type == 137)
																																																																																																																																											{
																																																																																																																																												int num58 = (int)(tile.frameY / 18);
																																																																																																																																												if (num58 == 0)
																																																																																																																																												{
																																																																																																																																													num43 = 539;
																																																																																																																																												}
																																																																																																																																												if (num58 == 1)
																																																																																																																																												{
																																																																																																																																													num43 = 1146;
																																																																																																																																												}
																																																																																																																																												if (num58 == 2)
																																																																																																																																												{
																																																																																																																																													num43 = 1147;
																																																																																																																																												}
																																																																																																																																												if (num58 == 3)
																																																																																																																																												{
																																																																																																																																													num43 = 1148;
																																																																																																																																												}
																																																																																																																																												if (num58 == 4)
																																																																																																																																												{
																																																																																																																																													num43 = 1149;
																																																																																																																																												}
																																																																																																																																											}
																																																																																																																																											else
																																																																																																																																											{
																																																																																																																																												if (tile.type == 141)
																																																																																																																																												{
																																																																																																																																													num43 = 580;
																																																																																																																																												}
																																																																																																																																												else
																																																																																																																																												{
																																																																																																																																													if (tile.type == 145)
																																																																																																																																													{
																																																																																																																																														num43 = 586;
																																																																																																																																													}
																																																																																																																																													else
																																																																																																																																													{
																																																																																																																																														if (tile.type == 146)
																																																																																																																																														{
																																																																																																																																															num43 = 591;
																																																																																																																																														}
																																																																																																																																														else
																																																																																																																																														{
																																																																																																																																															if (tile.type == 147)
																																																																																																																																															{
																																																																																																																																																num43 = 593;
																																																																																																																																															}
																																																																																																																																															else
																																																																																																																																															{
																																																																																																																																																if (tile.type == 148)
																																																																																																																																																{
																																																																																																																																																	num43 = 594;
																																																																																																																																																}
																																																																																																																																																else
																																																																																																																																																{
																																																																																																																																																	if (tile.type == 153)
																																																																																																																																																	{
																																																																																																																																																		num43 = 611;
																																																																																																																																																	}
																																																																																																																																																	else
																																																																																																																																																	{
																																																																																																																																																		if (tile.type == 154)
																																																																																																																																																		{
																																																																																																																																																			num43 = 612;
																																																																																																																																																		}
																																																																																																																																																		else
																																																																																																																																																		{
																																																																																																																																																			if (tile.type == 155)
																																																																																																																																																			{
																																																																																																																																																				num43 = 613;
																																																																																																																																																			}
																																																																																																																																																			else
																																																																																																																																																			{
																																																																																																																																																				if (tile.type == 156)
																																																																																																																																																				{
																																																																																																																																																					num43 = 614;
																																																																																																																																																				}
																																																																																																																																																				else
																																																																																																																																																				{
																																																																																																																																																					if (tile.type == 160)
																																																																																																																																																					{
																																																																																																																																																						num43 = 662;
																																																																																																																																																					}
																																																																																																																																																					else
																																																																																																																																																					{
																																																																																																																																																						if (tile.type == 175)
																																																																																																																																																						{
																																																																																																																																																							num43 = 717;
																																																																																																																																																						}
																																																																																																																																																						else
																																																																																																																																																						{
																																																																																																																																																							if (tile.type == 176)
																																																																																																																																																							{
																																																																																																																																																								num43 = 718;
																																																																																																																																																							}
																																																																																																																																																							else
																																																																																																																																																							{
																																																																																																																																																								if (tile.type == 177)
																																																																																																																																																								{
																																																																																																																																																									num43 = 719;
																																																																																																																																																								}
																																																																																																																																																								else
																																																																																																																																																								{
																																																																																																																																																									if (tile.type == 163)
																																																																																																																																																									{
																																																																																																																																																										num43 = 833;
																																																																																																																																																									}
																																																																																																																																																									else
																																																																																																																																																									{
																																																																																																																																																										if (tile.type == 164)
																																																																																																																																																										{
																																																																																																																																																											num43 = 834;
																																																																																																																																																										}
																																																																																																																																																										else
																																																																																																																																																										{
																																																																																																																																																											if (tile.type == 200)
																																																																																																																																																											{
																																																																																																																																																												num43 = 835;
																																																																																																																																																											}
																																																																																																																																																											else
																																																																																																																																																											{
																																																																																																																																																												if (tile.type == 210)
																																																																																																																																																												{
																																																																																																																																																													num43 = 937;
																																																																																																																																																												}
																																																																																																																																																												else
																																																																																																																																																												{
																																																																																																																																																													if (tile.type == 135)
																																																																																																																																																													{
																																																																																																																																																														int num59 = (int)(tile.frameY / 18);
																																																																																																																																																														if (num59 == 0)
																																																																																																																																																														{
																																																																																																																																																															num43 = 529;
																																																																																																																																																														}
																																																																																																																																																														if (num59 == 1)
																																																																																																																																																														{
																																																																																																																																																															num43 = 541;
																																																																																																																																																														}
																																																																																																																																																														if (num59 == 2)
																																																																																																																																																														{
																																																																																																																																																															num43 = 542;
																																																																																																																																																														}
																																																																																																																																																														if (num59 == 3)
																																																																																																																																																														{
																																																																																																																																																															num43 = 543;
																																																																																																																																																														}
																																																																																																																																																														if (num59 == 4)
																																																																																																																																																														{
																																																																																																																																																															num43 = 852;
																																																																																																																																																														}
																																																																																																																																																														if (num59 == 5)
																																																																																																																																																														{
																																																																																																																																																															num43 = 853;
																																																																																																																																																														}
																																																																																																																																																														if (num59 == 6)
																																																																																																																																																														{
																																																																																																																																																															num43 = 1151;
																																																																																																																																																														}
																																																																																																																																																													}
																																																																																																																																																													else
																																																																																																																																																													{
																																																																																																																																																														if (tile.type == 144)
																																																																																																																																																														{
																																																																																																																																																															if (tile.frameX == 0)
																																																																																																																																																															{
																																																																																																																																																																num43 = 583;
																																																																																																																																																															}
																																																																																																																																																															if (tile.frameX == 18)
																																																																																																																																																															{
																																																																																																																																																																num43 = 584;
																																																																																																																																																															}
																																																																																																																																																															if (tile.frameX == 36)
																																																																																																																																																															{
																																																																																																																																																																num43 = 585;
																																																																																																																																																															}
																																																																																																																																																														}
																																																																																																																																																														else
																																																																																																																																																														{
																																																																																																																																																															if (tile.type == 130)
																																																																																																																																																															{
																																																																																																																																																																num43 = 511;
																																																																																																																																																															}
																																																																																																																																																															else
																																																																																																																																																															{
																																																																																																																																																																if (tile.type == 131)
																																																																																																																																																																{
																																																																																																																																																																	num43 = 512;
																																																																																																																																																																}
																																																																																																																																																																else
																																																																																																																																																																{
																																																																																																																																																																	if (tile.type == 61 || tile.type == 74)
																																																																																																																																																																	{
																																																																																																																																																																		if (tile.frameX == 144 && tile.type == 61)
																																																																																																																																																																		{
																																																																																																																																																																			Item.NewItem(i * 16, j * 16, 16, 16, 331, WorldGen.genRand.Next(2, 4), false, 0, false);
																																																																																																																																																																		}
																																																																																																																																																																		else
																																																																																																																																																																		{
																																																																																																																																																																			if (tile.frameX == 162 && tile.type == 61)
																																																																																																																																																																			{
																																																																																																																																																																				num43 = 223;
																																																																																																																																																																			}
																																																																																																																																																																			else
																																																																																																																																																																			{
																																																																																																																																																																				if (tile.frameX >= 108 && tile.frameX <= 126 && tile.type == 61 && WorldGen.genRand.Next(20) == 0)
																																																																																																																																																																				{
																																																																																																																																																																					num43 = 208;
																																																																																																																																																																				}
																																																																																																																																																																				else
																																																																																																																																																																				{
																																																																																																																																																																					if (WorldGen.genRand.Next(100) == 0)
																																																																																																																																																																					{
																																																																																																																																																																						num43 = 195;
																																																																																																																																																																					}
																																																																																																																																																																				}
																																																																																																																																																																			}
																																																																																																																																																																		}
																																																																																																																																																																	}
																																																																																																																																																																	else
																																																																																																																																																																	{
																																																																																																																																																																		if (tile.type == 59 || tile.type == 60)
																																																																																																																																																																		{
																																																																																																																																																																			num43 = 176;
																																																																																																																																																																		}
																																																																																																																																																																		else
																																																																																																																																																																		{
																																																																																																																																																																			if (tile.type == 190)
																																																																																																																																																																			{
																																																																																																																																																																				num43 = 183;
																																																																																																																																																																			}
																																																																																																																																																																			else
																																																																																																																																																																			{
																																																																																																																																																																				if (tile.type == 71 || tile.type == 72)
																																																																																																																																																																				{
																																																																																																																																																																					if (WorldGen.genRand.Next(50) == 0)
																																																																																																																																																																					{
																																																																																																																																																																						num43 = 194;
																																																																																																																																																																					}
																																																																																																																																																																					else
																																																																																																																																																																					{
																																																																																																																																																																						if (WorldGen.genRand.Next(2) == 0)
																																																																																																																																																																						{
																																																																																																																																																																							num43 = 183;
																																																																																																																																																																						}
																																																																																																																																																																					}
																																																																																																																																																																				}
																																																																																																																																																																				else
																																																																																																																																																																				{
																																																																																																																																																																					if (tile.type >= 63 && tile.type <= 68)
																																																																																																																																																																					{
																																																																																																																																																																						num43 = (int)(tile.type - 63 + 177);
																																																																																																																																																																					}
																																																																																																																																																																					else
																																																																																																																																																																					{
																																																																																																																																																																						if (tile.type == 50)
																																																																																																																																																																						{
																																																																																																																																																																							if (tile.frameX == 90)
																																																																																																																																																																							{
																																																																																																																																																																								num43 = 165;
																																																																																																																																																																							}
																																																																																																																																																																							else
																																																																																																																																																																							{
																																																																																																																																																																								num43 = 149;
																																																																																																																																																																							}
																																																																																																																																																																						}
																																																																																																																																																																						else
																																																																																																																																																																						{
																																																																																																																																																																							if (Main.tileAlch[(int)tile.type])
																																																																																																																																																																							{
																																																																																																																																																																								if (tile.type > 82)
																																																																																																																																																																								{
																																																																																																																																																																									int num60 = (int)(tile.frameX / 18);
																																																																																																																																																																									bool flag = false;
																																																																																																																																																																									num43 = 313 + num60;
																																																																																																																																																																									int type3 = 307 + num60;
																																																																																																																																																																									if (tile.type == 84)
																																																																																																																																																																									{
																																																																																																																																																																										flag = true;
																																																																																																																																																																									}
																																																																																																																																																																									if (num60 == 0 && Main.dayTime)
																																																																																																																																																																									{
																																																																																																																																																																										flag = true;
																																																																																																																																																																									}
																																																																																																																																																																									if (num60 == 1 && !Main.dayTime)
																																																																																																																																																																									{
																																																																																																																																																																										flag = true;
																																																																																																																																																																									}
																																																																																																																																																																									if (num60 == 3 && Main.bloodMoon)
																																																																																																																																																																									{
																																																																																																																																																																										flag = true;
																																																																																																																																																																									}
																																																																																																																																																																									if (num60 == 4 && (Main.raining || Main.cloudAlpha > 0f))
																																																																																																																																																																									{
																																																																																																																																																																										flag = true;
																																																																																																																																																																									}
																																																																																																																																																																									if (num60 == 6)
																																																																																																																																																																									{
																																																																																																																																																																										num43 = 2358;
																																																																																																																																																																										type3 = 2357;
																																																																																																																																																																									}
																																																																																																																																																																									if (flag)
																																																																																																																																																																									{
																																																																																																																																																																										Item.NewItem(i * 16, j * 16, 16, 16, type3, WorldGen.genRand.Next(1, 4), false, 0, false);
																																																																																																																																																																									}
																																																																																																																																																																								}
																																																																																																																																																																							}
																																																																																																																																																																							else
																																																																																																																																																																							{
																																																																																																																																																																								if (tile.type == 321)
																																																																																																																																																																								{
																																																																																																																																																																									num43 = 2503;
																																																																																																																																																																								}
																																																																																																																																																																								else
																																																																																																																																																																								{
																																																																																																																																																																									if (tile.type == 322)
																																																																																																																																																																									{
																																																																																																																																																																										num43 = 2504;
																																																																																																																																																																									}
																																																																																																																																																																								}
																																																																																																																																																																							}
																																																																																																																																																																						}
																																																																																																																																																																					}
																																																																																																																																																																				}
																																																																																																																																																																			}
																																																																																																																																																																		}
																																																																																																																																																																	}
																																																																																																																																																																}
																																																																																																																																																															}
																																																																																																																																																														}
																																																																																																																																																													}
																																																																																																																																																												}
																																																																																																																																																											}
																																																																																																																																																										}
																																																																																																																																																									}
																																																																																																																																																								}
																																																																																																																																																							}
																																																																																																																																																						}
																																																																																																																																																					}
																																																																																																																																																				}
																																																																																																																																																			}
																																																																																																																																																		}
																																																																																																																																																	}
																																																																																																																																																}
																																																																																																																																															}
																																																																																																																																														}
																																																																																																																																													}
																																																																																																																																												}
																																																																																																																																											}
																																																																																																																																										}
																																																																																																																																									}
																																																																																																																																								}
																																																																																																																																							}
																																																																																																																																						}
																																																																																																																																					}
																																																																																																																																				}
																																																																																																																																			}
																																																																																																																																		}
																																																																																																																																	}
																																																																																																																																}
																																																																																																																															}
																																																																																																																														}
																																																																																																																													}
																																																																																																																												}
																																																																																																																											}
																																																																																																																										}
																																																																																																																									}
																																																																																																																								}
																																																																																																																							}
																																																																																																																						}
																																																																																																																					}
																																																																																																																				}
																																																																																																																			}
																																																																																																																		}
																																																																																																																	}
																																																																																																																}
																																																																																																															}
																																																																																																														}
																																																																																																													}
																																																																																																												}
																																																																																																											}
																																																																																																										}
																																																																																																									}
																																																																																																								}
																																																																																																							}
																																																																																																						}
																																																																																																					}
																																																																																																				}
																																																																																																			}
																																																																																																		}
																																																																																																	}
																																																																																																}
																																																																																															}
																																																																																														}
																																																																																													}
																																																																																												}
																																																																																											}
																																																																																										}
																																																																																									}
																																																																																								}
																																																																																							}
																																																																																						}
																																																																																					}
																																																																																				}
																																																																																			}
																																																																																		}
																																																																																	}
																																																																																}
																																																																															}
																																																																														}
																																																																													}
																																																																												}
																																																																											}
																																																																										}
																																																																									}
																																																																								}
																																																																							}
																																																																						}
																																																																					}
																																																																				}
																																																																			}
																																																																		}
																																																																	}
																																																																}
																																																															}
																																																														}
																																																													}
																																																												}
																																																											}
																																																										}
																																																									}
																																																								}
																																																							}
																																																						}
																																																					}
																																																				}
																																																			}
																																																		}
																																																	}
																																																}
																																															}
																																														}
																																													}
																																												}
																																											}
																																										}
																																									}
																																								}
																																							}
																																						}
																																					}
																																				}
																																			}
																																		}
																																	}
																																}
																															}
																														}
																													}
																												}
																											}
																										}
																									}
																								}
																							}
																						}
																					}
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
						if (num43 > 0)
						{
							Item.NewItem(i * 16, j * 16, 16, 16, num43, 1, false, -1, false);
						}
					}
					tile.active(false);
					tile.halfBrick(false);
					tile.frameX = -1;
					tile.frameY = -1;
					tile.color(0);
					tile.frameNumber(0);
					if (tile.type == 58 && j > Main.maxTilesY - 200)
					{
						tile.lava(true);
						tile.liquid = 128;
					}
					tile.type = 0;
					tile.inActive(false);
					WorldGen.SquareTileFrame(i, j, true);
				}
			}
		}
示例#27
0
        private static bool OldCheck(Item it)
        {
            var prefix = it.prefix;

            it.Prefix(prefix);
            if (it.prefix == prefix) return true;

            else return false;
        }
示例#28
0
        private static bool HandlePlayerSlot(GetDataHandlerArgs args)
        {
            int plr = args.Data.ReadInt8();
            int slot = args.Data.ReadInt8();
            int stack = args.Data.ReadInt8();
            short prefix = (short) args.Data.ReadInt8();
            int type = (int) args.Data.ReadInt16();

            if (plr != args.Player.Index)
            {
                return true;
            }

            if (slot < 0 || slot > NetItem.maxNetInventory)
            {
                return true;
            }

            var item = new Item();
            item.netDefaults(type);
            item.Prefix(prefix);

            if (stack > item.maxStack && type != 0 && args.Player.IgnoreActionsForCheating != "none" && !args.Player.Group.HasPermission(Permissions.ignorestackhackdetection))
            {
                args.Player.IgnoreActionsForCheating = "Item Hack: " + item.name + " (" + stack + ") exceeds max stack of " + item.maxStack;
            }

            if (args.Player.IsLoggedIn)
            {
                args.Player.PlayerData.StoreSlot(slot, type, prefix, stack);
            }

            return false;
        }
示例#29
0
        private Item[] DeepCopyItems( Item[] source )
        {
            Item[] result = null;

              if ( source.Length > 0 )
              {
            result = new Item[source.Length];
            for ( int i = 0; i < source.Length; i++ )
            {
              var oldItem = source[i];
              if ( oldItem != null )
              {
              var newItem = new Item();
              newItem.netDefaults( oldItem.netID );
              newItem.Prefix( oldItem.prefix );
              newItem.AffixName();
              //if ( oldItem.type != 0 )
              //  Log.Write( "DCI (id:" + ID + ") " + oldItem.name + "," + newItem.name + "," + oldItem.netID + "," + newItem.netID, LogLevel.Debug );

              result[i] = newItem;
              result[i].stack = oldItem.stack;
              } // if
            } // for
              } // if

              return result;
        }
 public void SetItem()
 {
     #if Full_API
     Item = new Item();
     Item.netDefaults(NetID);
     Item.stack = Amount;
     Item.Prefix(Prefix);
     #endif
 }
示例#31
0
        // ParseData +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        private void ParseData( GetDataEventArgs args )
        {
            try
            {
                PacketTypes packet = args.MsgID;
                using ( var data = new MemoryStream( args.Msg.readBuffer, args.Index, args.Length ) )
                {
                    TSPlayer player = TShock.Players[args.Msg.whoAmI];
                    switch ( packet )
                    {
                        case PacketTypes.ChestItem:
            {
              string action, itemName;
              short  chestID   = data.ReadInt16();
              byte   itemSlot  = data.ReadInt8();
              byte   itemStack = data.ReadInt8();
              byte   prefix    = data.ReadInt8();
              short  itemType  = data.ReadInt16();
              var    oldItem   = Main.chest[chestID].item[itemSlot];
              if ( oldItem.name != null && oldItem.name.Length > 0 )
              {
                action = "cGet";
                itemName = oldItem.name;
              } // if
              else
              {
                var newItem = new Item();
                newItem.netDefaults( itemType );
                newItem.Prefix( prefix );
                newItem.AffixName();
                action = "cPut";
                itemName = newItem.name;
              } // else

              if ( itemType != prevItemType )
              {
                _ircClient.SendMessage( SendType.Message, _actionChannel,
                                 string.Format( "{0} ({1}): {2}: {3}",
                                 player.Name, player.Group.Name, action, itemName ) );
                prevItemType = itemType;
              } // if
                            break;
                        } // case
                    } // switch
                } // using
            } // try
            catch ( Exception exception )
            {
                Console.WriteLine( exception.Message + "(" + exception.StackTrace + ")" );
            } // catch
        }