using Microsoft.Xna.Framework; using System; using System.Diagnostics; using System.IO; using System.Threading; namespace Terraria { internal class WorldGen { public static int tileReframeCount = 0; public static bool noMapUpdate = false; public static double worldSurfaceLow; public static int tLeft; public static int tRight; public static int tTop; public static int tBottom; public static int tRooms; public static int[] mossType = new int[3]; public static int c = 0; public static int m = 0; public static int a = 0; public static int co = 0; public static int ir = 0; public static int si = 0; public static int go = 0; public static int copperBar = 20; public static int ironBar = 22; public static int silverBar = 21; public static int goldBar = 19; public static int treeBG = 0; public static int corruptBG = 0; public static int jungleBG = 0; public static int snowBG = 0; public static int hallowBG = 0; public static int crimsonBG = 0; public static int desertBG = 0; public static int oceanBG = 0; public static int oreTier1 = -1; public static int oreTier2 = -1; public static int oreTier3 = -1; public static bool crimson = false; public static byte mossTile = 179; public static byte mossWall = 54; public static Vector2[] teleport = new Vector2[2]; private static int dWallCount = 0; private static bool dWallBroke = false; public static int maxMech = 1000; public static int[] mechX = new int[WorldGen.maxMech]; public static int[] mechY = new int[WorldGen.maxMech]; public static int numMechs = 0; public static int[] mechTime = new int[WorldGen.maxMech]; public static int maxWire = 2000; public static int[] wireX = new int[WorldGen.maxWire]; public static int[] wireY = new int[WorldGen.maxWire]; public static int numWire = 0; public static int[] noWireX = new int[WorldGen.maxWire]; public static int[] noWireY = new int[WorldGen.maxWire]; public static int numNoWire = 0; public static int maxPump = 20; public static int[] inPumpX = new int[WorldGen.maxPump]; public static int[] inPumpY = new int[WorldGen.maxPump]; public static int numInPump = 0; public static int[] outPumpX = new int[WorldGen.maxPump]; public static int[] outPumpY = new int[WorldGen.maxPump]; public static int numOutPump = 0; public static bool[] gem = new bool[6]; public static int totalEvil = 0; public static int totalGood = 0; public static int totalSolid = 0; public static int totalEvil2 = 0; public static int totalGood2 = 0; public static int totalSolid2 = 0; public static byte tEvil = 0; public static byte tGood = 0; public static int totalX = 0; public static int totalD = 0; public static bool hardLock = false; private static Vector2[] heartPos = new Vector2[100]; private static int heartCount = 0; private static object padlock = new object(); public static int lavaLine; public static int waterLine; public static bool noTileActions = false; public static bool spawnEye = false; public static int spawnHardBoss = 0; public static bool gen = false; public static bool shadowOrbSmashed = false; public static int shadowOrbCount = 0; public static int altarCount = 0; public static bool spawnMeteor = false; public static bool loadFailed = false; public static bool loadSuccess = false; public static bool worldCleared = false; public static bool worldBackup = false; public static bool loadBackup = false; private static int lastMaxTilesX = 0; private static int lastMaxTilesY = 0; public static bool saveLock = false; private static bool mergeUp = false; private static bool mergeDown = false; private static bool mergeLeft = false; private static bool mergeRight = false; private static int tempMoonPhase = Main.moonPhase; private static bool tempDayTime = Main.dayTime; private static bool tempBloodMoon = Main.bloodMoon; private static bool tempEclipse = Main.eclipse; private static double tempTime = Main.time; public static bool tempRaining = false; public static float tempMaxRain = 0f; public static int tempRainTime = 0; private static bool stopDrops = false; private static bool mudWall = false; private static int grassSpread = 0; public static bool noLiquidCheck = false; [ThreadStatic] public static Random genRand = new Random(); public static string statusText = ""; public static bool destroyObject = false; public static int spawnDelay = 0; public static int spawnNPC = 0; public static int numTileCount = 0; public static int maxTileCount = 3500; public static int maxWallOut2 = 5000; public static int numWallOut2 = 0; public static int[] countX = new int[WorldGen.maxTileCount]; public static int[] countY = new int[WorldGen.maxTileCount]; public static int lavaCount = 0; public static int iceCount = 0; public static int rockCount = 0; public static int maxRoomTiles = 750; public static int numRoomTiles; public static int[] roomX = new int[WorldGen.maxRoomTiles]; public static int[] roomY = new int[WorldGen.maxRoomTiles]; public static int roomX1; public static int roomX2; public static int roomY1; public static int roomY2; public static bool canSpawn; public static bool[] houseTile = new bool[251]; public static int bestX = 0; public static int bestY = 0; public static int hiScore = 0; public static int dungeonX; public static int dungeonY; public static Vector2 lastDungeonHall = default(Vector2); public static int maxDRooms = 100; public static int numDRooms = 0; public static int[] dRoomX = new int[WorldGen.maxDRooms]; public static int[] dRoomY = new int[WorldGen.maxDRooms]; public static int[] dRoomSize = new int[WorldGen.maxDRooms]; private static bool[] dRoomTreasure = new bool[WorldGen.maxDRooms]; private static int[] dRoomL = new int[WorldGen.maxDRooms]; private static int[] dRoomR = new int[WorldGen.maxDRooms]; private static int[] dRoomT = new int[WorldGen.maxDRooms]; private static int[] dRoomB = new int[WorldGen.maxDRooms]; private static int numDDoors; private static int[] DDoorX = new int[300]; private static int[] DDoorY = new int[300]; private static int[] DDoorPos = new int[300]; private static int numDPlats; private static int[] DPlatX = new int[300]; private static int[] DPlatY = new int[300]; private static int[] JChestX = new int[100]; private static int[] JChestY = new int[100]; private static int numJChests = 0; private static int[] HiveX = new int[100]; private static int[] HiveY = new int[100]; private static int numHives = 0; public static int dEnteranceX = 0; public static bool dSurface = false; private static double dxStrength1; private static double dyStrength1; private static double dxStrength2; private static double dyStrength2; private static int dMinX; private static int dMaxX; private static int dMinY; private static int dMaxY; private static int numIslandHouses = 0; private static int houseCount = 0; private static int[] fihX = new int[300]; private static int[] fihY = new int[300]; private static int numMCaves = 0; private static int[] mCaveX = new int[300]; private static int[] mCaveY = new int[300]; private static int JungleX = 0; private static int hellChest = 0; private static bool roomTorch; private static bool roomDoor; private static bool roomChair; private static bool roomTable; private static bool roomOccupied; private static bool roomEvil; public static bool MoveNPC(int x, int y, int n) { if (!WorldGen.StartRoomCheck(x, y)) { Main.NewText(Lang.inter[40], 255, 240, 20, false); return false; } if (!WorldGen.RoomNeeds(WorldGen.spawnNPC)) { if (Lang.lang <= 1) { int num = 0; string[] array = new string[4]; if (!WorldGen.roomTorch) { array[num] = "a light source"; num++; } if (!WorldGen.roomDoor) { array[num] = "a door"; num++; } if (!WorldGen.roomTable) { array[num] = "a table"; num++; } if (!WorldGen.roomChair) { array[num] = "a chair"; num++; } string text = ""; for (int i = 0; i < num; i++) { if (num == 2 && i == 1) { text += " and "; } else { if (i > 0 && i != num - 1) { text += ", and "; } else { if (i > 0) { text += ", "; } } } text += array[i]; } Main.NewText("This housing is missing " + text + ".", 255, 240, 20, false); } else { Main.NewText(Lang.inter[39], 255, 240, 20, false); } return false; } WorldGen.ScoreRoom(-1); if (WorldGen.hiScore <= 0) { if (WorldGen.roomOccupied) { Main.NewText(Lang.inter[41], 255, 240, 20, false); } else { if (WorldGen.roomEvil) { Main.NewText(Lang.inter[42], 255, 240, 20, false); } else { Main.NewText(Lang.inter[40], 255, 240, 20, false); } } return false; } if (n > 0 && !WorldGen.CheckConditions(Main.npc[n].type)) { Main.NewText(Lang.inter[55] + " " + Main.npc[n].name, 255, 240, 20, false); return false; } return true; } public static void moveRoom(int x, int y, int n) { if (Main.netMode == 1) { NetMessage.SendData(60, -1, -1, "", n, (float)x, (float)y, 1f, 0); return; } WorldGen.spawnNPC = Main.npc[n].type; Main.npc[n].homeless = true; WorldGen.SpawnNPC(x, y); } public static void kickOut(int n) { if (Main.netMode == 1) { NetMessage.SendData(60, -1, -1, "", n, 0f, 0f, 0f, 0); return; } Main.npc[n].homeless = true; } public static bool NextNPC() { if (WorldGen.CheckConditions(WorldGen.spawnNPC)) { return true; } for (int i = 0; i < 301; i++) { if (Main.nextNPC[i] && WorldGen.CheckConditions(i)) { WorldGen.spawnNPC = i; return true; } } return false; } public static bool CheckConditions(int type) { if (type != 160) { return true; } if ((double)WorldGen.roomY2 > Main.worldSurface) { return false; } int num = 0; int num2 = WorldGen.roomX1 - Main.zoneX / 2 / 16 - 1 - Lighting.offScreenTiles; int num3 = WorldGen.roomX2 + Main.zoneX / 2 / 16 + 1 + Lighting.offScreenTiles; int num4 = WorldGen.roomY1 - Main.zoneY / 2 / 16 - 1 - Lighting.offScreenTiles; int num5 = WorldGen.roomY2 + Main.zoneY / 2 / 16 + 1 + Lighting.offScreenTiles; if (num2 < 0) { num2 = 0; } if (num3 >= Main.maxTilesX) { num3 = Main.maxTilesX - 1; } if (num4 < 0) { num4 = 0; } if (num5 > Main.maxTilesX) { num5 = Main.maxTilesX; } for (int i = num2 + 1; i < num3; i++) { for (int j = num4 + 2; j < num5 + 2; j++) { if (Main.tile[i, j].active() && (Main.tile[i, j].type == 70 || Main.tile[i, j].type == 71 || Main.tile[i, j].type == 72)) { num++; } } } return num >= 100; } public static void SpawnNPC(int x, int y) { if (Main.wallHouse[(int)Main.tile[x, y].wall]) { WorldGen.canSpawn = true; } if (!WorldGen.canSpawn) { return; } if (!WorldGen.StartRoomCheck(x, y)) { return; } if (!WorldGen.RoomNeeds(WorldGen.spawnNPC)) { return; } WorldGen.ScoreRoom(-1); if (WorldGen.hiScore > 0) { int num = -1; for (int i = 0; i < 200; i++) { if (Main.npc[i].active && Main.npc[i].homeless && Main.npc[i].type == WorldGen.spawnNPC && WorldGen.CheckConditions(Main.npc[i].type)) { num = i; break; } } if (!WorldGen.NextNPC()) { return; } if (num == -1) { int num2 = WorldGen.bestX; int num3 = WorldGen.bestY; bool flag = false; if (!flag) { flag = true; Rectangle value = new Rectangle(num2 * 16 + 8 - NPC.sWidth / 2 - NPC.safeRangeX, num3 * 16 + 8 - NPC.sHeight / 2 - NPC.safeRangeY, NPC.sWidth + NPC.safeRangeX * 2, NPC.sHeight + NPC.safeRangeY * 2); for (int j = 0; j < 255; j++) { if (Main.player[j].active) { Rectangle rectangle = new Rectangle((int)Main.player[j].position.X, (int)Main.player[j].position.Y, Main.player[j].width, Main.player[j].height); if (rectangle.Intersects(value)) { flag = false; break; } } } } if (!flag && (double)num3 <= Main.worldSurface) { for (int k = 1; k < 500; k++) { for (int l = 0; l < 2; l++) { if (l == 0) { num2 = WorldGen.bestX + k; } else { num2 = WorldGen.bestX - k; } if (num2 > 10 && num2 < Main.maxTilesX - 10) { int num4 = WorldGen.bestY - k; double num5 = (double)(WorldGen.bestY + k); if (num4 < 10) { num4 = 10; } if (num5 > Main.worldSurface) { num5 = Main.worldSurface; } int num6 = num4; while ((double)num6 < num5) { num3 = num6; if (Main.tile[num2, num3].nactive() && Main.tileSolid[(int)Main.tile[num2, num3].type]) { if (!Collision.SolidTiles(num2 - 1, num2 + 1, num3 - 3, num3 - 1)) { flag = true; Rectangle value2 = new Rectangle(num2 * 16 + 8 - NPC.sWidth / 2 - NPC.safeRangeX, num3 * 16 + 8 - NPC.sHeight / 2 - NPC.safeRangeY, NPC.sWidth + NPC.safeRangeX * 2, NPC.sHeight + NPC.safeRangeY * 2); for (int m = 0; m < 255; m++) { if (Main.player[m].active) { Rectangle rectangle2 = new Rectangle((int)Main.player[m].position.X, (int)Main.player[m].position.Y, Main.player[m].width, Main.player[m].height); if (rectangle2.Intersects(value2)) { flag = false; break; } } } break; } break; } else { num6++; } } } if (flag) { break; } } if (flag) { break; } } } int num7 = NPC.NewNPC(num2 * 16, num3 * 16, WorldGen.spawnNPC, 1); Main.npc[num7].homeTileX = WorldGen.bestX; Main.npc[num7].homeTileY = WorldGen.bestY; if (num2 < WorldGen.bestX) { Main.npc[num7].direction = 1; } else { if (num2 > WorldGen.bestX) { Main.npc[num7].direction = -1; } } Main.npc[num7].netUpdate = true; string str = Main.npc[num7].name; if (Main.chrName[Main.npc[num7].type] != "") { if (Lang.lang <= 1) { str = Main.chrName[Main.npc[num7].type] + " " + Lang.the + Main.npc[num7].name; } else { str = Main.chrName[Main.npc[num7].type]; } } if (Main.netMode == 0) { Main.NewText(str + " " + Lang.misc[18], 50, 125, 255, false); } else { if (Main.netMode == 2) { NetMessage.SendData(25, -1, -1, str + " " + Lang.misc[18], 255, 50f, 125f, 255f, 0); } } } else { WorldGen.spawnNPC = 0; Main.npc[num].homeTileX = WorldGen.bestX; Main.npc[num].homeTileY = WorldGen.bestY; Main.npc[num].homeless = false; } WorldGen.spawnNPC = 0; } } public static bool RoomNeeds(int npcType) { WorldGen.roomChair = false; WorldGen.roomDoor = false; WorldGen.roomTable = false; WorldGen.roomTorch = false; if (WorldGen.houseTile[15] || WorldGen.houseTile[79] || WorldGen.houseTile[89] || WorldGen.houseTile[102]) { WorldGen.roomChair = true; } if (WorldGen.houseTile[14] || WorldGen.houseTile[18] || WorldGen.houseTile[87] || WorldGen.houseTile[88] || WorldGen.houseTile[90] || WorldGen.houseTile[101]) { WorldGen.roomTable = true; } if (WorldGen.houseTile[4] || WorldGen.houseTile[33] || WorldGen.houseTile[34] || WorldGen.houseTile[35] || WorldGen.houseTile[36] || WorldGen.houseTile[42] || WorldGen.houseTile[49] || WorldGen.houseTile[93] || WorldGen.houseTile[95] || WorldGen.houseTile[98] || WorldGen.houseTile[100] || WorldGen.houseTile[149] || WorldGen.houseTile[170] || WorldGen.houseTile[171] || WorldGen.houseTile[172] || WorldGen.houseTile[173] || WorldGen.houseTile[174]) { WorldGen.roomTorch = true; } if (WorldGen.houseTile[10] || WorldGen.houseTile[11] || WorldGen.houseTile[19]) { WorldGen.roomDoor = true; } if (WorldGen.roomChair && WorldGen.roomTable && WorldGen.roomDoor && WorldGen.roomTorch) { WorldGen.canSpawn = true; } else { WorldGen.canSpawn = false; } return WorldGen.canSpawn; } public static void QuickFindHome(int npc) { if (Main.npc[npc].homeTileX > 10 && Main.npc[npc].homeTileY > 10 && Main.npc[npc].homeTileX < Main.maxTilesX - 10 && Main.npc[npc].homeTileY < Main.maxTilesY) { WorldGen.canSpawn = false; WorldGen.StartRoomCheck(Main.npc[npc].homeTileX, Main.npc[npc].homeTileY - 1); if (!WorldGen.canSpawn) { for (int i = Main.npc[npc].homeTileX - 1; i < Main.npc[npc].homeTileX + 2; i++) { int num = Main.npc[npc].homeTileY - 1; while (num < Main.npc[npc].homeTileY + 2 && !WorldGen.StartRoomCheck(i, num)) { num++; } } } if (!WorldGen.canSpawn) { int num2 = 10; for (int j = Main.npc[npc].homeTileX - num2; j <= Main.npc[npc].homeTileX + num2; j += 2) { int num3 = Main.npc[npc].homeTileY - num2; while (num3 <= Main.npc[npc].homeTileY + num2 && !WorldGen.StartRoomCheck(j, num3)) { num3 += 2; } } } if (WorldGen.canSpawn) { WorldGen.RoomNeeds(Main.npc[npc].type); if (WorldGen.canSpawn) { WorldGen.ScoreRoom(npc); } if (WorldGen.canSpawn && WorldGen.hiScore > 0) { Main.npc[npc].homeTileX = WorldGen.bestX; Main.npc[npc].homeTileY = WorldGen.bestY; Main.npc[npc].homeless = false; WorldGen.canSpawn = false; return; } Main.npc[npc].homeless = true; return; } else { Main.npc[npc].homeless = true; } } } public static void ScoreRoom(int ignoreNPC = -1) { WorldGen.roomOccupied = false; WorldGen.roomEvil = false; for (int i = 0; i < 200; i++) { if (Main.npc[i].active && Main.npc[i].townNPC && ignoreNPC != i && !Main.npc[i].homeless) { for (int j = 0; j < WorldGen.numRoomTiles; j++) { if (Main.npc[i].homeTileX == WorldGen.roomX[j] && Main.npc[i].homeTileY == WorldGen.roomY[j]) { bool flag = false; for (int k = 0; k < WorldGen.numRoomTiles; k++) { if (Main.npc[i].homeTileX == WorldGen.roomX[k] && Main.npc[i].homeTileY - 1 == WorldGen.roomY[k]) { flag = true; break; } } if (flag) { WorldGen.roomOccupied = true; WorldGen.hiScore = -1; return; } } } } } WorldGen.hiScore = 0; int num = 50; int num2 = 0; int num3 = WorldGen.roomX1 - Main.zoneX / 2 / 16 - 1 - Lighting.offScreenTiles; int num4 = WorldGen.roomX2 + Main.zoneX / 2 / 16 + 1 + Lighting.offScreenTiles; int num5 = WorldGen.roomY1 - Main.zoneY / 2 / 16 - 1 - Lighting.offScreenTiles; int num6 = WorldGen.roomY2 + Main.zoneY / 2 / 16 + 1 + Lighting.offScreenTiles; if (num3 < 0) { num3 = 0; } if (num4 >= Main.maxTilesX) { num4 = Main.maxTilesX - 1; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesX) { num6 = Main.maxTilesX; } for (int l = num3 + 1; l < num4; l++) { for (int m = num5 + 2; m < num6 + 2; m++) { if (Main.tile[l, m].active()) { if (Main.tile[l, m].type == 23 || Main.tile[l, m].type == 24 || Main.tile[l, m].type == 25 || Main.tile[l, m].type == 32 || Main.tile[l, m].type == 112 || Main.tile[l, m].type == 163) { num2++; } else { if (Main.tile[l, m].type == 199 || Main.tile[l, m].type == 201 || Main.tile[l, m].type == 200 || Main.tile[l, m].type == 203 || Main.tile[l, m].type == 234) { num2++; } else { if (Main.tile[l, m].type == 27) { num2 -= 5; } else { if (Main.tile[l, m].type == 109 || Main.tile[l, m].type == 110 || Main.tile[l, m].type == 113 || Main.tile[l, m].type == 116 || Main.tile[l, m].type == 164) { num2--; } } } } } } } if (num2 < 50) { num2 = 0; } num -= num2; if (num <= -250) { WorldGen.hiScore = num; WorldGen.roomEvil = true; return; } num3 = WorldGen.roomX1; num4 = WorldGen.roomX2; num5 = WorldGen.roomY1; num6 = WorldGen.roomY2; for (int n = num3 + 1; n < num4; n++) { for (int num7 = num5 + 2; num7 < num6 + 2; num7++) { if (Main.tile[n, num7].nactive()) { int num8 = num; if (Main.tileSolid[(int)Main.tile[n, num7].type] && !Main.tileSolidTop[(int)Main.tile[n, num7].type] && !Collision.SolidTiles(n - 1, n + 1, num7 - 3, num7 - 1) && Main.tile[n - 1, num7].nactive() && Main.tileSolid[(int)Main.tile[n - 1, num7].type] && Main.tile[n + 1, num7].nactive() && Main.tileSolid[(int)Main.tile[n + 1, num7].type]) { for (int num9 = n - 2; num9 < n + 3; num9++) { for (int num10 = num7 - 4; num10 < num7; num10++) { if (Main.tile[num9, num10].nactive()) { if (num9 == n) { num8 -= 15; } else { if (Main.tile[num9, num10].type == 10 || Main.tile[num9, num10].type == 11) { num8 -= 20; } else { if (Main.tileSolid[(int)Main.tile[num9, num10].type]) { num8 -= 5; } else { num8 += 5; } } } } } } if (num8 > WorldGen.hiScore) { bool flag2 = false; for (int num11 = 0; num11 < WorldGen.numRoomTiles; num11++) { if (WorldGen.roomX[num11] == n && WorldGen.roomY[num11] == num7) { flag2 = true; break; } } if (flag2) { WorldGen.hiScore = num8; WorldGen.bestX = n; WorldGen.bestY = num7; } } } } } } } public static bool StartRoomCheck(int x, int y) { WorldGen.roomX1 = x; WorldGen.roomX2 = x; WorldGen.roomY1 = y; WorldGen.roomY2 = y; WorldGen.numRoomTiles = 0; for (int i = 0; i < 251; i++) { WorldGen.houseTile[i] = false; } WorldGen.canSpawn = true; if (Main.tile[x, y].nactive() && Main.tileSolid[(int)Main.tile[x, y].type]) { WorldGen.canSpawn = false; } WorldGen.CheckRoom(x, y); if (WorldGen.numRoomTiles < 60) { WorldGen.canSpawn = false; } return WorldGen.canSpawn; } public static void CheckRoom(int x, int y) { if (!WorldGen.canSpawn) { return; } if (x < 10 || y < 10 || x >= Main.maxTilesX - 10 || y >= WorldGen.lastMaxTilesY - 10) { WorldGen.canSpawn = false; return; } for (int i = 0; i < WorldGen.numRoomTiles; i++) { if (WorldGen.roomX[i] == x && WorldGen.roomY[i] == y) { return; } } WorldGen.roomX[WorldGen.numRoomTiles] = x; WorldGen.roomY[WorldGen.numRoomTiles] = y; WorldGen.numRoomTiles++; if (WorldGen.numRoomTiles >= WorldGen.maxRoomTiles) { WorldGen.canSpawn = false; return; } if (Main.tile[x, y].nactive()) { WorldGen.houseTile[(int)Main.tile[x, y].type] = true; if (Main.tileSolid[(int)Main.tile[x, y].type]) { return; } if (Main.tile[x, y].type == 11 && (Main.tile[x, y].frameX == 0 || Main.tile[x, y].frameX == 54)) { return; } } if (x < WorldGen.roomX1) { WorldGen.roomX1 = x; } if (x > WorldGen.roomX2) { WorldGen.roomX2 = x; } if (y < WorldGen.roomY1) { WorldGen.roomY1 = y; } if (y > WorldGen.roomY2) { WorldGen.roomY2 = y; } bool flag = false; bool flag2 = false; for (int j = -2; j < 3; j++) { if (Main.wallHouse[(int)Main.tile[x + j, y].wall]) { flag = true; } if (Main.tile[x + j, y].nactive() && (Main.tileSolid[(int)Main.tile[x + j, y].type] || Main.tile[x + j, y].type == 11)) { flag = true; } if (Main.wallHouse[(int)Main.tile[x, y + j].wall]) { flag2 = true; } if (Main.tile[x, y + j].nactive() && (Main.tileSolid[(int)Main.tile[x, y + j].type] || Main.tile[x, y + j].type == 11)) { flag2 = true; } } if (!flag || !flag2) { WorldGen.canSpawn = false; return; } for (int k = x - 1; k < x + 2; k++) { for (int l = y - 1; l < y + 2; l++) { if ((k != x || l != y) && WorldGen.canSpawn) { WorldGen.CheckRoom(k, l); } } } } public static void dropMeteor() { bool flag = true; int num = 0; if (Main.netMode == 1) { return; } for (int i = 0; i < 255; i++) { if (Main.player[i].active) { flag = false; break; } } int num2 = 0; float num3 = (float)(Main.maxTilesX / 4200); int num4 = (int)(400f * num3); for (int j = 5; j < Main.maxTilesX - 5; j++) { int num5 = 5; while ((double)num5 < Main.worldSurface) { if (Main.tile[j, num5].active() && Main.tile[j, num5].type == 37) { num2++; if (num2 > num4) { return; } } num5++; } } while (!flag) { float num6 = (float)Main.maxTilesX * 0.08f; int num7 = Main.rand.Next(50, Main.maxTilesX - 50); while ((float)num7 > (float)Main.spawnTileX - num6 && (float)num7 < (float)Main.spawnTileX + num6) { num7 = Main.rand.Next(50, Main.maxTilesX - 50); } for (int k = Main.rand.Next(100); k < Main.maxTilesY; k++) { if (Main.tile[num7, k].active() && Main.tileSolid[(int)Main.tile[num7, k].type]) { flag = WorldGen.meteor(num7, k); break; } } num++; if (num >= 100) { return; } } } public static bool meteor(int i, int j) { if (i < 50 || i > Main.maxTilesX - 50) { return false; } if (j < 50 || j > Main.maxTilesY - 50) { return false; } int num = 25; Rectangle rectangle = new Rectangle((i - num) * 16, (j - num) * 16, num * 2 * 16, num * 2 * 16); for (int k = 0; k < 255; k++) { if (Main.player[k].active) { Rectangle value = new Rectangle((int)(Main.player[k].position.X + (float)(Main.player[k].width / 2) - (float)(NPC.sWidth / 2) - (float)NPC.safeRangeX), (int)(Main.player[k].position.Y + (float)(Main.player[k].height / 2) - (float)(NPC.sHeight / 2) - (float)NPC.safeRangeY), NPC.sWidth + NPC.safeRangeX * 2, NPC.sHeight + NPC.safeRangeY * 2); if (rectangle.Intersects(value)) { return false; } } } for (int l = 0; l < 200; l++) { if (Main.npc[l].active) { Rectangle value2 = new Rectangle((int)Main.npc[l].position.X, (int)Main.npc[l].position.Y, Main.npc[l].width, Main.npc[l].height); if (rectangle.Intersects(value2)) { return false; } } } for (int m = i - num; m < i + num; m++) { for (int n = j - num; n < j + num; n++) { if (Main.tile[m, n].active() && Main.tile[m, n].type == 21) { return false; } } } WorldGen.stopDrops = true; num = 15; for (int num2 = i - num; num2 < i + num; num2++) { for (int num3 = j - num; num3 < j + num; num3++) { if (num3 > j + Main.rand.Next(-2, 3) - 5 && (double)(Math.Abs(i - num2) + Math.Abs(j - num3)) < (double)num * 1.5 + (double)Main.rand.Next(-5, 5)) { if (!Main.tileSolid[(int)Main.tile[num2, num3].type]) { Main.tile[num2, num3].active(false); } Main.tile[num2, num3].type = 37; } } } num = 10; for (int num4 = i - num; num4 < i + num; num4++) { for (int num5 = j - num; num5 < j + num; num5++) { if (num5 > j + Main.rand.Next(-2, 3) - 5 && Math.Abs(i - num4) + Math.Abs(j - num5) < num + Main.rand.Next(-3, 4)) { Main.tile[num4, num5].active(false); } } } num = 16; for (int num6 = i - num; num6 < i + num; num6++) { for (int num7 = j - num; num7 < j + num; num7++) { if (Main.tile[num6, num7].type == 5 || Main.tile[num6, num7].type == 32) { WorldGen.KillTile(num6, num7, false, false, false); } WorldGen.SquareTileFrame(num6, num7, true); WorldGen.SquareWallFrame(num6, num7, true); } } num = 23; for (int num8 = i - num; num8 < i + num; num8++) { for (int num9 = j - num; num9 < j + num; num9++) { if (Main.tile[num8, num9].active() && Main.rand.Next(10) == 0 && (double)(Math.Abs(i - num8) + Math.Abs(j - num9)) < (double)num * 1.3) { if (Main.tile[num8, num9].type == 5 || Main.tile[num8, num9].type == 32) { WorldGen.KillTile(num8, num9, false, false, false); } Main.tile[num8, num9].type = 37; WorldGen.SquareTileFrame(num8, num9, true); } } } WorldGen.stopDrops = false; if (Main.netMode == 0) { Main.NewText(Lang.gen[59], 50, 255, 130, false); } else { if (Main.netMode == 2) { NetMessage.SendData(25, -1, -1, Lang.gen[59], 255, 50f, 255f, 130f, 0); } } if (Main.netMode != 1) { NetMessage.SendTileSquare(-1, i, j, 30); } return true; } public static void setWorldSize() { Main.bottomWorld = (float)(Main.maxTilesY * 16); Main.rightWorld = (float)(Main.maxTilesX * 16); Main.maxSectionsX = Main.maxTilesX / 200; Main.maxSectionsY = Main.maxTilesY / 150; } public static void worldGenCallBack(object threadContext) { Main.PlaySound(10, -1, -1, 1); WorldGen.clearWorld(); WorldGen.generateWorld(-1); WorldGen.saveWorld(true); Main.LoadWorlds(); if (Main.menuMode == 10) { Main.menuMode = 6; } Main.PlaySound(10, -1, -1, 1); } public static void CreateNewWorld() { ThreadPool.QueueUserWorkItem(new WaitCallback(WorldGen.worldGenCallBack), 1); } public static void SaveAndQuitCallBack(object threadContext) { Main.menuMode = 10; Main.gameMenu = true; Player.SavePlayer(Main.player[Main.myPlayer], Main.playerPathName); if (Main.netMode == 0) { WorldGen.saveWorld(false); Main.PlaySound(10, -1, -1, 1); } else { Netplay.disconnect = true; Main.netMode = 0; } Main.menuMode = 0; } public static void SaveAndQuit() { Main.PlaySound(11, -1, -1, 1); ThreadPool.QueueUserWorkItem(new WaitCallback(WorldGen.SaveAndQuitCallBack), 1); } public static void playWorldCallBack(object threadContext) { if (Main.rand == null) { Main.rand = new Random((int)DateTime.Now.Ticks); } for (int i = 0; i < 255; i++) { if (i != Main.myPlayer) { Main.player[i].active = false; } } WorldGen.noMapUpdate = true; WorldGen.loadWorld(); if (WorldGen.loadFailed || !WorldGen.loadSuccess) { WorldGen.loadWorld(); if (WorldGen.loadFailed || !WorldGen.loadSuccess) { if (File.Exists(Main.worldPathName + ".bak")) { WorldGen.worldBackup = true; } else { WorldGen.worldBackup = false; } if (!Main.dedServ) { if (WorldGen.worldBackup) { Main.menuMode = 200; return; } Main.menuMode = 201; return; } else { if (!WorldGen.worldBackup) { Console.WriteLine("Load failed! No backup found."); return; } File.Copy(Main.worldPathName + ".bak", Main.worldPathName, true); File.Delete(Main.worldPathName + ".bak"); WorldGen.loadWorld(); if (WorldGen.loadFailed || !WorldGen.loadSuccess) { WorldGen.loadWorld(); if (WorldGen.loadFailed || !WorldGen.loadSuccess) { Console.WriteLine("Load failed!"); return; } } } } } if (Main.mapEnabled) { Map.loadMap(); } WorldGen.EveryTileFrame(); while (Main.loadMapLock) { float num = (float)Main.loadMapLastX / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[68], " ", (int)(num * 100f + 1f), "%" }); Thread.Sleep(0); if (!Main.mapEnabled) { break; } } if (Main.gameMenu) { Main.gameMenu = false; } Main.player[Main.myPlayer].Spawn(); Main.player[Main.myPlayer].UpdatePlayer(Main.myPlayer); Main.dayTime = WorldGen.tempDayTime; Main.time = WorldGen.tempTime; Main.moonPhase = WorldGen.tempMoonPhase; Main.bloodMoon = WorldGen.tempBloodMoon; Main.raining = WorldGen.tempRaining; Main.rainTime = WorldGen.tempRainTime; Main.maxRaining = WorldGen.tempMaxRain; Main.cloudAlpha = WorldGen.tempMaxRain; Main.PlaySound(11, -1, -1, 1); Main.resetClouds = true; WorldGen.noMapUpdate = false; } public static void playWorld() { ThreadPool.QueueUserWorkItem(new WaitCallback(WorldGen.playWorldCallBack), 1); } public static void saveAndPlayCallBack(object threadContext) { WorldGen.saveWorld(false); } public static void saveAndPlay() { ThreadPool.QueueUserWorkItem(new WaitCallback(WorldGen.saveAndPlayCallBack), 1); } public static void saveToonWhilePlayingCallBack(object threadContext) { Player.SavePlayer(Main.player[Main.myPlayer], Main.playerPathName); } public static void saveToonWhilePlaying() { ThreadPool.QueueUserWorkItem(new WaitCallback(WorldGen.saveToonWhilePlayingCallBack), 1); } public static void serverLoadWorldCallBack(object threadContext) { WorldGen.loadWorld(); if (WorldGen.loadFailed || !WorldGen.loadSuccess) { WorldGen.loadWorld(); if (WorldGen.loadFailed || !WorldGen.loadSuccess) { if (File.Exists(Main.worldPathName + ".bak")) { WorldGen.worldBackup = true; } else { WorldGen.worldBackup = false; } if (!Main.dedServ) { if (WorldGen.worldBackup) { Main.menuMode = 200; return; } Main.menuMode = 201; return; } else { if (!WorldGen.worldBackup) { Console.WriteLine("Load failed! No backup found."); return; } File.Copy(Main.worldPathName + ".bak", Main.worldPathName, true); File.Delete(Main.worldPathName + ".bak"); WorldGen.loadWorld(); if (WorldGen.loadFailed || !WorldGen.loadSuccess) { WorldGen.loadWorld(); if (WorldGen.loadFailed || !WorldGen.loadSuccess) { Console.WriteLine("Load failed!"); return; } } } } } Main.PlaySound(10, -1, -1, 1); Netplay.StartServer(); Main.dayTime = WorldGen.tempDayTime; Main.time = WorldGen.tempTime; Main.raining = WorldGen.tempRaining; Main.rainTime = WorldGen.tempRainTime; Main.maxRaining = WorldGen.tempMaxRain; Main.cloudAlpha = WorldGen.tempMaxRain; Main.moonPhase = WorldGen.tempMoonPhase; Main.bloodMoon = WorldGen.tempBloodMoon; Main.eclipse = WorldGen.tempEclipse; } public static void serverLoadWorld() { ThreadPool.QueueUserWorkItem(new WaitCallback(WorldGen.serverLoadWorldCallBack), 1); } public static void clearWorld() { if (Main.mapReady) { for (int i = 0; i < WorldGen.lastMaxTilesX; i++) { float num = (float)i / (float)WorldGen.lastMaxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[65], " ", (int)(num * 100f + 1f), "%" }); for (int j = 0; j < WorldGen.lastMaxTilesY; j++) { if (Main.map[i, j] != null) { Main.map[i, j] = null; } } } } Main.clearMap = true; Main.mapTime = 0; Main.updateMap = false; Main.mapReady = false; Main.refreshMap = false; Main.eclipse = false; WorldGen.spawnHardBoss = 0; WorldGen.totalSolid2 = 0; WorldGen.totalGood2 = 0; WorldGen.totalEvil2 = 0; WorldGen.totalSolid = 0; WorldGen.totalGood = 0; WorldGen.totalEvil = 0; WorldGen.tempMaxRain = 0f; Main.maxRaining = 0f; WorldGen.totalX = 0; WorldGen.totalD = 0; WorldGen.tEvil = 0; WorldGen.tGood = 0; NPC.clrNames(); Main.trashItem = new Item(); WorldGen.spawnEye = false; WorldGen.spawnNPC = 0; WorldGen.shadowOrbCount = 0; WorldGen.altarCount = 0; WorldGen.oreTier1 = -1; WorldGen.oreTier2 = -1; WorldGen.oreTier3 = -1; Main.cloudBGActive = 0f; Main.raining = false; Main.hardMode = false; Main.helpText = 0; Main.dungeonX = 0; Main.dungeonY = 0; NPC.downedBoss1 = false; NPC.downedBoss2 = false; NPC.downedBoss3 = false; NPC.downedQueenBee = false; NPC.downedMechBossAny = false; NPC.downedMechBoss1 = false; NPC.downedMechBoss2 = false; NPC.downedMechBoss3 = false; NPC.downedPlantBoss = false; NPC.savedGoblin = false; NPC.savedWizard = false; NPC.savedMech = false; NPC.downedGoblins = false; NPC.downedClown = false; NPC.downedFrost = false; NPC.downedPirates = false; WorldGen.shadowOrbSmashed = false; WorldGen.spawnMeteor = false; WorldGen.stopDrops = false; Main.invasionDelay = 0; Main.invasionType = 0; Main.invasionSize = 0; Main.invasionWarn = 0; Main.invasionX = 0.0; Main.treeX[0] = Main.maxTilesX; Main.treeX[1] = Main.maxTilesX; Main.treeX[2] = Main.maxTilesX; Main.treeStyle[0] = 0; Main.treeStyle[1] = 0; Main.treeStyle[2] = 0; Main.treeStyle[3] = 0; WorldGen.noLiquidCheck = false; Liquid.numLiquid = 0; LiquidBuffer.numLiquidBuffer = 0; if (Main.netMode == 1 || WorldGen.lastMaxTilesX > Main.maxTilesX || WorldGen.lastMaxTilesY > Main.maxTilesY) { for (int k = 0; k < WorldGen.lastMaxTilesX; k++) { float num2 = (float)k / (float)WorldGen.lastMaxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[46], " ", (int)(num2 * 100f + 1f), "%" }); for (int l = 0; l < WorldGen.lastMaxTilesY; l++) { Main.tile[k, l] = null; } } } WorldGen.lastMaxTilesX = Main.maxTilesX; WorldGen.lastMaxTilesY = Main.maxTilesY; if (Main.netMode != 1) { for (int m = 0; m < Main.maxTilesX; m++) { float num3 = (float)m / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[47], " ", (int)(num3 * 100f + 1f), "%" }); for (int n = 0; n < Main.maxTilesY; n++) { Main.tile[m, n] = new Tile(); } } } for (int num4 = 0; num4 < 6000; num4++) { Main.dust[num4] = new Dust(); } for (int num5 = 0; num5 < 500; num5++) { Main.gore[num5] = new Gore(); } for (int num6 = 0; num6 < 400; num6++) { Main.item[num6] = new Item(); } for (int num7 = 0; num7 < 200; num7++) { Main.npc[num7] = new NPC(); } for (int num8 = 0; num8 < 1000; num8++) { Main.projectile[num8] = new Projectile(); } for (int num9 = 0; num9 < 1000; num9++) { Main.chest[num9] = null; } for (int num10 = 0; num10 < 1000; num10++) { Main.sign[num10] = null; } for (int num11 = 0; num11 < Liquid.resLiquid; num11++) { Main.liquid[num11] = new Liquid(); } for (int num12 = 0; num12 < 10000; num12++) { Main.liquidBuffer[num12] = new LiquidBuffer(); } WorldGen.setWorldSize(); WorldGen.worldCleared = true; } public static void saveWorld(bool resetTime = false) { if (Main.worldName == "") { Main.worldName = "World"; } if (WorldGen.saveLock) { return; } WorldGen.saveLock = true; while (WorldGen.hardLock) { Main.statusText = Lang.gen[48]; } lock (WorldGen.padlock) { try { Directory.CreateDirectory(Main.WorldPath); } catch { } if (!Main.skipMenu) { bool value = Main.dayTime; WorldGen.tempTime = Main.time; WorldGen.tempMoonPhase = Main.moonPhase; WorldGen.tempBloodMoon = Main.bloodMoon; WorldGen.tempEclipse = Main.eclipse; if (resetTime) { value = true; WorldGen.tempTime = 13500.0; WorldGen.tempMoonPhase = 0; WorldGen.tempBloodMoon = false; WorldGen.tempEclipse = false; } if (Main.worldPathName != null) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); string text = Main.worldPathName + ".sav"; using (FileStream fileStream = new FileStream(text, FileMode.Create)) { using (BinaryWriter binaryWriter = new BinaryWriter(fileStream)) { binaryWriter.Write(Main.curRelease); binaryWriter.Write(Main.worldName); binaryWriter.Write(Main.worldID); binaryWriter.Write((int)Main.leftWorld); binaryWriter.Write((int)Main.rightWorld); binaryWriter.Write((int)Main.topWorld); binaryWriter.Write((int)Main.bottomWorld); binaryWriter.Write(Main.maxTilesY); binaryWriter.Write(Main.maxTilesX); binaryWriter.Write((byte)Main.moonType); binaryWriter.Write(Main.treeX[0]); binaryWriter.Write(Main.treeX[1]); binaryWriter.Write(Main.treeX[2]); binaryWriter.Write(Main.treeStyle[0]); binaryWriter.Write(Main.treeStyle[1]); binaryWriter.Write(Main.treeStyle[2]); binaryWriter.Write(Main.treeStyle[3]); binaryWriter.Write(Main.caveBackX[0]); binaryWriter.Write(Main.caveBackX[1]); binaryWriter.Write(Main.caveBackX[2]); binaryWriter.Write(Main.caveBackStyle[0]); binaryWriter.Write(Main.caveBackStyle[1]); binaryWriter.Write(Main.caveBackStyle[2]); binaryWriter.Write(Main.caveBackStyle[3]); binaryWriter.Write(Main.iceBackStyle); binaryWriter.Write(Main.jungleBackStyle); binaryWriter.Write(Main.hellBackStyle); binaryWriter.Write(Main.spawnTileX); binaryWriter.Write(Main.spawnTileY); binaryWriter.Write(Main.worldSurface); binaryWriter.Write(Main.rockLayer); binaryWriter.Write(WorldGen.tempTime); binaryWriter.Write(value); binaryWriter.Write(WorldGen.tempMoonPhase); binaryWriter.Write(WorldGen.tempBloodMoon); binaryWriter.Write(WorldGen.tempEclipse); binaryWriter.Write(Main.dungeonX); binaryWriter.Write(Main.dungeonY); binaryWriter.Write(WorldGen.crimson); binaryWriter.Write(NPC.downedBoss1); binaryWriter.Write(NPC.downedBoss2); binaryWriter.Write(NPC.downedBoss3); binaryWriter.Write(NPC.downedQueenBee); binaryWriter.Write(NPC.downedMechBoss1); binaryWriter.Write(NPC.downedMechBoss2); binaryWriter.Write(NPC.downedMechBoss3); binaryWriter.Write(NPC.downedMechBossAny); binaryWriter.Write(NPC.downedPlantBoss); binaryWriter.Write(NPC.downedGolemBoss); binaryWriter.Write(NPC.savedGoblin); binaryWriter.Write(NPC.savedWizard); binaryWriter.Write(NPC.savedMech); binaryWriter.Write(NPC.downedGoblins); binaryWriter.Write(NPC.downedClown); binaryWriter.Write(NPC.downedFrost); binaryWriter.Write(NPC.downedPirates); binaryWriter.Write(WorldGen.shadowOrbSmashed); binaryWriter.Write(WorldGen.spawnMeteor); binaryWriter.Write((byte)WorldGen.shadowOrbCount); binaryWriter.Write(WorldGen.altarCount); binaryWriter.Write(Main.hardMode); binaryWriter.Write(Main.invasionDelay); binaryWriter.Write(Main.invasionSize); binaryWriter.Write(Main.invasionType); binaryWriter.Write(Main.invasionX); binaryWriter.Write(WorldGen.tempRaining); binaryWriter.Write(WorldGen.tempRainTime); binaryWriter.Write(WorldGen.tempMaxRain); binaryWriter.Write(WorldGen.oreTier1); binaryWriter.Write(WorldGen.oreTier2); binaryWriter.Write(WorldGen.oreTier3); binaryWriter.Write((byte)WorldGen.treeBG); binaryWriter.Write((byte)WorldGen.corruptBG); binaryWriter.Write((byte)WorldGen.jungleBG); binaryWriter.Write((byte)WorldGen.snowBG); binaryWriter.Write((byte)WorldGen.hallowBG); binaryWriter.Write((byte)WorldGen.crimsonBG); binaryWriter.Write((byte)WorldGen.desertBG); binaryWriter.Write((byte)WorldGen.oceanBG); binaryWriter.Write((int)Main.cloudBGActive); binaryWriter.Write((short)Main.numClouds); binaryWriter.Write(Main.windSpeedSet); for (int i = 0; i < Main.maxTilesX; i++) { float num = (float)i / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[49], " ", (int)(num * 100f + 1f), "%" }); for (int j = 0; j < Main.maxTilesY; j++) { if (Main.tile[i, j].type == 127 && Main.tile[i, j].active()) { WorldGen.KillTile(i, j, false, false, false); WorldGen.KillTile(i, j, false, false, false); if (!Main.tile[i, j].active() && Main.netMode != 0) { NetMessage.SendData(17, -1, -1, "", 0, (float)i, (float)j, 0f, 0); } } Tile tile = (Tile)Main.tile[i, j].Clone(); binaryWriter.Write(tile.active()); if (tile.active()) { binaryWriter.Write(tile.type); if (Main.tileFrameImportant[(int)tile.type]) { binaryWriter.Write(tile.frameX); binaryWriter.Write(tile.frameY); } if (tile.color() > 0) { binaryWriter.Write(true); binaryWriter.Write(tile.color()); } else { binaryWriter.Write(false); } } if (Main.tile[i, j].wall > 0) { binaryWriter.Write(true); binaryWriter.Write(tile.wall); if (tile.wallColor() > 0) { binaryWriter.Write(true); binaryWriter.Write(tile.wallColor()); } else { binaryWriter.Write(false); } } else { binaryWriter.Write(false); } if (tile.liquid > 0) { binaryWriter.Write(true); binaryWriter.Write(tile.liquid); binaryWriter.Write(tile.lava()); binaryWriter.Write(tile.honey()); } else { binaryWriter.Write(false); } binaryWriter.Write(tile.wire()); binaryWriter.Write(tile.wire2()); binaryWriter.Write(tile.wire3()); binaryWriter.Write(tile.halfBrick()); binaryWriter.Write(tile.slope()); binaryWriter.Write(tile.actuator()); binaryWriter.Write(tile.inActive()); int num2 = 1; while (j + num2 < Main.maxTilesY && tile.isTheSameAs(Main.tile[i, j + num2])) { num2++; } num2--; binaryWriter.Write((short)num2); j += num2; } } for (int k = 0; k < 1000; k++) { if (Main.chest[k] == null) { binaryWriter.Write(false); } else { Chest chest = (Chest)Main.chest[k].Clone(); binaryWriter.Write(true); binaryWriter.Write(chest.x); binaryWriter.Write(chest.y); for (int l = 0; l < Chest.maxItems; l++) { if (chest.item[l] == null) { chest.item[l] = new Item(); } if (chest.item[l].type == 0) { chest.item[l].stack = 0; } binaryWriter.Write((short)chest.item[l].stack); if (chest.item[l].stack > 0) { binaryWriter.Write(chest.item[l].netID); binaryWriter.Write(chest.item[l].prefix); } } } } for (int m = 0; m < 1000; m++) { if (Main.sign[m] == null || Main.sign[m].text == null) { binaryWriter.Write(false); } else { Sign sign = (Sign)Main.sign[m].Clone(); binaryWriter.Write(true); binaryWriter.Write(sign.text); binaryWriter.Write(sign.x); binaryWriter.Write(sign.y); } } for (int n = 0; n < 200; n++) { NPC nPC = (NPC)Main.npc[n].Clone(); if (nPC.active && nPC.townNPC) { binaryWriter.Write(true); binaryWriter.Write(nPC.name); binaryWriter.Write(nPC.position.X); binaryWriter.Write(nPC.position.Y); binaryWriter.Write(nPC.homeless); binaryWriter.Write(nPC.homeTileX); binaryWriter.Write(nPC.homeTileY); } } binaryWriter.Write(false); binaryWriter.Write(Main.chrName[17]); binaryWriter.Write(Main.chrName[18]); binaryWriter.Write(Main.chrName[19]); binaryWriter.Write(Main.chrName[20]); binaryWriter.Write(Main.chrName[22]); binaryWriter.Write(Main.chrName[54]); binaryWriter.Write(Main.chrName[38]); binaryWriter.Write(Main.chrName[107]); binaryWriter.Write(Main.chrName[108]); binaryWriter.Write(Main.chrName[124]); binaryWriter.Write(Main.chrName[160]); binaryWriter.Write(Main.chrName[178]); binaryWriter.Write(Main.chrName[207]); binaryWriter.Write(Main.chrName[208]); binaryWriter.Write(Main.chrName[209]); binaryWriter.Write(Main.chrName[227]); binaryWriter.Write(Main.chrName[228]); binaryWriter.Write(Main.chrName[229]); binaryWriter.Write(true); binaryWriter.Write(Main.worldName); binaryWriter.Write(Main.worldID); binaryWriter.Close(); fileStream.Close(); if (File.Exists(Main.worldPathName)) { Main.statusText = Lang.gen[50]; string destFileName = Main.worldPathName + ".bak"; File.Copy(Main.worldPathName, destFileName, true); } File.Copy(text, Main.worldPathName, true); File.Delete(text); } } WorldGen.saveLock = false; } } } } public static void randMoon() { Main.moonType = WorldGen.genRand.Next(Main.maxMoons); } public static void setBG(int bg, int style) { if (bg == 0) { WorldGen.treeBG = style; Main.treeMntBG[0] = 7; Main.treeMntBG[1] = 8; if (style == 1) { Main.treeBG[0] = 50; Main.treeBG[1] = 51; Main.treeBG[2] = 52; return; } if (style == 2) { Main.treeBG[0] = 53; Main.treeBG[1] = 54; Main.treeBG[2] = 55; return; } if (style == 3) { Main.treeMntBG[1] = 90; Main.treeBG[0] = 91; Main.treeBG[1] = -1; Main.treeBG[2] = 92; return; } if (style == 31) { Main.treeMntBG[1] = 90; Main.treeBG[0] = 91; Main.treeBG[1] = -1; Main.treeBG[2] = 11; return; } if (style == 4) { Main.treeMntBG[0] = 93; Main.treeMntBG[1] = 94; Main.treeBG[0] = -1; Main.treeBG[1] = -1; Main.treeBG[2] = -1; return; } if (style == 5) { Main.treeMntBG[0] = 93; Main.treeMntBG[1] = 94; Main.treeBG[0] = -1; Main.treeBG[1] = -1; Main.treeBG[2] = 55; return; } if (style == 51) { Main.treeMntBG[0] = 93; Main.treeMntBG[1] = 94; Main.treeBG[0] = -1; Main.treeBG[1] = -1; Main.treeBG[2] = 11; return; } if (style == 6) { Main.treeMntBG[0] = 171; Main.treeMntBG[1] = 172; Main.treeBG[0] = 173; Main.treeBG[1] = -1; Main.treeBG[2] = -1; return; } if (style == 7) { Main.treeMntBG[0] = 176; Main.treeMntBG[1] = 177; Main.treeBG[0] = 178; Main.treeBG[1] = -1; Main.treeBG[2] = -1; return; } if (style == 71) { Main.treeMntBG[0] = 176; Main.treeMntBG[1] = 177; Main.treeBG[0] = 178; Main.treeBG[1] = -1; Main.treeBG[2] = 11; return; } if (style == 72) { Main.treeMntBG[0] = 176; Main.treeMntBG[1] = 177; Main.treeBG[0] = 178; Main.treeBG[1] = -1; Main.treeBG[2] = 52; return; } if (style == 73) { Main.treeMntBG[0] = 176; Main.treeMntBG[1] = 177; Main.treeBG[0] = 178; Main.treeBG[1] = -1; Main.treeBG[2] = 55; return; } if (style == 8) { Main.treeMntBG[0] = 179; Main.treeMntBG[1] = 180; Main.treeBG[0] = 184; Main.treeBG[1] = -1; Main.treeBG[2] = -1; return; } Main.treeBG[0] = 9; Main.treeBG[1] = 10; Main.treeBG[2] = 11; return; } else { if (bg == 1) { WorldGen.corruptBG = style; if (style == 1) { Main.corruptBG[0] = 56; Main.corruptBG[1] = 57; Main.corruptBG[2] = 58; return; } Main.corruptBG[0] = 12; Main.corruptBG[1] = 13; Main.corruptBG[2] = 14; return; } else { if (bg == 2) { WorldGen.jungleBG = style; if (style == 1) { Main.jungleBG[0] = 59; Main.jungleBG[1] = 60; Main.jungleBG[2] = 61; return; } Main.jungleBG[0] = 15; Main.jungleBG[1] = 16; Main.jungleBG[2] = 17; return; } else { if (bg == 3) { WorldGen.snowBG = style; Main.snowMntBG[0] = 35; Main.snowMntBG[1] = 36; if (style == 1) { Main.snowBG[0] = 95; Main.snowBG[1] = 96; Main.snowBG[2] = 97; return; } if (style == 2) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 99; Main.snowBG[0] = -1; Main.snowBG[1] = -1; Main.snowBG[2] = -1; return; } if (style == 21) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 99; Main.snowBG[0] = 95; Main.snowBG[1] = 96; Main.snowBG[2] = 97; return; } if (style == 22) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 99; Main.snowBG[0] = 37; Main.snowBG[1] = 38; Main.snowBG[2] = 39; return; } if (style == 3) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 100; Main.snowBG[0] = -1; Main.snowBG[1] = -1; Main.snowBG[2] = -1; return; } if (style == 31) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 100; Main.snowBG[0] = 95; Main.snowBG[1] = 96; Main.snowBG[2] = 97; return; } if (style == 32) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 100; Main.snowBG[0] = 37; Main.snowBG[1] = 38; Main.snowBG[2] = 39; return; } if (style == 4) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 101; Main.snowBG[0] = -1; Main.snowBG[1] = -1; Main.snowBG[2] = -1; return; } if (style == 41) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 101; Main.snowBG[0] = 95; Main.snowBG[1] = 96; Main.snowBG[2] = 97; return; } if (style == 42) { Main.snowMntBG[0] = 98; Main.snowMntBG[1] = 101; Main.snowBG[0] = 37; Main.snowBG[1] = 38; Main.snowBG[2] = 39; return; } Main.snowBG[0] = 37; Main.snowBG[1] = 38; Main.snowBG[2] = 39; return; } else { if (bg == 4) { WorldGen.hallowBG = style; if (style == 1) { Main.hallowBG[0] = 102; Main.hallowBG[1] = 103; Main.hallowBG[2] = 104; return; } Main.hallowBG[0] = 29; Main.hallowBG[1] = 30; Main.hallowBG[2] = 31; return; } else { if (bg == 5) { WorldGen.crimsonBG = style; if (style == 1) { Main.crimsonBG[0] = 105; Main.crimsonBG[1] = 106; Main.crimsonBG[2] = 107; } if (style == 2) { Main.crimsonBG[0] = 174; Main.crimsonBG[1] = -1; Main.crimsonBG[2] = 175; return; } Main.crimsonBG[0] = 43; Main.crimsonBG[1] = 44; Main.crimsonBG[2] = 45; return; } else { if (bg != 6) { if (bg == 7) { WorldGen.oceanBG = style; if (style == 1) { Main.oceanBG = 110; return; } if (style == 2) { Main.oceanBG = 111; return; } Main.oceanBG = 28; } return; } WorldGen.desertBG = style; if (style == 1) { Main.desertBG[0] = 108; Main.desertBG[1] = 109; return; } Main.desertBG[0] = 21; Main.desertBG[1] = 20; return; } } } } } } } public static void RandomWeather() { if (Main.cloudLimit < 10) { return; } Main.numClouds = WorldGen.genRand.Next(10, Main.cloudLimit); Main.windSpeed = 0f; while (Main.windSpeed == 0f) { Main.windSpeed = (float)WorldGen.genRand.Next(-100, 101) * 0.01f; Main.windSpeedSet = Main.windSpeed; } Cloud.resetClouds(); } public static void loadWorld() { Main.checkXMas(); if (!File.Exists(Main.worldPathName) && Main.autoGen) { for (int i = Main.worldPathName.Length - 1; i >= 0; i--) { if (Main.worldPathName.Substring(i, 1) == string.Concat(Path.DirectorySeparatorChar)) { string path = Main.worldPathName.Substring(0, i); Directory.CreateDirectory(path); break; } } WorldGen.clearWorld(); WorldGen.generateWorld(-1); WorldGen.saveWorld(false); } if (WorldGen.genRand == null) { WorldGen.genRand = new Random((int)DateTime.Now.Ticks); } using (FileStream fileStream = new FileStream(Main.worldPathName, FileMode.Open)) { using (BinaryReader binaryReader = new BinaryReader(fileStream)) { try { WorldGen.loadFailed = false; WorldGen.loadSuccess = false; int num = binaryReader.ReadInt32(); if (num > Main.curRelease) { WorldGen.loadFailed = true; WorldGen.loadSuccess = false; try { binaryReader.Close(); fileStream.Close(); } catch { } } else { Main.worldName = binaryReader.ReadString(); Main.worldID = binaryReader.ReadInt32(); Main.leftWorld = (float)binaryReader.ReadInt32(); Main.rightWorld = (float)binaryReader.ReadInt32(); Main.topWorld = (float)binaryReader.ReadInt32(); Main.bottomWorld = (float)binaryReader.ReadInt32(); Main.maxTilesY = binaryReader.ReadInt32(); Main.maxTilesX = binaryReader.ReadInt32(); if (num >= 63) { Main.moonType = (int)binaryReader.ReadByte(); } else { WorldGen.randMoon(); } WorldGen.clearWorld(); if (num >= 44) { Main.treeX[0] = binaryReader.ReadInt32(); Main.treeX[1] = binaryReader.ReadInt32(); Main.treeX[2] = binaryReader.ReadInt32(); Main.treeStyle[0] = binaryReader.ReadInt32(); Main.treeStyle[1] = binaryReader.ReadInt32(); Main.treeStyle[2] = binaryReader.ReadInt32(); Main.treeStyle[3] = binaryReader.ReadInt32(); } if (num >= 60) { Main.caveBackX[0] = binaryReader.ReadInt32(); Main.caveBackX[1] = binaryReader.ReadInt32(); Main.caveBackX[2] = binaryReader.ReadInt32(); Main.caveBackStyle[0] = binaryReader.ReadInt32(); Main.caveBackStyle[1] = binaryReader.ReadInt32(); Main.caveBackStyle[2] = binaryReader.ReadInt32(); Main.caveBackStyle[3] = binaryReader.ReadInt32(); Main.iceBackStyle = binaryReader.ReadInt32(); if (num >= 61) { Main.jungleBackStyle = binaryReader.ReadInt32(); Main.hellBackStyle = binaryReader.ReadInt32(); } } else { WorldGen.setCaveBacks(); } Main.spawnTileX = binaryReader.ReadInt32(); Main.spawnTileY = binaryReader.ReadInt32(); Main.worldSurface = binaryReader.ReadDouble(); Main.rockLayer = binaryReader.ReadDouble(); WorldGen.tempTime = binaryReader.ReadDouble(); WorldGen.tempDayTime = binaryReader.ReadBoolean(); WorldGen.tempMoonPhase = binaryReader.ReadInt32(); WorldGen.tempBloodMoon = binaryReader.ReadBoolean(); if (num >= 70) { WorldGen.tempEclipse = binaryReader.ReadBoolean(); Main.eclipse = WorldGen.tempEclipse; } Main.dungeonX = binaryReader.ReadInt32(); Main.dungeonY = binaryReader.ReadInt32(); if (num >= 56) { WorldGen.crimson = binaryReader.ReadBoolean(); } else { WorldGen.crimson = false; } NPC.downedBoss1 = binaryReader.ReadBoolean(); NPC.downedBoss2 = binaryReader.ReadBoolean(); NPC.downedBoss3 = binaryReader.ReadBoolean(); if (num >= 66) { NPC.downedQueenBee = binaryReader.ReadBoolean(); } if (num >= 44) { NPC.downedMechBoss1 = binaryReader.ReadBoolean(); NPC.downedMechBoss2 = binaryReader.ReadBoolean(); NPC.downedMechBoss3 = binaryReader.ReadBoolean(); NPC.downedMechBossAny = binaryReader.ReadBoolean(); } if (num >= 64) { NPC.downedPlantBoss = binaryReader.ReadBoolean(); NPC.downedGolemBoss = binaryReader.ReadBoolean(); } if (num >= 29) { NPC.savedGoblin = binaryReader.ReadBoolean(); NPC.savedWizard = binaryReader.ReadBoolean(); if (num >= 34) { NPC.savedMech = binaryReader.ReadBoolean(); } NPC.downedGoblins = binaryReader.ReadBoolean(); } if (num >= 32) { NPC.downedClown = binaryReader.ReadBoolean(); } if (num >= 37) { NPC.downedFrost = binaryReader.ReadBoolean(); } if (num >= 56) { NPC.downedPirates = binaryReader.ReadBoolean(); } WorldGen.shadowOrbSmashed = binaryReader.ReadBoolean(); WorldGen.spawnMeteor = binaryReader.ReadBoolean(); WorldGen.shadowOrbCount = (int)binaryReader.ReadByte(); if (num >= 23) { WorldGen.altarCount = binaryReader.ReadInt32(); Main.hardMode = binaryReader.ReadBoolean(); } Main.invasionDelay = binaryReader.ReadInt32(); Main.invasionSize = binaryReader.ReadInt32(); Main.invasionType = binaryReader.ReadInt32(); Main.invasionX = binaryReader.ReadDouble(); if (num >= 53) { WorldGen.tempRaining = binaryReader.ReadBoolean(); WorldGen.tempRainTime = binaryReader.ReadInt32(); WorldGen.tempMaxRain = binaryReader.ReadSingle(); } if (num >= 54) { WorldGen.oreTier1 = binaryReader.ReadInt32(); WorldGen.oreTier2 = binaryReader.ReadInt32(); WorldGen.oreTier3 = binaryReader.ReadInt32(); } else { if (num >= 23 && WorldGen.altarCount == 0) { WorldGen.oreTier1 = -1; WorldGen.oreTier2 = -1; WorldGen.oreTier3 = -1; } else { WorldGen.oreTier1 = 107; WorldGen.oreTier2 = 108; WorldGen.oreTier3 = 111; } } int style = 0; int style2 = 0; int style3 = 0; int style4 = 0; int style5 = 0; int style6 = 0; int style7 = 0; int style8 = 0; if (num >= 55) { style = (int)binaryReader.ReadByte(); style2 = (int)binaryReader.ReadByte(); style3 = (int)binaryReader.ReadByte(); } if (num >= 60) { style4 = (int)binaryReader.ReadByte(); style5 = (int)binaryReader.ReadByte(); style6 = (int)binaryReader.ReadByte(); style7 = (int)binaryReader.ReadByte(); style8 = (int)binaryReader.ReadByte(); } WorldGen.setBG(0, style); WorldGen.setBG(1, style2); WorldGen.setBG(2, style3); WorldGen.setBG(3, style4); WorldGen.setBG(4, style5); WorldGen.setBG(5, style6); WorldGen.setBG(6, style7); WorldGen.setBG(7, style8); if (num >= 60) { Main.cloudBGActive = (float)binaryReader.ReadInt32(); if (Main.cloudBGActive >= 1f) { Main.cloudBGAlpha = 1f; } else { Main.cloudBGAlpha = 0f; } } else { Main.cloudBGActive = (float)(-(float)WorldGen.genRand.Next(8640, 86400)); } if (num >= 62) { Main.numClouds = (int)binaryReader.ReadInt16(); Main.windSpeedSet = binaryReader.ReadSingle(); Main.windSpeed = Main.windSpeedSet; } else { WorldGen.RandomWeather(); } for (int j = 0; j < Main.maxTilesX; j++) { float num2 = (float)j / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[51], " ", (int)(num2 * 100f + 1f), "%" }); for (int k = 0; k < Main.maxTilesY; k++) { Main.tile[j, k].active(binaryReader.ReadBoolean()); if (Main.tile[j, k].active()) { Main.tile[j, k].type = binaryReader.ReadByte(); if (Main.tile[j, k].type == 127) { Main.tile[j, k].active(false); } if (Main.tileFrameImportant[(int)Main.tile[j, k].type]) { if (num < 28 && Main.tile[j, k].type == 4) { Main.tile[j, k].frameX = 0; Main.tile[j, k].frameY = 0; } else { if (num < 40 && Main.tile[j, k].type == 19) { Main.tile[j, k].frameX = 0; Main.tile[j, k].frameY = 0; } else { Main.tile[j, k].frameX = binaryReader.ReadInt16(); Main.tile[j, k].frameY = binaryReader.ReadInt16(); if (Main.tile[j, k].type == 144) { Main.tile[j, k].frameY = 0; } } } } else { Main.tile[j, k].frameX = -1; Main.tile[j, k].frameY = -1; } if (num >= 48 && binaryReader.ReadBoolean()) { Main.tile[j, k].color(binaryReader.ReadByte()); } } if (num <= 25) { binaryReader.ReadBoolean(); } if (binaryReader.ReadBoolean()) { Main.tile[j, k].wall = binaryReader.ReadByte(); if (num >= 48 && binaryReader.ReadBoolean()) { Main.tile[j, k].wallColor(binaryReader.ReadByte()); } } if (binaryReader.ReadBoolean()) { Main.tile[j, k].liquid = binaryReader.ReadByte(); Main.tile[j, k].lava(binaryReader.ReadBoolean()); if (num >= 51) { Main.tile[j, k].honey(binaryReader.ReadBoolean()); } } if (num >= 33) { Main.tile[j, k].wire(binaryReader.ReadBoolean()); } if (num >= 43) { Main.tile[j, k].wire2(binaryReader.ReadBoolean()); Main.tile[j, k].wire3(binaryReader.ReadBoolean()); } if (num >= 41) { Main.tile[j, k].halfBrick(binaryReader.ReadBoolean()); if (!Main.tileSolid[(int)Main.tile[j, k].type]) { Main.tile[j, k].halfBrick(false); } if (num >= 49) { Main.tile[j, k].slope(binaryReader.ReadByte()); if (!Main.tileSolid[(int)Main.tile[j, k].type]) { Main.tile[j, k].slope(0); } } } if (num >= 42) { Main.tile[j, k].actuator(binaryReader.ReadBoolean()); Main.tile[j, k].inActive(binaryReader.ReadBoolean()); } if (num >= 25) { int num3 = (int)binaryReader.ReadInt16(); if (num3 > 0) { for (int l = k + 1; l < k + num3 + 1; l++) { Main.tile[j, l].active(Main.tile[j, k].active()); Main.tile[j, l].type = Main.tile[j, k].type; Main.tile[j, l].wall = Main.tile[j, k].wall; Main.tile[j, l].frameX = Main.tile[j, k].frameX; Main.tile[j, l].frameY = Main.tile[j, k].frameY; Main.tile[j, l].liquid = Main.tile[j, k].liquid; Main.tile[j, l].lava(Main.tile[j, k].lava()); Main.tile[j, l].honey(Main.tile[j, k].honey()); Main.tile[j, l].wire(Main.tile[j, k].wire()); Main.tile[j, l].wire2(Main.tile[j, k].wire2()); Main.tile[j, l].wire3(Main.tile[j, k].wire3()); Main.tile[j, l].halfBrick(Main.tile[j, k].halfBrick()); Main.tile[j, l].actuator(Main.tile[j, k].actuator()); Main.tile[j, l].inActive(Main.tile[j, k].inActive()); Main.tile[j, l].color(Main.tile[j, k].color()); Main.tile[j, l].wallColor(Main.tile[j, k].wallColor()); } k += num3; } } } } if (num < 67) { WorldGen.FixSunflowers(); } int num4 = 40; if (num < 58) { num4 = 20; } for (int m = 0; m < 1000; m++) { if (binaryReader.ReadBoolean()) { Main.chest[m] = new Chest(); Main.chest[m].x = binaryReader.ReadInt32(); Main.chest[m].y = binaryReader.ReadInt32(); for (int n = 0; n < 40; n++) { Main.chest[m].item[n] = new Item(); if (n < num4) { int num5; if (num >= 59) { num5 = (int)binaryReader.ReadInt16(); } else { num5 = (int)binaryReader.ReadByte(); } if (num5 > 0) { if (num >= 38) { Main.chest[m].item[n].netDefaults(binaryReader.ReadInt32()); } else { string defaults = Item.VersionName(binaryReader.ReadString(), num); Main.chest[m].item[n].SetDefaults(defaults); } Main.chest[m].item[n].stack = num5; if (num >= 36) { Main.chest[m].item[n].Prefix((int)binaryReader.ReadByte()); } } } } } } for (int num6 = 0; num6 < 1000; num6++) { if (binaryReader.ReadBoolean()) { string text = binaryReader.ReadString(); int num7 = binaryReader.ReadInt32(); int num8 = binaryReader.ReadInt32(); if (Main.tile[num7, num8].active() && (Main.tile[num7, num8].type == 55 || Main.tile[num7, num8].type == 85)) { Main.sign[num6] = new Sign(); Main.sign[num6].x = num7; Main.sign[num6].y = num8; Main.sign[num6].text = text; } } } bool flag = binaryReader.ReadBoolean(); int num9 = 0; while (flag) { Main.npc[num9].SetDefaults(binaryReader.ReadString()); Main.npc[num9].position.X = binaryReader.ReadSingle(); Main.npc[num9].position.Y = binaryReader.ReadSingle(); Main.npc[num9].homeless = binaryReader.ReadBoolean(); Main.npc[num9].homeTileX = binaryReader.ReadInt32(); Main.npc[num9].homeTileY = binaryReader.ReadInt32(); flag = binaryReader.ReadBoolean(); num9++; } if (num >= 31) { Main.chrName[17] = binaryReader.ReadString(); Main.chrName[18] = binaryReader.ReadString(); Main.chrName[19] = binaryReader.ReadString(); Main.chrName[20] = binaryReader.ReadString(); Main.chrName[22] = binaryReader.ReadString(); Main.chrName[54] = binaryReader.ReadString(); Main.chrName[38] = binaryReader.ReadString(); Main.chrName[107] = binaryReader.ReadString(); Main.chrName[108] = binaryReader.ReadString(); if (num >= 35) { Main.chrName[124] = binaryReader.ReadString(); if (num >= 65) { Main.chrName[160] = binaryReader.ReadString(); Main.chrName[178] = binaryReader.ReadString(); Main.chrName[207] = binaryReader.ReadString(); Main.chrName[208] = binaryReader.ReadString(); Main.chrName[209] = binaryReader.ReadString(); Main.chrName[227] = binaryReader.ReadString(); Main.chrName[228] = binaryReader.ReadString(); Main.chrName[229] = binaryReader.ReadString(); } } } if (num >= 7) { bool flag2 = binaryReader.ReadBoolean(); string text2 = binaryReader.ReadString(); int num10 = binaryReader.ReadInt32(); if (!flag2 || !(text2 == Main.worldName) || num10 != Main.worldID) { WorldGen.loadSuccess = false; WorldGen.loadFailed = true; binaryReader.Close(); fileStream.Close(); return; } WorldGen.loadSuccess = true; } else { WorldGen.loadSuccess = true; } binaryReader.Close(); fileStream.Close(); if (!WorldGen.loadFailed && WorldGen.loadSuccess) { WorldGen.gen = true; for (int num11 = 0; num11 < Main.maxTilesX; num11++) { float num12 = (float)num11 / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[52], " ", (int)(num12 * 100f + 1f), "%" }); WorldGen.CountTiles(num11); } WorldGen.waterLine = Main.maxTilesY; NPC.setNames(); Liquid.QuickWater(2, -1, -1); WorldGen.WaterCheck(); int num13 = 0; Liquid.quickSettle = true; int num14 = Liquid.numLiquid + LiquidBuffer.numLiquidBuffer; float num15 = 0f; while (Liquid.numLiquid > 0 && num13 < 100000) { num13++; float num16 = (float)(num14 - (Liquid.numLiquid + LiquidBuffer.numLiquidBuffer)) / (float)num14; if (Liquid.numLiquid + LiquidBuffer.numLiquidBuffer > num14) { num14 = Liquid.numLiquid + LiquidBuffer.numLiquidBuffer; } if (num16 > num15) { num15 = num16; } else { num16 = num15; } Main.statusText = string.Concat(new object[] { Lang.gen[27], " ", (int)(num16 * 100f / 2f + 50f), "%" }); Liquid.UpdateLiquid(); } Liquid.quickSettle = false; Main.weatherCounter = WorldGen.genRand.Next(3600, 18000); Cloud.resetClouds(); WorldGen.WaterCheck(); WorldGen.gen = false; } } } catch { WorldGen.loadFailed = true; WorldGen.loadSuccess = false; try { binaryReader.Close(); fileStream.Close(); } catch { } } } } } private static void resetGen() { WorldGen.mudWall = false; WorldGen.hellChest = 0; WorldGen.JungleX = 0; WorldGen.numMCaves = 0; WorldGen.numIslandHouses = 0; WorldGen.houseCount = 0; WorldGen.dEnteranceX = 0; WorldGen.numDRooms = 0; WorldGen.numDDoors = 0; WorldGen.numDPlats = 0; WorldGen.numJChests = 0; WorldGen.numHives = 0; } public static bool mayanTrap(int x2, int y2) { int num = 1; if (WorldGen.genRand.Next(3) == 0) { num = 0; } int num2 = y2; while (!WorldGen.SolidTile(x2, num2)) { num2++; if (num2 >= Main.maxTilesY - 300) { return false; } } if (Main.tile[x2, num2].type == 232) { return false; } num2--; if (Main.tile[x2, num2].liquid > 0 && Main.tile[x2, num2].lava()) { return false; } if (num == -1 && Main.rand.Next(20) == 0) { num = 2; } else { if (num == -1) { num = Main.rand.Next(2); } } if (Main.tile[x2, num2].nactive() || Main.tile[x2 - 1, num2].nactive() || Main.tile[x2 + 1, num2].nactive() || Main.tile[x2, num2 - 1].nactive() || Main.tile[x2 - 1, num2 - 1].nactive() || Main.tile[x2 + 1, num2 - 1].nactive() || Main.tile[x2, num2 - 2].nactive() || Main.tile[x2 - 1, num2 - 2].nactive() || Main.tile[x2 + 1, num2 - 2].nactive()) { return false; } if (Main.tile[x2, num2 + 1].type == 48) { return false; } if (Main.tile[x2, num2 + 1].type == 232) { return false; } if (num == 0) { int num3 = x2; int num4 = num2; num4 -= WorldGen.genRand.Next(3); while (!WorldGen.SolidTile(num3, num4)) { num3--; } int num5 = num3; num3 = x2; while (!WorldGen.SolidTile(num3, num4)) { num3++; } int num6 = num3; int num7 = x2 - num5; int num8 = num6 - x2; bool flag = false; bool flag2 = false; if (num7 > 5 && num7 < 50) { flag = true; } if (num8 > 5 && num8 < 50) { flag2 = true; } if (flag && !WorldGen.SolidTile(num5, num4 + 1)) { flag = false; } if (flag2 && !WorldGen.SolidTile(num6, num4 + 1)) { flag2 = false; } if (flag && (Main.tile[num5, num4].type == 10 || Main.tile[num5, num4].type == 48 || Main.tile[num5, num4 + 1].type == 10 || Main.tile[num5, num4 + 1].type == 48)) { flag = false; } if (flag2 && (Main.tile[num6, num4].type == 10 || Main.tile[num6, num4].type == 48 || Main.tile[num6, num4 + 1].type == 10 || Main.tile[num6, num4 + 1].type == 48)) { flag2 = false; } int num9; if (flag && flag2) { num9 = 1; num3 = num5; if (WorldGen.genRand.Next(2) == 0) { num3 = num6; num9 = -1; } } else { if (flag2) { num3 = num6; num9 = -1; } else { if (!flag) { return false; } num3 = num5; num9 = 1; } } if (Main.tile[num3, num4].wall != 87) { return false; } if (Main.tile[num3, num4].type == 190) { return false; } if (Main.tile[num3, num4].type == 135) { return false; } if (Main.tile[num3, num4].type == 137) { return false; } if (Main.tile[num3, num4].type == 232) { return false; } WorldGen.PlaceTile(x2, num2, 135, true, true, -1, 6); WorldGen.KillTile(num3, num4, false, false, false); int num10 = WorldGen.genRand.Next(3); if (Main.tile[x2, num2].wire()) { num10 = 0; } if (Main.tile[x2, num2].wire2()) { num10 = 1; } if (Main.tile[x2, num2].wire3()) { num10 = 2; } int num11 = Math.Abs(num3 - x2); int style = 1; if (num11 < 10 && WorldGen.genRand.Next(3) != 0) { style = 2; } WorldGen.PlaceTile(num3, num4, 137, true, true, -1, style); if (num9 == 1) { Tile expr_482 = Main.tile[num3, num4]; expr_482.frameX += 18; } int i = WorldGen.genRand.Next(5); int num12 = num4; while (i > 0) { i--; num12--; if (!WorldGen.SolidTile(num3, num12) || !WorldGen.SolidTile(num3 - num9, num12) || WorldGen.SolidTile(num3 + num9, num12)) { break; } WorldGen.PlaceTile(num3, num12, 137, true, true, -1, style); if (num9 == 1) { Tile expr_505 = Main.tile[num3, num12]; expr_505.frameX += 18; } if (num10 == 0) { Main.tile[num3, num12].wire(true); } else { if (num10 == 1) { Main.tile[num3, num12].wire2(true); } else { if (num10 == 2) { Main.tile[num3, num12].wire3(true); } } } } int num13 = x2; int num14 = num2; while (num13 != num3 || num14 != num4) { if (num10 == 0) { Main.tile[num13, num14].wire(true); } else { if (num10 == 1) { Main.tile[num13, num14].wire2(true); } else { if (num10 == 2) { Main.tile[num13, num14].wire3(true); } } } if (num13 > num3) { num13--; } if (num13 < num3) { num13++; } if (num10 == 0) { Main.tile[num13, num14].wire(true); } else { if (num10 == 1) { Main.tile[num13, num14].wire2(true); } else { if (num10 == 2) { Main.tile[num13, num14].wire3(true); } } } if (num14 > num4) { num14--; } if (num14 < num4) { num14++; } if (num10 == 0) { Main.tile[num13, num14].wire(true); } else { if (num10 == 1) { Main.tile[num13, num14].wire2(true); } else { if (num10 == 2) { Main.tile[num13, num14].wire3(true); } } } } return true; } else { if (num != 1) { return false; } int num15 = num2; while (!WorldGen.SolidTile(x2, num15)) { num15--; if ((double)num15 < Main.worldSurface) { return false; } } int num16 = Math.Abs(num15 - num2); if (num16 < 3) { return false; } int num17 = WorldGen.genRand.Next(3); if (Main.tile[x2, num2].wire()) { num17 = 0; } if (Main.tile[x2, num2].wire2()) { num17 = 1; } if (Main.tile[x2, num2].wire3()) { num17 = 2; } int style2 = 3; if (num16 < 16 && Main.rand.Next(3) != 0) { style2 = 4; } if (Main.tile[x2, num15].type == 135) { return false; } if (Main.tile[x2, num15].type == 137) { return false; } if (Main.tile[x2, num15].type == 232) { return false; } if (Main.tile[x2, num15].wall != 87) { return false; } WorldGen.PlaceTile(x2, num2, 135, true, true, -1, 6); WorldGen.PlaceTile(x2, num15, 137, true, true, -1, style2); for (int j = 0; j < 2; j++) { int k = WorldGen.genRand.Next(1, 5); int num18 = x2; int num19 = -1; if (j == 1) { num19 = 1; } while (k > 0) { k--; num18 += num19; if (!WorldGen.SolidTile(num18, num15 - 1) || WorldGen.SolidTile(num18, num15 + 1)) { break; } WorldGen.PlaceTile(num18, num15, 137, true, true, -1, style2); if (num17 == 0) { Main.tile[num18, num15].wire(true); } else { if (num17 == 1) { Main.tile[num18, num15].wire2(true); } else { if (num17 == 2) { Main.tile[num18, num15].wire3(true); } } } } } int num20 = x2; int num21 = num2; while (num20 != x2 || num21 != num15) { if (num17 == 0) { Main.tile[num20, num21].wire(true); } else { if (num17 == 1) { Main.tile[num20, num21].wire2(true); } else { if (num17 == 2) { Main.tile[num20, num21].wire3(true); } } } if (num20 > x2) { num20--; } if (num20 < x2) { num20++; } if (num17 == 0) { Main.tile[num20, num21].wire(true); } else { if (num17 == 1) { Main.tile[num20, num21].wire2(true); } else { if (num17 == 2) { Main.tile[num20, num21].wire3(true); } } } if (num21 > num15) { num21--; } if (num21 < num15) { num21++; } if (num17 == 0) { Main.tile[num20, num21].wire(true); } else { if (num17 == 1) { Main.tile[num20, num21].wire2(true); } else { if (num17 == 2) { Main.tile[num20, num21].wire3(true); } } } } return true; } } public static bool placeTrap(int x2, int y2, int type = -1) { int num = y2; while (!WorldGen.SolidTile(x2, num)) { num++; if (num >= Main.maxTilesY - 300) { return false; } } num--; if (Main.tile[x2, num].wall == 87) { return false; } if (Main.tile[x2, num].liquid > 0 && Main.tile[x2, num].lava()) { return false; } if (type == -1 && Main.rand.Next(20) == 0) { type = 2; } else { if (type == -1) { type = Main.rand.Next(2); } } if (Main.tile[x2, num].nactive() || Main.tile[x2 - 1, num].nactive() || Main.tile[x2 + 1, num].nactive() || Main.tile[x2, num - 1].nactive() || Main.tile[x2 - 1, num - 1].nactive() || Main.tile[x2 + 1, num - 1].nactive() || Main.tile[x2, num - 2].nactive() || Main.tile[x2 - 1, num - 2].nactive() || Main.tile[x2 + 1, num - 2].nactive()) { return false; } if (Main.tile[x2, num + 1].type == 48) { return false; } if (Main.tile[x2, num + 1].type == 232) { return false; } if (type == 1) { for (int i = x2 - 3; i <= x2 + 3; i++) { for (int j = num - 3; j <= num + 3; j++) { if (Main.tile[i, j].type == 147 || Main.tile[i, j].type == 161) { type = 0; } } } } if (type == 0) { int num2 = x2; int num3 = num; num3 -= WorldGen.genRand.Next(3); while (!WorldGen.SolidTile(num2, num3)) { num2--; } int num4 = num2; num2 = x2; while (!WorldGen.SolidTile(num2, num3)) { num2++; } int num5 = num2; int num6 = x2 - num4; int num7 = num5 - x2; bool flag = false; bool flag2 = false; if (num6 > 5 && num6 < 50) { flag = true; } if (num7 > 5 && num7 < 50) { flag2 = true; } if (flag && !WorldGen.SolidTile(num4, num3 + 1)) { flag = false; } if (flag2 && !WorldGen.SolidTile(num5, num3 + 1)) { flag2 = false; } if (flag && (Main.tile[num4, num3].type == 10 || Main.tile[num4, num3].type == 48 || Main.tile[num4, num3 + 1].type == 10 || Main.tile[num4, num3 + 1].type == 48)) { flag = false; } if (flag2 && (Main.tile[num5, num3].type == 10 || Main.tile[num5, num3].type == 48 || Main.tile[num5, num3 + 1].type == 10 || Main.tile[num5, num3 + 1].type == 48)) { flag2 = false; } int num8; if (flag && flag2) { num8 = 1; num2 = num4; if (WorldGen.genRand.Next(2) == 0) { num2 = num5; num8 = -1; } } else { if (flag2) { num2 = num5; num8 = -1; } else { if (!flag) { return false; } num2 = num4; num8 = 1; } } if (Main.tile[num2, num3].type == 190) { return false; } if (Main.tile[x2, num].wall > 0) { WorldGen.PlaceTile(x2, num, 135, true, true, -1, 2); } else { WorldGen.PlaceTile(x2, num, 135, true, true, -1, WorldGen.genRand.Next(2, 4)); } WorldGen.KillTile(num2, num3, false, false, false); WorldGen.PlaceTile(num2, num3, 137, true, true, -1, 0); if (num8 == 1) { Tile expr_42F = Main.tile[num2, num3]; expr_42F.frameX += 18; } int num9 = x2; int num10 = num; while (num9 != num2 || num10 != num3) { Main.tile[num9, num10].wire(true); if (num9 > num2) { num9--; } if (num9 < num2) { num9++; } Main.tile[num9, num10].wire(true); if (num10 > num3) { num10--; } if (num10 < num3) { num10++; } Main.tile[num9, num10].wire(true); } return true; } else { if (type != 1) { if (type == 2) { int num11 = Main.rand.Next(4, 7); int num12 = x2 + Main.rand.Next(-1, 2); int num13 = num; for (int k = 0; k < num11; k++) { num13++; if (!WorldGen.SolidTile(num12, num13)) { return false; } } for (int l = num12 - 2; l <= num12 + 2; l++) { for (int m = num13 - 2; m <= num13 + 2; m++) { if (!WorldGen.SolidTile(l, m)) { return false; } } } WorldGen.KillTile(num12, num13, false, false, false); Main.tile[num12, num13].active(true); Main.tile[num12, num13].type = 141; Main.tile[num12, num13].frameX = 0; Main.tile[num12, num13].frameY = (short)(18 * Main.rand.Next(2)); WorldGen.PlaceTile(x2, num, 135, true, true, -1, WorldGen.genRand.Next(2, 4)); int num14 = x2; int num15 = num; while (num14 != num12 || num15 != num13) { Main.tile[num14, num15].wire(true); if (num14 > num12) { num14--; } if (num14 < num12) { num14++; } Main.tile[num14, num15].wire(true); if (num15 > num13) { num15--; } if (num15 < num13) { num15++; } Main.tile[num14, num15].wire(true); } } return false; } int num16 = num - 8; int num17 = x2 + WorldGen.genRand.Next(-1, 2); bool flag3 = true; while (flag3) { bool flag4 = true; int num18 = 0; for (int n = num17 - 2; n <= num17 + 3; n++) { for (int num19 = num16; num19 <= num16 + 3; num19++) { if (!WorldGen.SolidTile(n, num19)) { flag4 = false; } if (Main.tile[n, num19].active() && (Main.tile[n, num19].type == 0 || Main.tile[n, num19].type == 1 || Main.tile[n, num19].type == 59)) { num18++; } } } num16--; if ((double)num16 < Main.worldSurface) { return false; } if (flag4 && num18 > 2) { flag3 = false; } } if (num - num16 <= 5 || num - num16 >= 40) { return false; } for (int num20 = num17; num20 <= num17 + 1; num20++) { for (int num21 = num16; num21 <= num; num21++) { if (WorldGen.SolidTile(num20, num21)) { WorldGen.KillTile(num20, num21, false, false, false); } } } for (int num22 = num17 - 2; num22 <= num17 + 3; num22++) { for (int num23 = num16 - 2; num23 <= num16 + 3; num23++) { if (WorldGen.SolidTile(num22, num23)) { Main.tile[num22, num23].type = 1; } } } WorldGen.PlaceTile(x2, num, 135, true, true, -1, WorldGen.genRand.Next(2, 4)); WorldGen.PlaceTile(num17, num16 + 2, 130, true, false, -1, 0); WorldGen.PlaceTile(num17 + 1, num16 + 2, 130, true, false, -1, 0); WorldGen.PlaceTile(num17 + 1, num16 + 1, 138, true, false, -1, 0); num16 += 2; Main.tile[num17, num16].wire(true); Main.tile[num17 + 1, num16].wire(true); num16++; WorldGen.PlaceTile(num17, num16, 130, true, false, -1, 0); WorldGen.PlaceTile(num17 + 1, num16, 130, true, false, -1, 0); Main.tile[num17, num16].wire(true); Main.tile[num17 + 1, num16].wire(true); WorldGen.PlaceTile(num17, num16 + 1, 130, true, false, -1, 0); WorldGen.PlaceTile(num17 + 1, num16 + 1, 130, true, false, -1, 0); Main.tile[num17, num16 + 1].wire(true); Main.tile[num17 + 1, num16 + 1].wire(true); int num24 = x2; int num25 = num; while (num24 != num17 || num25 != num16) { Main.tile[num24, num25].wire(true); if (num24 > num17) { num24--; } if (num24 < num17) { num24++; } Main.tile[num24, num25].wire(true); if (num25 > num16) { num25--; } if (num25 < num16) { num25++; } Main.tile[num24, num25].wire(true); } return true; } } public static int countTiles(int x, int y, bool jungle = false, bool lavaOk = false) { WorldGen.numTileCount = 0; WorldGen.lavaCount = 0; WorldGen.iceCount = 0; WorldGen.rockCount = 0; WorldGen.nextCount(x, y, jungle, lavaOk); return WorldGen.numTileCount; } public static void nextCount(int x, int y, bool jungle = false, bool lavaOk = false) { if (WorldGen.numTileCount >= WorldGen.maxTileCount) { return; } if (x <= 1 || x >= Main.maxTilesX - 1 || y <= 1 || y >= Main.maxTilesY - 1) { WorldGen.numTileCount = WorldGen.maxTileCount; return; } for (int i = 0; i < WorldGen.numTileCount; i++) { if (WorldGen.countX[i] == x && WorldGen.countY[i] == y) { return; } } if (!jungle) { if (Main.tile[x, y].wall != 0) { WorldGen.numTileCount = WorldGen.maxTileCount; return; } if (!lavaOk) { if (Main.tile[x, y].lava() && Main.tile[x, y].liquid > 0) { WorldGen.lavaCount++; WorldGen.numTileCount = WorldGen.maxTileCount; return; } } else { if (Main.tile[x, y].lava() && Main.tile[x, y].liquid > 0) { WorldGen.lavaCount++; } } } if (Main.tile[x, y].active()) { if (Main.tile[x, y].type == 1) { WorldGen.rockCount++; } if (Main.tile[x, y].type == 147 || Main.tile[x, y].type == 161) { WorldGen.iceCount++; } } if (!WorldGen.SolidTile(x, y)) { WorldGen.countX[WorldGen.numTileCount] = x; WorldGen.countY[WorldGen.numTileCount] = y; WorldGen.numTileCount++; WorldGen.nextCount(x - 1, y, jungle, lavaOk); WorldGen.nextCount(x + 1, y, jungle, lavaOk); WorldGen.nextCount(x, y - 1, jungle, lavaOk); WorldGen.nextCount(x, y + 1, jungle, lavaOk); } } public static int countDirtTiles(int x, int y) { WorldGen.numTileCount = 0; WorldGen.nextDirtCount(x, y); return WorldGen.numTileCount; } public static void nextDirtCount(int x, int y) { if (WorldGen.numTileCount >= WorldGen.maxTileCount) { return; } if (x <= 1 || x >= Main.maxTilesX - 1 || y <= 1 || y >= Main.maxTilesY - 1) { WorldGen.numTileCount = WorldGen.maxTileCount; return; } for (int i = 0; i < WorldGen.numTileCount; i++) { if (WorldGen.countX[i] == x && WorldGen.countY[i] == y) { return; } } if (Main.tile[x, y].active() && (Main.tile[x, y].type == 147 || Main.tile[x, y].type == 161)) { WorldGen.numTileCount = WorldGen.maxTileCount; return; } if (Main.tile[x, y].wall == 78) { WorldGen.numTileCount = 3500; return; } if (!WorldGen.SolidTile(x, y) && (Main.tile[x, y].wall == 2 || Main.tile[x, y].wall == 59)) { WorldGen.countX[WorldGen.numTileCount] = x; WorldGen.countY[WorldGen.numTileCount] = y; WorldGen.numTileCount++; WorldGen.nextDirtCount(x - 1, y); WorldGen.nextDirtCount(x + 1, y); WorldGen.nextDirtCount(x, y - 1); WorldGen.nextDirtCount(x, y + 1); WorldGen.nextDirtCount(x - 1, y - 1); WorldGen.nextDirtCount(x - 1, y + 1); WorldGen.nextDirtCount(x + 1, y - 1); WorldGen.nextDirtCount(x + 1, y + 1); WorldGen.nextDirtCount(x - 2, y); WorldGen.nextDirtCount(x + 2, y); } } public static void mossCave(int x, int y) { WorldGen.mossOut(x, y); } public static void mossOut(int x, int y) { if (!WorldGen.SolidTile(x, y) && Main.tile[x, y].wall == 0) { Main.tile[x, y].wall = WorldGen.mossWall; WorldGen.mossOut(x - 1, y); WorldGen.mossOut(x + 1, y); WorldGen.mossOut(x, y - 1); WorldGen.mossOut(x, y + 1); return; } if (Main.tile[x, y].active()) { if (Main.tile[x, y].wall == 0) { Main.tile[x, y].wall = WorldGen.mossWall; } int type = (int)Main.tile[x, y].type; if (type == 1) { Main.tile[x, y].type = WorldGen.mossTile; } } } public static void wallOut(int x, int y, int wall) { if (!WorldGen.SolidTile(x, y) && Main.tile[x, y].wall == 0) { Main.tile[x, y].wall = (byte)wall; WorldGen.wallOut(x - 1, y, wall); WorldGen.wallOut(x + 1, y, wall); WorldGen.wallOut(x, y - 1, wall); WorldGen.wallOut(x, y + 1, wall); return; } if (Main.tile[x, y].active() && Main.tile[x, y].wall == 0) { Main.tile[x, y].wall = (byte)wall; } } public static void wallOut2(int x, int y, int wall) { try { if (!WorldGen.SolidTile(x, y) && (int)Main.tile[x, y].wall != wall && Main.tile[x, y].wall != 4 && Main.tile[x, y].wall != 40 && Main.tile[x, y].wall != 3) { if (wall != 63 || Main.tile[x, y].wall != 0) { WorldGen.numWallOut2++; if (WorldGen.numWallOut2 < WorldGen.maxWallOut2) { Main.tile[x, y].wall = (byte)wall; WorldGen.wallOut2(x - 1, y, wall); WorldGen.wallOut2(x + 1, y, wall); WorldGen.wallOut2(x, y - 1, wall); WorldGen.wallOut2(x, y + 1, wall); if (wall == 63) { WorldGen.wallOut2(x - 1, y - 1, wall); WorldGen.wallOut2(x - 1, y + 1, wall); WorldGen.wallOut2(x + 1, y - 1, wall); WorldGen.wallOut2(x + 1, y + 1, wall); WorldGen.wallOut2(x - 2, y, wall); WorldGen.wallOut2(x + 2, y, wall); } } } } else { if (Main.tile[x, y].active() && (int)Main.tile[x, y].wall != wall && Main.tile[x, y].wall != 4 && Main.tile[x, y].wall != 40 && Main.tile[x, y].wall != 3) { Main.tile[x, y].wall = (byte)wall; } } } catch { } } public static void gemCave(int x, int y) { WorldGen.countTiles(x, y, false, false); for (int i = 0; i < 6; i++) { WorldGen.gem[i] = false; } WorldGen.gem[WorldGen.genRand.Next(6)] = true; for (int j = 0; j < 6; j++) { if (WorldGen.genRand.Next(6) == 0) { WorldGen.gem[j] = true; } } WorldGen.gemOut(x, y); } public static int randGem() { int num = WorldGen.genRand.Next(6); while (!WorldGen.gem[num]) { num = WorldGen.genRand.Next(6); } return num; } public static int randGemTile() { if (WorldGen.genRand.Next(20) != 0) { return 1; } int num = WorldGen.randGem(); if (num == 0) { return 67; } if (num == 1) { return 66; } if (num == 2) { return 63; } if (num == 3) { return 65; } if (num == 4) { return 64; } return 68; } public static void gemOut(int x, int y) { if (!WorldGen.SolidTile(x, y) && Main.tile[x, y].wall == 0) { Main.tile[x, y].wall = (byte)(48 + WorldGen.randGem()); if (!Main.tile[x, y].active() && WorldGen.genRand.Next(2) == 0) { WorldGen.PlaceTile(x, y, 178, true, false, -1, WorldGen.randGem()); } WorldGen.gemOut(x - 1, y); WorldGen.gemOut(x + 1, y); WorldGen.gemOut(x, y - 1); WorldGen.gemOut(x, y + 1); return; } if (Main.tile[x, y].active()) { int type = (int)Main.tile[x, y].type; if (type == 0 || type == 1 || type == 40 || type == 59 || type == 60 || type == 70 || type == 147 || type == 161) { Main.tile[x, y].type = (byte)WorldGen.randGemTile(); } for (int i = 0; i < 4; i++) { int num = x; int num2 = y; if (i == 0) { x--; } if (i == 1) { x++; } if (i == 2) { y--; } if (i == 3) { y++; } type = (int)Main.tile[num, num2].type; if (type == 0 || type == 1 || type == 40 || type == 59 || type == 60 || type == 70 || type == 147 || type == 161) { Main.tile[num, num2].type = (byte)WorldGen.randGemTile(); } } } } public static void spiderOut(int x, int y) { if (!WorldGen.SolidTile(x, y) && Main.tile[x, y].wall == 0) { Main.tile[x, y].wall = 62; WorldGen.SquareWallFrame(x, y, true); if (!Main.tile[x, y].active()) { Main.tile[x, y].liquid = 0; Main.tile[x, y].lava(false); if (WorldGen.SolidTile(x, y + 1) && WorldGen.genRand.Next(3) == 0) { if (WorldGen.genRand.Next(15) == 0) { WorldGen.AddBuriedChest(x, y, 939, true, 15); } else { WorldGen.PlacePot(x, y, 28, WorldGen.genRand.Next(19, 21)); } } if (!Main.tile[x, y].active()) { if (WorldGen.SolidTile(x, y - 1) && WorldGen.genRand.Next(3) == 0) { WorldGen.PlaceTight(x, y, 165, true); } else { if (WorldGen.SolidTile(x, y + 1)) { WorldGen.PlaceTile(x, y, 187, true, false, -1, 9 + WorldGen.genRand.Next(5)); if (WorldGen.genRand.Next(3) == 0) { if (!Main.tile[x, y].active()) { WorldGen.PlaceSmallPile(x, y, 34 + WorldGen.genRand.Next(4), 1, 185); } if (!Main.tile[x, y].active()) { WorldGen.PlaceSmallPile(x, y, 48 + WorldGen.genRand.Next(6), 0, 185); } } } } } } WorldGen.spiderOut(x - 1, y); WorldGen.spiderOut(x + 1, y); WorldGen.spiderOut(x, y - 1); WorldGen.spiderOut(x, y + 1); return; } if (Main.tile[x, y].active() && Main.tile[x, y].wall == 0) { Main.tile[x, y].wall = 62; } } public static void randMoss() { WorldGen.mossType[0] = WorldGen.genRand.Next(5); WorldGen.mossType[1] = WorldGen.genRand.Next(5); while (WorldGen.mossType[1] == WorldGen.mossType[0]) { WorldGen.mossType[1] = WorldGen.genRand.Next(5); } WorldGen.mossType[2] = WorldGen.genRand.Next(5); while (WorldGen.mossType[2] == WorldGen.mossType[0] || WorldGen.mossType[2] == WorldGen.mossType[1]) { WorldGen.mossType[2] = WorldGen.genRand.Next(5); } } public static void setMoss(int x, int y) { int num; if ((double)x < (double)Main.maxTilesX * 0.334) { num = 0; } else { if ((double)x < (double)Main.maxTilesX * 0.667) { num = 1; } else { num = 2; } } WorldGen.mossWall = (byte)(54 + WorldGen.mossType[num]); WorldGen.mossTile = (byte)(179 + WorldGen.mossType[num]); } public static void setCaveBacks() { int maxValue = 8; if (Main.maxTilesX == 4200) { Main.caveBackX[0] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.5 - (double)((float)Main.maxTilesX * 0.25f)), (int)((double)Main.maxTilesX * 0.5 + (double)((float)Main.maxTilesX * 0.25f))); Main.caveBackX[1] = Main.maxTilesX; Main.caveBackX[2] = Main.maxTilesX; Main.caveBackStyle[0] = WorldGen.genRand.Next(maxValue); Main.caveBackStyle[1] = WorldGen.genRand.Next(maxValue); while (Main.caveBackStyle[1] == Main.caveBackStyle[0]) { Main.caveBackStyle[1] = WorldGen.genRand.Next(maxValue); } } else { if (Main.maxTilesX == 6400) { Main.caveBackX[0] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.334 - (double)((float)Main.maxTilesX * 0.2f)), (int)((double)Main.maxTilesX * 0.334 + (double)((float)Main.maxTilesX * 0.2f))); Main.caveBackX[1] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.667 - (double)((float)Main.maxTilesX * 0.2f)), (int)((double)Main.maxTilesX * 0.667 + (double)((float)Main.maxTilesX * 0.2f))); Main.caveBackX[2] = Main.maxTilesX; Main.caveBackStyle[0] = WorldGen.genRand.Next(maxValue); Main.caveBackStyle[1] = WorldGen.genRand.Next(maxValue); Main.caveBackStyle[2] = WorldGen.genRand.Next(maxValue); while (Main.caveBackStyle[1] == Main.caveBackStyle[0]) { Main.caveBackStyle[1] = WorldGen.genRand.Next(maxValue); } while (Main.caveBackStyle[2] == Main.caveBackStyle[0] || Main.caveBackStyle[2] == Main.caveBackStyle[1]) { Main.caveBackStyle[2] = WorldGen.genRand.Next(maxValue); } } else { Main.caveBackX[0] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.25 - (double)((float)Main.maxTilesX * 0.15f)), (int)((double)Main.maxTilesX * 0.25 + (double)((float)Main.maxTilesX * 0.15f))); Main.caveBackX[1] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.5 - (double)((float)Main.maxTilesX * 0.15f)), (int)((double)Main.maxTilesX * 0.5 + (double)((float)Main.maxTilesX * 0.15f))); Main.caveBackX[2] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.75 - (double)((float)Main.maxTilesX * 0.15f)), (int)((double)Main.maxTilesX * 0.75 + (double)((float)Main.maxTilesX * 0.15f))); Main.caveBackStyle[0] = WorldGen.genRand.Next(maxValue); Main.caveBackStyle[1] = WorldGen.genRand.Next(maxValue); Main.caveBackStyle[2] = WorldGen.genRand.Next(maxValue); Main.caveBackStyle[3] = WorldGen.genRand.Next(maxValue); while (Main.caveBackStyle[1] == Main.caveBackStyle[0]) { Main.caveBackStyle[1] = WorldGen.genRand.Next(maxValue); } while (Main.caveBackStyle[2] == Main.caveBackStyle[0] || Main.caveBackStyle[2] == Main.caveBackStyle[1]) { Main.caveBackStyle[2] = WorldGen.genRand.Next(maxValue); } while (Main.caveBackStyle[3] == Main.caveBackStyle[0] || Main.caveBackStyle[3] == Main.caveBackStyle[1] || Main.caveBackStyle[3] == Main.caveBackStyle[2]) { Main.caveBackStyle[3] = WorldGen.genRand.Next(maxValue); } } } Main.iceBackStyle = WorldGen.genRand.Next(4); Main.hellBackStyle = WorldGen.genRand.Next(3); Main.jungleBackStyle = WorldGen.genRand.Next(2); } public static void randomBackgrounds() { WorldGen.treeBG = WorldGen.genRand.Next(9); if ((WorldGen.treeBG == 1 || WorldGen.treeBG == 2) && WorldGen.genRand.Next(2) == 0) { WorldGen.treeBG = WorldGen.genRand.Next(7); } if (WorldGen.treeBG == 0) { WorldGen.treeBG = WorldGen.genRand.Next(7); } if (WorldGen.treeBG == 3 && WorldGen.genRand.Next(3) == 0) { WorldGen.treeBG = 31; } if (WorldGen.treeBG == 5 && WorldGen.genRand.Next(2) == 0) { WorldGen.treeBG = 51; } if (WorldGen.treeBG == 7 && WorldGen.genRand.Next(4) == 0) { WorldGen.treeBG = WorldGen.genRand.Next(71, 74); } WorldGen.setBG(0, WorldGen.treeBG); WorldGen.setBG(1, WorldGen.genRand.Next(2)); WorldGen.setBG(2, WorldGen.genRand.Next(2)); WorldGen.snowBG = WorldGen.genRand.Next(6); if (WorldGen.snowBG == 2 && WorldGen.genRand.Next(2) == 0) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.snowBG = 21; } else { WorldGen.snowBG = 22; } } if (WorldGen.snowBG == 3 && WorldGen.genRand.Next(2) == 0) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.snowBG = 31; } else { WorldGen.snowBG = 32; } } if (WorldGen.snowBG == 4 && WorldGen.genRand.Next(2) == 0) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.snowBG = 41; } else { WorldGen.snowBG = 42; } } WorldGen.setBG(3, WorldGen.snowBG); WorldGen.setBG(4, WorldGen.genRand.Next(2)); WorldGen.setBG(5, WorldGen.genRand.Next(3)); WorldGen.setBG(6, WorldGen.genRand.Next(2)); WorldGen.setBG(7, WorldGen.genRand.Next(3)); } public static void generateWorld(int seed = -1) { if (seed > 0) { WorldGen.genRand = new Random(seed); } else { WorldGen.genRand = new Random((int)DateTime.Now.Ticks); } WorldGen.randMoon(); WorldGen.RandomWeather(); Main.cloudAlpha = 0f; Main.maxRaining = 0f; WorldGen.tempMaxRain = 0f; Main.raining = false; WorldGen.crimson = false; WorldGen.heartCount = 0; Main.checkXMas(); NPC.clrNames(); NPC.setNames(); WorldGen.gen = true; WorldGen.resetGen(); WorldGen.worldSurfaceLow = 0.0; int type = 7; int type2 = 6; int type3 = 9; int type4 = 8; Main.cloudBGActive = (float)(-(float)WorldGen.genRand.Next(8640, 86400)); WorldGen.copperBar = 20; WorldGen.ironBar = 22; WorldGen.silverBar = 21; WorldGen.goldBar = 19; if (WorldGen.genRand.Next(2) == 0) { type = 166; WorldGen.copperBar = 703; } if (WorldGen.genRand.Next(2) == 0) { type2 = 167; WorldGen.ironBar = 704; } if (WorldGen.genRand.Next(2) == 0) { type3 = 168; WorldGen.silverBar = 705; } if (WorldGen.genRand.Next(2) == 0) { type4 = 169; WorldGen.goldBar = 706; } WorldGen.randomBackgrounds(); if (WorldGen.genRand.Next(2) == 0) { WorldGen.crimson = true; } int num = WorldGen.genRand.Next(5); if (num == 0) { num = 119; } else { if (num == 1) { num = 120; } else { if (num == 2) { num = 158; } else { if (num == 3) { num = 175; } else { if (num == 4) { num = 45; } } } } } Main.worldID = WorldGen.genRand.Next(2147483647); int num2 = 0; int num3 = 0; double num4 = (double)Main.maxTilesY * 0.3; num4 *= (double)WorldGen.genRand.Next(90, 110) * 0.005; double num5 = num4 + (double)Main.maxTilesY * 0.2; num5 *= (double)WorldGen.genRand.Next(90, 110) * 0.01; if (Main.maxTilesX == 4200) { Main.treeX[0] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.5 - (double)((float)Main.maxTilesX * 0.25f)), (int)((double)Main.maxTilesX * 0.5 + (double)((float)Main.maxTilesX * 0.25f))); Main.treeStyle[0] = WorldGen.genRand.Next(6); Main.treeStyle[1] = WorldGen.genRand.Next(6); while (Main.treeStyle[1] == Main.treeStyle[0]) { Main.treeStyle[1] = WorldGen.genRand.Next(6); } Main.treeX[1] = Main.maxTilesX; Main.treeX[2] = Main.maxTilesX; } else { if (Main.maxTilesX == 6400) { Main.treeX[0] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.334 - (double)((float)Main.maxTilesX * 0.2f)), (int)((double)Main.maxTilesX * 0.334 + (double)((float)Main.maxTilesX * 0.2f))); Main.treeX[1] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.667 - (double)((float)Main.maxTilesX * 0.2f)), (int)((double)Main.maxTilesX * 0.667 + (double)((float)Main.maxTilesX * 0.2f))); Main.treeStyle[0] = WorldGen.genRand.Next(6); Main.treeStyle[1] = WorldGen.genRand.Next(6); Main.treeStyle[2] = WorldGen.genRand.Next(6); while (Main.treeStyle[1] == Main.treeStyle[0]) { Main.treeStyle[1] = WorldGen.genRand.Next(6); } while (Main.treeStyle[2] == Main.treeStyle[0] || Main.treeStyle[2] == Main.treeStyle[1]) { Main.treeStyle[2] = WorldGen.genRand.Next(6); } Main.treeX[2] = Main.maxTilesX; } else { Main.treeX[0] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.25 - (double)((float)Main.maxTilesX * 0.15f)), (int)((double)Main.maxTilesX * 0.25 + (double)((float)Main.maxTilesX * 0.15f))); Main.treeX[1] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.5 - (double)((float)Main.maxTilesX * 0.15f)), (int)((double)Main.maxTilesX * 0.5 + (double)((float)Main.maxTilesX * 0.15f))); Main.treeX[2] = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.75 - (double)((float)Main.maxTilesX * 0.15f)), (int)((double)Main.maxTilesX * 0.75 + (double)((float)Main.maxTilesX * 0.15f))); Main.treeStyle[0] = WorldGen.genRand.Next(6); Main.treeStyle[1] = WorldGen.genRand.Next(6); Main.treeStyle[2] = WorldGen.genRand.Next(6); Main.treeStyle[3] = WorldGen.genRand.Next(6); while (Main.treeStyle[1] == Main.treeStyle[0]) { Main.treeStyle[1] = WorldGen.genRand.Next(6); } while (Main.treeStyle[2] == Main.treeStyle[0] || Main.treeStyle[2] == Main.treeStyle[1]) { Main.treeStyle[2] = WorldGen.genRand.Next(6); } while (Main.treeStyle[3] == Main.treeStyle[0] || Main.treeStyle[3] == Main.treeStyle[1] || Main.treeStyle[3] == Main.treeStyle[2]) { Main.treeStyle[3] = WorldGen.genRand.Next(6); } } } WorldGen.setCaveBacks(); WorldGen.worldSurfaceLow = num4; double num6 = num4; double num7 = num5; double num8 = num5; int num9 = 0; if (WorldGen.genRand.Next(2) == 0) { num9 = -1; } else { num9 = 1; } for (int i = 0; i < Main.maxTilesX; i++) { float num10 = (float)i / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[0], " ", (int)(num10 * 100f + 1f), "%" }); if (num4 < WorldGen.worldSurfaceLow) { WorldGen.worldSurfaceLow = num4; } if (num4 > num6) { num6 = num4; } if (num5 < num7) { num7 = num5; } if (num5 > num8) { num8 = num5; } if (num3 <= 0) { num2 = WorldGen.genRand.Next(0, 5); num3 = WorldGen.genRand.Next(5, 40); if (num2 == 0) { num3 *= (int)((double)WorldGen.genRand.Next(5, 30) * 0.2); } } num3--; if (num2 == 0) { while (WorldGen.genRand.Next(0, 7) == 0) { num4 += (double)WorldGen.genRand.Next(-1, 2); } } else { if (num2 == 1) { while (WorldGen.genRand.Next(0, 4) == 0) { num4 -= 1.0; } while (WorldGen.genRand.Next(0, 10) == 0) { num4 += 1.0; } } else { if (num2 == 2) { while (WorldGen.genRand.Next(0, 4) == 0) { num4 += 1.0; } while (WorldGen.genRand.Next(0, 10) == 0) { num4 -= 1.0; } } else { if (num2 == 3) { while (WorldGen.genRand.Next(0, 2) == 0) { num4 -= 1.0; } while (WorldGen.genRand.Next(0, 6) == 0) { num4 += 1.0; } } else { if (num2 == 4) { while (WorldGen.genRand.Next(0, 2) == 0) { num4 += 1.0; } while (WorldGen.genRand.Next(0, 5) == 0) { num4 -= 1.0; } } } } } } if (num4 < (double)Main.maxTilesY * 0.17) { num4 = (double)Main.maxTilesY * 0.17; num3 = 0; } else { if (num4 > (double)Main.maxTilesY * 0.3) { num4 = (double)Main.maxTilesY * 0.3; num3 = 0; } } if ((i < 275 || i > Main.maxTilesX - 275) && num4 > (double)Main.maxTilesY * 0.25) { num4 = (double)Main.maxTilesY * 0.25; num3 = 1; } while (WorldGen.genRand.Next(0, 3) == 0) { num5 += (double)WorldGen.genRand.Next(-2, 3); } if (num5 < num4 + (double)Main.maxTilesY * 0.05) { num5 += 1.0; } if (num5 > num4 + (double)Main.maxTilesY * 0.35) { num5 -= 1.0; } int num11 = 0; while ((double)num11 < num4) { Main.tile[i, num11].active(false); Main.tile[i, num11].frameX = -1; Main.tile[i, num11].frameY = -1; num11++; } for (int j = (int)num4; j < Main.maxTilesY; j++) { if ((double)j < num5) { Main.tile[i, j].active(true); Main.tile[i, j].type = 0; Main.tile[i, j].frameX = -1; Main.tile[i, j].frameY = -1; } else { Main.tile[i, j].active(true); Main.tile[i, j].type = 1; Main.tile[i, j].frameX = -1; Main.tile[i, j].frameY = -1; } } } Main.worldSurface = num6 + 25.0; Main.rockLayer = num8; double num12 = (double)((int)((Main.rockLayer - Main.worldSurface) / 6.0) * 6); Main.rockLayer = Main.worldSurface + num12; WorldGen.waterLine = (int)(Main.rockLayer + (double)Main.maxTilesY) / 2; WorldGen.waterLine += WorldGen.genRand.Next(-100, 20); WorldGen.lavaLine = WorldGen.waterLine + WorldGen.genRand.Next(50, 80); int num13 = 0; for (int k = 0; k < (int)((double)Main.maxTilesX * 0.0015); k++) { int[] array = new int[10]; int[] array2 = new int[10]; int num14 = WorldGen.genRand.Next(450, Main.maxTilesX - 450); int num15 = 0; for (int l = 0; l < 10; l++) { while (!Main.tile[num14, num15].active()) { num15++; } array[l] = num14; array2[l] = num15 - WorldGen.genRand.Next(11, 16); num14 += WorldGen.genRand.Next(5, 11); } for (int m = 0; m < 10; m++) { WorldGen.TileRunner(array[m], array2[m], (double)WorldGen.genRand.Next(5, 8), WorldGen.genRand.Next(6, 9), 0, true, -2f, -0.3f, false, true); WorldGen.TileRunner(array[m], array2[m], (double)WorldGen.genRand.Next(5, 8), WorldGen.genRand.Next(6, 9), 0, true, 2f, -0.3f, false, true); } } Main.statusText = Lang.gen[1]; int num16 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.0008), (int)((double)Main.maxTilesX * 0.0025)); num16 += 2; int[] array3 = new int[num16]; int[] array4 = new int[num16]; int num17 = 0; for (int n = 0; n < num16; n++) { int num18 = WorldGen.genRand.Next(Main.maxTilesX); while ((float)num18 > (float)Main.maxTilesX * 0.4f && (float)num18 < (float)Main.maxTilesX * 0.6f) { num18 = WorldGen.genRand.Next(Main.maxTilesX); } int num19 = WorldGen.genRand.Next(35, 90); if (n == 1) { float num20 = (float)(Main.maxTilesX / 4200); num19 += (int)((float)WorldGen.genRand.Next(20, 40) * num20); } if (WorldGen.genRand.Next(3) == 0) { num19 *= 2; } if (n == 1) { num19 *= 2; } int num21 = num18 - num19; num19 = WorldGen.genRand.Next(35, 90); if (WorldGen.genRand.Next(3) == 0) { num19 *= 2; } if (n == 1) { num19 *= 2; } int num22 = num18 + num19; if (num21 < 0) { num21 = 0; } if (num22 > Main.maxTilesX) { num22 = Main.maxTilesX; } if (n == 0) { num21 = 0; num22 = WorldGen.genRand.Next(260, 300); if (num9 == 1) { num22 += 40; } } else { if (n == 2) { num21 = Main.maxTilesX - WorldGen.genRand.Next(260, 300); num22 = Main.maxTilesX; if (num9 == -1) { num21 -= 40; } } } int num23 = WorldGen.genRand.Next(50, 100); for (int num24 = num21; num24 < num22; num24++) { if (WorldGen.genRand.Next(2) == 0) { num23 += WorldGen.genRand.Next(-1, 2); if (num23 < 50) { num23 = 50; } if (num23 > 100) { num23 = 100; } } int num25 = 0; while ((double)num25 < Main.worldSurface) { if (Main.tile[num24, num25].active()) { if (num24 == (num21 + num22) / 2 && WorldGen.genRand.Next(7) == 0) { array3[num17] = num24; array4[num17] = num25; num17++; } int num26 = num23; if (num24 - num21 < num26) { num26 = num24 - num21; } if (num22 - num24 < num26) { num26 = num22 - num24; } num26 += WorldGen.genRand.Next(5); for (int num27 = num25; num27 < num25 + num26; num27++) { if (num24 > num21 + WorldGen.genRand.Next(5) && num24 < num22 - WorldGen.genRand.Next(5)) { Main.tile[num24, num27].type = 53; } } break; } num25++; } } } for (int num28 = 0; num28 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 8E-06); num28++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)Main.worldSurface, (int)Main.rockLayer), (double)WorldGen.genRand.Next(15, 70), WorldGen.genRand.Next(20, 130), 53, false, 0f, 0f, false, true); } WorldGen.numMCaves = 0; Main.statusText = Lang.gen[2]; for (int num29 = 0; num29 < (int)((double)Main.maxTilesX * 0.0008); num29++) { int num30 = 0; bool flag = false; bool flag2 = false; int num31 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.25), (int)((double)Main.maxTilesX * 0.75)); while (!flag2) { flag2 = true; while (num31 > Main.maxTilesX / 2 - 100 && num31 < Main.maxTilesX / 2 + 100) { num31 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.25), (int)((double)Main.maxTilesX * 0.75)); } for (int num32 = 0; num32 < WorldGen.numMCaves; num32++) { if (num31 > WorldGen.mCaveX[num32] - 50 && num31 < WorldGen.mCaveX[num32] + 50) { num30++; flag2 = false; break; } } if (num30 >= 200) { flag = true; break; } } if (!flag) { int num33 = 0; while ((double)num33 < Main.worldSurface) { if (Main.tile[num31, num33].active()) { for (int num34 = num31 - 50; num34 < num31 + 50; num34++) { for (int num35 = num33 - 25; num35 < num33 + 25; num35++) { if (Main.tile[num34, num35].active() && (Main.tile[num34, num35].type == 53 || Main.tile[num34, num35].type == 151)) { flag = true; } } } if (!flag) { WorldGen.Mountinater(num31, num33); WorldGen.mCaveX[WorldGen.numMCaves] = num31; WorldGen.mCaveY[WorldGen.numMCaves] = num33; WorldGen.numMCaves++; break; } } num33++; } } } for (int num36 = 1; num36 < Main.maxTilesX - 1; num36++) { byte wall = 2; float num37 = (float)num36 / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[3], " ", (int)(num37 * 100f + 1f), "%" }); bool flag3 = false; num13 += WorldGen.genRand.Next(-1, 2); if (num13 < 0) { num13 = 0; } if (num13 > 10) { num13 = 10; } int num38 = 0; while ((double)num38 < Main.worldSurface + 10.0 && (double)num38 <= Main.worldSurface + (double)num13) { if (Main.tile[num36, num38].active()) { if (Main.tile[num36, num38].type == 147) { wall = 40; } else { wall = 2; } } if (flag3 && Main.tile[num36, num38].wall != 64) { Main.tile[num36, num38].wall = wall; } if (Main.tile[num36, num38].active() && Main.tile[num36 - 1, num38].active() && Main.tile[num36 + 1, num38].active() && Main.tile[num36, num38 + 1].active() && Main.tile[num36 - 1, num38 + 1].active() && Main.tile[num36 + 1, num38 + 1].active()) { flag3 = true; } num38++; } } Main.statusText = Lang.gen[4]; for (int num39 = 0; num39 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0002); num39++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next(0, (int)WorldGen.worldSurfaceLow + 1), (double)WorldGen.genRand.Next(4, 15), WorldGen.genRand.Next(5, 40), 1, false, 0f, 0f, false, true); } for (int num40 = 0; num40 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0002); num40++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)WorldGen.worldSurfaceLow, (int)num6 + 1), (double)WorldGen.genRand.Next(4, 10), WorldGen.genRand.Next(5, 30), 1, false, 0f, 0f, false, true); } for (int num41 = 0; num41 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0045); num41++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num6, (int)num8 + 1), (double)WorldGen.genRand.Next(2, 7), WorldGen.genRand.Next(2, 23), 1, false, 0f, 0f, false, true); } Main.statusText = Lang.gen[5]; for (int num42 = 0; num42 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.005); num42++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num7, Main.maxTilesY), (double)WorldGen.genRand.Next(2, 6), WorldGen.genRand.Next(2, 40), 0, false, 0f, 0f, false, true); } Main.statusText = Lang.gen[6]; for (int num43 = 0; num43 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 2E-05); num43++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next(0, (int)WorldGen.worldSurfaceLow), (double)WorldGen.genRand.Next(4, 14), WorldGen.genRand.Next(10, 50), 40, false, 0f, 0f, false, true); } for (int num44 = 0; num44 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 5E-05); num44++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)WorldGen.worldSurfaceLow, (int)num6 + 1), (double)WorldGen.genRand.Next(8, 14), WorldGen.genRand.Next(15, 45), 40, false, 0f, 0f, false, true); } for (int num45 = 0; num45 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 2E-05); num45++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num6, (int)num8 + 1), (double)WorldGen.genRand.Next(8, 15), WorldGen.genRand.Next(5, 50), 40, false, 0f, 0f, false, true); } for (int num46 = 5; num46 < Main.maxTilesX - 5; num46++) { int num47 = 1; while ((double)num47 < Main.worldSurface - 1.0) { if (Main.tile[num46, num47].active()) { for (int num48 = num47; num48 < num47 + 5; num48++) { if (Main.tile[num46, num48].type == 40) { Main.tile[num46, num48].type = 0; } } break; } num47++; } } int num49 = 0; for (int num50 = 0; num50 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0015); num50++) { float num51 = (float)((double)num50 / ((double)(Main.maxTilesX * Main.maxTilesY) * 0.0015)); Main.statusText = string.Concat(new object[] { Lang.gen[7], " ", (int)(num51 * 100f + 1f), "%" }); int type5 = -1; if (WorldGen.genRand.Next(5) == 0) { type5 = -2; } WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num6, Main.maxTilesY), (double)WorldGen.genRand.Next(2, 5), WorldGen.genRand.Next(2, 20), type5, false, 0f, 0f, false, true); WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num6, Main.maxTilesY), (double)WorldGen.genRand.Next(8, 15), WorldGen.genRand.Next(7, 30), type5, false, 0f, 0f, false, true); } for (int num52 = 0; num52 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 3E-05); num52++) { float num53 = (float)((double)num52 / ((double)(Main.maxTilesX * Main.maxTilesY) * 3E-05)); Main.statusText = string.Concat(new object[] { Lang.gen[8], " ", (int)(num53 * 100f + 1f), "%" }); if (num8 <= (double)Main.maxTilesY) { int type6 = -1; if (WorldGen.genRand.Next(6) == 0) { type6 = -2; } WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)WorldGen.worldSurfaceLow, (int)num8 + 1), (double)WorldGen.genRand.Next(5, 15), WorldGen.genRand.Next(30, 200), type6, false, 0f, 0f, false, true); } } for (int num54 = 0; num54 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.00013); num54++) { float num55 = (float)((double)num54 / ((double)(Main.maxTilesX * Main.maxTilesY) * 0.00013)); Main.statusText = string.Concat(new object[] { Lang.gen[9], " ", (int)(num55 * 100f + 1f), "%" }); if (num8 <= (double)Main.maxTilesY) { int type7 = -1; if (WorldGen.genRand.Next(10) == 0) { type7 = -2; } WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num8, Main.maxTilesY), (double)WorldGen.genRand.Next(6, 20), WorldGen.genRand.Next(50, 300), type7, false, 0f, 0f, false, true); } } Main.statusText = Lang.gen[10]; for (int num56 = 0; num56 < (int)((double)Main.maxTilesX * 0.0025); num56++) { num49 = WorldGen.genRand.Next(0, Main.maxTilesX); int num57 = 0; while ((double)num57 < num6) { if (Main.tile[num49, num57].active()) { WorldGen.TileRunner(num49, num57, (double)WorldGen.genRand.Next(3, 6), WorldGen.genRand.Next(5, 50), -1, false, (float)WorldGen.genRand.Next(-10, 11) * 0.1f, 1f, false, true); break; } num57++; } } for (int num58 = 0; num58 < (int)((double)Main.maxTilesX * 0.0007); num58++) { num49 = WorldGen.genRand.Next(0, Main.maxTilesX); int num59 = 0; while ((double)num59 < num6) { if (Main.tile[num49, num59].active()) { WorldGen.TileRunner(num49, num59, (double)WorldGen.genRand.Next(10, 15), WorldGen.genRand.Next(50, 130), -1, false, (float)WorldGen.genRand.Next(-10, 11) * 0.1f, 2f, false, true); break; } num59++; } } for (int num60 = 0; num60 < (int)((double)Main.maxTilesX * 0.0003); num60++) { num49 = WorldGen.genRand.Next(0, Main.maxTilesX); int num61 = 0; while ((double)num61 < num6) { if (Main.tile[num49, num61].active()) { WorldGen.TileRunner(num49, num61, (double)WorldGen.genRand.Next(12, 25), WorldGen.genRand.Next(150, 500), -1, false, (float)WorldGen.genRand.Next(-10, 11) * 0.1f, 4f, false, true); WorldGen.TileRunner(num49, num61, (double)WorldGen.genRand.Next(8, 17), WorldGen.genRand.Next(60, 200), -1, false, (float)WorldGen.genRand.Next(-10, 11) * 0.1f, 2f, false, true); WorldGen.TileRunner(num49, num61, (double)WorldGen.genRand.Next(5, 13), WorldGen.genRand.Next(40, 170), -1, false, (float)WorldGen.genRand.Next(-10, 11) * 0.1f, 2f, false, true); break; } num61++; } } for (int num62 = 0; num62 < (int)((double)Main.maxTilesX * 0.0004); num62++) { num49 = WorldGen.genRand.Next(0, Main.maxTilesX); int num63 = 0; while ((double)num63 < num6) { if (Main.tile[num49, num63].active()) { WorldGen.TileRunner(num49, num63, (double)WorldGen.genRand.Next(7, 12), WorldGen.genRand.Next(150, 250), -1, false, 0f, 1f, true, true); break; } num63++; } } float num64 = (float)(Main.maxTilesX / 4200); int num65 = 0; while ((float)num65 < 5f * num64) { try { WorldGen.Caverer(WorldGen.genRand.Next(100, Main.maxTilesX - 100), WorldGen.genRand.Next((int)Main.rockLayer, Main.maxTilesY - 400)); } catch { } num65++; } int[] array5 = new int[Main.maxTilesY]; int[] array6 = new int[Main.maxTilesY]; int num66 = (int)Main.worldSurface; int num67 = 0; Main.statusText = Lang.gen[56]; int num68 = WorldGen.genRand.Next(Main.maxTilesX); if (num9 == 1) { while ((float)num68 < (float)Main.maxTilesX * 0.55f || (float)num68 > (float)Main.maxTilesX * 0.7f) { num68 = WorldGen.genRand.Next(Main.maxTilesX); } } else { while ((float)num68 < (float)Main.maxTilesX * 0.3f || (float)num68 > (float)Main.maxTilesX * 0.45f) { num68 = WorldGen.genRand.Next(Main.maxTilesX); } } int num69 = WorldGen.genRand.Next(50, 90); float num70 = (float)(Main.maxTilesX / 4200); num69 += (int)((float)WorldGen.genRand.Next(20, 40) * num70); num69 += (int)((float)WorldGen.genRand.Next(20, 40) * num70); int num71 = num68 - num69; num69 = WorldGen.genRand.Next(50, 90); num69 += (int)((float)WorldGen.genRand.Next(20, 40) * num70); num69 += (int)((float)WorldGen.genRand.Next(20, 40) * num70); int num72 = num68 + num69; if (num71 < 0) { num71 = 0; } if (num72 > Main.maxTilesX) { num72 = Main.maxTilesX; } int num73 = WorldGen.lavaLine - 60; for (int num74 = 0; num74 < WorldGen.lavaLine - 100; num74++) { num71 += WorldGen.genRand.Next(-4, 4); num72 += WorldGen.genRand.Next(-3, 5); array5[num74] = num71; array6[num74] = num72; for (int num75 = num71; num75 < num72; num75++) { if (num74 < num73) { num73 += WorldGen.genRand.Next(-2, 3); if (num73 < WorldGen.lavaLine - 140) { num73 = WorldGen.lavaLine - 140; } if (num73 > WorldGen.lavaLine - 100) { num73 = WorldGen.lavaLine - 100; } if (Main.tile[num75, num74].wall == 2) { Main.tile[num75, num74].wall = 40; } int type8 = (int)Main.tile[num75, num74].type; if (type8 == 0 || type8 == 2 || type8 == 23 || type8 == 40 || type8 == 53) { Main.tile[num75, num74].type = 147; } else { if (type8 == 1) { Main.tile[num75, num74].type = 161; } } } else { num73 += WorldGen.genRand.Next(1, 3); } } if (num67 < num73) { num67 = num73; } } for (int num76 = 0; num76 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.002); num76++) { int num77 = WorldGen.genRand.Next(1, Main.maxTilesX - 1); int num78 = WorldGen.genRand.Next((int)WorldGen.worldSurfaceLow, (int)num6); if (num78 >= Main.maxTilesY) { num78 = Main.maxTilesY - 2; } if (Main.tile[num77 - 1, num78].active() && Main.tile[num77 - 1, num78].type == 0 && Main.tile[num77 + 1, num78].active() && Main.tile[num77 + 1, num78].type == 0 && Main.tile[num77, num78 - 1].active() && Main.tile[num77, num78 - 1].type == 0 && Main.tile[num77, num78 + 1].active() && Main.tile[num77, num78 + 1].type == 0) { Main.tile[num77, num78].active(true); Main.tile[num77, num78].type = 2; } num77 = WorldGen.genRand.Next(1, Main.maxTilesX - 1); num78 = WorldGen.genRand.Next(0, (int)WorldGen.worldSurfaceLow); if (num78 >= Main.maxTilesY) { num78 = Main.maxTilesY - 2; } if (Main.tile[num77 - 1, num78].active() && Main.tile[num77 - 1, num78].type == 0 && Main.tile[num77 + 1, num78].active() && Main.tile[num77 + 1, num78].type == 0 && Main.tile[num77, num78 - 1].active() && Main.tile[num77, num78 - 1].type == 0 && Main.tile[num77, num78 + 1].active() && Main.tile[num77, num78 + 1].type == 0) { Main.tile[num77, num78].active(true); Main.tile[num77, num78].type = 2; } } Main.statusText = Lang.gen[11] + " 0%"; float num79 = (float)(Main.maxTilesX / 4200); num79 *= 1.5f; float num80 = (float)WorldGen.genRand.Next(15, 30) * 0.01f; int num81; if (num9 == -1) { num80 = 1f - num80; num81 = (int)((float)Main.maxTilesX * num80); } else { num81 = (int)((float)Main.maxTilesX * num80); } int num82 = (int)((double)Main.maxTilesY + Main.rockLayer) / 2; num81 += WorldGen.genRand.Next((int)(-100f * num79), (int)(101f * num79)); num82 += WorldGen.genRand.Next((int)(-100f * num79), (int)(101f * num79)); int num83 = num81; int num84 = num82; WorldGen.TileRunner(num81, num82, (double)WorldGen.genRand.Next((int)(250f * num79), (int)(500f * num79)), WorldGen.genRand.Next(50, 150), 59, false, (float)(num9 * 3), 0f, false, true); int num85 = 0; while ((float)num85 < 6f * num79) { WorldGen.TileRunner(num81 + WorldGen.genRand.Next(-(int)(125f * num79), (int)(125f * num79)), num82 + WorldGen.genRand.Next(-(int)(125f * num79), (int)(125f * num79)), (double)WorldGen.genRand.Next(3, 7), WorldGen.genRand.Next(3, 8), WorldGen.genRand.Next(63, 65), false, 0f, 0f, false, true); num85++; } WorldGen.mudWall = true; Main.statusText = Lang.gen[11] + " 15%"; num81 += WorldGen.genRand.Next((int)(-250f * num79), (int)(251f * num79)); num82 += WorldGen.genRand.Next((int)(-150f * num79), (int)(151f * num79)); int num86 = num81; int num87 = num82; int num88 = num81; int num89 = num82; WorldGen.TileRunner(num81, num82, (double)WorldGen.genRand.Next((int)(250f * num79), (int)(500f * num79)), WorldGen.genRand.Next(50, 150), 59, false, 0f, 0f, false, true); WorldGen.mudWall = false; int num90 = 0; while ((float)num90 < 6f * num79) { WorldGen.TileRunner(num81 + WorldGen.genRand.Next(-(int)(125f * num79), (int)(125f * num79)), num82 + WorldGen.genRand.Next(-(int)(125f * num79), (int)(125f * num79)), (double)WorldGen.genRand.Next(3, 7), WorldGen.genRand.Next(3, 8), WorldGen.genRand.Next(65, 67), false, 0f, 0f, false, true); num90++; } WorldGen.mudWall = true; Main.statusText = Lang.gen[11] + " 30%"; num81 += WorldGen.genRand.Next((int)(-400f * num79), (int)(401f * num79)); num82 += WorldGen.genRand.Next((int)(-150f * num79), (int)(151f * num79)); int num91 = num81; int num92 = num82; WorldGen.TileRunner(num81, num82, (double)WorldGen.genRand.Next((int)(250f * num79), (int)(500f * num79)), WorldGen.genRand.Next(50, 150), 59, false, (float)(num9 * -3), 0f, false, true); WorldGen.mudWall = false; int num93 = 0; while ((float)num93 < 6f * num79) { WorldGen.TileRunner(num81 + WorldGen.genRand.Next(-(int)(125f * num79), (int)(125f * num79)), num82 + WorldGen.genRand.Next(-(int)(125f * num79), (int)(125f * num79)), (double)WorldGen.genRand.Next(3, 7), WorldGen.genRand.Next(3, 8), WorldGen.genRand.Next(67, 69), false, 0f, 0f, false, true); num93++; } WorldGen.mudWall = true; Main.statusText = Lang.gen[11] + " 45%"; num81 = (num83 + num86 + num91) / 3; num82 = (num84 + num87 + num92) / 3; WorldGen.TileRunner(num81, num82, (double)WorldGen.genRand.Next((int)(400f * num79), (int)(600f * num79)), 10000, 59, false, 0f, -20f, true, true); WorldGen.JungleRunner(num81, num82); Main.statusText = Lang.gen[11] + " 60%"; WorldGen.mudWall = false; for (int num94 = 0; num94 < Main.maxTilesX / 4; num94++) { num81 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); num82 = WorldGen.genRand.Next((int)num4 + 10, Main.maxTilesY - 200); while (Main.tile[num81, num82].wall != 64 && Main.tile[num81, num82].wall != 15) { num81 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); num82 = WorldGen.genRand.Next((int)num4 + 10, Main.maxTilesY - 200); } WorldGen.MudWallRunner(num81, num82); } num81 = num88; num82 = num89; int num95 = 0; while ((float)num95 <= 20f * num79) { Main.statusText = string.Concat(new object[] { Lang.gen[11], " ", (int)(60f + (float)num95 / num79), "%" }); num81 += WorldGen.genRand.Next((int)(-5f * num79), (int)(6f * num79)); num82 += WorldGen.genRand.Next((int)(-5f * num79), (int)(6f * num79)); WorldGen.TileRunner(num81, num82, (double)WorldGen.genRand.Next(40, 100), WorldGen.genRand.Next(300, 500), 59, false, 0f, 0f, false, true); num95++; } int num96 = 0; while ((float)num96 <= 10f * num79) { Main.statusText = string.Concat(new object[] { Lang.gen[11], " ", (int)(80f + (float)num96 / num79 * 2f), "%" }); num81 = num88 + WorldGen.genRand.Next((int)(-600f * num79), (int)(600f * num79)); num82 = num89 + WorldGen.genRand.Next((int)(-200f * num79), (int)(200f * num79)); while (num81 < 1 || num81 >= Main.maxTilesX - 1 || num82 < 1 || num82 >= Main.maxTilesY - 1 || Main.tile[num81, num82].type != 59) { num81 = num88 + WorldGen.genRand.Next((int)(-600f * num79), (int)(600f * num79)); num82 = num89 + WorldGen.genRand.Next((int)(-200f * num79), (int)(200f * num79)); } int num97 = 0; while ((float)num97 < 8f * num79) { num81 += WorldGen.genRand.Next(-30, 31); num82 += WorldGen.genRand.Next(-30, 31); int type9 = -1; if (WorldGen.genRand.Next(7) == 0) { type9 = -2; } WorldGen.TileRunner(num81, num82, (double)WorldGen.genRand.Next(10, 20), WorldGen.genRand.Next(30, 70), type9, false, 0f, 0f, false, true); num97++; } num96++; } int num98 = 0; while ((float)num98 <= 300f * num79) { num81 = num88 + WorldGen.genRand.Next((int)(-600f * num79), (int)(600f * num79)); num82 = num89 + WorldGen.genRand.Next((int)(-200f * num79), (int)(200f * num79)); while (num81 < 1 || num81 >= Main.maxTilesX - 1 || num82 < 1 || num82 >= Main.maxTilesY - 1 || Main.tile[num81, num82].type != 59) { num81 = num88 + WorldGen.genRand.Next((int)(-600f * num79), (int)(600f * num79)); num82 = num89 + WorldGen.genRand.Next((int)(-200f * num79), (int)(200f * num79)); } WorldGen.TileRunner(num81, num82, (double)WorldGen.genRand.Next(4, 10), WorldGen.genRand.Next(5, 30), 1, false, 0f, 0f, false, true); if (WorldGen.genRand.Next(4) == 0) { int type10 = WorldGen.genRand.Next(63, 69); WorldGen.TileRunner(num81 + WorldGen.genRand.Next(-1, 2), num82 + WorldGen.genRand.Next(-1, 2), (double)WorldGen.genRand.Next(3, 7), WorldGen.genRand.Next(4, 8), type10, false, 0f, 0f, false, true); } num98++; } float num99 = (float)(Main.maxTilesX / 4200); float num100 = (float)WorldGen.genRand.Next((int)(5f * num99), (int)(8f * num99)); int num101 = 0; while ((float)num101 < num100) { bool flag4 = true; while (flag4) { num81 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); num82 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, Main.maxTilesY - 300); if (Main.tile[num81, num82].type == 59) { flag4 = false; int num102 = 100; for (int num103 = num81 - num102; num103 < num81 + num102; num103 += 5) { if (Main.tile[num81, num82].wall == 3 || Main.tile[num81, num82].wall == 83) { flag4 = true; break; } } if (!flag4) { WorldGen.HiveX[WorldGen.numHives] = num81; WorldGen.HiveY[WorldGen.numHives] = num82; WorldGen.numHives++; } } } num101++; } for (int num104 = 0; num104 < Main.maxTilesX; num104++) { for (int num105 = 0; num105 < Main.maxTilesY; num105++) { if (Main.tile[num104, num105].active()) { try { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num104, num105, 59, 60, true, 0); } catch { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num104, num105, 59, 60, false, 0); } } } } WorldGen.numIslandHouses = 0; WorldGen.houseCount = 0; Main.statusText = Lang.gen[12]; for (int num106 = 0; num106 < (int)((double)Main.maxTilesX * 0.0008); num106++) { int num107 = 0; bool flag5 = false; int num108 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.1), (int)((double)Main.maxTilesX * 0.9)); bool flag6 = false; while (!flag6) { flag6 = true; while (num108 > Main.maxTilesX / 2 - 80 && num108 < Main.maxTilesX / 2 + 80) { num108 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.1), (int)((double)Main.maxTilesX * 0.9)); } for (int num109 = 0; num109 < WorldGen.numIslandHouses; num109++) { if (num108 > WorldGen.fihX[num109] - 180 && num108 < WorldGen.fihX[num109] + 180) { num107++; flag6 = false; break; } } if (num107 >= 200) { flag5 = true; break; } } if (!flag5) { int num110 = 200; while ((double)num110 < Main.worldSurface) { if (Main.tile[num108, num110].active()) { int num111 = num108; int num112 = WorldGen.genRand.Next(90, num110 - 100); while ((double)num112 > WorldGen.worldSurfaceLow - 50.0) { num112--; } WorldGen.CloudIsland(num111, num112); WorldGen.fihX[WorldGen.numIslandHouses] = num111; WorldGen.fihY[WorldGen.numIslandHouses] = num112; WorldGen.numIslandHouses++; break; } num110++; } } } Main.statusText = Lang.gen[13]; for (int num113 = 0; num113 < Main.maxTilesX / 500; num113++) { int num114 = 0; bool flag7 = true; while (flag7) { int num115 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.3), (int)((double)Main.maxTilesX * 0.7)); int num116 = WorldGen.genRand.Next((int)Main.rockLayer, Main.maxTilesY - 350); flag7 = false; int num117 = 60; for (int num118 = num115 - num117; num118 < num115 + num117; num118 += 3) { for (int num119 = num116 - num117; num119 < num116 + num117; num119 += 3) { if (Main.tile[num118, num119].type == 147 || Main.tile[num118, num119].type == 161 || Main.tile[num118, num119].type == 162) { flag7 = true; break; } } } if (!flag7) { WorldGen.ShroomPatch(num115, num116); } num114++; if (num114 > 100) { break; } } } for (int num120 = 0; num120 < Main.maxTilesX; num120++) { for (int num121 = (int)Main.worldSurface; num121 < Main.maxTilesY; num121++) { if (Main.tile[num120, num121].active()) { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num120, num121, 59, 70, false, 0); if (Main.tile[num120, num121].type == 70 && WorldGen.genRand.Next(20) == 0) { int num122; if (WorldGen.genRand.Next(5) == 0) { num122 = 2; } else { num122 = 1; } int num123 = WorldGen.genRand.Next(2, 6); int num124 = num121 - num123; bool flag8 = true; for (int num125 = num120 - num122; num125 <= num120 + num122; num125++) { if (Main.tile[num125, num124].active()) { flag8 = false; } if (Main.tileBrick[(int)Main.tile[num125, num124 - 1].type]) { flag8 = false; } if (Main.tileBrick[(int)Main.tile[num125, num124 + 1].type]) { flag8 = false; } } if (Main.tile[num120 - num122 - 1, num124].type == 190) { flag8 = false; } if (Main.tile[num120 + num122 + 1, num124].type == 190) { flag8 = false; } for (int num126 = num124; num126 < num121; num126++) { if (Main.tile[num120, num126].active()) { flag8 = false; } if (Main.tileBrick[(int)Main.tile[num120 - 1, num126].type]) { flag8 = false; } if (Main.tileBrick[(int)Main.tile[num120 + 1, num126].type]) { flag8 = false; } } if (flag8) { for (int num127 = num120 - num122; num127 <= num120 + num122; num127++) { WorldGen.PlaceTile(num127, num124, 190, true, true, -1, 0); } for (int num128 = num124; num128 < num121; num128++) { WorldGen.PlaceTile(num120, num128, 190, true, true, -1, 0); } } } } } } Main.statusText = Lang.gen[14]; for (int num129 = 0; num129 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.001); num129++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num7, Main.maxTilesY), (double)WorldGen.genRand.Next(2, 6), WorldGen.genRand.Next(2, 40), 59, false, 0f, 0f, false, true); } Main.statusText = Lang.gen[15]; for (int num130 = 0; num130 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0001); num130++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num8, Main.maxTilesY), (double)WorldGen.genRand.Next(5, 12), WorldGen.genRand.Next(15, 50), 123, false, 0f, 0f, false, true); } for (int num131 = 0; num131 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0005); num131++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num8, Main.maxTilesY), (double)WorldGen.genRand.Next(2, 5), WorldGen.genRand.Next(2, 5), 123, false, 0f, 0f, false, true); } Main.statusText = Lang.gen[16]; for (int num132 = 0; num132 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 6E-05); num132++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)WorldGen.worldSurfaceLow, (int)num6), (double)WorldGen.genRand.Next(3, 6), WorldGen.genRand.Next(2, 6), type, false, 0f, 0f, false, true); } for (int num133 = 0; num133 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 8E-05); num133++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num6, (int)num8), (double)WorldGen.genRand.Next(3, 7), WorldGen.genRand.Next(3, 7), type, false, 0f, 0f, false, true); } for (int num134 = 0; num134 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0002); num134++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num7, Main.maxTilesY), (double)WorldGen.genRand.Next(4, 9), WorldGen.genRand.Next(4, 8), type, false, 0f, 0f, false, true); } for (int num135 = 0; num135 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 3E-05); num135++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)WorldGen.worldSurfaceLow, (int)num6), (double)WorldGen.genRand.Next(3, 7), WorldGen.genRand.Next(2, 5), type2, false, 0f, 0f, false, true); } for (int num136 = 0; num136 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 8E-05); num136++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num6, (int)num8), (double)WorldGen.genRand.Next(3, 6), WorldGen.genRand.Next(3, 6), type2, false, 0f, 0f, false, true); } for (int num137 = 0; num137 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0002); num137++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num7, Main.maxTilesY), (double)WorldGen.genRand.Next(4, 9), WorldGen.genRand.Next(4, 8), type2, false, 0f, 0f, false, true); } for (int num138 = 0; num138 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 2.6E-05); num138++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num6, (int)num8), (double)WorldGen.genRand.Next(3, 6), WorldGen.genRand.Next(3, 6), type3, false, 0f, 0f, false, true); } for (int num139 = 0; num139 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.00015); num139++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num7, Main.maxTilesY), (double)WorldGen.genRand.Next(4, 9), WorldGen.genRand.Next(4, 8), type3, false, 0f, 0f, false, true); } for (int num140 = 0; num140 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.00017); num140++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next(0, (int)WorldGen.worldSurfaceLow), (double)WorldGen.genRand.Next(4, 9), WorldGen.genRand.Next(4, 8), type3, false, 0f, 0f, false, true); } for (int num141 = 0; num141 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.00012); num141++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num7, Main.maxTilesY), (double)WorldGen.genRand.Next(4, 8), WorldGen.genRand.Next(4, 8), type4, false, 0f, 0f, false, true); } for (int num142 = 0; num142 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.00012); num142++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next(0, (int)WorldGen.worldSurfaceLow - 20), (double)WorldGen.genRand.Next(4, 8), WorldGen.genRand.Next(4, 8), type4, false, 0f, 0f, false, true); } if (WorldGen.crimson) { for (int num143 = 0; num143 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 2E-05); num143++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num7, Main.maxTilesY), (double)WorldGen.genRand.Next(2, 4), WorldGen.genRand.Next(3, 6), 204, false, 0f, 0f, false, true); } } else { for (int num144 = 0; num144 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 2E-05); num144++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next((int)num7, Main.maxTilesY), (double)WorldGen.genRand.Next(2, 4), WorldGen.genRand.Next(3, 6), 22, false, 0f, 0f, false, true); } } Main.statusText = Lang.gen[17]; for (int num145 = 0; num145 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0006); num145++) { int num146 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); int num147 = WorldGen.genRand.Next((int)WorldGen.worldSurfaceLow, Main.maxTilesY - 20); if (num145 < WorldGen.numMCaves) { num146 = WorldGen.mCaveX[num145]; num147 = WorldGen.mCaveY[num145]; } if (!Main.tile[num146, num147].active()) { if ((double)num147 <= Main.worldSurface) { if (Main.tile[num146, num147].wall <= 0) { goto IL_3CC7; } } while (!Main.tile[num146, num147].active() && num147 > (int)WorldGen.worldSurfaceLow) { num147--; } num147++; int num148 = 1; if (WorldGen.genRand.Next(2) == 0) { num148 = -1; } while (!Main.tile[num146, num147].active() && num146 > 10 && num146 < Main.maxTilesX - 10) { num146 += num148; } num146 -= num148; if ((double)num147 > Main.worldSurface || Main.tile[num146, num147].wall > 0) { WorldGen.TileRunner(num146, num147, (double)WorldGen.genRand.Next(4, 11), WorldGen.genRand.Next(2, 4), 51, true, (float)num148, -1f, false, false); } } IL_3CC7:; } Main.statusText = Lang.gen[18] + " 0%"; int num149 = Main.maxTilesY - WorldGen.genRand.Next(150, 190); for (int num150 = 0; num150 < Main.maxTilesX; num150++) { num149 += WorldGen.genRand.Next(-3, 4); if (num149 < Main.maxTilesY - 190) { num149 = Main.maxTilesY - 190; } if (num149 > Main.maxTilesY - 160) { num149 = Main.maxTilesY - 160; } for (int num151 = num149 - 20 - WorldGen.genRand.Next(3); num151 < Main.maxTilesY; num151++) { if (num151 >= num149) { Main.tile[num150, num151].active(false); Main.tile[num150, num151].lava(false); Main.tile[num150, num151].liquid = 0; } else { Main.tile[num150, num151].type = 57; } } } int num152 = Main.maxTilesY - WorldGen.genRand.Next(40, 70); for (int num153 = 10; num153 < Main.maxTilesX - 10; num153++) { num152 += WorldGen.genRand.Next(-10, 11); if (num152 > Main.maxTilesY - 60) { num152 = Main.maxTilesY - 60; } if (num152 < Main.maxTilesY - 100) { num152 = Main.maxTilesY - 120; } for (int num154 = num152; num154 < Main.maxTilesY - 10; num154++) { if (!Main.tile[num153, num154].active()) { Main.tile[num153, num154].lava(true); Main.tile[num153, num154].liquid = 255; } } } for (int num155 = 0; num155 < Main.maxTilesX; num155++) { if (WorldGen.genRand.Next(50) == 0) { int num156 = Main.maxTilesY - 65; while (!Main.tile[num155, num156].active() && num156 > Main.maxTilesY - 135) { num156--; } WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), num156 + WorldGen.genRand.Next(20, 50), (double)WorldGen.genRand.Next(15, 20), 1000, 57, true, 0f, (float)WorldGen.genRand.Next(1, 3), true, true); } } Liquid.QuickWater(-2, -1, -1); for (int num157 = 0; num157 < Main.maxTilesX; num157++) { float num158 = (float)num157 / (float)(Main.maxTilesX - 1); Main.statusText = string.Concat(new object[] { Lang.gen[18], " ", (int)(num158 * 100f / 2f + 50f), "%" }); if (WorldGen.genRand.Next(13) == 0) { int num159 = Main.maxTilesY - 65; while ((Main.tile[num157, num159].liquid > 0 || Main.tile[num157, num159].active()) && num159 > Main.maxTilesY - 140) { num159--; } WorldGen.TileRunner(num157, num159 - WorldGen.genRand.Next(2, 5), (double)WorldGen.genRand.Next(5, 30), 1000, 57, true, 0f, (float)WorldGen.genRand.Next(1, 3), true, true); float num160 = (float)WorldGen.genRand.Next(1, 3); if (WorldGen.genRand.Next(3) == 0) { num160 *= 0.5f; } if (WorldGen.genRand.Next(2) == 0) { WorldGen.TileRunner(num157, num159 - WorldGen.genRand.Next(2, 5), (double)((int)((float)WorldGen.genRand.Next(5, 15) * num160)), (int)((float)WorldGen.genRand.Next(10, 15) * num160), 57, true, 1f, 0.3f, false, true); } if (WorldGen.genRand.Next(2) == 0) { num160 = (float)WorldGen.genRand.Next(1, 3); WorldGen.TileRunner(num157, num159 - WorldGen.genRand.Next(2, 5), (double)((int)((float)WorldGen.genRand.Next(5, 15) * num160)), (int)((float)WorldGen.genRand.Next(10, 15) * num160), 57, true, -1f, 0.3f, false, true); } WorldGen.TileRunner(num157 + WorldGen.genRand.Next(-10, 10), num159 + WorldGen.genRand.Next(-10, 10), (double)WorldGen.genRand.Next(5, 15), WorldGen.genRand.Next(5, 10), -2, false, (float)WorldGen.genRand.Next(-1, 3), (float)WorldGen.genRand.Next(-1, 3), false, true); if (WorldGen.genRand.Next(3) == 0) { WorldGen.TileRunner(num157 + WorldGen.genRand.Next(-10, 10), num159 + WorldGen.genRand.Next(-10, 10), (double)WorldGen.genRand.Next(10, 30), WorldGen.genRand.Next(10, 20), -2, false, (float)WorldGen.genRand.Next(-1, 3), (float)WorldGen.genRand.Next(-1, 3), false, true); } if (WorldGen.genRand.Next(5) == 0) { WorldGen.TileRunner(num157 + WorldGen.genRand.Next(-15, 15), num159 + WorldGen.genRand.Next(-15, 10), (double)WorldGen.genRand.Next(15, 30), WorldGen.genRand.Next(5, 20), -2, false, (float)WorldGen.genRand.Next(-1, 3), (float)WorldGen.genRand.Next(-1, 3), false, true); } } } for (int num161 = 0; num161 < Main.maxTilesX; num161++) { WorldGen.TileRunner(WorldGen.genRand.Next(20, Main.maxTilesX - 20), WorldGen.genRand.Next(Main.maxTilesY - 180, Main.maxTilesY - 10), (double)WorldGen.genRand.Next(2, 7), WorldGen.genRand.Next(2, 7), -2, false, 0f, 0f, false, true); } for (int num162 = 0; num162 < Main.maxTilesX; num162++) { if (!Main.tile[num162, Main.maxTilesY - 145].active()) { Main.tile[num162, Main.maxTilesY - 145].liquid = 255; Main.tile[num162, Main.maxTilesY - 145].lava(true); } if (!Main.tile[num162, Main.maxTilesY - 144].active()) { Main.tile[num162, Main.maxTilesY - 144].liquid = 255; Main.tile[num162, Main.maxTilesY - 144].lava(true); } } for (int num163 = 0; num163 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0008); num163++) { WorldGen.TileRunner(WorldGen.genRand.Next(0, Main.maxTilesX), WorldGen.genRand.Next(Main.maxTilesY - 140, Main.maxTilesY), (double)WorldGen.genRand.Next(2, 7), WorldGen.genRand.Next(3, 7), 58, false, 0f, 0f, false, true); } WorldGen.AddHellHouses(); int num164 = WorldGen.genRand.Next(2, (int)((double)Main.maxTilesX * 0.005)); for (int num165 = 0; num165 < num164; num165++) { float num166 = (float)num165 / (float)num164; Main.statusText = string.Concat(new object[] { Lang.gen[19], " ", (int)(num166 * 100f), "%" }); int num167 = WorldGen.genRand.Next(300, Main.maxTilesX - 300); while (num167 > Main.maxTilesX / 2 - 50 && num167 < Main.maxTilesX / 2 + 50) { num167 = WorldGen.genRand.Next(300, Main.maxTilesX - 300); } int num168 = (int)WorldGen.worldSurfaceLow - 20; while (!Main.tile[num167, num168].active()) { num168++; } WorldGen.Lakinater(num167, num168); } int x; if (num9 == -1) { x = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.05), (int)((double)Main.maxTilesX * 0.2)); num9 = -1; } else { x = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.8), (int)((double)Main.maxTilesX * 0.95)); num9 = 1; } int y = (int)((Main.worldSurface + Main.rockLayer) / 2.0) + WorldGen.genRand.Next(-200, 200); WorldGen.MakeDungeon(x, y, 41, 7); if (WorldGen.crimson) { int num169 = 0; while ((double)num169 < (double)Main.maxTilesX * 0.00045) { float num170 = (float)((double)num169 / ((double)Main.maxTilesX * 0.00045)); Main.statusText = string.Concat(new object[] { Lang.gen[72], " ", (int)(num170 * 100f), "%" }); bool flag9 = false; int num171 = 0; int num172 = 0; int num173 = 0; while (!flag9) { int num174 = 0; flag9 = true; int num175 = Main.maxTilesX / 2; int num176 = 200; if (num9 < 0) { num171 = WorldGen.genRand.Next(600, Main.maxTilesX - 320); } else { num171 = WorldGen.genRand.Next(320, Main.maxTilesX - 600); } num172 = num171 - WorldGen.genRand.Next(200) - 100; num173 = num171 + WorldGen.genRand.Next(200) + 100; if (num172 < 285) { num172 = 285; } if (num173 > Main.maxTilesX - 285) { num173 = Main.maxTilesX - 285; } if (num9 < 0 && num172 < 400) { num172 = 400; } else { if (num9 > 0 && num172 > Main.maxTilesX - 400) { num172 = Main.maxTilesX - 400; } } if (num171 > num175 - num176 && num171 < num175 + num176) { flag9 = false; } if (num172 > num175 - num176 && num172 < num175 + num176) { flag9 = false; } if (num173 > num175 - num176 && num173 < num175 + num176) { flag9 = false; } for (int num177 = num172; num177 < num173; num177++) { for (int num178 = 0; num178 < (int)Main.worldSurface; num178 += 5) { if (Main.tile[num177, num178].active() && Main.tileDungeon[(int)Main.tile[num177, num178].type]) { flag9 = false; break; } if (!flag9) { break; } } } if (num174 < 200 && WorldGen.JungleX > num172 && WorldGen.JungleX < num173) { num174++; flag9 = false; } } WorldGen.CrimStart(num171, (int)WorldGen.worldSurfaceLow - 10); for (int num179 = num172; num179 < num173; num179++) { int num180 = (int)WorldGen.worldSurfaceLow; while ((double)num180 < Main.worldSurface - 1.0) { if (Main.tile[num179, num180].active()) { int num181 = num180 + WorldGen.genRand.Next(10, 14); for (int num182 = num180; num182 < num181; num182++) { if ((Main.tile[num179, num182].type == 59 || Main.tile[num179, num182].type == 60) && num179 >= num172 + WorldGen.genRand.Next(5) && num179 < num173 - WorldGen.genRand.Next(5)) { Main.tile[num179, num182].type = 0; } } break; } num180++; } } double num183 = Main.worldSurface + 40.0; for (int num184 = num172; num184 < num173; num184++) { num183 += (double)WorldGen.genRand.Next(-2, 3); if (num183 < Main.worldSurface + 30.0) { num183 = Main.worldSurface + 30.0; } if (num183 > Main.worldSurface + 50.0) { num183 = Main.worldSurface + 50.0; } num49 = num184; bool flag10 = false; int num185 = (int)WorldGen.worldSurfaceLow; while ((double)num185 < num183) { if (Main.tile[num49, num185].active()) { if (Main.tile[num49, num185].type == 53 && num49 >= num172 + WorldGen.genRand.Next(5) && num49 <= num173 - WorldGen.genRand.Next(5)) { Main.tile[num49, num185].type = 234; } if (Main.tile[num49, num185].type == 0 && (double)num185 < Main.worldSurface - 1.0 && !flag10) { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num49, num185, 0, 199, true, 0); } flag10 = true; if (Main.tile[num49, num185].type == 1 && num49 >= num172 + WorldGen.genRand.Next(5) && num49 <= num173 - WorldGen.genRand.Next(5)) { Main.tile[num49, num185].type = 203; } if (Main.tile[num49, num185].type == 2) { Main.tile[num49, num185].type = 199; } if (Main.tile[num49, num185].type == 161) { Main.tile[num49, num185].type = 200; } } num185++; } } int num186 = WorldGen.genRand.Next(10, 15); for (int num187 = 0; num187 < num186; num187++) { int num188 = 0; bool flag11 = false; int num189 = 0; while (!flag11) { num188++; int num190 = WorldGen.genRand.Next(num172 - num189, num173 + num189); int num191 = WorldGen.genRand.Next((int)(Main.worldSurface - (double)(num189 / 2)), (int)(Main.worldSurface + 100.0 + (double)num189)); if (num188 > 100) { num189++; num188 = 0; } if (!Main.tile[num190, num191].active()) { while (!Main.tile[num190, num191].active()) { num191++; } num191--; } else { while (Main.tile[num190, num191].active() && (double)num191 > Main.worldSurface) { num191--; } } if (num189 > 10 || (Main.tile[num190, num191 + 1].active() && Main.tile[num190, num191 + 1].type == 203)) { WorldGen.Place3x2(num190, num191, 26, 1); if (Main.tile[num190, num191].type == 26) { flag11 = true; } } if (num189 > 100) { flag11 = true; } } } num169++; } } else { int num192 = 0; while ((double)num192 < (double)Main.maxTilesX * 0.00045) { float num193 = (float)((double)num192 / ((double)Main.maxTilesX * 0.00045)); Main.statusText = string.Concat(new object[] { Lang.gen[20], " ", (int)(num193 * 100f), "%" }); bool flag12 = false; int num194 = 0; int num195 = 0; int num196 = 0; while (!flag12) { int num197 = 0; flag12 = true; int num198 = Main.maxTilesX / 2; int num199 = 200; num194 = WorldGen.genRand.Next(320, Main.maxTilesX - 320); num195 = num194 - WorldGen.genRand.Next(200) - 100; num196 = num194 + WorldGen.genRand.Next(200) + 100; if (num195 < 285) { num195 = 285; } if (num196 > Main.maxTilesX - 285) { num196 = Main.maxTilesX - 285; } if (num194 > num198 - num199 && num194 < num198 + num199) { flag12 = false; } if (num195 > num198 - num199 && num195 < num198 + num199) { flag12 = false; } if (num196 > num198 - num199 && num196 < num198 + num199) { flag12 = false; } for (int num200 = num195; num200 < num196; num200++) { for (int num201 = 0; num201 < (int)Main.worldSurface; num201 += 5) { if (Main.tile[num200, num201].active() && Main.tileDungeon[(int)Main.tile[num200, num201].type]) { flag12 = false; break; } if (!flag12) { break; } } } if (num197 < 200 && WorldGen.JungleX > num195 && WorldGen.JungleX < num196) { num197++; flag12 = false; } } int num202 = 0; for (int num203 = num195; num203 < num196; num203++) { if (num202 > 0) { num202--; } if (num203 == num194 || num202 == 0) { int num204 = (int)WorldGen.worldSurfaceLow; while ((double)num204 < Main.worldSurface - 1.0) { if (Main.tile[num203, num204].active() || Main.tile[num203, num204].wall > 0) { if (num203 == num194) { num202 = 20; WorldGen.ChasmRunner(num203, num204, WorldGen.genRand.Next(150) + 150, true); break; } if (WorldGen.genRand.Next(35) == 0 && num202 == 0) { num202 = 30; bool makeOrb = true; WorldGen.ChasmRunner(num203, num204, WorldGen.genRand.Next(50) + 50, makeOrb); break; } break; } else { num204++; } } } int num205 = (int)WorldGen.worldSurfaceLow; while ((double)num205 < Main.worldSurface - 1.0) { if (Main.tile[num203, num205].active()) { int num206 = num205 + WorldGen.genRand.Next(10, 14); for (int num207 = num205; num207 < num206; num207++) { if ((Main.tile[num203, num207].type == 59 || Main.tile[num203, num207].type == 60) && num203 >= num195 + WorldGen.genRand.Next(5) && num203 < num196 - WorldGen.genRand.Next(5)) { Main.tile[num203, num207].type = 0; } } break; } num205++; } } double num208 = Main.worldSurface + 40.0; for (int num209 = num195; num209 < num196; num209++) { num208 += (double)WorldGen.genRand.Next(-2, 3); if (num208 < Main.worldSurface + 30.0) { num208 = Main.worldSurface + 30.0; } if (num208 > Main.worldSurface + 50.0) { num208 = Main.worldSurface + 50.0; } num49 = num209; bool flag13 = false; int num210 = (int)WorldGen.worldSurfaceLow; while ((double)num210 < num208) { if (Main.tile[num49, num210].active()) { if (Main.tile[num49, num210].type == 53 && num49 >= num195 + WorldGen.genRand.Next(5) && num49 <= num196 - WorldGen.genRand.Next(5)) { Main.tile[num49, num210].type = 112; } if (Main.tile[num49, num210].type == 0 && (double)num210 < Main.worldSurface - 1.0 && !flag13) { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num49, num210, 0, 23, true, 0); } flag13 = true; if (Main.tile[num49, num210].type == 1 && num49 >= num195 + WorldGen.genRand.Next(5) && num49 <= num196 - WorldGen.genRand.Next(5)) { Main.tile[num49, num210].type = 25; } if (Main.tile[num49, num210].type == 2) { Main.tile[num49, num210].type = 23; } if (Main.tile[num49, num210].type == 161) { Main.tile[num49, num210].type = 163; } } num210++; } } for (int num211 = num195; num211 < num196; num211++) { for (int num212 = 0; num212 < Main.maxTilesY - 50; num212++) { if (Main.tile[num211, num212].active() && Main.tile[num211, num212].type == 31) { int num213 = num211 - 13; int num214 = num211 + 13; int num215 = num212 - 13; int num216 = num212 + 13; for (int num217 = num213; num217 < num214; num217++) { if (num217 > 10 && num217 < Main.maxTilesX - 10) { for (int num218 = num215; num218 < num216; num218++) { if (Math.Abs(num217 - num211) + Math.Abs(num218 - num212) < 9 + WorldGen.genRand.Next(11) && WorldGen.genRand.Next(3) != 0 && Main.tile[num217, num218].type != 31) { Main.tile[num217, num218].active(true); Main.tile[num217, num218].type = 25; if (Math.Abs(num217 - num211) <= 1 && Math.Abs(num218 - num212) <= 1) { Main.tile[num217, num218].active(false); } } if (Main.tile[num217, num218].type != 31 && Math.Abs(num217 - num211) <= 2 + WorldGen.genRand.Next(3) && Math.Abs(num218 - num212) <= 2 + WorldGen.genRand.Next(3)) { Main.tile[num217, num218].active(false); } } } } } } } num192++; } } for (int num219 = num66; num219 < num67; num219++) { for (int num220 = array5[num219]; num220 < array6[num219]; num220++) { int type11 = (int)Main.tile[num220, num219].type; if (type11 == 123) { Main.tile[num220, num219].type = 224; } else { if (type11 == 59) { bool flag14 = true; int num221 = 3; for (int num222 = num220 - num221; num222 <= num220 + num221; num222++) { for (int num223 = num219 - num221; num223 <= num219 + num221; num223++) { if (Main.tile[num222, num223].type == 60 || Main.tile[num222, num223].type == 70 || Main.tile[num222, num223].type == 71 || Main.tile[num222, num223].type == 72) { flag14 = false; break; } } } if (flag14) { Main.tile[num220, num219].type = 224; } } else { if (type11 == 1) { Main.tile[num220, num219].type = 161; } } } } } Main.statusText = Lang.gen[21]; for (int num224 = 0; num224 < WorldGen.numMCaves; num224++) { int i2 = WorldGen.mCaveX[num224]; int j2 = WorldGen.mCaveY[num224]; WorldGen.CaveOpenater(i2, j2); WorldGen.Cavinator(i2, j2, WorldGen.genRand.Next(40, 50)); } int num225 = 0; int num226 = 0; int num227 = 20; int num228 = Main.maxTilesX - 20; Main.statusText = Lang.gen[22]; for (int num229 = 0; num229 < 2; num229++) { if (num229 == 0) { int num230 = 0; int num231 = WorldGen.genRand.Next(125, 200) + 50; if (num9 == 1) { num231 = 275; } int num232 = 0; float num233 = 1f; int num234 = 0; while (!Main.tile[num231 - 1, num234].active()) { num234++; } num225 = num234; num234 += WorldGen.genRand.Next(1, 5); for (int num235 = num231 - 1; num235 >= num230; num235--) { num232++; if (num232 < 3) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.2f; } else { if (num232 < 6) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.15f; } else { if (num232 < 9) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.1f; } else { if (num232 < 15) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.07f; } else { if (num232 < 50) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.05f; } else { if (num232 < 75) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.04f; } else { if (num232 < 100) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.03f; } else { if (num232 < 125) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.02f; } else { if (num232 < 150) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.01f; } else { if (num232 < 175) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.005f; } else { if (num232 < 200) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.001f; } else { if (num232 < 230) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.01f; } else { if (num232 < 235) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.05f; } else { if (num232 < 240) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.1f; } else { if (num232 < 245) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.05f; } else { if (num232 < 255) { num233 += (float)WorldGen.genRand.Next(10, 20) * 0.01f; } } } } } } } } } } } } } } } } if (num232 == 235) { num228 = num235; } if (num232 == 235) { num227 = num235; } int num236 = WorldGen.genRand.Next(15, 20); int num237 = 0; while ((float)num237 < (float)num234 + num233 + (float)num236) { if ((float)num237 < (float)num234 + num233 * 0.75f - 3f) { Main.tile[num235, num237].active(false); if (num237 > num234) { Main.tile[num235, num237].liquid = 255; } else { if (num237 == num234) { Main.tile[num235, num237].liquid = 127; } } } else { if (num237 > num234) { Main.tile[num235, num237].type = 53; Main.tile[num235, num237].active(true); } } Main.tile[num235, num237].wall = 0; num237++; } } } else { int num230 = Main.maxTilesX - WorldGen.genRand.Next(125, 200) - 50; int num231 = Main.maxTilesX; if (num9 == -1) { num230 = Main.maxTilesX - 275; } float num238 = 1f; int num239 = 0; int num240 = 0; while (!Main.tile[num230, num240].active()) { num240++; } num226 = num240; num240 += WorldGen.genRand.Next(1, 5); for (int num241 = num230; num241 < num231; num241++) { num239++; if (num239 < 3) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.2f; } else { if (num239 < 6) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.15f; } else { if (num239 < 9) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.1f; } else { if (num239 < 15) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.07f; } else { if (num239 < 50) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.05f; } else { if (num239 < 75) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.04f; } else { if (num239 < 100) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.03f; } else { if (num239 < 125) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.02f; } else { if (num239 < 150) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.01f; } else { if (num239 < 175) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.005f; } else { if (num239 < 200) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.001f; } else { if (num239 < 230) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.01f; } else { if (num239 < 235) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.05f; } else { if (num239 < 240) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.1f; } else { if (num239 < 245) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.05f; } else { if (num239 < 255) { num238 += (float)WorldGen.genRand.Next(10, 20) * 0.01f; } } } } } } } } } } } } } } } } if (num239 == 235) { num228 = num241; } int num242 = WorldGen.genRand.Next(15, 20); int num243 = 0; while ((float)num243 < (float)num240 + num238 + (float)num242) { if ((float)num243 < (float)num240 + num238 * 0.75f - 3f && (double)num243 < Main.worldSurface - 2.0) { Main.tile[num241, num243].active(false); if (num243 > num240) { Main.tile[num241, num243].liquid = 255; } else { if (num243 == num240) { Main.tile[num241, num243].liquid = 127; } } } else { if (num243 > num240) { Main.tile[num241, num243].type = 53; Main.tile[num241, num243].active(true); } } Main.tile[num241, num243].wall = 0; num243++; } } } } while (!Main.tile[num227, num225].active()) { num225++; } num225++; while (!Main.tile[num228, num226].active()) { num226++; } num226++; Main.statusText = Lang.gen[23]; for (int num244 = 63; num244 <= 68; num244++) { float num245 = 0f; if (num244 == 67) { num245 = (float)Main.maxTilesX * 0.5f; } else { if (num244 == 66) { num245 = (float)Main.maxTilesX * 0.45f; } else { if (num244 == 63) { num245 = (float)Main.maxTilesX * 0.3f; } else { if (num244 == 65) { num245 = (float)Main.maxTilesX * 0.25f; } else { if (num244 == 64) { num245 = (float)Main.maxTilesX * 0.1f; } else { if (num244 == 68) { num245 = (float)Main.maxTilesX * 0.05f; } } } } } } num245 *= 0.2f; int num246 = 0; while ((float)num246 < num245) { int num247 = WorldGen.genRand.Next(0, Main.maxTilesX); int num248 = WorldGen.genRand.Next((int)Main.worldSurface, Main.maxTilesY); while (Main.tile[num247, num248].type != 1) { num247 = WorldGen.genRand.Next(0, Main.maxTilesX); num248 = WorldGen.genRand.Next((int)Main.worldSurface, Main.maxTilesY); } WorldGen.TileRunner(num247, num248, (double)WorldGen.genRand.Next(2, 6), WorldGen.genRand.Next(3, 7), num244, false, 0f, 0f, false, true); num246++; } } for (int num249 = 0; num249 < 2; num249++) { int num250 = 1; int num251 = 5; int num252 = Main.maxTilesX - 5; if (num249 == 1) { num250 = -1; num251 = Main.maxTilesX - 5; num252 = 5; } for (int num253 = num251; num253 != num252; num253 += num250) { for (int num254 = 10; num254 < Main.maxTilesY - 10; num254++) { if (Main.tile[num253, num254].active() && Main.tile[num253, num254 + 1].active() && Main.tileSand[(int)Main.tile[num253, num254].type] && Main.tileSand[(int)Main.tile[num253, num254 + 1].type]) { byte type12 = Main.tile[num253, num254].type; int num255 = num253 + num250; int num256 = num254 + 1; if (!Main.tile[num255, num254].active() && !Main.tile[num255, num254 + 1].active()) { while (!Main.tile[num255, num256].active()) { num256++; } num256--; Main.tile[num253, num254].active(false); Main.tile[num255, num256].active(true); Main.tile[num255, num256].type = type12; } } } } } for (int num257 = 0; num257 < Main.maxTilesX; num257++) { float num258 = (float)num257 / (float)(Main.maxTilesX - 1); Main.statusText = string.Concat(new object[] { Lang.gen[24], " ", (int)(num258 * 100f), "%" }); for (int num259 = Main.maxTilesY - 5; num259 > 0; num259--) { if (Main.tile[num257, num259].active()) { if (Main.tile[num257, num259].type == 53) { int num260 = num259; while (!Main.tile[num257, num260 + 1].active()) { if (num260 >= Main.maxTilesY - 5) { break; } Main.tile[num257, num260 + 1].active(true); Main.tile[num257, num260 + 1].type = 53; num260++; } } else { if (Main.tile[num257, num259].type == 123) { int num261 = num259; while (!Main.tile[num257, num261 + 1].active()) { if (num261 >= Main.maxTilesY - 5) { break; } Main.tile[num257, num261 + 1].active(true); Main.tile[num257, num261 + 1].type = 123; Main.tile[num257, num261].active(false); num261++; } } else { if (Main.tile[num257, num259].type == 224) { int num262 = num259; while (!Main.tile[num257, num262 + 1].active()) { if (num262 >= Main.maxTilesY - 5) { break; } Main.tile[num257, num262 + 1].active(true); Main.tile[num257, num262 + 1].type = 224; Main.tile[num257, num262].active(false); num262++; } } else { if (Main.tile[num257, num259].type == 234) { int num263 = num259; while (!Main.tile[num257, num263 + 1].active()) { if (num263 >= Main.maxTilesY - 5) { break; } Main.tile[num257, num263 + 1].active(true); Main.tile[num257, num263 + 1].type = 234; Main.tile[num257, num263].active(false); num263++; } } else { if (Main.tile[num257, num259].type == 112) { int num264 = num259; while (!Main.tile[num257, num264 + 1].active() && num264 < Main.maxTilesY - 5) { Main.tile[num257, num264 + 1].active(true); Main.tile[num257, num264 + 1].type = 112; Main.tile[num257, num264].active(false); num264++; } } } } } } } } } for (int num265 = 3; num265 < Main.maxTilesX - 3; num265++) { float num266 = (float)num265 / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[25], " ", (int)(num266 * 100f + 1f), "%" }); bool flag15 = true; int num267 = 0; while ((double)num267 < Main.worldSurface) { if (flag15) { if (Main.tile[num265, num267].wall == 2 || Main.tile[num265, num267].wall == 40 || Main.tile[num265, num267].wall == 64) { Main.tile[num265, num267].wall = 0; } if (Main.tile[num265, num267].type != 53 && Main.tile[num265, num267].type != 112 && Main.tile[num265, num267].type != 234) { if (Main.tile[num265 - 1, num267].wall == 2 || Main.tile[num265 - 1, num267].wall == 40 || Main.tile[num265 - 1, num267].wall == 40) { Main.tile[num265 - 1, num267].wall = 0; } if ((Main.tile[num265 - 2, num267].wall == 2 || Main.tile[num265 - 2, num267].wall == 40 || Main.tile[num265 - 2, num267].wall == 40) && WorldGen.genRand.Next(2) == 0) { Main.tile[num265 - 2, num267].wall = 0; } if ((Main.tile[num265 - 3, num267].wall == 2 || Main.tile[num265 - 3, num267].wall == 40 || Main.tile[num265 - 3, num267].wall == 40) && WorldGen.genRand.Next(2) == 0) { Main.tile[num265 - 3, num267].wall = 0; } if (Main.tile[num265 + 1, num267].wall == 2 || Main.tile[num265 + 1, num267].wall == 40 || Main.tile[num265 + 1, num267].wall == 40) { Main.tile[num265 + 1, num267].wall = 0; } if ((Main.tile[num265 + 2, num267].wall == 2 || Main.tile[num265 + 2, num267].wall == 40 || Main.tile[num265 + 2, num267].wall == 40) && WorldGen.genRand.Next(2) == 0) { Main.tile[num265 + 2, num267].wall = 0; } if ((Main.tile[num265 + 3, num267].wall == 2 || Main.tile[num265 + 3, num267].wall == 40 || Main.tile[num265 + 3, num267].wall == 40) && WorldGen.genRand.Next(2) == 0) { Main.tile[num265 + 3, num267].wall = 0; } if (Main.tile[num265, num267].active()) { flag15 = false; } } } else { if (Main.tile[num265, num267].wall == 0 && Main.tile[num265, num267 + 1].wall == 0 && Main.tile[num265, num267 + 2].wall == 0 && Main.tile[num265, num267 + 3].wall == 0 && Main.tile[num265, num267 + 4].wall == 0 && Main.tile[num265 - 1, num267].wall == 0 && Main.tile[num265 + 1, num267].wall == 0 && Main.tile[num265 - 2, num267].wall == 0 && Main.tile[num265 + 2, num267].wall == 0 && !Main.tile[num265, num267].active() && !Main.tile[num265, num267 + 1].active() && !Main.tile[num265, num267 + 2].active() && !Main.tile[num265, num267 + 3].active()) { flag15 = true; } } num267++; } } for (int num268 = Main.maxTilesX - 5; num268 >= 5; num268--) { float num269 = (float)num268 / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[25], " ", (int)(num269 * 100f + 1f), "%" }); bool flag16 = true; int num270 = 0; while ((double)num270 < Main.worldSurface) { if (flag16) { if (Main.tile[num268, num270].wall == 2 || Main.tile[num268, num270].wall == 40 || Main.tile[num268, num270].wall == 64) { Main.tile[num268, num270].wall = 0; } if (Main.tile[num268, num270].type != 53) { if (Main.tile[num268 - 1, num270].wall == 2 || Main.tile[num268 - 1, num270].wall == 40 || Main.tile[num268 - 1, num270].wall == 40) { Main.tile[num268 - 1, num270].wall = 0; } if ((Main.tile[num268 - 2, num270].wall == 2 || Main.tile[num268 - 2, num270].wall == 40 || Main.tile[num268 - 2, num270].wall == 40) && WorldGen.genRand.Next(2) == 0) { Main.tile[num268 - 2, num270].wall = 0; } if ((Main.tile[num268 - 3, num270].wall == 2 || Main.tile[num268 - 3, num270].wall == 40 || Main.tile[num268 - 3, num270].wall == 40) && WorldGen.genRand.Next(2) == 0) { Main.tile[num268 - 3, num270].wall = 0; } if (Main.tile[num268 + 1, num270].wall == 2 || Main.tile[num268 + 1, num270].wall == 40 || Main.tile[num268 + 1, num270].wall == 40) { Main.tile[num268 + 1, num270].wall = 0; } if ((Main.tile[num268 + 2, num270].wall == 2 || Main.tile[num268 + 2, num270].wall == 40 || Main.tile[num268 + 2, num270].wall == 40) && WorldGen.genRand.Next(2) == 0) { Main.tile[num268 + 2, num270].wall = 0; } if ((Main.tile[num268 + 3, num270].wall == 2 || Main.tile[num268 + 3, num270].wall == 40 || Main.tile[num268 + 3, num270].wall == 40) && WorldGen.genRand.Next(2) == 0) { Main.tile[num268 + 3, num270].wall = 0; } if (Main.tile[num268, num270].active()) { flag16 = false; } } } else { if (Main.tile[num268, num270].wall == 0 && Main.tile[num268, num270 + 1].wall == 0 && Main.tile[num268, num270 + 2].wall == 0 && Main.tile[num268, num270 + 3].wall == 0 && Main.tile[num268, num270 + 4].wall == 0 && Main.tile[num268 - 1, num270].wall == 0 && Main.tile[num268 + 1, num270].wall == 0 && Main.tile[num268 - 2, num270].wall == 0 && Main.tile[num268 + 2, num270].wall == 0 && !Main.tile[num268, num270].active() && !Main.tile[num268, num270 + 1].active() && !Main.tile[num268, num270 + 2].active() && !Main.tile[num268, num270 + 3].active()) { flag16 = true; } } num270++; } } for (int num271 = 0; num271 < num17; num271++) { int num272 = array3[num271]; int num273 = array4[num271]; if (num272 > 300 && num272 < Main.maxTilesX - 300 && (num9 >= 0 || (double)num272 >= (double)WorldGen.dungeonX + (double)Main.maxTilesX * 0.15)) { if (num9 <= 0 || (double)num272 <= (double)WorldGen.dungeonX - (double)Main.maxTilesX * 0.15) { while (!Main.tile[num272, num273].active() && (double)num273 < Main.worldSurface) { num273++; } if ((double)num273 < Main.worldSurface && Main.tile[num272, num273].type == 53) { int num274 = Main.maxTilesX; for (int num275 = 0; num275 < num271; num275++) { int num276 = Math.Abs(num272 - array3[num275]); if (num276 < num274) { num274 = num276; } } if (num274 >= 250) { num273--; WorldGen.Pyramid(num272, num273); } } } } } for (int num277 = 0; num277 < Main.maxTilesX; num277++) { int num278 = WorldGen.genRand.Next(10, Main.maxTilesX - 10); int num279 = WorldGen.genRand.Next(10, (int)Main.worldSurface); if (Main.tile[num278, num279].wall == 2) { WorldGen.DirtyRockRunner(num278, num279); } } float num280 = (float)(Main.maxTilesX / 4200); int num281 = WorldGen.genRand.Next(0, (int)(3f * num280)); for (int num282 = 0; num282 < num281; num282++) { bool flag17 = false; int num283 = 0; while (!flag17) { num283++; if (num283 > 1000) { flag17 = true; } int num284 = WorldGen.genRand.Next(300, Main.maxTilesX - 300); if (num284 <= Main.maxTilesX / 2 - 100 || num284 >= Main.maxTilesX / 2 + 100) { int num285 = 0; while (!Main.tile[num284, num285].active() && (double)num285 < Main.worldSurface) { num285++; } if (Main.tile[num284, num285].type == 0) { num285--; if (num285 > 150) { bool flag18 = true; for (int num286 = num284 - 50; num286 < num284 + 50; num286++) { for (int num287 = num285 - 50; num287 < num285 + 50; num287++) { if (Main.tile[num286, num287].active()) { int type13 = (int)Main.tile[num286, num287].type; if (type13 == 41 || type13 == 43 || type13 == 44 || type13 == 189 || type13 == 196) { flag18 = false; } } } } if (flag18) { flag17 = WorldGen.GrowLivingTree(num284, num285); } } } } } } Main.tileSolid[192] = false; for (int num288 = 25; num288 < Main.maxTilesX - 25; num288++) { int num289 = 25; while ((double)num289 < Main.worldSurface) { if (Main.tile[num288, num289].type == 191 || Main.tile[num288, num289 - 1].type == 191 || Main.tile[num288 - 1, num289].type == 191 || Main.tile[num288 + 1, num289].type == 191 || Main.tile[num288, num289 + 1].type == 191) { bool flag19 = true; for (int num290 = num288 - 1; num290 <= num288 + 1; num290++) { for (int num291 = num289 - 1; num291 <= num289 + 1; num291++) { if (num290 != num288 && num291 != num289 && Main.tile[num290, num291].type != 191 && Main.tile[num290, num291].wall != 78) { flag19 = false; } } } if (flag19) { Main.tile[num288, num289].wall = 78; } } num289++; } } for (int num292 = 0; num292 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 2E-05); num292++) { float num293 = (float)((double)num292 / ((double)(Main.maxTilesX * Main.maxTilesY) * 2E-05)); Main.statusText = string.Concat(new object[] { Lang.gen[26], " ", (int)(num293 * 100f + 1f), "%" }); bool flag20 = false; int num294 = 0; while (!flag20) { int num295 = WorldGen.genRand.Next(1, Main.maxTilesX); int num296 = (int)(num6 + 20.0); int style = 0; if (WorldGen.crimson) { style = 1; } WorldGen.Place3x2(num295, num296, 26, style); if (Main.tile[num295, num296].type == 26) { flag20 = true; } else { num294++; if (num294 >= 10000) { flag20 = true; } } } } for (int num297 = 0; num297 < Main.maxTilesX; num297++) { num49 = num297; int num298 = (int)WorldGen.worldSurfaceLow; while ((double)num298 < Main.worldSurface - 1.0) { if (Main.tile[num49, num298].active()) { if (Main.tile[num49, num298].type == 60) { Main.tile[num49, num298 - 1].liquid = 255; Main.tile[num49, num298 - 2].liquid = 255; break; } break; } else { num298++; } } } for (int num299 = 400; num299 < Main.maxTilesX - 400; num299++) { num49 = num299; int num300 = (int)WorldGen.worldSurfaceLow; while ((double)num300 < Main.worldSurface - 1.0) { if (Main.tile[num49, num300].active()) { if (Main.tile[num49, num300].type == 53) { int num301 = num300; while ((double)num301 > WorldGen.worldSurfaceLow) { num301--; Main.tile[num49, num301].liquid = 0; } break; } break; } else { num300++; } } } Main.tileSolid[192] = true; Main.statusText = Lang.gen[70]; bool flag21 = true; while (flag21) { int num302 = WorldGen.genRand.Next((int)Main.rockLayer, Main.maxTilesY - 500); int num303; if (num9 < 0) { num303 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.6), (int)((double)Main.maxTilesX * 0.85)); } else { num303 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.15), (int)((double)Main.maxTilesX * 0.4)); } if (Main.tile[num303, num302].active() && Main.tile[num303, num302].type == 60) { flag21 = false; WorldGen.makeTemple(num303, num302); } } int num304 = 0; int[] array7 = new int[50]; int[] array8 = new int[50]; Main.statusText = Lang.gen[71]; for (int num305 = 0; num305 < WorldGen.numHives; num305++) { bool flag22 = false; int num306 = WorldGen.HiveX[num305]; int num307 = WorldGen.HiveY[num305]; int num308 = 150; for (int num309 = num306 - num308; num309 < num306 + num308; num309 += 10) { if (num309 > 0 && num309 <= Main.maxTilesX - 1) { for (int num310 = num307 - num308; num310 < num307 + num308; num310 += 10) { if (num310 > 0 && num310 <= Main.maxTilesY - 1) { if (Main.tile[num309, num310].active() && Main.tile[num309, num310].type == 226) { flag22 = true; break; } if (Main.tile[num309, num310].wall == 87 || Main.tile[num309, num310].wall == 3 || Main.tile[num309, num310].wall == 83) { flag22 = true; break; } } } } } if (!flag22) { int num311 = WorldGen.HiveX[num305]; int num312 = WorldGen.HiveY[num305]; int num313 = 0; int[] array9 = new int[10]; int[] array10 = new int[10]; Vector2 vector = new Vector2((float)num311, (float)num312); Vector2 vector2 = vector; int num314 = WorldGen.genRand.Next(2, 5); for (int num315 = 0; num315 < num314; num315++) { int num316 = WorldGen.genRand.Next(2, 5); for (int num317 = 0; num317 < num316; num317++) { vector2 = WorldGen.Hive((int)vector.X, (int)vector.Y); } vector = vector2; array9[num313] = (int)vector.X; array10[num313] = (int)vector.Y; num313++; } for (int num318 = 0; num318 < num313; num318++) { int num319 = array9[num318]; int num320 = array10[num318]; bool flag23 = false; int num321 = 1; if (WorldGen.genRand.Next(2) == 0) { num321 = -1; } while (!Main.tile[num319, num320].active() || !Main.tile[num319, num320 + 1].active() || !Main.tile[num319 + 1, num320].active() || !Main.tile[num319 + 1, num320 + 1].active()) { num319 += num321; if (Math.Abs(num319 - array9[num318]) > 50) { flag23 = true; break; } } if (!flag23) { num319 += num321; for (int num322 = num319 - 1; num322 <= num319 + 2; num322++) { for (int num323 = num320 - 1; num323 <= num320 + 2; num323++) { if (Main.tile[num322, num323].active() && Main.tile[num322, num323].type != 225) { flag23 = true; break; } } } if (!flag23) { for (int num324 = num319 - 1; num324 <= num319 + 2; num324++) { for (int num325 = num320 - 1; num325 <= num320 + 2; num325++) { if (num324 >= num319 && num324 <= num319 + 1 && num325 >= num320 && num325 <= num320 + 1) { Main.tile[num324, num325].active(false); Main.tile[num324, num325].liquid = 255; Main.tile[num324, num325].honey(true); } else { Main.tile[num324, num325].active(true); Main.tile[num324, num325].type = 225; } } } num321 *= -1; num320++; int num326 = 0; while ((num326 < 4 || WorldGen.SolidTile(num319, num320)) && num319 > 10 && num319 < Main.maxTilesX - 10) { num326++; num319 += num321; if (WorldGen.SolidTile(num319, num320)) { WorldGen.PoundTile(num319, num320); if (!Main.tile[num319, num320 + 1].active()) { Main.tile[num319, num320 + 1].active(true); Main.tile[num319, num320 + 1].type = 225; } } } } } } array7[num304] = (int)vector.X; array8[num304] = (int)vector.Y; num304++; int num327 = (int)vector.X; int num328 = (int)vector.Y; for (int num329 = num327 - 1; num329 <= num327 + 1; num329++) { for (int num330 = num328 - 2; num330 <= num328 + 1; num330++) { if (num330 != num328 + 1) { Main.tile[num329, num330].active(false); } else { Main.tile[num329, num330].active(true); Main.tile[num329, num330].type = 225; Main.tile[num329, num330].slope(0); Main.tile[num329, num330].halfBrick(false); } } } } } int num331 = WorldGen.genRand.Next(40, Main.maxTilesX - 40); int num332 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, Main.maxTilesY - 400); float num333 = (float)WorldGen.genRand.Next(7, 12); num333 *= (float)(Main.maxTilesX / 4200); int num334 = 0; while ((float)num334 < num333) { bool flag24 = true; while (flag24) { num331 = WorldGen.genRand.Next(40, Main.maxTilesX / 2 - 40); if (num9 < 0) { num331 += Main.maxTilesX / 2; } num332 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, Main.maxTilesY - 400); if (Main.tile[num331, num332].type == 60) { int num335 = 30; flag24 = false; for (int num336 = num331 - num335; num336 < num331 + num335; num336 += 3) { for (int num337 = num332 - num335; num337 < num332 + num335; num337 += 3) { if (Main.tile[num336, num337].active() && (Main.tile[num336, num337].type == 225 || Main.tile[num336, num337].type == 229 || Main.tile[num336, num337].type == 226 || Main.tile[num336, num337].type == 119 || Main.tile[num336, num337].type == 120)) { flag24 = false; } if (Main.tile[num336, num337].wall == 86 || Main.tile[num336, num337].wall == 87) { flag24 = false; } } } } if (!flag24) { int num338 = WorldGen.genRand.Next(2, 4); int num339 = WorldGen.genRand.Next(2, 4); int num340 = 0; if (num == 119) { num340 = 23; } else { if (num == 120) { num340 = 24; } else { if (num == 158) { num340 = 42; } else { if (num == 175) { num340 = 45; } else { if (num == 45) { num340 = 10; } } } } } for (int num341 = num331 - num338 - 1; num341 <= num331 + num338 + 1; num341++) { for (int num342 = num332 - num339 - 1; num342 <= num332 + num339 + 1; num342++) { Main.tile[num341, num342].active(true); Main.tile[num341, num342].type = (byte)num; Main.tile[num341, num342].liquid = 0; Main.tile[num341, num342].lava(false); } } for (int num343 = num331 - num338; num343 <= num331 + num338; num343++) { for (int num344 = num332 - num339; num344 <= num332 + num339; num344++) { Main.tile[num343, num344].active(false); Main.tile[num343, num344].wall = (byte)num340; } } bool flag25 = false; int num345 = 0; while (!flag25 && num345 < 100) { num345++; int num346 = WorldGen.genRand.Next(num331 - num338, num331 + num338 + 1); int num347 = WorldGen.genRand.Next(num332 - num339, num332 + num339 - 2); WorldGen.PlaceTile(num346, num347, 4, true, false, -1, 3); if (Main.tile[num346, num347].type == 4) { flag25 = true; } } for (int num348 = num331 - num338 - 1; num348 <= num331 + num338 + 1; num348++) { for (int num349 = num332 + num339 - 2; num349 <= num332 + num339; num349++) { Main.tile[num348, num349].active(false); } } for (int num350 = num331 - num338 - 1; num350 <= num331 + num338 + 1; num350++) { for (int num351 = num332 + num339 - 2; num351 <= num332 + num339 - 1; num351++) { Main.tile[num350, num351].active(false); } } for (int num352 = num331 - num338 - 1; num352 <= num331 + num338 + 1; num352++) { int num353 = 4; int num354 = num332 + num339 + 2; while (!Main.tile[num352, num354].active() && num354 < Main.maxTilesY && num353 > 0) { Main.tile[num352, num354].active(true); Main.tile[num352, num354].type = 59; num354++; num353--; } } num338 -= WorldGen.genRand.Next(1, 3); int num355 = num332 - num339 - 2; while (num338 > -1) { for (int num356 = num331 - num338 - 1; num356 <= num331 + num338 + 1; num356++) { Main.tile[num356, num355].active(true); Main.tile[num356, num355].type = (byte)num; } num338 -= WorldGen.genRand.Next(1, 3); num355--; } WorldGen.JChestX[WorldGen.numJChests] = num331; WorldGen.JChestY[WorldGen.numJChests] = num332; WorldGen.numJChests++; } } num334++; } Main.tileSolid[137] = false; for (int num357 = 20; num357 < Main.maxTilesX - 20; num357++) { float num358 = (float)num357 / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[60], " ", (int)(num358 * 100f + 1f), "%" }); for (int num359 = 20; num359 < Main.maxTilesY - 20; num359++) { if (!Main.tile[num357, num359 - 1].active() && Main.tile[num357, num359].type != 48 && Main.tile[num357, num359].type != 137 && Main.tile[num357, num359].type != 232 && Main.tile[num357, num359].type != 191 && Main.tile[num357, num359].type != 151) { if (WorldGen.SolidTile(num357, num359)) { if (!Main.tile[num357 - 1, num359].halfBrick() && !Main.tile[num357 + 1, num359].halfBrick() && Main.tile[num357 - 1, num359].slope() == 0 && Main.tile[num357 + 1, num359].slope() == 0) { if (WorldGen.SolidTile(num357, num359 + 1)) { if (!WorldGen.SolidTile(num357 - 1, num359) && !Main.tile[num357 - 1, num359 + 1].halfBrick() && WorldGen.SolidTile(num357 - 1, num359 + 1) && WorldGen.SolidTile(num357 + 1, num359) && !Main.tile[num357 + 1, num359 - 1].active()) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.SlopeTile(num357, num359, 2); } else { WorldGen.PoundTile(num357, num359); } } else { if (!WorldGen.SolidTile(num357 + 1, num359) && !Main.tile[num357 + 1, num359 + 1].halfBrick() && WorldGen.SolidTile(num357 + 1, num359 + 1) && WorldGen.SolidTile(num357 - 1, num359) && !Main.tile[num357 - 1, num359 - 1].active()) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.SlopeTile(num357, num359, 1); } else { WorldGen.PoundTile(num357, num359); } } else { if (WorldGen.SolidTile(num357 + 1, num359 + 1) && WorldGen.SolidTile(num357 - 1, num359 + 1) && !Main.tile[num357 + 1, num359].active() && !Main.tile[num357 - 1, num359].active()) { WorldGen.PoundTile(num357, num359); } } } if (WorldGen.SolidTile(num357, num359)) { if (WorldGen.SolidTile(num357 - 1, num359) && WorldGen.SolidTile(num357 + 1, num359 + 2) && !Main.tile[num357 + 1, num359].active() && !Main.tile[num357 + 1, num359 + 1].active() && !Main.tile[num357 - 1, num359 - 1].active()) { WorldGen.KillTile(num357, num359, false, false, false); } else { if (WorldGen.SolidTile(num357 + 1, num359) && WorldGen.SolidTile(num357 - 1, num359 + 2) && !Main.tile[num357 - 1, num359].active() && !Main.tile[num357 - 1, num359 + 1].active() && !Main.tile[num357 + 1, num359 - 1].active()) { WorldGen.KillTile(num357, num359, false, false, false); } else { if (!Main.tile[num357 - 1, num359 + 1].active() && !Main.tile[num357 - 1, num359].active() && WorldGen.SolidTile(num357 + 1, num359) && WorldGen.SolidTile(num357, num359 + 2)) { if (WorldGen.genRand.Next(5) == 0) { WorldGen.KillTile(num357, num359, false, false, false); } else { if (WorldGen.genRand.Next(5) == 0) { WorldGen.PoundTile(num357, num359); } else { WorldGen.SlopeTile(num357, num359, 2); } } } else { if (!Main.tile[num357 + 1, num359 + 1].active() && !Main.tile[num357 + 1, num359].active() && WorldGen.SolidTile(num357 - 1, num359) && WorldGen.SolidTile(num357, num359 + 2)) { if (WorldGen.genRand.Next(5) == 0) { WorldGen.KillTile(num357, num359, false, false, false); } else { if (WorldGen.genRand.Next(5) == 0) { WorldGen.PoundTile(num357, num359); } else { WorldGen.SlopeTile(num357, num359, 1); } } } } } } } } if (WorldGen.SolidTile(num357, num359) && !Main.tile[num357 - 1, num359].active() && !Main.tile[num357 + 1, num359].active()) { WorldGen.KillTile(num357, num359, false, false, false); } } } else { if (!Main.tile[num357, num359].active() && Main.tile[num357, num359 + 1].type != 151) { if (Main.tile[num357 + 1, num359].type != 190 && Main.tile[num357 + 1, num359].type != 48 && Main.tile[num357 + 1, num359].type != 232 && WorldGen.SolidTile(num357 - 1, num359 + 1) && WorldGen.SolidTile(num357 + 1, num359) && !Main.tile[num357 - 1, num359].active() && !Main.tile[num357 + 1, num359 - 1].active()) { WorldGen.PlaceTile(num357, num359, (int)Main.tile[num357, num359 + 1].type, false, false, -1, 0); if (WorldGen.genRand.Next(2) == 0) { WorldGen.SlopeTile(num357, num359, 2); } else { WorldGen.PoundTile(num357, num359); } } if (Main.tile[num357 - 1, num359].type != 190 && Main.tile[num357 - 1, num359].type != 48 && Main.tile[num357 - 1, num359].type != 232 && WorldGen.SolidTile(num357 + 1, num359 + 1) && WorldGen.SolidTile(num357 - 1, num359) && !Main.tile[num357 + 1, num359].active() && !Main.tile[num357 - 1, num359 - 1].active()) { WorldGen.PlaceTile(num357, num359, (int)Main.tile[num357, num359 + 1].type, false, false, -1, 0); if (WorldGen.genRand.Next(2) == 0) { WorldGen.SlopeTile(num357, num359, 1); } else { WorldGen.PoundTile(num357, num359); } } } } } } } for (int num360 = 20; num360 < Main.maxTilesX - 20; num360++) { for (int num361 = 20; num361 < Main.maxTilesY - 20; num361++) { if (WorldGen.genRand.Next(2) == 0 && !Main.tile[num360, num361 - 1].active() && Main.tile[num360, num361].type != 137 && Main.tile[num360, num361].type != 48 && Main.tile[num360, num361].type != 232 && Main.tile[num360, num361].type != 191 && Main.tile[num360, num361].type != 151 && Main.tile[num360, num361].type != 75 && Main.tile[num360, num361].type != 76 && WorldGen.SolidTile(num360, num361) && Main.tile[num360 - 1, num361].type != 137 && Main.tile[num360 + 1, num361].type != 137) { if (WorldGen.SolidTile(num360, num361 + 1) && WorldGen.SolidTile(num360 + 1, num361) && !Main.tile[num360 - 1, num361].active()) { WorldGen.SlopeTile(num360, num361, 2); } if (WorldGen.SolidTile(num360, num361 + 1) && WorldGen.SolidTile(num360 - 1, num361) && !Main.tile[num360 + 1, num361].active()) { WorldGen.SlopeTile(num360, num361, 1); } } if (Main.tile[num360, num361].slope() == 1 && !WorldGen.SolidTile(num360 - 1, num361)) { WorldGen.SlopeTile(num360, num361, 0); WorldGen.PoundTile(num360, num361); } if (Main.tile[num360, num361].slope() == 2 && !WorldGen.SolidTile(num360 + 1, num361)) { WorldGen.SlopeTile(num360, num361, 0); WorldGen.PoundTile(num360, num361); } } } for (int num362 = 20; num362 < Main.maxTilesX - 20; num362++) { for (int num363 = 20; num363 < Main.maxTilesY - 20; num363++) { if (Main.tile[num362, num363].slope() != 0 || Main.tile[num362, num363].halfBrick()) { if (!Main.tile[num362, num363 + 1].active()) { Main.tile[num362, num363].active(false); } if (Main.tile[num362 + 1, num363].type == 137 || Main.tile[num362 - 1, num363].type == 137) { Main.tile[num362, num363].active(false); } } } } Main.tileSolid[137] = true; Main.tileSolid[190] = false; Main.tileSolid[192] = false; Liquid.QuickWater(3, -1, -1); WorldGen.WaterCheck(); int num364 = 0; Liquid.quickSettle = true; while (num364 < 10) { int num365 = Liquid.numLiquid + LiquidBuffer.numLiquidBuffer; num364++; float num366 = 0f; while (Liquid.numLiquid > 0) { float num367 = (float)(num365 - (Liquid.numLiquid + LiquidBuffer.numLiquidBuffer)) / (float)num365; if (Liquid.numLiquid + LiquidBuffer.numLiquidBuffer > num365) { num365 = Liquid.numLiquid + LiquidBuffer.numLiquidBuffer; } if (num367 > num366) { num366 = num367; } else { num367 = num366; } if (num364 == 1) { Main.statusText = string.Concat(new object[] { Lang.gen[27], " ", (int)(num367 * 100f / 3f + 33f), "%" }); } int num368 = 10; if (num364 > num368) { } Liquid.UpdateLiquid(); } WorldGen.WaterCheck(); Main.statusText = string.Concat(new object[] { Lang.gen[27], " ", (int)((float)num364 * 10f / 3f + 66f), "%" }); } Liquid.quickSettle = false; Main.tileSolid[190] = true; for (int num369 = 20; num369 < Main.maxTilesX - 20; num369++) { float num370 = (float)num369 / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[69], " ", (int)(num370 * 50f + 1f), "%" }); for (int num371 = 20; num371 < Main.maxTilesY - 20; num371++) { if (WorldGen.SolidTile(num369, num371) && !Main.tile[num369 - 1, num371].active() && WorldGen.SolidTile(num369, num371 + 1) && !Main.tile[num369 + 1, num371].active() && (Main.tile[num369 - 1, num371].liquid > 0 || Main.tile[num369 + 1, num371].liquid > 0)) { bool flag26 = true; int num372 = Main.rand.Next(8, 20); int num373 = Main.rand.Next(8, 20); num372 = num371 - num372; num373 += num371; for (int num374 = num372; num374 <= num373; num374++) { if (Main.tile[num369, num374].halfBrick()) { flag26 = false; } } if ((Main.tile[num369, num371].type == 75 || Main.tile[num369, num371].type == 76) && WorldGen.genRand.Next(10) != 0) { flag26 = false; } if (flag26) { WorldGen.PoundTile(num369, num371); } } } } for (int num375 = 20; num375 < Main.maxTilesX - 20; num375++) { float num376 = (float)num375 / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[69], " ", (int)(num376 * 50f + 51f), "%" }); for (int num377 = 20; num377 < Main.maxTilesY - 20; num377++) { if (Main.tile[num375, num377].type != 48 && Main.tile[num375, num377].type != 232 && WorldGen.SolidTile(num375, num377) && WorldGen.SolidTile(num375, num377 + 1)) { if (!WorldGen.SolidTile(num375 + 1, num377) && Main.tile[num375 - 1, num377].halfBrick() && Main.tile[num375 - 2, num377].liquid > 0) { WorldGen.PoundTile(num375, num377); } if (!WorldGen.SolidTile(num375 - 1, num377) && Main.tile[num375 + 1, num377].halfBrick() && Main.tile[num375 + 2, num377].liquid > 0) { WorldGen.PoundTile(num375, num377); } } } } for (int num378 = 10; num378 < Main.maxTilesX - 10; num378++) { for (int num379 = (int)Main.worldSurface; num379 < Main.maxTilesY - 100; num379++) { if (Main.tile[num378, num379].liquid > 0 && !Main.tile[num378, num379].lava()) { WorldGen.MakeWateryIceThing(num378, num379); } } } Main.tileSolid[226] = false; Main.tileSolid[162] = false; float num380 = (float)(Main.maxTilesX / 4200); for (int num381 = 0; num381 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 2E-05); num381++) { float num382 = (float)((double)num381 / ((double)(Main.maxTilesX * Main.maxTilesY) * 2E-05)); Main.statusText = string.Concat(new object[] { Lang.gen[28], " ", (int)(num382 * 100f + 1f), "%" }); bool flag27 = false; int num383 = 0; while (!flag27) { if (WorldGen.AddLifeCrystal(WorldGen.genRand.Next(1, Main.maxTilesX), WorldGen.genRand.Next((int)(num6 + 20.0), Main.maxTilesY - 300))) { flag27 = true; } else { num383++; if (num383 >= 10000) { flag27 = true; } } } } Main.tileSolid[225] = false; int num384 = 0; int num385 = 0; while ((float)num385 < 82f * num380) { if (num384 > 41) { num384 = 0; } float num386 = (float)num385 / (200f * num380); Main.statusText = string.Concat(new object[] { Lang.gen[29], " ", (int)(num386 * 100f + 1f), "%" }); bool flag28 = false; int num387 = 0; while (!flag28) { int num388 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); int num389 = WorldGen.genRand.Next((int)(num6 + 20.0), Main.maxTilesY - 300); while (!Main.tile[num388, num389].active()) { num389++; } num389--; WorldGen.PlaceTile(num388, num389, 105, true, true, -1, num384); if (Main.tile[num388, num389].active() && Main.tile[num388, num389].type == 105) { flag28 = true; num384++; } else { num387++; if (num387 >= 10000) { flag28 = true; } } } num385++; } for (int num390 = 0; num390 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 1.6E-05); num390++) { float num391 = (float)((double)num390 / ((double)(Main.maxTilesX * Main.maxTilesY) * 1.6E-05)); Main.statusText = string.Concat(new object[] { Lang.gen[30], " ", (int)(num391 * 100f + 1f), "%" }); bool flag29 = false; int num392 = 0; while (!flag29) { int num393 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); int num394 = WorldGen.genRand.Next((int)(num6 + 20.0), Main.maxTilesY - 230); if ((float)num390 <= 3f * num380) { num394 = WorldGen.genRand.Next(Main.maxTilesY - 200, Main.maxTilesY - 50); } int num395 = 0; while (Main.wallDungeon[(int)Main.tile[num393, num394].wall]) { num395++; num393 = WorldGen.genRand.Next(1, Main.maxTilesX); num394 = WorldGen.genRand.Next((int)(num6 + 20.0), Main.maxTilesY - 230); if (num395 < 1000 && (float)num390 <= 3f * num380) { num394 = WorldGen.genRand.Next(Main.maxTilesY - 200, Main.maxTilesY - 50); } } if (WorldGen.AddBuriedChest(num393, num394, 0, false, -1)) { flag29 = true; if (WorldGen.genRand.Next(2) == 0) { int num396 = num394; while (Main.tile[num393, num396].type != 21 && num396 < Main.maxTilesY - 300) { num396++; } if (num394 < Main.maxTilesY - 300) { WorldGen.MineHouse(num393, num396); } } } num392++; if (num392 >= 1000) { flag29 = true; } } } for (int num397 = 0; num397 < (int)((double)Main.maxTilesX * 0.005); num397++) { float num398 = (float)((double)num397 / ((double)Main.maxTilesX * 0.005)); Main.statusText = string.Concat(new object[] { Lang.gen[31], " ", (int)(num398 * 100f + 1f), "%" }); bool flag30 = false; int num399 = 0; while (!flag30) { int num400 = WorldGen.genRand.Next(300, Main.maxTilesX - 300); int num401 = WorldGen.genRand.Next((int)WorldGen.worldSurfaceLow, (int)Main.worldSurface); bool flag31 = false; if (Main.tile[num400, num401].wall == 2 && !Main.tile[num400, num401].active()) { flag31 = true; } if (flag31 && WorldGen.AddBuriedChest(num400, num401, 0, true, -1)) { flag30 = true; } else { num399++; if (num399 >= 2000) { flag30 = true; } } } } int num402 = 0; for (int num403 = 0; num403 < WorldGen.numJChests; num403++) { float num404 = (float)(num403 / WorldGen.numJChests); Main.statusText = string.Concat(new object[] { Lang.gen[32], " ", (int)(num404 * 100f + 1f), "%" }); num402++; int contain = 211; if (num402 == 1) { contain = 211; } else { if (num402 == 2) { contain = 212; } else { if (num402 == 3) { contain = 213; } else { if (num402 == 4) { contain = 964; } } } } if (Main.rand.Next(50) == 0) { contain = 753; } if (num402 > 4) { num402 = 0; } if (!WorldGen.AddBuriedChest(WorldGen.JChestX[num403] + WorldGen.genRand.Next(2), WorldGen.JChestY[num403], contain, false, 10)) { for (int num405 = WorldGen.JChestX[num403]; num405 <= WorldGen.JChestX[num403] + 1; num405++) { for (int num406 = WorldGen.JChestY[num403]; num406 <= WorldGen.JChestY[num403] + 1; num406++) { WorldGen.KillTile(num405, num406, false, false, false); } } for (int num407 = WorldGen.JChestX[num403]; num407 <= WorldGen.JChestX[num403] + 1; num407++) { for (int num408 = WorldGen.JChestY[num403]; num408 <= WorldGen.JChestY[num403] + 3; num408++) { if (num408 < Main.maxTilesY) { Main.tile[num407, num408].slope(0); Main.tile[num407, num408].halfBrick(false); } } } WorldGen.AddBuriedChest(WorldGen.JChestX[num403], WorldGen.JChestY[num403], contain, false, 10); } } int num409 = 0; int num410 = 0; while ((float)num410 < 9f * num380) { float num411 = (float)num410 / (9f * num380); Main.statusText = string.Concat(new object[] { Lang.gen[33], " ", (int)(num411 * 100f + 1f), "%" }); num409++; int contain2; if (WorldGen.genRand.Next(15) == 0) { contain2 = 863; } else { if (num409 == 1) { contain2 = 186; } else { if (num409 == 2) { contain2 = 277; } else { if (num409 == 3) { contain2 = 859; } else { contain2 = 187; num409 = 0; } } } } bool flag32 = false; while (!flag32) { int num412 = WorldGen.genRand.Next(1, Main.maxTilesX); int num413 = WorldGen.genRand.Next(1, Main.maxTilesY - 200); while (Main.tile[num412, num413].liquid < 200 || Main.tile[num412, num413].lava()) { num412 = WorldGen.genRand.Next(1, Main.maxTilesX); num413 = WorldGen.genRand.Next(1, Main.maxTilesY - 200); } flag32 = WorldGen.AddBuriedChest(num412, num413, contain2, false, 17); } flag32 = false; while (!flag32) { int num414 = WorldGen.genRand.Next(1, Main.maxTilesX); int num415 = WorldGen.genRand.Next((int)Main.worldSurface, Main.maxTilesY - 200); while (Main.tile[num414, num415].liquid < 200 || Main.tile[num414, num415].lava()) { num414 = WorldGen.genRand.Next(1, Main.maxTilesX); num415 = WorldGen.genRand.Next(1, Main.maxTilesY - 200); } flag32 = WorldGen.AddBuriedChest(num414, num415, contain2, false, 17); } num410++; } WorldGen.maxTileCount = 3500; for (int num416 = 0; num416 < (int)((double)Main.maxTilesX * 0.005); num416++) { float num417 = (float)((double)num416 / ((double)Main.maxTilesX * 0.005)); Main.statusText = string.Concat(new object[] { Lang.gen[64], " ", (int)(num417 * 100f + 1f), "%" }); int num418 = 0; int x2 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); int y2 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, Main.maxTilesY - 230); int num419 = WorldGen.countTiles(x2, y2, false, true); while ((num419 >= 3500 || num419 < 500) && num418 < 500) { num418++; x2 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); y2 = WorldGen.genRand.Next((int)Main.rockLayer + 30, Main.maxTilesY - 230); num419 = WorldGen.countTiles(x2, y2, false, true); } if (num418 < 500) { WorldGen.spiderOut(x2, y2); } } Main.tileSolid[162] = true; WorldGen.maxTileCount = 300; for (int num420 = 0; num420 < (int)((double)Main.maxTilesX * 0.003); num420++) { float num421 = (float)((double)num420 / ((double)Main.maxTilesX * 0.003)); Main.statusText = string.Concat(new object[] { Lang.gen[62], " ", (int)(num421 * 100f + 1f), "%" }); int num422 = 0; int x3 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); int y3 = WorldGen.genRand.Next((int)Main.rockLayer + 30, Main.maxTilesY - 230); int num423 = WorldGen.countTiles(x3, y3, false, false); while ((num423 >= 300 || num423 < 50 || WorldGen.lavaCount > 0 || WorldGen.iceCount > 0 || WorldGen.rockCount == 0) && num422 < 1000) { num422++; x3 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); y3 = WorldGen.genRand.Next((int)Main.rockLayer + 30, Main.maxTilesY - 230); num423 = WorldGen.countTiles(x3, y3, false, false); } if (num422 < 1000) { WorldGen.gemCave(x3, y3); } } WorldGen.randMoss(); WorldGen.maxTileCount = 2500; for (int num424 = 0; num424 < (int)((double)Main.maxTilesX * 0.01); num424++) { float num425 = (float)((double)num424 / ((double)Main.maxTilesX * 0.01)); Main.statusText = string.Concat(new object[] { Lang.gen[61], " ", (int)(num425 * 100f + 1f), "%" }); int num426 = 0; int x4 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); int y4 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, WorldGen.waterLine); int num427 = WorldGen.countTiles(x4, y4, false, false); while ((num427 >= 2500 || num427 < 10 || WorldGen.lavaCount > 0 || WorldGen.iceCount > 0 || WorldGen.rockCount == 0) && num426 < 1000) { num426++; x4 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); y4 = WorldGen.genRand.Next((int)Main.rockLayer + 30, Main.maxTilesY - 230); num427 = WorldGen.countTiles(x4, y4, false, false); } if (num426 < 1000) { WorldGen.setMoss(x4, y4); WorldGen.mossCave(x4, y4); } } for (int num428 = 0; num428 < Main.maxTilesX; num428++) { int num429 = WorldGen.genRand.Next(50, Main.maxTilesX - 50); int num430 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, WorldGen.lavaLine); if (Main.tile[num429, num430].type == 1) { WorldGen.setMoss(num429, num430); Main.tile[num429, num430].type = WorldGen.mossTile; } } int num431 = (int)((double)Main.maxTilesX * 0.05); while (num431 > 0) { int num432 = WorldGen.genRand.Next(50, Main.maxTilesX - 50); int num433 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, WorldGen.lavaLine); if (Main.tile[num432, num433].type == 1 && (!Main.tile[num432 - 1, num433].active() || !Main.tile[num432 + 1, num433].active() || !Main.tile[num432, num433 - 1].active() || !Main.tile[num432, num433 + 1].active())) { WorldGen.setMoss(num432, num433); Main.tile[num432, num433].type = WorldGen.mossTile; num431--; } } for (int num434 = 0; num434 < Main.maxTilesX; num434++) { for (int num435 = 0; num435 < Main.maxTilesY; num435++) { if (Main.tile[num434, num435].active() && Main.tileMoss[(int)Main.tile[num434, num435].type]) { for (int num436 = 0; num436 < 4; num436++) { int num437 = num434; int num438 = num435; if (num436 == 0) { num437--; } if (num436 == 1) { num437++; } if (num436 == 2) { num438--; } if (num436 == 3) { num438++; } try { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num437, num438, 1, (int)Main.tile[num434, num435].type, true, 0); } catch { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num437, num438, 1, (int)Main.tile[num434, num435].type, false, 0); } } } } } Main.tileSolid[162] = false; Main.tileSolid[226] = true; WorldGen.templePart2(); Main.tileSolid[232] = false; WorldGen.maxTileCount = 1500; for (int num439 = 0; num439 < (int)((double)Main.maxTilesX * 0.04); num439++) { float num440 = (float)((double)num439 / ((double)Main.maxTilesX * 0.04)); Main.statusText = string.Concat(new object[] { Lang.gen[63], " ", (int)(num440 * 66f + 1f), "%" }); int num441 = 0; int x5 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); int y5 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, Main.maxTilesY - 220); int num442 = WorldGen.countTiles(x5, y5, false, true); while ((num442 >= 1500 || num442 < 10) && num441 < 500) { num441++; x5 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); y5 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, Main.maxTilesY - 220); num442 = WorldGen.countTiles(x5, y5, false, true); } if (num441 < 500) { int num443 = WorldGen.genRand.Next(2); if (WorldGen.iceCount > 0) { if (num443 == 0) { num443 = 40; } else { if (num443 == 1) { num443 = 71; } } } else { if (WorldGen.lavaCount > 0) { num443 = 79; } else { if (num443 == 0) { num443 = 59; } else { if (num443 == 1) { num443 = 61; } } } } WorldGen.wallOut(x5, y5, num443); } } WorldGen.maxTileCount = 1500; for (int num444 = 0; num444 < (int)((double)Main.maxTilesX * 0.02); num444++) { float num445 = (float)((double)num444 / ((double)Main.maxTilesX * 0.02)); Main.statusText = string.Concat(new object[] { Lang.gen[63], " ", (int)(num445 * 33f + 67f), "%" }); int num446 = 0; int num447 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); int num448 = WorldGen.genRand.Next((int)Main.worldSurface, WorldGen.lavaLine); int num449 = 0; if (Main.tile[num447, num448].wall == 64) { num449 = WorldGen.countTiles(num447, num448, true, false); } while ((num449 >= 1500 || num449 < 10) && num446 < 1000) { num446++; num447 = WorldGen.genRand.Next(200, Main.maxTilesX - 200); num448 = WorldGen.genRand.Next((int)Main.worldSurface, WorldGen.lavaLine); if (!Main.wallHouse[(int)Main.tile[num447, num448].wall]) { if (Main.tile[num447, num448].wall == 64) { num449 = WorldGen.countTiles(num447, num448, true, false); } else { num449 = 0; } } } if (num446 < 1000) { WorldGen.numWallOut2 = 0; WorldGen.wallOut2(num447, num448, 15); } } for (int num450 = 0; num450 < Main.maxTilesX; num450++) { for (int num451 = (int)Main.worldSurface - 1; num451 < Main.maxTilesY - 350; num451++) { if (WorldGen.genRand.Next(10) == 0) { WorldGen.GrowUndergroundTree(num450, num451); } } } for (int num452 = 0; num452 < WorldGen.numIslandHouses; num452++) { WorldGen.IslandHouse(WorldGen.fihX[num452], WorldGen.fihY[num452]); } for (int num453 = 0; num453 < (int)((double)Main.maxTilesX * 0.05); num453++) { float num454 = (float)((double)num453 / ((double)Main.maxTilesX * 0.05)); Main.statusText = string.Concat(new object[] { Lang.gen[34], " ", (int)(num454 * 100f + 1f), "%" }); for (int num455 = 0; num455 < 1000; num455++) { int num456 = Main.rand.Next(200, Main.maxTilesX - 200); int num457 = Main.rand.Next((int)Main.worldSurface, Main.maxTilesY - 300); if (Main.tile[num456, num457].wall == 0 && WorldGen.placeTrap(num456, num457, -1)) { break; } } } for (int num458 = 0; num458 < (int)((double)(Main.maxTilesX * Main.maxTilesY) * 0.0008); num458++) { float num459 = (float)((double)num458 / ((double)(Main.maxTilesX * Main.maxTilesY) * 0.0008)); Main.statusText = string.Concat(new object[] { Lang.gen[35], " ", (int)(num459 * 100f + 1f), "%" }); bool flag33 = false; int num460 = 0; while (!flag33) { int num461 = WorldGen.genRand.Next((int)num6, Main.maxTilesY - 10); if ((double)num459 > 0.93) { num461 = Main.maxTilesY - 150; } else { if ((double)num459 > 0.75) { num461 = (int)WorldGen.worldSurfaceLow; } } int num462 = WorldGen.genRand.Next(1, Main.maxTilesX); bool flag34 = false; for (int num463 = num461; num463 < Main.maxTilesY; num463++) { if (!flag34) { if (Main.tile[num462, num463].active() && Main.tileSolid[(int)Main.tile[num462, num463].type] && !Main.tile[num462, num463 - 1].lava()) { flag34 = true; } } else { int style2 = WorldGen.genRand.Next(0, 4); int num464 = 0; if (num463 < Main.maxTilesY - 5) { num464 = (int)Main.tile[num462, num463 + 1].type; } if (num464 == 147 || num464 == 161 || num464 == 162) { style2 = WorldGen.genRand.Next(4, 7); } if (num464 == 60) { style2 = WorldGen.genRand.Next(7, 10); } if (Main.wallDungeon[(int)Main.tile[num462, num463].wall]) { style2 = WorldGen.genRand.Next(10, 13); } if (num464 == 41 || num464 == 43 || num464 == 44) { style2 = WorldGen.genRand.Next(10, 13); } if (num464 == 22 || num464 == 23 || num464 == 25) { style2 = WorldGen.genRand.Next(16, 19); } if (num464 == 199 || num464 == 203 || num464 == 204 || num464 == 200) { style2 = WorldGen.genRand.Next(22, 25); } if (num464 == 226) { style2 = WorldGen.genRand.Next(28, 31); } if (num463 > Main.maxTilesY - 200) { style2 = WorldGen.genRand.Next(13, 16); } if (WorldGen.PlacePot(num462, num463, 28, style2)) { flag33 = true; break; } num460++; if (num460 >= 10000) { flag33 = true; break; } } } } } for (int num465 = 0; num465 < Main.maxTilesX / 200; num465++) { float num466 = (float)(num465 / (Main.maxTilesX / 200)); Main.statusText = string.Concat(new object[] { Lang.gen[36], " ", (int)(num466 * 100f + 1f), "%" }); bool flag35 = false; int num467 = 0; while (!flag35) { int num468 = WorldGen.genRand.Next(1, Main.maxTilesX); int num469 = WorldGen.genRand.Next(Main.maxTilesY - 250, Main.maxTilesY - 5); try { if (Main.tile[num468, num469].wall != 13) { if (Main.tile[num468, num469].wall != 14) { continue; } } while (!Main.tile[num468, num469].active()) { num469++; } num469--; WorldGen.PlaceTile(num468, num469, 77, false, false, -1, 0); if (Main.tile[num468, num469].type == 77) { flag35 = true; } else { num467++; if (num467 >= 10000) { flag35 = true; } } } catch { } } } Main.statusText = Lang.gen[37]; for (int num470 = 0; num470 < Main.maxTilesX; num470++) { num49 = num470; bool flag36 = true; int num471 = 0; while ((double)num471 < Main.worldSurface - 1.0) { if (Main.tile[num49, num471].active()) { if (flag36 && Main.tile[num49, num471].type == 0) { try { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num49, num471, 0, 2, true, 0); } catch { WorldGen.grassSpread = 0; WorldGen.SpreadGrass(num49, num471, 0, 2, false, 0); } } if ((double)num471 > num6) { break; } flag36 = false; } else { if (Main.tile[num49, num471].wall == 0) { flag36 = true; } } num471++; } } Main.tileSolid[190] = false; Main.tileSolid[196] = false; Main.tileSolid[189] = false; Main.tileSolid[202] = false; int num472 = 0; while ((double)num472 < (double)Main.maxTilesX * 0.06) { bool flag37 = false; while (!flag37) { int num473 = WorldGen.genRand.Next(25, Main.maxTilesX - 25); int num474 = WorldGen.genRand.Next((int)Main.worldSurface, Main.maxTilesY - 300); if (!Main.tile[num473, num474].active()) { int num475 = 186; while (!Main.tile[num473, num474 + 1].active() && num474 < Main.maxTilesY - 5) { num474++; } int num476 = WorldGen.genRand.Next(22); if (num476 >= 16 && num476 <= 22) { num476 = WorldGen.genRand.Next(22); } if ((Main.tile[num473, num474 + 1].type == 0 || Main.tile[num473, num474 + 1].type == 1 || Main.tileMoss[(int)Main.tile[num473, num474 + 1].type]) && WorldGen.genRand.Next(5) == 0) { num476 = WorldGen.genRand.Next(23, 29); num475 = 187; } if (num474 > Main.maxTilesY - 300 || Main.wallDungeon[(int)Main.tile[num473, num474].wall] || Main.tile[num473, num474 + 1].type == 30 || Main.tile[num473, num474 + 1].type == 19 || Main.tile[num473, num474 + 1].type == 25 || Main.tile[num473, num474 + 1].type == 203) { num476 = WorldGen.genRand.Next(7); num475 = 186; } if (Main.tile[num473, num474 + 1].type == 147 || Main.tile[num473, num474 + 1].type == 161 || Main.tile[num473, num474 + 1].type == 162) { num476 = WorldGen.genRand.Next(26, 32); num475 = 186; } if (Main.tile[num473, num474 + 1].type == 60) { num475 = 187; num476 = WorldGen.genRand.Next(6); } if ((Main.tile[num473, num474 + 1].type == 57 || Main.tile[num473, num474 + 1].type == 58) && WorldGen.genRand.Next(3) < 2) { num475 = 187; num476 = WorldGen.genRand.Next(6, 9); } if (Main.tile[num473, num474 + 1].type == 226) { num475 = 187; num476 = WorldGen.genRand.Next(18, 23); } if (Main.tile[num473, num474 + 1].type == 70) { num476 = WorldGen.genRand.Next(32, 35); num475 = 186; } if (num475 == 186 && num476 >= 7 && num476 <= 15 && WorldGen.genRand.Next(100) == 0) { num475 = 187; num476 = 17; } if (Main.wallDungeon[(int)Main.tile[num473, num474].wall] && WorldGen.genRand.Next(3) != 0) { flag37 = true; } else { WorldGen.PlaceTile(num473, num474, num475, true, false, -1, num476); if (Main.tile[num473, num474].type == 186 || Main.tile[num473, num474].type == 187) { flag37 = true; } if (flag37 && num475 == 186 && num476 <= 7) { int num477 = WorldGen.genRand.Next(1, 5); for (int num478 = 0; num478 < num477; num478++) { int num479 = num473 + WorldGen.genRand.Next(-10, 11); int num480 = num474 - WorldGen.genRand.Next(5); if (!Main.tile[num479, num480].active()) { while (!Main.tile[num479, num480 + 1].active() && num480 < Main.maxTilesY - 5) { num480++; } int x6 = WorldGen.genRand.Next(12, 36); WorldGen.PlaceSmallPile(num479, num480, x6, 0, 185); } } } } } } num472++; } int num481 = 0; while ((double)num481 < (double)Main.maxTilesX * 0.01) { bool flag38 = false; while (!flag38) { int num482 = WorldGen.genRand.Next(25, Main.maxTilesX - 25); int num483 = WorldGen.genRand.Next(Main.maxTilesY - 300, Main.maxTilesY - 10); if (!Main.tile[num482, num483].active()) { int num484 = 186; while (!Main.tile[num482, num483 + 1].active() && num483 < Main.maxTilesY - 5) { num483++; } int num485 = WorldGen.genRand.Next(22); if (num485 >= 16 && num485 <= 22) { num485 = WorldGen.genRand.Next(22); } if (num483 > Main.maxTilesY - 300 || Main.wallDungeon[(int)Main.tile[num482, num483].wall] || Main.tile[num482, num483 + 1].type == 30 || Main.tile[num482, num483 + 1].type == 19) { num485 = WorldGen.genRand.Next(7); } if ((Main.tile[num482, num483 + 1].type == 57 || Main.tile[num482, num483 + 1].type == 58) && WorldGen.genRand.Next(3) < 2) { num484 = 187; num485 = WorldGen.genRand.Next(6, 9); } if (Main.tile[num482, num483 + 1].type == 147 || Main.tile[num482, num483 + 1].type == 161 || Main.tile[num482, num483 + 1].type == 162) { num485 = WorldGen.genRand.Next(26, 32); } WorldGen.PlaceTile(num482, num483, num484, true, false, -1, num485); if (Main.tile[num482, num483].type == 186 || Main.tile[num482, num483].type == 187) { flag38 = true; } if (flag38 && num484 == 186 && num485 <= 7) { int num486 = WorldGen.genRand.Next(1, 5); for (int num487 = 0; num487 < num486; num487++) { int num488 = num482 + WorldGen.genRand.Next(-10, 11); int num489 = num483 - WorldGen.genRand.Next(5); if (!Main.tile[num488, num489].active()) { while (!Main.tile[num488, num489 + 1].active() && num489 < Main.maxTilesY - 5) { num489++; } int x7 = WorldGen.genRand.Next(12, 36); WorldGen.PlaceSmallPile(num488, num489, x7, 0, 185); } } } } } num481++; } int num490 = 0; while ((double)num490 < (double)Main.maxTilesX * 0.003) { bool flag39 = false; while (!flag39) { int num491 = 186; int num492 = WorldGen.genRand.Next(25, Main.maxTilesX - 25); int num493 = WorldGen.genRand.Next(10, (int)Main.worldSurface); if (!Main.tile[num492, num493].active()) { while (!Main.tile[num492, num493 + 1].active() && num493 < Main.maxTilesY - 5) { num493++; } int num494 = WorldGen.genRand.Next(7, 13); if (num493 > Main.maxTilesY - 300 || Main.wallDungeon[(int)Main.tile[num492, num493].wall] || Main.tile[num492, num493 + 1].type == 30 || Main.tile[num492, num493 + 1].type == 19 || Main.tile[num492, num493 + 1].type == 53 || Main.tile[num492, num493 + 1].type == 25 || Main.tile[num492, num493 + 1].type == 203) { num494 = -1; } if (Main.tile[num492, num493 + 1].type == 147 || Main.tile[num492, num493 + 1].type == 161 || Main.tile[num492, num493 + 1].type == 162) { num494 = WorldGen.genRand.Next(26, 32); } if (Main.tile[num492, num493 + 1].type == 2 || Main.tile[num492 - 1, num493 + 1].type == 2 || Main.tile[num492 + 1, num493 + 1].type == 2) { num491 = 187; num494 = WorldGen.genRand.Next(14, 17); } if (Main.tile[num492, num493 + 1].type == 151) { num491 = 186; num494 = WorldGen.genRand.Next(7); } if (num494 >= 0) { WorldGen.PlaceTile(num492, num493, num491, true, false, -1, num494); } if ((int)Main.tile[num492, num493].type == num491) { flag39 = true; } } } num490++; } int num495 = 0; while ((double)num495 < (double)Main.maxTilesX * 0.0035) { bool flag40 = false; while (!flag40) { int num496 = WorldGen.genRand.Next(25, Main.maxTilesX - 25); int num497 = WorldGen.genRand.Next(10, (int)Main.worldSurface); if (!Main.tile[num496, num497].active() && Main.tile[num496, num497].wall > 0) { int num498 = 186; while (!Main.tile[num496, num497 + 1].active() && num497 < Main.maxTilesY - 5) { num497++; } int num499 = WorldGen.genRand.Next(7, 13); if (num497 > Main.maxTilesY - 300 || Main.wallDungeon[(int)Main.tile[num496, num497].wall] || Main.tile[num496, num497 + 1].type == 30 || Main.tile[num496, num497 + 1].type == 19) { num499 = -1; } if (Main.tile[num496, num497 + 1].type == 25) { num499 = WorldGen.genRand.Next(7); } if (Main.tile[num496, num497 + 1].type == 147 || Main.tile[num496, num497 + 1].type == 161 || Main.tile[num496, num497 + 1].type == 162) { num499 = WorldGen.genRand.Next(26, 32); } if (Main.tile[num496, num497 + 1].type == 2 || Main.tile[num496 - 1, num497 + 1].type == 2 || Main.tile[num496 + 1, num497 + 1].type == 2) { num498 = 187; num499 = WorldGen.genRand.Next(14, 17); } if (Main.tile[num496, num497 + 1].type == 151) { num498 = 186; num499 = WorldGen.genRand.Next(7); } if (num499 >= 0) { WorldGen.PlaceTile(num496, num497, num498, true, false, -1, num499); } if ((int)Main.tile[num496, num497].type == num498) { flag40 = true; } if (flag40 && num499 <= 7) { int num500 = WorldGen.genRand.Next(1, 5); for (int num501 = 0; num501 < num500; num501++) { int num502 = num496 + WorldGen.genRand.Next(-10, 11); int num503 = num497 - WorldGen.genRand.Next(5); if (!Main.tile[num502, num503].active()) { while (!Main.tile[num502, num503 + 1].active() && num503 < Main.maxTilesY - 5) { num503++; } int x8 = WorldGen.genRand.Next(12, 36); WorldGen.PlaceSmallPile(num502, num503, x8, 0, 185); } } } } } num495++; } int num504 = 0; while ((double)num504 < (double)Main.maxTilesX * 0.6) { bool flag41 = false; while (!flag41) { int num505 = WorldGen.genRand.Next(25, Main.maxTilesX - 25); int num506 = WorldGen.genRand.Next((int)Main.worldSurface, Main.maxTilesY - 20); if (Main.tile[num505, num506].wall == 87 && WorldGen.genRand.Next(2) == 0) { num505 = WorldGen.genRand.Next(25, Main.maxTilesX - 25); num506 = WorldGen.genRand.Next((int)Main.worldSurface, Main.maxTilesY - 20); } if (!Main.tile[num505, num506].active()) { while (!Main.tile[num505, num506 + 1].active() && num506 < Main.maxTilesY - 5) { num506++; } int num507 = WorldGen.genRand.Next(2); int num508 = WorldGen.genRand.Next(36); if (num508 >= 28 && num508 <= 35) { num508 = WorldGen.genRand.Next(36); } if (num507 == 1) { num508 = WorldGen.genRand.Next(25); if (num508 >= 16 && num508 <= 24) { num508 = WorldGen.genRand.Next(25); } } if (num506 > Main.maxTilesY - 300) { if (num507 == 0) { num508 = WorldGen.genRand.Next(12, 28); } if (num507 == 1) { num508 = WorldGen.genRand.Next(6, 16); } } if (Main.wallDungeon[(int)Main.tile[num505, num506].wall] || Main.tile[num505, num506 + 1].type == 30 || Main.tile[num505, num506 + 1].type == 19 || Main.tile[num505, num506 + 1].type == 25 || Main.tile[num505, num506 + 1].type == 203 || Main.tile[num505, num506].wall == 87) { if (num507 == 0 && num508 < 12) { num508 += 12; } if (num507 == 1 && num508 < 6) { num508 += 6; } if (num507 == 1 && num508 >= 17) { num508 -= 10; } } if (Main.tile[num505, num506 + 1].type == 147 || Main.tile[num505, num506 + 1].type == 161 || Main.tile[num505, num506 + 1].type == 162) { if (num507 == 0 && num508 < 12) { num508 += 36; } if (num507 == 1 && num508 >= 20) { num508 += 6; } if (num507 == 1 && num508 < 6) { num508 += 25; } } if (Main.tile[num505, num506 + 1].type == 151) { if (num507 == 0) { num508 = WorldGen.genRand.Next(12, 28); } if (num507 == 1) { num508 = WorldGen.genRand.Next(12, 19); } } flag41 = ((Main.wallDungeon[(int)Main.tile[num505, num506].wall] && WorldGen.genRand.Next(3) != 0) || WorldGen.PlaceSmallPile(num505, num506, num508, num507, 185)); if (flag41 && num507 == 1 && num508 >= 6 && num508 <= 15) { int num509 = WorldGen.genRand.Next(1, 5); for (int num510 = 0; num510 < num509; num510++) { int num511 = num505 + WorldGen.genRand.Next(-10, 11); int num512 = num506 - WorldGen.genRand.Next(5); if (!Main.tile[num511, num512].active()) { while (!Main.tile[num511, num512 + 1].active() && num512 < Main.maxTilesY - 5) { num512++; } int x9 = WorldGen.genRand.Next(12, 36); WorldGen.PlaceSmallPile(num511, num512, x9, 0, 185); } } } } } num504++; } int num513 = 0; while ((float)num513 < (float)Main.maxTilesX * 0.02f) { bool flag42 = false; while (!flag42) { int num514 = WorldGen.genRand.Next(25, Main.maxTilesX - 25); int num515 = WorldGen.genRand.Next(15, (int)Main.worldSurface); if (!Main.tile[num514, num515].active()) { while (!Main.tile[num514, num515 + 1].active() && num515 < Main.maxTilesY - 5) { num515++; } int num516 = WorldGen.genRand.Next(2); int num517 = WorldGen.genRand.Next(11); if (num516 == 1) { num517 = WorldGen.genRand.Next(5); } if (Main.tile[num514, num515 + 1].type == 147 || Main.tile[num514, num515 + 1].type == 161 || Main.tile[num514, num515 + 1].type == 162) { if (num516 == 0 && num517 < 12) { num517 += 36; } if (num516 == 1 && num517 >= 20) { num517 += 6; } if (num516 == 1 && num517 < 6) { num517 += 25; } } if (Main.tile[num514, num515 + 1].type == 2 && num516 == 1) { num517 = WorldGen.genRand.Next(38, 41); } if (Main.tile[num514, num515 + 1].type == 151) { if (num516 == 0) { num517 = WorldGen.genRand.Next(12, 28); } if (num516 == 1) { num517 = WorldGen.genRand.Next(12, 19); } } if (!Main.wallDungeon[(int)Main.tile[num514, num515].wall] && Main.tile[num514, num515 + 1].type != 30 && Main.tile[num514, num515 + 1].type != 19 && Main.tile[num514, num515 + 1].type != 41 && Main.tile[num514, num515 + 1].type != 43 && Main.tile[num514, num515 + 1].type != 44 && Main.tile[num514, num515 + 1].type != 45 && Main.tile[num514, num515 + 1].type != 46 && Main.tile[num514, num515 + 1].type != 47 && Main.tile[num514, num515 + 1].type != 175 && Main.tile[num514, num515 + 1].type != 176 && Main.tile[num514, num515 + 1].type != 177 && Main.tile[num514, num515 + 1].type != 53 && Main.tile[num514, num515 + 1].type != 25 && Main.tile[num514, num515 + 1].type != 203) { flag42 = WorldGen.PlaceSmallPile(num514, num515, num517, num516, 185); } } } num513++; } int num518 = 0; while ((float)num518 < (float)Main.maxTilesX * 0.15f) { bool flag43 = false; while (!flag43) { int num519 = WorldGen.genRand.Next(25, Main.maxTilesX - 25); int num520 = WorldGen.genRand.Next(15, (int)Main.worldSurface); if (!Main.tile[num519, num520].active()) { if (Main.tile[num519, num520].wall != 2) { if (Main.tile[num519, num520].wall != 40) { continue; } } while (!Main.tile[num519, num520 + 1].active() && num520 < Main.maxTilesY - 5) { num520++; } int num521 = WorldGen.genRand.Next(2); int num522 = WorldGen.genRand.Next(11); if (num521 == 1) { num522 = WorldGen.genRand.Next(5); } if (Main.tile[num519, num520 + 1].type == 147 || Main.tile[num519, num520 + 1].type == 161 || Main.tile[num519, num520 + 1].type == 162) { if (num521 == 0 && num522 < 12) { num522 += 36; } if (num521 == 1 && num522 >= 20) { num522 += 6; } if (num521 == 1 && num522 < 6) { num522 += 25; } } if (Main.tile[num519, num520 + 1].type == 2 && num521 == 1) { num522 = WorldGen.genRand.Next(38, 41); } if (Main.tile[num519, num520 + 1].type == 151) { if (num521 == 0) { num522 = WorldGen.genRand.Next(12, 28); } if (num521 == 1) { num522 = WorldGen.genRand.Next(12, 19); } } if (!Main.wallDungeon[(int)Main.tile[num519, num520].wall] && Main.tile[num519, num520 + 1].type != 30 && Main.tile[num519, num520 + 1].type != 19 && Main.tile[num519, num520 + 1].type != 41 && Main.tile[num519, num520 + 1].type != 43 && Main.tile[num519, num520 + 1].type != 44 && Main.tile[num519, num520 + 1].type != 45 && Main.tile[num519, num520 + 1].type != 46 && Main.tile[num519, num520 + 1].type != 47 && Main.tile[num519, num520 + 1].type != 175 && Main.tile[num519, num520 + 1].type != 176 && Main.tile[num519, num520 + 1].type != 177 && Main.tile[num519, num520 + 1].type != 25 && Main.tile[num519, num520 + 1].type != 203) { flag43 = WorldGen.PlaceSmallPile(num519, num520, num522, num521, 185); } } } num518++; } Main.tileSolid[190] = true; Main.tileSolid[192] = true; Main.tileSolid[196] = true; Main.tileSolid[189] = true; Main.tileSolid[202] = true; Main.tileSolid[225] = true; Main.statusText = Lang.gen[38]; for (int num523 = 5; num523 < Main.maxTilesX - 5; num523++) { if (WorldGen.genRand.Next(8) == 0) { int num524 = 0; while ((double)num524 < Main.worldSurface - 1.0) { if (Main.tile[num523, num524].active() && Main.tile[num523, num524].type == 53 && !Main.tile[num523, num524 - 1].active() && Main.tile[num523, num524 - 1].wall == 0) { if (num523 < 250 || num523 > Main.maxTilesX - 250) { if (Main.tile[num523, num524 - 2].liquid == 255 && Main.tile[num523, num524 - 3].liquid == 255 && Main.tile[num523, num524 - 4].liquid == 255) { WorldGen.PlaceTile(num523, num524 - 1, 81, true, false, -1, 0); } } else { if (num523 > 400 && num523 < Main.maxTilesX - 400) { WorldGen.PlantCactus(num523, num524); } } } num524++; } } } int num525 = 5; bool flag44 = true; while (flag44) { int num526 = Main.maxTilesX / 2 + WorldGen.genRand.Next(-num525, num525 + 1); for (int num527 = 0; num527 < Main.maxTilesY; num527++) { if (Main.tile[num526, num527].active()) { Main.spawnTileX = num526; Main.spawnTileY = num527; break; } } flag44 = false; num525++; if ((double)Main.spawnTileY > Main.worldSurface) { flag44 = true; } if (Main.tile[Main.spawnTileX, Main.spawnTileY - 1].liquid > 0) { flag44 = true; } } int num528 = 10; while ((double)Main.spawnTileY > Main.worldSurface) { int num529 = WorldGen.genRand.Next(Main.maxTilesX / 2 - num528, Main.maxTilesX / 2 + num528); for (int num530 = 0; num530 < Main.maxTilesY; num530++) { if (Main.tile[num529, num530].active()) { Main.spawnTileX = num529; Main.spawnTileY = num530; break; } } num528++; } WorldGen.maxTileCount = 3500; for (int num531 = 50; num531 < Main.maxTilesX - 50; num531++) { int num532 = 0; while ((double)num532 < Main.worldSurface - 10.0) { if (WorldGen.genRand.Next(4) == 0) { bool flag45 = false; int num533 = -1; int num534 = -1; if (Main.tile[num531, num532].active() && Main.tile[num531, num532].type == 2 && (Main.tile[num531, num532].wall == 2 || Main.tile[num531, num532].wall == 63)) { for (int num535 = num531 - 1; num535 <= num531 + 1; num535++) { for (int num536 = num532 - 1; num536 <= num532 + 1; num536++) { if (Main.tile[num535, num536].wall == 0 && !WorldGen.SolidTile(num535, num536)) { flag45 = true; } } } if (flag45) { for (int num537 = num531 - 1; num537 <= num531 + 1; num537++) { for (int num538 = num532 - 1; num538 <= num532 + 1; num538++) { if ((Main.tile[num537, num538].wall == 2 || Main.tile[num537, num538].wall == 15) && !WorldGen.SolidTile(num537, num538)) { num533 = num537; num534 = num538; } } } } } if (flag45 && num533 > -1 && num534 > -1) { WorldGen.countDirtTiles(num533, num534); if (WorldGen.numTileCount < 3500) { try { WorldGen.numWallOut2 = 0; WorldGen.wallOut2(num533, num534, 63); } catch { } } } } num532++; } } for (int num539 = 5; num539 < Main.maxTilesX - 5; num539++) { int num540 = 10; while ((double)num540 < Main.worldSurface - 1.0) { if (Main.tile[num539, num540].wall == 63 && WorldGen.genRand.Next(10) == 0) { Main.tile[num539, num540].wall = 65; } if (Main.tile[num539, num540].active() && Main.tile[num539, num540].type == 0) { bool flag46 = false; for (int num541 = num539 - 1; num541 <= num539 + 1; num541++) { for (int num542 = num540 - 1; num542 <= num540 + 1; num542++) { if (Main.tile[num539, num540].wall == 63 || Main.tile[num539, num540].wall == 65) { flag46 = true; break; } } } if (flag46) { WorldGen.SpreadGrass(num539, num540, 0, 2, true, 0); } } num540++; } } int num543 = NPC.NewNPC(Main.spawnTileX * 16, Main.spawnTileY * 16, 22, 0); Main.npc[num543].homeTileX = Main.spawnTileX; Main.npc[num543].homeTileY = Main.spawnTileY; Main.npc[num543].direction = 1; Main.npc[num543].homeless = true; Main.statusText = Lang.gen[39]; int num544 = 0; while ((double)num544 < (double)Main.maxTilesX * 0.002) { int arg_E465_0 = Main.maxTilesX / 2; int num545 = WorldGen.genRand.Next(Main.maxTilesX); int num546 = num545 - WorldGen.genRand.Next(10) - 7; int num547 = num545 + WorldGen.genRand.Next(10) + 7; if (num546 < 0) { num546 = 0; } if (num547 > Main.maxTilesX - 1) { num547 = Main.maxTilesX - 1; } for (int num548 = num546; num548 < num547; num548++) { int num549 = 1; while ((double)num549 < Main.worldSurface - 1.0) { if (Main.tile[num548, num549].type == 2 && Main.tile[num548, num549].active() && !Main.tile[num548, num549 - 1].active()) { WorldGen.PlaceTile(num548, num549 - 1, 27, true, false, -1, 0); } if (Main.tile[num548, num549].active()) { break; } num549++; } } num544++; } Main.statusText = Lang.gen[40]; int num550 = 0; while ((double)num550 < (double)Main.maxTilesX * 0.003) { int num551 = WorldGen.genRand.Next(50, Main.maxTilesX - 50); int num552 = WorldGen.genRand.Next(25, 50); for (int num553 = num551 - num552; num553 < num551 + num552; num553++) { int num554 = 20; while ((double)num554 < Main.worldSurface) { WorldGen.GrowEpicTree(num553, num554); num554++; } } num550++; } WorldGen.AddTrees(); Main.statusText = Lang.gen[41]; int num555 = 0; while ((double)num555 < (double)Main.maxTilesX * 1.7) { WorldGen.PlantAlch(); num555++; } for (int num556 = 0; num556 < Main.maxTilesX * 2; num556++) { WorldGen.plantDye(WorldGen.genRand.Next(100, Main.maxTilesX - 100), WorldGen.genRand.Next(100, Main.maxTilesY - 200)); } for (int num557 = 100; num557 < Main.maxTilesX - 100; num557++) { for (int num558 = (int)Main.worldSurface; num558 < Main.maxTilesY - 100; num558++) { if (Main.tile[num557, num558].wall == 86) { if (Main.tile[num557, num558].liquid > 0) { Main.tile[num557, num558].honey(true); } if (WorldGen.genRand.Next(3) == 0) { WorldGen.PlaceTight(num557, num558, 165, false); } } if (Main.tile[num557, num558].wall == 62) { Main.tile[num557, num558].liquid = 0; Main.tile[num557, num558].lava(false); } if (Main.tile[num557, num558].wall == 62 && !Main.tile[num557, num558].active() && WorldGen.genRand.Next(10) != 0) { int num559 = WorldGen.genRand.Next(2, 5); int num560 = num557 - num559; int num561 = num557 + num559; int num562 = num558 - num559; int num563 = num558 + num559; bool flag47 = false; for (int num564 = num560; num564 <= num561; num564++) { for (int num565 = num562; num565 <= num563; num565++) { if (WorldGen.SolidTile(num564, num565)) { flag47 = true; break; } } } if (flag47) { WorldGen.PlaceTile(num557, num558, 51, true, false, -1, 0); WorldGen.TileFrame(num557, num558, false, false); } } } } Main.statusText = Lang.gen[42]; WorldGen.AddPlants(); for (int num566 = 0; num566 < Main.maxTilesX; num566++) { for (int num567 = 0; num567 < Main.maxTilesY; num567++) { if (Main.tile[num566, num567].active()) { if (num567 >= (int)Main.worldSurface && Main.tile[num566, num567].type == 70 && !Main.tile[num566, num567 - 1].active()) { WorldGen.GrowShroom(num566, num567); if (!Main.tile[num566, num567 - 1].active()) { WorldGen.PlaceTile(num566, num567 - 1, 71, true, false, -1, 0); } } if (Main.tile[num566, num567].type == 60 && !Main.tile[num566, num567 - 1].active()) { WorldGen.PlaceTile(num566, num567 - 1, 61, true, false, -1, 0); } } } } for (int num568 = 0; num568 < Main.maxTilesX * 100; num568++) { int num569 = WorldGen.genRand.Next(40, Main.maxTilesX / 2 - 40); if (num9 < 0) { num569 += Main.maxTilesX / 2; } int num570 = WorldGen.genRand.Next(Main.maxTilesY - 300); while (!Main.tile[num569, num570].active() && num570 < Main.maxTilesY - 300) { num570++; } if (Main.tile[num569, num570].active() && Main.tile[num569, num570].type == 60) { num570--; WorldGen.PlaceJunglePlant(num569, num570, 233, WorldGen.genRand.Next(8), 0); if (Main.tile[num569, num570].type != 233) { WorldGen.PlaceJunglePlant(num569, num570, 233, WorldGen.genRand.Next(12), 1); } } } Main.statusText = Lang.gen[43]; for (int num571 = 0; num571 < Main.maxTilesX; num571++) { int num572 = 0; int num573 = 0; while ((double)num573 < Main.worldSurface) { if (num572 > 0 && !Main.tile[num571, num573].active()) { Main.tile[num571, num573].active(true); Main.tile[num571, num573].type = 52; num572--; } else { num572 = 0; } if (Main.tile[num571, num573].active() && (Main.tile[num571, num573].type == 2 || (Main.tile[num571, num573].type == 192 && WorldGen.genRand.Next(4) == 0)) && WorldGen.genRand.Next(5) < 3) { num572 = WorldGen.genRand.Next(1, 10); } num573++; } num572 = 0; for (int num574 = 0; num574 < Main.maxTilesY; num574++) { if (num572 > 0 && !Main.tile[num571, num574].active()) { Main.tile[num571, num574].active(true); Main.tile[num571, num574].type = 62; num572--; } else { num572 = 0; } if (Main.tile[num571, num574].active() && Main.tile[num571, num574].type == 60 && WorldGen.genRand.Next(5) < 3) { num572 = WorldGen.genRand.Next(1, 10); } } num572 = 0; for (int num575 = 0; num575 < Main.maxTilesY; num575++) { if (num572 > 0 && !Main.tile[num571, num575].active()) { Main.tile[num571, num575].active(true); Main.tile[num571, num575].type = 205; num572--; } else { num572 = 0; } if (Main.tile[num571, num575].active() && Main.tile[num571, num575].type == 199 && WorldGen.genRand.Next(5) < 3) { num572 = WorldGen.genRand.Next(1, 10); } } } Main.statusText = Lang.gen[44]; int num576 = 0; while ((double)num576 < (double)Main.maxTilesX * 0.005) { int num577 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); int num578 = WorldGen.genRand.Next(5, 15); int num579 = WorldGen.genRand.Next(15, 30); int num580 = 1; while ((double)num580 < Main.worldSurface - 1.0) { if (Main.tile[num577, num580].active()) { for (int num581 = num577 - num578; num581 < num577 + num578; num581++) { for (int num582 = num580 - num579; num582 < num580 + num579; num582++) { if (Main.tile[num581, num582].type == 3 || Main.tile[num581, num582].type == 24) { Main.tile[num581, num582].frameX = (short)(WorldGen.genRand.Next(6, 8) * 18); if (Main.tile[num581, num582].type == 3 && WorldGen.genRand.Next(2) == 0) { Main.tile[num581, num582].frameX = (short)(WorldGen.genRand.Next(9, 11) * 18); } } } } break; } num580++; } num576++; } Main.statusText = Lang.gen[45]; int num583 = 0; while ((double)num583 < (double)Main.maxTilesX * 0.002) { int num584 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); int num585 = WorldGen.genRand.Next(4, 10); int num586 = WorldGen.genRand.Next(15, 30); int num587 = 1; while ((double)num587 < Main.worldSurface - 1.0) { if (Main.tile[num584, num587].active()) { for (int num588 = num584 - num585; num588 < num584 + num585; num588++) { for (int num589 = num587 - num586; num589 < num587 + num586; num589++) { if (Main.tile[num588, num589].type == 3 || Main.tile[num588, num589].type == 24) { Main.tile[num588, num589].frameX = 144; } } } break; } num587++; } num583++; } for (int num590 = 20; num590 < Main.maxTilesX - 20; num590++) { for (int num591 = (int)Main.worldSurface; num591 < Main.maxTilesY - 20; num591++) { if (!Main.tile[num590, num591].active() && Main.rand.Next(5) == 0) { WorldGen.PlaceTight(num590, num591, 165, false); } } for (int num592 = 5; num592 < (int)Main.worldSurface; num592++) { if ((Main.tile[num590, num592 - 1].type == 147 || Main.tile[num590, num592 - 1].type == 161) && Main.rand.Next(5) == 0) { WorldGen.PlaceTight(num590, num592, 165, false); } } } int num593 = 0; while ((double)num593 < (double)Main.maxTilesX * 0.25) { int num594 = WorldGen.genRand.Next((int)(Main.worldSurface + Main.rockLayer) / 2, WorldGen.lavaLine); int num595 = WorldGen.genRand.Next(array5[num594], array6[num594]); if (Main.tile[num595, num594].active() && (Main.tile[num595, num594].type == 147 || Main.tile[num595, num594].type == 161 || Main.tile[num595, num594].type == 162 || Main.tile[num595, num594].type == 224)) { int num596 = WorldGen.genRand.Next(1, 4); int num597 = WorldGen.genRand.Next(1, 4); int num598 = WorldGen.genRand.Next(1, 4); int num599 = WorldGen.genRand.Next(1, 4); int num600 = WorldGen.genRand.Next(12); int style3; if (num600 < 3) { style3 = 0; } else { if (num600 < 6) { style3 = 1; } else { if (num600 < 8) { style3 = 2; } else { if (num600 < 10) { style3 = 3; } else { if (num600 < 11) { style3 = 4; } else { style3 = 5; } } } } } for (int num601 = num595 - num596; num601 < num595 + num597; num601++) { for (int num602 = num594 - num598; num602 < num594 + num599; num602++) { if (!Main.tile[num601, num602].active()) { WorldGen.PlaceTile(num601, num602, 178, true, false, -1, style3); } } } } num593++; } for (int num603 = 0; num603 < Main.maxTilesX; num603++) { int num604 = WorldGen.genRand.Next(20, Main.maxTilesX - 20); int num605 = WorldGen.genRand.Next((int)Main.rockLayer, Main.maxTilesY - 300); if (!Main.tile[num604, num605].active() && !Main.tile[num604, num605].lava() && !Main.wallDungeon[(int)Main.tile[num604, num605].wall] && Main.tile[num604, num605].wall != 27) { int num606 = WorldGen.genRand.Next(12); int style4; if (num606 < 3) { style4 = 0; } else { if (num606 < 6) { style4 = 1; } else { if (num606 < 8) { style4 = 2; } else { if (num606 < 10) { style4 = 3; } else { if (num606 < 11) { style4 = 4; } else { style4 = 5; } } } } } WorldGen.PlaceTile(num604, num605, 178, true, false, -1, style4); } } for (int num607 = 5; num607 < Main.maxTilesX - 5; num607++) { for (int num608 = 5; num608 < Main.maxTilesY - 5; num608++) { if (Main.tile[num607, num608].active() && Main.tileMoss[(int)Main.tile[num607, num608].type]) { for (int num609 = 0; num609 < 4; num609++) { int num610 = num607; int num611 = num608; if (num609 == 0) { num610--; } if (num609 == 1) { num610++; } if (num609 == 2) { num611--; } if (num609 == 3) { num611++; } if (!Main.tile[num610, num611].active()) { WorldGen.PlaceTile(num610, num611, 184, true, false, -1, 0); } } } } } int num612 = 0; int num613 = 0; bool flag48 = false; for (int num614 = 5; num614 < Main.maxTilesX - 5; num614++) { int num615 = 0; while ((double)num615 < Main.worldSurface + 20.0) { if (Main.tile[num614, num615].active() && Main.tile[num614, num615].type == 60) { num612 = num614; flag48 = true; break; } num615++; } if (flag48) { break; } } flag48 = false; for (int num616 = Main.maxTilesX - 5; num616 > 5; num616--) { int num617 = 0; while ((double)num617 < Main.worldSurface + 20.0) { if (Main.tile[num616, num617].active() && Main.tile[num616, num617].type == 60) { num613 = num616; flag48 = true; break; } num617++; } if (flag48) { break; } } for (int num618 = num612; num618 <= num613; num618++) { int num619 = 0; while ((double)num619 < Main.worldSurface + 20.0) { if (((num618 >= num612 + 2 && num618 <= num613 - 2) || WorldGen.genRand.Next(2) != 0) && ((num618 >= num612 + 3 && num618 <= num613 - 3) || WorldGen.genRand.Next(3) != 0) && (Main.tile[num618, num619].wall == 2 || Main.tile[num618, num619].wall == 59)) { Main.tile[num618, num619].wall = 15; } num619++; } } for (int num620 = 0; num620 < num304; num620++) { int num621 = array7[num620]; int num622 = array8[num620]; for (int num623 = num621 - 1; num623 <= num621 + 1; num623++) { for (int num624 = num622 - 2; num624 <= num622 + 1; num624++) { if (num624 != num622 + 1) { Main.tile[num623, num624].active(false); } else { Main.tile[num623, num624].active(true); Main.tile[num623, num624].type = 225; Main.tile[num623, num624].slope(0); Main.tile[num623, num624].halfBrick(false); } } } WorldGen.PlaceTile(num621, num622, 231, true, false, -1, 0); } Main.tileSolid[232] = true; Main.tileSolid[162] = true; for (int num625 = 5; num625 < Main.maxTilesX - 5; num625++) { for (int num626 = 5; num626 < Main.maxTilesY - 5; num626++) { if (Main.tile[num625, num626].type == 137) { if (Main.tile[num625, num626].frameY <= 52) { int num627 = -1; if (Main.tile[num625, num626].frameX >= 18) { num627 = 1; } if (Main.tile[num625 + num627, num626].halfBrick() || Main.tile[num625 + num627, num626].slope() != 0) { Main.tile[num625 + num627, num626].active(false); } } } else { if (Main.tile[num625, num626].type == 162 && Main.tile[num625, num626 + 1].liquid == 0) { Main.tile[num625, num626].active(false); } } if (Main.tile[num625, num626].wall == 13 || Main.tile[num625, num626].wall == 14) { Main.tile[num625, num626].liquid = 0; } } } WorldGen.gen = false; } public static bool GrowEpicTree(int i, int y) { int num = y; while (Main.tile[i, num].type == 20) { num++; } if (Main.tile[i, num].active() && !Main.tile[i, num].halfBrick() && Main.tile[i, num].slope() == 0 && Main.tile[i, num].type == 2 && Main.tile[i, num - 1].wall == 0 && Main.tile[i, num - 1].liquid == 0 && ((Main.tile[i - 1, num].active() && (Main.tile[i - 1, num].type == 2 || Main.tile[i - 1, num].type == 23 || Main.tile[i - 1, num].type == 60 || Main.tile[i - 1, num].type == 109)) || (Main.tile[i + 1, num].active() && (Main.tile[i + 1, num].type == 2 || Main.tile[i + 1, num].type == 23 || Main.tile[i + 1, num].type == 60 || Main.tile[i + 1, num].type == 109)))) { int num2 = 2; if (WorldGen.EmptyTileCheck(i - num2, i + num2, num - 55, num - 1, 20)) { bool flag = false; bool flag2 = false; int num3 = WorldGen.genRand.Next(20, 30); int num4; for (int j = num - num3; j < num; j++) { Main.tile[i, j].frameNumber((byte)WorldGen.genRand.Next(3)); Main.tile[i, j].active(true); Main.tile[i, j].type = 5; num4 = WorldGen.genRand.Next(3); int num5 = WorldGen.genRand.Next(10); if (j == num - 1 || j == num - num3) { num5 = 0; } while (((num5 == 5 || num5 == 7) && flag) || ((num5 == 6 || num5 == 7) && flag2)) { num5 = WorldGen.genRand.Next(10); } flag = false; flag2 = false; if (num5 == 5 || num5 == 7) { flag = true; } if (num5 == 6 || num5 == 7) { flag2 = true; } if (num5 == 1) { if (num4 == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 110; } } else { if (num5 == 2) { if (num4 == 0) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 0; } if (num4 == 1) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 22; } if (num4 == 2) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 44; } } else { if (num5 == 3) { if (num4 == 0) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 110; } } else { if (num5 == 4) { if (num4 == 0) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 110; } } else { if (num5 == 5) { if (num4 == 0) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 0; } if (num4 == 1) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 22; } if (num4 == 2) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 44; } } else { if (num5 == 6) { if (num4 == 0) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 110; } } else { if (num5 == 7) { if (num4 == 0) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 110; } } else { if (num4 == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 0; } if (num4 == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 22; } if (num4 == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 44; } } } } } } } } if (num5 == 5 || num5 == 7) { Main.tile[i - 1, j].active(true); Main.tile[i - 1, j].type = 5; num4 = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (num4 == 0) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 198; } if (num4 == 1) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 220; } if (num4 == 2) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 242; } } else { if (num4 == 0) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 0; } if (num4 == 1) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 22; } if (num4 == 2) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 44; } } } if (num5 == 6 || num5 == 7) { Main.tile[i + 1, j].active(true); Main.tile[i + 1, j].type = 5; num4 = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (num4 == 0) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 198; } if (num4 == 1) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 220; } if (num4 == 2) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 242; } } else { if (num4 == 0) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 66; } if (num4 == 1) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 88; } if (num4 == 2) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 110; } } } } int num6 = WorldGen.genRand.Next(3); bool flag3 = false; bool flag4 = false; if (Main.tile[i - 1, num].active() && !Main.tile[i - 1, num].halfBrick() && Main.tile[i - 1, num].slope() == 0 && (Main.tile[i - 1, num].type == 2 || Main.tile[i - 1, num].type == 23 || Main.tile[i - 1, num].type == 60 || Main.tile[i - 1, num].type == 109)) { flag3 = true; } if (Main.tile[i + 1, num].active() && !Main.tile[i + 1, num].halfBrick() && Main.tile[i + 1, num].slope() == 0 && (Main.tile[i + 1, num].type == 2 || Main.tile[i + 1, num].type == 23 || Main.tile[i + 1, num].type == 60 || Main.tile[i + 1, num].type == 109)) { flag4 = true; } if (!flag3) { if (num6 == 0) { num6 = 2; } if (num6 == 1) { num6 = 3; } } if (!flag4) { if (num6 == 0) { num6 = 1; } if (num6 == 2) { num6 = 3; } } if (flag3 && !flag4) { num6 = 2; } if (flag4 && !flag3) { num6 = 1; } if (num6 == 0 || num6 == 1) { Main.tile[i + 1, num - 1].active(true); Main.tile[i + 1, num - 1].type = 5; num4 = WorldGen.genRand.Next(3); if (num4 == 0) { Main.tile[i + 1, num - 1].frameX = 22; Main.tile[i + 1, num - 1].frameY = 132; } if (num4 == 1) { Main.tile[i + 1, num - 1].frameX = 22; Main.tile[i + 1, num - 1].frameY = 154; } if (num4 == 2) { Main.tile[i + 1, num - 1].frameX = 22; Main.tile[i + 1, num - 1].frameY = 176; } } if (num6 == 0 || num6 == 2) { Main.tile[i - 1, num - 1].active(true); Main.tile[i - 1, num - 1].type = 5; num4 = WorldGen.genRand.Next(3); if (num4 == 0) { Main.tile[i - 1, num - 1].frameX = 44; Main.tile[i - 1, num - 1].frameY = 132; } if (num4 == 1) { Main.tile[i - 1, num - 1].frameX = 44; Main.tile[i - 1, num - 1].frameY = 154; } if (num4 == 2) { Main.tile[i - 1, num - 1].frameX = 44; Main.tile[i - 1, num - 1].frameY = 176; } } num4 = WorldGen.genRand.Next(3); if (num6 == 0) { if (num4 == 0) { Main.tile[i, num - 1].frameX = 88; Main.tile[i, num - 1].frameY = 132; } if (num4 == 1) { Main.tile[i, num - 1].frameX = 88; Main.tile[i, num - 1].frameY = 154; } if (num4 == 2) { Main.tile[i, num - 1].frameX = 88; Main.tile[i, num - 1].frameY = 176; } } else { if (num6 == 1) { if (num4 == 0) { Main.tile[i, num - 1].frameX = 0; Main.tile[i, num - 1].frameY = 132; } if (num4 == 1) { Main.tile[i, num - 1].frameX = 0; Main.tile[i, num - 1].frameY = 154; } if (num4 == 2) { Main.tile[i, num - 1].frameX = 0; Main.tile[i, num - 1].frameY = 176; } } else { if (num6 == 2) { if (num4 == 0) { Main.tile[i, num - 1].frameX = 66; Main.tile[i, num - 1].frameY = 132; } if (num4 == 1) { Main.tile[i, num - 1].frameX = 66; Main.tile[i, num - 1].frameY = 154; } if (num4 == 2) { Main.tile[i, num - 1].frameX = 66; Main.tile[i, num - 1].frameY = 176; } } } } if (WorldGen.genRand.Next(8) != 0) { num4 = WorldGen.genRand.Next(3); if (num4 == 0) { Main.tile[i, num - num3].frameX = 22; Main.tile[i, num - num3].frameY = 198; } if (num4 == 1) { Main.tile[i, num - num3].frameX = 22; Main.tile[i, num - num3].frameY = 220; } if (num4 == 2) { Main.tile[i, num - num3].frameX = 22; Main.tile[i, num - num3].frameY = 242; } } else { num4 = WorldGen.genRand.Next(3); if (num4 == 0) { Main.tile[i, num - num3].frameX = 0; Main.tile[i, num - num3].frameY = 198; } if (num4 == 1) { Main.tile[i, num - num3].frameX = 0; Main.tile[i, num - num3].frameY = 220; } if (num4 == 2) { Main.tile[i, num - num3].frameX = 0; Main.tile[i, num - num3].frameY = 242; } } WorldGen.RangeFrame(i - 2, num - num3 - 1, i + 2, num + 1); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, i, (int)((double)num - (double)num3 * 0.5), num3 + 1); } return true; } } return false; } public static bool Pyramid(int i, int j) { int num = j - WorldGen.genRand.Next(0, 7); int num2 = WorldGen.genRand.Next(9, 13); int num3 = 1; int num4 = j + WorldGen.genRand.Next(75, 125); for (int k = num; k < num4; k++) { for (int l = i - num3; l < i + num3 - 1; l++) { Main.tile[l, k].type = 151; Main.tile[l, k].active(true); Main.tile[l, k].halfBrick(false); } num3++; } for (int m = i - num3 - 5; m <= i + num3 + 5; m++) { for (int n = j - 1; n <= num4 + 1; n++) { bool flag = true; for (int num5 = m - 1; num5 <= m + 1; num5++) { for (int num6 = n - 1; num6 <= n + 1; num6++) { if (Main.tile[num5, num6].type != 151) { flag = false; } } } if (flag) { Main.tile[m, n].wall = 34; WorldGen.SquareWallFrame(m, n, true); } } } int num7 = 1; if (WorldGen.genRand.Next(2) == 0) { num7 = -1; } int num8 = i - num2 * num7; int num9 = j + num2; int num10 = WorldGen.genRand.Next(5, 8); bool flag2 = true; int num11 = WorldGen.genRand.Next(20, 30); while (flag2) { flag2 = false; bool flag3 = false; for (int num12 = num9; num12 <= num9 + num10; num12++) { int num13 = num8; if (Main.tile[num13, num12 - 1].type == 53) { flag3 = true; } if (Main.tile[num13, num12].type == 151) { Main.tile[num13, num12 + 1].wall = 34; Main.tile[num13 + num7, num12].wall = 34; Main.tile[num13, num12].active(false); flag2 = true; } if (flag3) { Main.tile[num13, num12].type = 53; Main.tile[num13, num12].active(true); Main.tile[num13, num12].halfBrick(false); } } num8 -= num7; } num8 = i - num2 * num7; bool flag4 = true; bool flag5 = false; flag2 = true; while (flag2) { for (int num14 = num9; num14 <= num9 + num10; num14++) { int num15 = num8; Main.tile[num15, num14].active(false); } num8 += num7; num9++; num11--; if (num9 >= num4 - num10 * 2) { num11 = 10; } if (num11 <= 0) { bool flag6 = false; if (!flag4 && !flag5) { flag5 = true; flag6 = true; int num16 = WorldGen.genRand.Next(7, 13); int num17 = WorldGen.genRand.Next(23, 28); int num18 = num17; int num19 = num8; while (num17 > 0) { for (int num20 = num9 - num16 + num10; num20 <= num9 + num10; num20++) { if (num17 == num18 || num17 == 1) { if (num20 >= num9 - num16 + num10 + 2) { Main.tile[num8, num20].active(false); } } else { if (num17 == num18 - 1 || num17 == 2 || num17 == num18 - 2 || num17 == 3) { if (num20 >= num9 - num16 + num10 + 1) { Main.tile[num8, num20].active(false); } } else { Main.tile[num8, num20].active(false); } } } num17--; num8 += num7; } int num21 = num8 - num7; int num22 = num21; int num23 = num19; if (num21 > num19) { num22 = num19; num23 = num21; } int num24 = WorldGen.genRand.Next(3); if (num24 == 0) { num24 = 857; } else { if (num24 == 1) { num24 = 848; } else { if (num24 == 2) { num24 = 934; } } } WorldGen.AddBuriedChest((num22 + num23) / 2, num9, num24, false, 1); int num25 = WorldGen.genRand.Next(1, 10); for (int num26 = 0; num26 < num25; num26++) { int i2 = WorldGen.genRand.Next(num22, num23); int j2 = num9 + num10; WorldGen.PlaceSmallPile(i2, j2, WorldGen.genRand.Next(16, 19), 1, 185); } WorldGen.PlaceTile(num22 + 2, num9 - num16 + num10 + 1, 91, true, false, -1, WorldGen.genRand.Next(4, 7)); WorldGen.PlaceTile(num22 + 3, num9 - num16 + num10, 91, true, false, -1, WorldGen.genRand.Next(4, 7)); WorldGen.PlaceTile(num23 - 2, num9 - num16 + num10 + 1, 91, true, false, -1, WorldGen.genRand.Next(4, 7)); WorldGen.PlaceTile(num23 - 3, num9 - num16 + num10, 91, true, false, -1, WorldGen.genRand.Next(4, 7)); for (int num27 = num22; num27 <= num23; num27++) { WorldGen.PlacePot(num27, num9 + num10, 28, WorldGen.genRand.Next(25, 28)); } } if (flag4) { flag4 = false; num7 *= -1; num11 = WorldGen.genRand.Next(15, 20); } else { if (flag6) { num11 = WorldGen.genRand.Next(10, 15); } else { num7 *= -1; num11 = WorldGen.genRand.Next(20, 40); } } } if (num9 >= num4 - num10) { flag2 = false; } } int num28 = WorldGen.genRand.Next(100, 200); int num29 = WorldGen.genRand.Next(500, 800); flag2 = true; int num30 = num10; num11 = WorldGen.genRand.Next(10, 50); if (num7 == 1) { num8 -= num30; } int num31 = WorldGen.genRand.Next(5, 10); while (flag2) { num28--; num29--; num11--; for (int num32 = num8 - num31 - WorldGen.genRand.Next(0, 2); num32 <= num8 + num30 + num31 + WorldGen.genRand.Next(0, 2); num32++) { int num33 = num9; if (num32 >= num8 && num32 <= num8 + num30) { Main.tile[num32, num33].active(false); } else { Main.tile[num32, num33].type = 151; Main.tile[num32, num33].active(true); Main.tile[num32, num33].halfBrick(false); } if (num32 >= num8 - 1 && num32 <= num8 + 1 + num30) { Main.tile[num32, num33].wall = 34; } } num9++; num8 += num7; if (num28 <= 0) { flag2 = false; for (int num34 = num8 + 1; num34 <= num8 + num30 - 1; num34++) { if (Main.tile[num34, num9].active()) { flag2 = true; } } } if (num11 < 0) { num11 = WorldGen.genRand.Next(10, 50); num7 *= -1; } if (num29 <= 0) { flag2 = false; } } return true; } public static bool GrowLivingTree(int i, int j) { int num = 0; int[] array = new int[1000]; int[] array2 = new int[1000]; int[] array3 = new int[1000]; int[] array4 = new int[1000]; int num2 = 0; int[] array5 = new int[2000]; int[] array6 = new int[2000]; bool[] array7 = new bool[2000]; if (!WorldGen.SolidTile(i, j + 1)) { return false; } if (Main.tile[i, j].active()) { return false; } int num3 = i - WorldGen.genRand.Next(1, 4); int num4 = i + WorldGen.genRand.Next(1, 4); if (j < 150) { return false; } int num5 = i - 50; int num6 = i + 50; for (int k = num5; k <= num6; k++) { for (int l = 5; l < j - 5; l++) { if (Main.tile[k, l].active()) { return false; } } } int num7 = num3; int num8 = num4; int num9 = num3; int num10 = num4; int num11 = num4 - num3; bool flag = true; int num12 = WorldGen.genRand.Next(-10, -5); int num13 = WorldGen.genRand.Next(2); int num14 = j; while (flag) { num12++; if (num12 > WorldGen.genRand.Next(5, 30)) { num12 = 0; array2[num] = num14 + WorldGen.genRand.Next(5); if (WorldGen.genRand.Next(5) == 0) { if (num13 == 0) { num13 = 1; } else { num13 = 0; } } if (num13 == 0) { array3[num] = -1; array[num] = num3; array4[num] = num4 - num3; if (WorldGen.genRand.Next(2) == 0) { num3++; } num7++; num13 = 1; } else { array3[num] = 1; array[num] = num4; array4[num] = num4 - num3; if (WorldGen.genRand.Next(2) == 0) { num4--; } num8--; num13 = 0; } if (num7 == num8) { flag = false; } num++; } for (int m = num3; m <= num4; m++) { Main.tile[m, num14].type = 191; Main.tile[m, num14].active(true); Main.tile[m, num14].halfBrick(false); } num14--; } for (int n = 0; n < num; n++) { int num15 = array[n] + array3[n]; int num16 = array2[n]; int num17 = (int)((float)array4[n] * (1f + (float)WorldGen.genRand.Next(20, 30) * 0.1f)); Main.tile[num15, num16 + 1].type = 191; Main.tile[num15, num16 + 1].active(true); Main.tile[num15, num16 + 1].halfBrick(false); int num18 = WorldGen.genRand.Next(3, 5); while (num17 > 0) { num17--; Main.tile[num15, num16].type = 191; Main.tile[num15, num16].active(true); Main.tile[num15, num16].halfBrick(false); if (WorldGen.genRand.Next(10) == 0) { if (WorldGen.genRand.Next(2) == 0) { num16--; } else { num16++; } } else { num15 += array3[n]; } if (num18 > 0) { num18--; } else { if (WorldGen.genRand.Next(2) == 0) { num18 = WorldGen.genRand.Next(2, 5); if (WorldGen.genRand.Next(2) == 0) { Main.tile[num15, num16].type = 191; Main.tile[num15, num16].active(true); Main.tile[num15, num16].halfBrick(false); Main.tile[num15, num16 - 1].type = 191; Main.tile[num15, num16 - 1].active(true); Main.tile[num15, num16 - 1].halfBrick(false); array5[num2] = num15; array6[num2] = num16; num2++; } else { Main.tile[num15, num16].type = 191; Main.tile[num15, num16].active(true); Main.tile[num15, num16].halfBrick(false); Main.tile[num15, num16 + 1].type = 191; Main.tile[num15, num16 + 1].active(true); Main.tile[num15, num16 + 1].halfBrick(false); array5[num2] = num15; array6[num2] = num16; num2++; } } } if (num17 == 0) { array5[num2] = num15; array6[num2] = num16; num2++; } } } int num19 = (num3 + num4) / 2; int num20 = num14; int num21 = WorldGen.genRand.Next(num11 * 3, num11 * 5); int num22 = 0; int num23 = 0; while (num21 > 0) { Main.tile[num19, num20].type = 191; Main.tile[num19, num20].active(true); Main.tile[num19, num20].halfBrick(false); if (num22 > 0) { num22--; } if (num23 > 0) { num23--; } for (int num24 = -1; num24 < 2; num24++) { if (num24 != 0 && ((num24 < 0 && num22 == 0) || (num24 > 0 && num23 == 0)) && WorldGen.genRand.Next(2) == 0) { int num25 = num19; int num26 = num20; int num27 = WorldGen.genRand.Next(num11, num11 * 3); if (num24 < 0) { num22 = WorldGen.genRand.Next(3, 5); } if (num24 > 0) { num23 = WorldGen.genRand.Next(3, 5); } int num28 = 0; while (num27 > 0) { num27--; num25 += num24; Main.tile[num25, num26].type = 191; Main.tile[num25, num26].active(true); Main.tile[num25, num26].halfBrick(false); if (num27 == 0) { array5[num2] = num25; array6[num2] = num26; array7[num2] = true; num2++; } if (WorldGen.genRand.Next(5) == 0) { if (WorldGen.genRand.Next(2) == 0) { num26--; } else { num26++; } Main.tile[num25, num26].type = 191; Main.tile[num25, num26].active(true); Main.tile[num25, num26].halfBrick(false); } if (num28 > 0) { num28--; } else { if (WorldGen.genRand.Next(3) == 0) { num28 = WorldGen.genRand.Next(2, 4); int num29 = num25; int num30 = num26; if (WorldGen.genRand.Next(2) == 0) { num30--; } else { num30++; } Main.tile[num29, num30].type = 191; Main.tile[num29, num30].active(true); Main.tile[num29, num30].halfBrick(false); array5[num2] = num29; array6[num2] = num30; array7[num2] = true; num2++; } } } } } array5[num2] = num19; array6[num2] = num20; num2++; if (WorldGen.genRand.Next(4) == 0) { if (WorldGen.genRand.Next(2) == 0) { num19--; } else { num19++; } Main.tile[num19, num20].type = 191; Main.tile[num19, num20].active(true); Main.tile[num19, num20].halfBrick(false); } num20--; num21--; } for (int num31 = num9; num31 <= num10; num31++) { int num32 = WorldGen.genRand.Next(1, 6); int num33 = j + 1; while (num32 > 0) { if (WorldGen.SolidTile(num31, num33)) { num32--; } Main.tile[num31, num33].type = 191; Main.tile[num31, num33].active(true); Main.tile[num31, num33].halfBrick(false); num33++; } int num34 = num33; for (int num35 = 0; num35 < 2; num35++) { num33 = num34; int num36 = (num9 + num10) / 2; int num37 = 1; int num38; if (num31 < num36) { num38 = -1; } else { num38 = 1; } if (num31 == num36 || (num11 > 6 && (num31 == num36 - 1 || num31 == num36 + 1))) { num38 = 0; } int num39 = num38; int num40 = num31; num32 = WorldGen.genRand.Next((int)((double)num11 * 2.5), num11 * 4); while (num32 > 0) { num32--; num40 += num38; Main.tile[num40, num33].type = 191; Main.tile[num40, num33].active(true); Main.tile[num40, num33].halfBrick(false); num33 += num37; Main.tile[num40, num33].type = 191; Main.tile[num40, num33].active(true); Main.tile[num40, num33].halfBrick(false); if (!Main.tile[num40, num33 + 1].active()) { num38 = 0; num37 = 1; } if (WorldGen.genRand.Next(3) == 0) { if (num39 < 0) { if (num38 == 0) { num38 = -1; } else { num38 = 0; } } else { if (num39 > 0) { if (num38 == 0) { num38 = 1; } else { num38 = 0; } } else { num38 = WorldGen.genRand.Next(-1, 2); } } } if (WorldGen.genRand.Next(3) == 0) { if (num37 == 0) { num37 = 1; } else { num37 = 0; } } } } } for (int num41 = 0; num41 < num2; num41++) { int num42 = WorldGen.genRand.Next(5, 8); num42 = (int)((float)num42 * (1f + (float)num11 * 0.05f)); if (array7[num41]) { num42 = WorldGen.genRand.Next(7, 13); } int num43 = array5[num41] - num42; int num44 = array5[num41] + num42; int num45 = array6[num41] - num42; int num46 = array6[num41] + num42; float num47 = 2f - (float)WorldGen.genRand.Next(5) * 0.1f; for (int num48 = num43; num48 <= num44; num48++) { for (int num49 = num45; num49 <= num46; num49++) { if (Main.tile[num48, num49].type != 191 && (float)Math.Abs(array5[num41] - num48) + (float)Math.Abs(array6[num41] - num49) * num47 < (float)num42) { Main.tile[num48, num49].type = 192; Main.tile[num48, num49].active(true); Main.tile[num48, num49].halfBrick(false); } } } } if (num11 >= 4 && WorldGen.genRand.Next(3) != 0) { bool flag2 = false; int num50 = num9; int num51 = num10; int num52 = j - 5; int num53 = 50; int num54 = WorldGen.genRand.Next(400, 700); int num55 = 1; bool flag3 = true; while (num54 > 0) { num52++; num54--; num53--; int num56 = (num9 + num10) / 2; int num57 = 0; if (num52 > j && num11 == 4) { num57 = 1; } for (int num58 = num9 - num57; num58 <= num10 + num57; num58++) { if (num58 > num56 - 2 && num58 <= num56 + 1) { if (Main.tile[num58, num52].type != 19) { Main.tile[num58, num52].active(false); } Main.tile[num58, num52].wall = 78; if (Main.tile[num58 - 1, num52].wall > 0 || (double)num52 >= Main.worldSurface) { Main.tile[num58 - 1, num52].wall = 78; } if (Main.tile[num58 + 1, num52].wall > 0 || (double)num52 >= Main.worldSurface) { Main.tile[num58 + 1, num52].wall = 78; } } else { Main.tile[num58, num52].type = 191; Main.tile[num58, num52].active(true); Main.tile[num58, num52].halfBrick(false); } } num55++; if (num55 >= 6) { num55 = 0; int num59 = WorldGen.genRand.Next(3); if (num59 == 0) { num59 = -1; } if (flag3) { num59 = 2; } if (num59 == 2) { flag3 = false; for (int num60 = num9; num60 <= num10; num60++) { if (num60 > num56 - 2 && num60 <= num56 + 1) { Main.tile[num60, num52 + 1].active(false); WorldGen.PlaceTile(num60, num52 + 1, 19, true, false, -1, 0); } } } else { num9 += num59; num10 += num59; } if (num53 <= 0 && !flag2) { flag2 = true; int num61 = WorldGen.genRand.Next(2); if (num61 == 0) { num61 = -1; } int num62 = num52 - 2; int num63 = num52; int num64 = (num9 + num10) / 2; if (num61 < 0) { num64--; } if (num61 > 0) { num64++; } int num65 = WorldGen.genRand.Next(15, 30); int num66 = num64 + num65; if (num61 < 0) { num66 = num64; num64 -= num65; } WorldGen.dMinX = num64; WorldGen.dMaxX = num66; if (num61 < 0) { WorldGen.dMinX -= 40; } else { WorldGen.dMaxX += 40; } bool flag4 = false; for (int num67 = num64; num67 < num66; num67++) { for (int num68 = num52 - 20; num68 < num52 + 10; num68++) { if (Main.tile[num67, num68].wall == 0 && !Main.tile[num67, num68].active() && (double)num68 < Main.worldSurface) { flag4 = true; } } } if (!flag4) { for (int num69 = num64; num69 <= num66; num69++) { for (int num70 = num62 - 2; num70 <= num63 + 2; num70++) { if (Main.tile[num69, num70].wall != 78 && Main.tile[num69, num70].type != 19) { Main.tile[num69, num70].active(true); Main.tile[num69, num70].type = 191; Main.tile[num69, num70].halfBrick(false); } if (num70 >= num62 && num70 <= num63) { Main.tile[num69, num70].liquid = 0; Main.tile[num69, num70].wall = 78; Main.tile[num69, num70].active(false); } } } int i2 = (num9 + num10) / 2 + 3 * num61; int j2 = num52; WorldGen.PlaceTile(i2, j2, 10, true, false, -1, 7); int num71 = WorldGen.genRand.Next(5, 9); int num72 = WorldGen.genRand.Next(4, 6); if (num61 < 0) { num66 = num64 + num71; num64 -= num71; } else { num64 = num66 - num71; num66 += num71; } num62 = num63 - num72; for (int num73 = num64 - 2; num73 <= num66 + 2; num73++) { for (int num74 = num62 - 2; num74 <= num63 + 2; num74++) { if (Main.tile[num73, num74].wall != 78 && Main.tile[num73, num74].type != 19) { Main.tile[num73, num74].active(true); Main.tile[num73, num74].type = 191; Main.tile[num73, num74].halfBrick(false); } if (num74 >= num62 && num74 <= num63 && num73 >= num64 && num73 <= num66) { Main.tile[num73, num74].liquid = 0; Main.tile[num73, num74].wall = 78; Main.tile[num73, num74].active(false); } } } i2 = num64 - 2; if (num61 < 0) { i2 = num66 + 2; } WorldGen.PlaceTile(i2, j2, 10, true, false, -1, 7); int num75 = num66; if (num61 < 0) { num75 = num64; } WorldGen.PlaceTile(num75, num52, 15, true, false, -1, 5); if (num61 < 0) { Tile expr_115A = Main.tile[num75, num52 - 1]; expr_115A.frameX += 18; Tile expr_1177 = Main.tile[num75, num52]; expr_1177.frameX += 18; } num75 = num66 - 2; if (num61 < 0) { num75 = num64 + 2; } WorldGen.PlaceTile(num75, num52, 14, true, false, -1, 6); num75 = num66 - 4; if (num61 < 0) { num75 = num64 + 4; } WorldGen.PlaceTile(num75, num52, 15, true, false, -1, 5); if (num61 > 0) { Tile expr_11DD = Main.tile[num75, num52 - 1]; expr_11DD.frameX += 18; Tile expr_11FA = Main.tile[num75, num52]; expr_11FA.frameX += 18; } num75 = num66 - 7; if (num61 < 0) { num75 = num64 + 8; } int contain; if (WorldGen.genRand.Next(2) == 0) { contain = 832; } else { contain = 933; } WorldGen.AddBuriedChest(num75, num52, contain, false, 12); } } } if (num53 <= 0) { bool flag5 = true; for (int num76 = num9; num76 <= num10; num76++) { for (int num77 = num52 + 1; num77 <= num52 + 4; num77++) { if (WorldGen.SolidTile(num76, num77)) { flag5 = false; } } } if (flag5) { num54 = 0; } } } num9 = num50; num10 = num51; int num78 = (num9 + num10) / 2; if (WorldGen.genRand.Next(2) == 0) { num10 = num78; } else { num9 = num78; } for (int num79 = num9; num79 <= num10; num79++) { for (int num80 = j - 3; num80 <= j; num80++) { Main.tile[num79, num80].active(false); bool flag6 = true; for (int num81 = num79 - 1; num81 <= num79 + 1; num81++) { for (int num82 = num80 - 1; num82 <= num80 + 1; num82++) { if (!Main.tile[num81, num82].active() && Main.tile[num81, num82].wall == 0) { flag6 = false; } } } if (flag6) { Main.tile[num79, num80].wall = 78; } } } } return true; } public static void GrowTree(int i, int y) { int num = y; while (Main.tile[i, num].type == 20) { num++; } if ((Main.tile[i - 1, num - 1].liquid != 0 || Main.tile[i - 1, num - 1].liquid != 0 || Main.tile[i + 1, num - 1].liquid != 0) && Main.tile[i, num].type != 60) { return; } if (Main.tile[i, num].nactive() && !Main.tile[i, num].halfBrick() && Main.tile[i, num].slope() == 0 && (((Main.tile[i, num].type == 2 || Main.tile[i, num].type == 23 || Main.tile[i, num].type == 60 || Main.tile[i, num].type == 109 || Main.tile[i, num].type == 147 || Main.tile[i, num].type == 199 || Main.tile[i, num].type == 70) && Main.tile[i, num - 1].wall == 0) || Main.tile[i, num - 1].wall == 106 || Main.tile[i, num - 1].wall == 107) && ((Main.tile[i - 1, num].active() && (Main.tile[i - 1, num].type == 2 || Main.tile[i - 1, num].type == 23 || Main.tile[i - 1, num].type == 60 || Main.tile[i - 1, num].type == 109 || Main.tile[i - 1, num].type == 147 || Main.tile[i - 1, num].type == 199 || Main.tile[i - 1, num].type == 70)) || (Main.tile[i + 1, num].active() && (Main.tile[i + 1, num].type == 2 || Main.tile[i + 1, num].type == 23 || Main.tile[i + 1, num].type == 60 || Main.tile[i + 1, num].type == 109 || Main.tile[i + 1, num].type == 147 || Main.tile[i + 1, num].type == 199 || Main.tile[i + 1, num].type == 70)))) { int num2 = 2; int num3 = 16; if (Main.tile[i, num].type == 60) { num3 += 5; } if (WorldGen.EmptyTileCheck(i - num2, i + num2, num - num3, num - 1, 20)) { bool flag = false; bool flag2 = false; int num4 = WorldGen.genRand.Next(5, num3 + 1); int num5; for (int j = num - num4; j < num; j++) { Main.tile[i, j].frameNumber((byte)WorldGen.genRand.Next(3)); Main.tile[i, j].active(true); Main.tile[i, j].type = 5; num5 = WorldGen.genRand.Next(3); int num6 = WorldGen.genRand.Next(10); if (j == num - 1 || j == num - num4) { num6 = 0; } while (((num6 == 5 || num6 == 7) && flag) || ((num6 == 6 || num6 == 7) && flag2)) { num6 = WorldGen.genRand.Next(10); } flag = false; flag2 = false; if (num6 == 5 || num6 == 7) { flag = true; } if (num6 == 6 || num6 == 7) { flag2 = true; } if (num6 == 1) { if (num5 == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 66; } if (num5 == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 88; } if (num5 == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 110; } } else { if (num6 == 2) { if (num5 == 0) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 0; } if (num5 == 1) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 22; } if (num5 == 2) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 44; } } else { if (num6 == 3) { if (num5 == 0) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 66; } if (num5 == 1) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 88; } if (num5 == 2) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 110; } } else { if (num6 == 4) { if (num5 == 0) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 66; } if (num5 == 1) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 88; } if (num5 == 2) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 110; } } else { if (num6 == 5) { if (num5 == 0) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 0; } if (num5 == 1) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 22; } if (num5 == 2) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 44; } } else { if (num6 == 6) { if (num5 == 0) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 66; } if (num5 == 1) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 88; } if (num5 == 2) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 110; } } else { if (num6 == 7) { if (num5 == 0) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 66; } if (num5 == 1) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 88; } if (num5 == 2) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 110; } } else { if (num5 == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 0; } if (num5 == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 22; } if (num5 == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 44; } } } } } } } } if (num6 == 5 || num6 == 7) { Main.tile[i - 1, j].active(true); Main.tile[i - 1, j].type = 5; num5 = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (num5 == 0) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 198; } if (num5 == 1) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 220; } if (num5 == 2) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 242; } } else { if (num5 == 0) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 0; } if (num5 == 1) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 22; } if (num5 == 2) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 44; } } } if (num6 == 6 || num6 == 7) { Main.tile[i + 1, j].active(true); Main.tile[i + 1, j].type = 5; num5 = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (num5 == 0) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 198; } if (num5 == 1) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 220; } if (num5 == 2) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 242; } } else { if (num5 == 0) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 66; } if (num5 == 1) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 88; } if (num5 == 2) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 110; } } } } int num7 = WorldGen.genRand.Next(3); bool flag3 = false; bool flag4 = false; if (Main.tile[i - 1, num].nactive() && !Main.tile[i - 1, num].halfBrick() && Main.tile[i - 1, num].slope() == 0 && (Main.tile[i - 1, num].type == 2 || Main.tile[i - 1, num].type == 23 || Main.tile[i - 1, num].type == 60 || Main.tile[i - 1, num].type == 109 || Main.tile[i - 1, num].type == 147)) { flag3 = true; } if (Main.tile[i + 1, num].nactive() && !Main.tile[i + 1, num].halfBrick() && Main.tile[i + 1, num].slope() == 0 && (Main.tile[i + 1, num].type == 2 || Main.tile[i + 1, num].type == 23 || Main.tile[i + 1, num].type == 60 || Main.tile[i + 1, num].type == 109 || Main.tile[i + 1, num].type == 147)) { flag4 = true; } if (!flag3) { if (num7 == 0) { num7 = 2; } if (num7 == 1) { num7 = 3; } } if (!flag4) { if (num7 == 0) { num7 = 1; } if (num7 == 2) { num7 = 3; } } if (flag3 && !flag4) { num7 = 2; } if (flag4 && !flag3) { num7 = 1; } if (num7 == 0 || num7 == 1) { Main.tile[i + 1, num - 1].active(true); Main.tile[i + 1, num - 1].type = 5; num5 = WorldGen.genRand.Next(3); if (num5 == 0) { Main.tile[i + 1, num - 1].frameX = 22; Main.tile[i + 1, num - 1].frameY = 132; } if (num5 == 1) { Main.tile[i + 1, num - 1].frameX = 22; Main.tile[i + 1, num - 1].frameY = 154; } if (num5 == 2) { Main.tile[i + 1, num - 1].frameX = 22; Main.tile[i + 1, num - 1].frameY = 176; } } if (num7 == 0 || num7 == 2) { Main.tile[i - 1, num - 1].active(true); Main.tile[i - 1, num - 1].type = 5; num5 = WorldGen.genRand.Next(3); if (num5 == 0) { Main.tile[i - 1, num - 1].frameX = 44; Main.tile[i - 1, num - 1].frameY = 132; } if (num5 == 1) { Main.tile[i - 1, num - 1].frameX = 44; Main.tile[i - 1, num - 1].frameY = 154; } if (num5 == 2) { Main.tile[i - 1, num - 1].frameX = 44; Main.tile[i - 1, num - 1].frameY = 176; } } num5 = WorldGen.genRand.Next(3); if (num7 == 0) { if (num5 == 0) { Main.tile[i, num - 1].frameX = 88; Main.tile[i, num - 1].frameY = 132; } if (num5 == 1) { Main.tile[i, num - 1].frameX = 88; Main.tile[i, num - 1].frameY = 154; } if (num5 == 2) { Main.tile[i, num - 1].frameX = 88; Main.tile[i, num - 1].frameY = 176; } } else { if (num7 == 1) { if (num5 == 0) { Main.tile[i, num - 1].frameX = 0; Main.tile[i, num - 1].frameY = 132; } if (num5 == 1) { Main.tile[i, num - 1].frameX = 0; Main.tile[i, num - 1].frameY = 154; } if (num5 == 2) { Main.tile[i, num - 1].frameX = 0; Main.tile[i, num - 1].frameY = 176; } } else { if (num7 == 2) { if (num5 == 0) { Main.tile[i, num - 1].frameX = 66; Main.tile[i, num - 1].frameY = 132; } if (num5 == 1) { Main.tile[i, num - 1].frameX = 66; Main.tile[i, num - 1].frameY = 154; } if (num5 == 2) { Main.tile[i, num - 1].frameX = 66; Main.tile[i, num - 1].frameY = 176; } } } } if (WorldGen.genRand.Next(8) != 0) { num5 = WorldGen.genRand.Next(3); if (num5 == 0) { Main.tile[i, num - num4].frameX = 22; Main.tile[i, num - num4].frameY = 198; } if (num5 == 1) { Main.tile[i, num - num4].frameX = 22; Main.tile[i, num - num4].frameY = 220; } if (num5 == 2) { Main.tile[i, num - num4].frameX = 22; Main.tile[i, num - num4].frameY = 242; } } else { num5 = WorldGen.genRand.Next(3); if (num5 == 0) { Main.tile[i, num - num4].frameX = 0; Main.tile[i, num - num4].frameY = 198; } if (num5 == 1) { Main.tile[i, num - num4].frameX = 0; Main.tile[i, num - num4].frameY = 220; } if (num5 == 2) { Main.tile[i, num - num4].frameX = 0; Main.tile[i, num - num4].frameY = 242; } } WorldGen.RangeFrame(i - 2, num - num4 - 1, i + 2, num + 1); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, i, (int)((double)num - (double)num4 * 0.5), num4 + 1); } } } } public static void GrowUndergroundTree(int i, int y) { if (Main.tile[i, y].type != 60) { return; } if (Main.tile[i, y].nactive() && !Main.tile[i, y].halfBrick() && Main.tile[i, y].slope() == 0 && Main.tile[i, y].type == 60 && ((Main.tile[i - 1, y].active() && Main.tile[i - 1, y].type == 60) || (Main.tile[i + 1, y].active() && Main.tile[i + 1, y].type == 60))) { int num = 1; int num2 = WorldGen.genRand.Next(5, 15); int num3 = num2 + 2; if (Main.tile[i, y].type == 60) { num3 += 5; } if (WorldGen.EmptyTileCheck(i - num, i + num, y - num3, y - 1, 20)) { bool flag = false; bool flag2 = false; int num4; for (int j = y - num2; j < y; j++) { Main.tile[i, j].frameNumber((byte)WorldGen.genRand.Next(3)); Main.tile[i, j].active(true); Main.tile[i, j].type = 5; num4 = WorldGen.genRand.Next(3); int num5 = WorldGen.genRand.Next(10); if (j == y - 1 || j == y - num2) { num5 = 0; } while (((num5 == 5 || num5 == 7) && flag) || ((num5 == 6 || num5 == 7) && flag2)) { num5 = WorldGen.genRand.Next(10); } flag = false; flag2 = false; if (num5 == 5 || num5 == 7) { flag = true; } if (num5 == 6 || num5 == 7) { flag2 = true; } if (num5 == 1) { if (num4 == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 110; } } else { if (num5 == 2) { if (num4 == 0) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 0; } if (num4 == 1) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 22; } if (num4 == 2) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 44; } } else { if (num5 == 3) { if (num4 == 0) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 44; Main.tile[i, j].frameY = 110; } } else { if (num5 == 4) { if (num4 == 0) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 22; Main.tile[i, j].frameY = 110; } } else { if (num5 == 5) { if (num4 == 0) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 0; } if (num4 == 1) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 22; } if (num4 == 2) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 44; } } else { if (num5 == 6) { if (num4 == 0) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 110; } } else { if (num5 == 7) { if (num4 == 0) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 66; } if (num4 == 1) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 88; } if (num4 == 2) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 110; } } else { if (num4 == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 0; } if (num4 == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 22; } if (num4 == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 44; } } } } } } } } if (num5 == 5 || num5 == 7) { Main.tile[i - 1, j].active(true); Main.tile[i - 1, j].type = 5; num4 = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (num4 == 0) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 198; } if (num4 == 1) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 220; } if (num4 == 2) { Main.tile[i - 1, j].frameX = 44; Main.tile[i - 1, j].frameY = 242; } } else { if (num4 == 0) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 0; } if (num4 == 1) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 22; } if (num4 == 2) { Main.tile[i - 1, j].frameX = 66; Main.tile[i - 1, j].frameY = 44; } } } if (num5 == 6 || num5 == 7) { Main.tile[i + 1, j].active(true); Main.tile[i + 1, j].type = 5; num4 = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (num4 == 0) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 198; } if (num4 == 1) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 220; } if (num4 == 2) { Main.tile[i + 1, j].frameX = 66; Main.tile[i + 1, j].frameY = 242; } } else { if (num4 == 0) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 66; } if (num4 == 1) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 88; } if (num4 == 2) { Main.tile[i + 1, j].frameX = 88; Main.tile[i + 1, j].frameY = 110; } } } } int num6 = WorldGen.genRand.Next(3); bool flag3 = false; bool flag4 = false; if (Main.tile[i - 1, y].nactive() && !Main.tile[i - 1, y].halfBrick() && Main.tile[i - 1, y].slope() == 0 && (Main.tile[i - 1, y].type == 2 || Main.tile[i - 1, y].type == 23 || Main.tile[i - 1, y].type == 60 || Main.tile[i - 1, y].type == 109 || Main.tile[i - 1, y].type == 147)) { flag3 = true; } if (Main.tile[i + 1, y].nactive() && !Main.tile[i + 1, y].halfBrick() && Main.tile[i + 1, y].slope() == 0 && (Main.tile[i + 1, y].type == 2 || Main.tile[i + 1, y].type == 23 || Main.tile[i + 1, y].type == 60 || Main.tile[i + 1, y].type == 109 || Main.tile[i + 1, y].type == 147)) { flag4 = true; } if (!flag3) { if (num6 == 0) { num6 = 2; } if (num6 == 1) { num6 = 3; } } if (!flag4) { if (num6 == 0) { num6 = 1; } if (num6 == 2) { num6 = 3; } } if (flag3 && !flag4) { num6 = 2; } if (flag4 && !flag3) { num6 = 1; } if (num6 == 0 || num6 == 1) { Main.tile[i + 1, y - 1].active(true); Main.tile[i + 1, y - 1].type = 5; num4 = WorldGen.genRand.Next(3); if (num4 == 0) { Main.tile[i + 1, y - 1].frameX = 22; Main.tile[i + 1, y - 1].frameY = 132; } if (num4 == 1) { Main.tile[i + 1, y - 1].frameX = 22; Main.tile[i + 1, y - 1].frameY = 154; } if (num4 == 2) { Main.tile[i + 1, y - 1].frameX = 22; Main.tile[i + 1, y - 1].frameY = 176; } } if (num6 == 0 || num6 == 2) { Main.tile[i - 1, y - 1].active(true); Main.tile[i - 1, y - 1].type = 5; num4 = WorldGen.genRand.Next(3); if (num4 == 0) { Main.tile[i - 1, y - 1].frameX = 44; Main.tile[i - 1, y - 1].frameY = 132; } if (num4 == 1) { Main.tile[i - 1, y - 1].frameX = 44; Main.tile[i - 1, y - 1].frameY = 154; } if (num4 == 2) { Main.tile[i - 1, y - 1].frameX = 44; Main.tile[i - 1, y - 1].frameY = 176; } } num4 = WorldGen.genRand.Next(3); if (num6 == 0) { if (num4 == 0) { Main.tile[i, y - 1].frameX = 88; Main.tile[i, y - 1].frameY = 132; } if (num4 == 1) { Main.tile[i, y - 1].frameX = 88; Main.tile[i, y - 1].frameY = 154; } if (num4 == 2) { Main.tile[i, y - 1].frameX = 88; Main.tile[i, y - 1].frameY = 176; } } else { if (num6 == 1) { if (num4 == 0) { Main.tile[i, y - 1].frameX = 0; Main.tile[i, y - 1].frameY = 132; } if (num4 == 1) { Main.tile[i, y - 1].frameX = 0; Main.tile[i, y - 1].frameY = 154; } if (num4 == 2) { Main.tile[i, y - 1].frameX = 0; Main.tile[i, y - 1].frameY = 176; } } else { if (num6 == 2) { if (num4 == 0) { Main.tile[i, y - 1].frameX = 66; Main.tile[i, y - 1].frameY = 132; } if (num4 == 1) { Main.tile[i, y - 1].frameX = 66; Main.tile[i, y - 1].frameY = 154; } if (num4 == 2) { Main.tile[i, y - 1].frameX = 66; Main.tile[i, y - 1].frameY = 176; } } } } if (WorldGen.genRand.Next(8) != 0) { num4 = WorldGen.genRand.Next(3); if (num4 == 0) { Main.tile[i, y - num2].frameX = 22; Main.tile[i, y - num2].frameY = 198; } if (num4 == 1) { Main.tile[i, y - num2].frameX = 22; Main.tile[i, y - num2].frameY = 220; } if (num4 == 2) { Main.tile[i, y - num2].frameX = 22; Main.tile[i, y - num2].frameY = 242; } } else { num4 = WorldGen.genRand.Next(3); if (num4 == 0) { Main.tile[i, y - num2].frameX = 0; Main.tile[i, y - num2].frameY = 198; } if (num4 == 1) { Main.tile[i, y - num2].frameX = 0; Main.tile[i, y - num2].frameY = 220; } if (num4 == 2) { Main.tile[i, y - num2].frameX = 0; Main.tile[i, y - num2].frameY = 242; } } WorldGen.RangeFrame(i - 2, y - num2 - 1, i + 2, y + 1); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, i, (int)((double)y - (double)num2 * 0.5), num2 + 1); } } } } public static void GrowShroom(int i, int y) { if (Main.tile[i - 1, y - 1].lava() || Main.tile[i - 1, y - 1].lava() || Main.tile[i + 1, y - 1].lava()) { return; } if (Main.tile[i, y].nactive() && !Main.tile[i, y].halfBrick() && Main.tile[i, y].slope() == 0 && Main.tile[i, y].type == 70 && Main.tile[i, y - 1].wall == 0 && Main.tile[i - 1, y].active() && Main.tile[i - 1, y].type == 70 && Main.tile[i + 1, y].active() && Main.tile[i + 1, y].type == 70 && WorldGen.EmptyTileCheck(i - 2, i + 2, y - 13, y - 1, 71)) { int num = WorldGen.genRand.Next(4, 11); int num2; for (int j = y - num; j < y; j++) { Main.tile[i, j].frameNumber((byte)WorldGen.genRand.Next(3)); Main.tile[i, j].active(true); Main.tile[i, j].type = 72; num2 = WorldGen.genRand.Next(3); if (num2 == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 0; } if (num2 == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 18; } if (num2 == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 36; } } num2 = WorldGen.genRand.Next(3); if (num2 == 0) { Main.tile[i, y - num].frameX = 36; Main.tile[i, y - num].frameY = 0; } if (num2 == 1) { Main.tile[i, y - num].frameX = 36; Main.tile[i, y - num].frameY = 18; } if (num2 == 2) { Main.tile[i, y - num].frameX = 36; Main.tile[i, y - num].frameY = 36; } WorldGen.RangeFrame(i - 2, y - num - 1, i + 2, y + 1); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, i, (int)((double)y - (double)num * 0.5), num + 1); } } } public static void AddTrees() { for (int i = 1; i < Main.maxTilesX - 1; i++) { int num = 20; while ((double)num < Main.worldSurface) { WorldGen.GrowTree(i, num); num++; } if (WorldGen.genRand.Next(3) == 0) { i++; } if (WorldGen.genRand.Next(4) == 0) { i++; } } } public static void ExplodeMine(int i, int j) { byte arg_11_0 = Main.tile[i, j].type; WorldGen.KillTile(i, j, false, false, true); NetMessage.SendTileSquare(-1, i, j, 1); Projectile.NewProjectile((float)(i * 16 + 8), (float)(j * 16 + 8), 0f, 0f, 164, 250, 10f, Main.myPlayer, 0f, 0f); } public static bool EmptyTileCheck(int startX, int endX, int startY, int endY, int ignoreStyle = -1) { if (startX < 0) { return false; } if (endX >= Main.maxTilesX) { return false; } if (startY < 0) { return false; } if (endY >= Main.maxTilesY) { return false; } for (int i = startX; i < endX + 1; i++) { for (int j = startY; j < endY + 1; j++) { if (Main.tile[i, j].active()) { if (ignoreStyle == -1) { return false; } if (ignoreStyle == 11 && Main.tile[i, j].type != 11) { return false; } if (ignoreStyle == 20 && Main.tile[i, j].type != 20 && Main.tile[i, j].type != 3 && Main.tile[i, j].type != 62 && Main.tile[i, j].type != 24 && Main.tile[i, j].type != 61 && Main.tile[i, j].type != 32 && Main.tile[i, j].type != 69 && Main.tile[i, j].type != 71 && Main.tile[i, j].type != 73 && Main.tile[i, j].type != 74 && Main.tile[i, j].type != 110 && Main.tile[i, j].type != 113 && Main.tile[i, j].type != 82 && Main.tile[i, j].type != 83 && Main.tile[i, j].type != 84) { return false; } if (ignoreStyle == 71 && Main.tile[i, j].type != 71) { return false; } } } } return true; } public static void smCallBack(object threadContext) { if (Main.hardMode) { return; } WorldGen.hardLock = true; Main.hardMode = true; if (WorldGen.genRand == null) { WorldGen.genRand = new Random((int)DateTime.Now.Ticks); } float num = (float)WorldGen.genRand.Next(300, 400) * 0.001f; float num2 = (float)WorldGen.genRand.Next(200, 300) * 0.001f; int num3 = (int)((float)Main.maxTilesX * num); int num4 = (int)((float)Main.maxTilesX * (1f - num)); int num5 = 1; if (WorldGen.genRand.Next(2) == 0) { num4 = (int)((float)Main.maxTilesX * num); num3 = (int)((float)Main.maxTilesX * (1f - num)); num5 = -1; } int num6 = 1; if (WorldGen.dungeonX < Main.maxTilesX / 2) { num6 = -1; } if (num6 < 0) { if (num4 < num3) { num4 = (int)((float)Main.maxTilesX * num2); } else { num3 = (int)((float)Main.maxTilesX * num2); } } else { if (num4 > num3) { num4 = (int)((float)Main.maxTilesX * (1f - num2)); } else { num3 = (int)((float)Main.maxTilesX * (1f - num2)); } } WorldGen.GERunner(num3, 0, (float)(3 * num5), 5f, true); WorldGen.GERunner(num4, 0, (float)(3 * -(float)num5), 5f, false); if (Main.netMode == 0) { Main.NewText(Lang.misc[15], 50, 255, 130, false); } else { if (Main.netMode == 2) { NetMessage.SendData(25, -1, -1, Lang.misc[15], 255, 50f, 255f, 130f, 0); } } if (Main.netMode == 2) { Netplay.ResetSections(); } WorldGen.hardLock = false; } public static void StartHardmode() { if (Main.netMode == 1) { return; } ThreadPool.QueueUserWorkItem(new WaitCallback(WorldGen.smCallBack), 1); } public static bool PlaceDoor(int i, int j, int type, int style = 0) { int num = 54 * style; bool result; try { if (Main.tile[i, j - 2].nactive() && Main.tileSolid[(int)Main.tile[i, j - 2].type] && WorldGen.SolidTile(i, j + 2)) { Main.tile[i, j - 1].active(true); Main.tile[i, j - 1].type = 10; Main.tile[i, j - 1].frameY = (short)num; Main.tile[i, j - 1].frameX = (short)(WorldGen.genRand.Next(3) * 18); Main.tile[i, j].active(true); Main.tile[i, j].type = 10; Main.tile[i, j].frameY = (short)(num + 18); Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(3) * 18); Main.tile[i, j + 1].active(true); Main.tile[i, j + 1].type = 10; Main.tile[i, j + 1].frameY = (short)(num + 36); Main.tile[i, j + 1].frameX = (short)(WorldGen.genRand.Next(3) * 18); result = true; } else { result = false; } } catch { result = false; } return result; } public static bool CloseDoor(int i, int j, bool forced = false) { int num = 0; int num2 = i; if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } int frameX = (int)Main.tile[i, j].frameX; int k = (int)Main.tile[i, j].frameY; int num3 = 0; while (k >= 54) { k -= 54; num3++; } int num4 = j - k / 18; if (frameX == 0) { num2 = i; num = 1; } else { if (frameX == 18) { num2 = i - 1; num = 1; } else { if (frameX == 36) { num2 = i + 1; num = -1; } else { if (frameX == 54) { num2 = i; num = -1; } } } } int num5 = num2; if (num == -1) { num5 = num2 - 1; } if (!forced) { for (int l = num4; l < num4 + 3; l++) { if (!Collision.EmptyTile(num2, l, true)) { return false; } } } for (int m = num5; m < num5 + 2; m++) { for (int n = num4; n < num4 + 3; n++) { if (m == num2) { if (Main.tile[m, n] == null) { Main.tile[m, n] = new Tile(); } Main.tile[m, n].type = 10; Main.tile[m, n].frameX = (short)(WorldGen.genRand.Next(3) * 18); } else { if (Main.tile[m, n] == null) { Main.tile[m, n] = new Tile(); } Main.tile[m, n].active(false); } } } if (Main.netMode != 1) { int num6 = num2; for (int num7 = num4; num7 <= num4 + 2; num7++) { if (WorldGen.numNoWire < WorldGen.maxWire - 1) { WorldGen.noWireX[WorldGen.numNoWire] = num6; WorldGen.noWireY[WorldGen.numNoWire] = num7; WorldGen.numNoWire++; } } } for (int num8 = num2 - 1; num8 <= num2 + 1; num8++) { for (int num9 = num4 - 1; num9 <= num4 + 2; num9++) { WorldGen.TileFrame(num8, num9, false, false); } } Main.PlaySound(9, i * 16, j * 16, 1); return true; } public static bool AddLifeCrystal(int i, int j) { int k = j; while (k < Main.maxTilesY) { if (Main.tile[i, k].active() && Main.tileSolid[(int)Main.tile[i, k].type]) { int num = k - 1; if (Main.tile[i, num - 1].lava() || Main.tile[i - 1, num - 1].lava()) { return false; } if (!WorldGen.EmptyTileCheck(i - 1, i, num - 1, num, -1)) { return false; } Main.tile[i - 1, num - 1].active(true); Main.tile[i - 1, num - 1].type = 12; Main.tile[i - 1, num - 1].frameX = 0; Main.tile[i - 1, num - 1].frameY = 0; Main.tile[i, num - 1].active(true); Main.tile[i, num - 1].type = 12; Main.tile[i, num - 1].frameX = 18; Main.tile[i, num - 1].frameY = 0; Main.tile[i - 1, num].active(true); Main.tile[i - 1, num].type = 12; Main.tile[i - 1, num].frameX = 0; Main.tile[i - 1, num].frameY = 18; Main.tile[i, num].active(true); Main.tile[i, num].type = 12; Main.tile[i, num].frameX = 18; Main.tile[i, num].frameY = 18; return true; } else { k++; } } return false; } public static void AddShadowOrb(int x, int y) { if (x < 10 || x > Main.maxTilesX - 10) { return; } if (y < 10 || y > Main.maxTilesY - 10) { return; } for (int i = x - 1; i < x + 1; i++) { for (int j = y - 1; j < y + 1; j++) { if (Main.tile[i, j].active() && Main.tile[i, j].type == 31) { return; } } } short num = 0; if (WorldGen.crimson) { num += 36; } Main.tile[x - 1, y - 1].active(true); Main.tile[x - 1, y - 1].type = 31; Main.tile[x - 1, y - 1].frameX = num; Main.tile[x - 1, y - 1].frameY = 0; Main.tile[x, y - 1].active(true); Main.tile[x, y - 1].type = 31; Main.tile[x, y - 1].frameX = (short)(18 + num); Main.tile[x, y - 1].frameY = 0; Main.tile[x - 1, y].active(true); Main.tile[x - 1, y].type = 31; Main.tile[x - 1, y].frameX = num; Main.tile[x - 1, y].frameY = 18; Main.tile[x, y].active(true); Main.tile[x, y].type = 31; Main.tile[x, y].frameX = (short)(18 + num); Main.tile[x, y].frameY = 18; } public static void AddHellHouses() { int num = (int)((double)Main.maxTilesX * 0.25); for (int i = num; i < Main.maxTilesX - num; i++) { int num2 = Main.maxTilesY - 40; while (Main.tile[i, num2].active() || Main.tile[i, num2].liquid > 0) { num2--; } if (Main.tile[i, num2 + 1].active()) { byte b = (byte)WorldGen.genRand.Next(75, 77); byte wallType = 13; if (WorldGen.genRand.Next(5) > 0) { b = 75; } if (b == 75) { wallType = 14; } WorldGen.HellFort(i, num2, b, wallType); i += WorldGen.genRand.Next(30, 130); if (WorldGen.genRand.Next(10) == 0) { i += WorldGen.genRand.Next(0, 200); } } } float num3 = (float)(Main.maxTilesX / 4200); int num4 = 0; while ((float)num4 < 200f * num3) { int num5 = 0; bool flag = false; while (!flag) { num5++; int num6 = WorldGen.genRand.Next((int)((double)Main.maxTilesX * 0.2), (int)((double)Main.maxTilesX * 0.8)); int num7 = WorldGen.genRand.Next(Main.maxTilesY - 300, Main.maxTilesY - 20); if (Main.tile[num6, num7].active() && (Main.tile[num6, num7].type == 75 || Main.tile[num6, num7].type == 76)) { int num8 = 0; if (Main.tile[num6 - 1, num7].wall > 0) { num8 = -1; } else { if (Main.tile[num6 + 1, num7].wall > 0) { num8 = 1; } } if (!Main.tile[num6 + num8, num7].active() && !Main.tile[num6 + num8, num7 + 1].active()) { bool flag2 = false; for (int j = num6 - 8; j < num6 + 8; j++) { for (int k = num7 - 8; k < num7 + 8; k++) { if (Main.tile[j, k].active() && Main.tile[j, k].type == 4) { flag2 = true; break; } } } if (!flag2) { WorldGen.PlaceTile(num6 + num8, num7, 4, true, true, -1, 7); flag = true; } } } if (num5 > 1000) { flag = true; } } num4++; } float num9 = 4200000f / (float)Main.maxTilesX; int num10 = 0; while ((float)num10 < num9) { int num11 = WorldGen.genRand.Next(num, Main.maxTilesX - num); int num12 = WorldGen.genRand.Next(Main.maxTilesY - 250, Main.maxTilesY - 20); while ((Main.tile[num11, num12].wall != 13 && Main.tile[num11, num12].wall != 14) || Main.tile[num11, num12].active()) { num11 = WorldGen.genRand.Next(num, Main.maxTilesX - num); num12 = WorldGen.genRand.Next(Main.maxTilesY - 250, Main.maxTilesY - 20); } if ((Main.tile[num11, num12].wall == 13 || Main.tile[num11, num12].wall == 14) && !Main.tile[num11, num12].active()) { while (!WorldGen.SolidTile(num11, num12) && num12 < Main.maxTilesY - 20) { num12++; } num12--; int num13 = num11; int num14 = num11; while (!Main.tile[num13, num12].active() && WorldGen.SolidTile(num13, num12 + 1)) { num13--; } num13++; while (!Main.tile[num14, num12].active() && WorldGen.SolidTile(num14, num12 + 1)) { num14++; } num14--; int num15 = num14 - num13; int num16 = (num14 + num13) / 2; if (!Main.tile[num16, num12].active() && (Main.tile[num16, num12].wall == 13 || Main.tile[num16, num12].wall == 14) && WorldGen.SolidTile(num16, num12 + 1)) { int style = 16; int style2 = 13; int style3 = 14; int style4 = 49; int style5 = 4; int style6 = 8; int num17 = WorldGen.genRand.Next(6); int num18 = 0; int num19 = 0; if (num17 == 0) { num18 = 5; num19 = 4; } if (num17 == 1) { num18 = 4; num19 = 3; } if (num17 == 2) { num18 = 3; num19 = 5; } if (num17 == 3) { num18 = 4; num19 = 6; } if (num17 == 4) { num18 = 3; num19 = 3; } if (num17 == 5) { num18 = 5; num19 = 3; } for (int l = num16 - num18; l <= num16 + num18; l++) { for (int m = num12 - num19; m <= num12; m++) { if (Main.tile[l, m].active()) { num17 = -1; break; } } } if ((double)num15 < (double)num18 * 1.75) { num17 = -1; } if (num17 == 0) { WorldGen.PlaceTile(num16, num12, 14, true, false, -1, style2); if (Main.tile[num16, num12].active()) { if (!Main.tile[num16 - 2, num12].active()) { WorldGen.PlaceTile(num16 - 2, num12, 15, true, false, -1, style); if (Main.tile[num16 - 2, num12].active()) { Tile expr_5F7 = Main.tile[num16 - 2, num12]; expr_5F7.frameX += 18; Tile expr_618 = Main.tile[num16 - 2, num12 - 1]; expr_618.frameX += 18; } } if (!Main.tile[num16 + 2, num12].active()) { WorldGen.PlaceTile(num16 + 2, num12, 15, true, false, -1, style); } } } else { if (num17 == 1) { WorldGen.PlaceTile(num16, num12, 18, true, false, -1, style3); if (Main.tile[num16, num12].active()) { if (WorldGen.genRand.Next(2) == 0) { if (!Main.tile[num16 - 1, num12].active()) { WorldGen.PlaceTile(num16 - 1, num12, 15, true, false, -1, style); if (Main.tile[num16 - 1, num12].active()) { Tile expr_6F1 = Main.tile[num16 - 1, num12]; expr_6F1.frameX += 18; Tile expr_712 = Main.tile[num16 - 1, num12 - 1]; expr_712.frameX += 18; } } } else { if (!Main.tile[num16 + 2, num12].active()) { WorldGen.PlaceTile(num16 + 2, num12, 15, true, false, -1, style); } } } } else { if (num17 == 2) { WorldGen.PlaceTile(num16, num12, 105, true, false, -1, style4); } else { if (num17 == 3) { WorldGen.PlaceTile(num16, num12, 101, true, false, -1, style5); } else { if (num17 == 4) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.PlaceTile(num16, num12, 15, true, false, -1, style); Tile expr_7BF = Main.tile[num16, num12]; expr_7BF.frameX += 18; Tile expr_7DE = Main.tile[num16, num12 - 1]; expr_7DE.frameX += 18; } else { WorldGen.PlaceTile(num16, num12, 15, true, false, -1, style); } } else { if (num17 == 5) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.Place4x2(num16, num12, 79, 1, style6); } else { WorldGen.Place4x2(num16, num12, 79, -1, style6); } } } } } } } } } num10++; } num9 = 420000f / (float)Main.maxTilesX; int num20 = 0; while ((float)num20 < num9) { int num21 = WorldGen.genRand.Next(num, Main.maxTilesX - num); int num22 = WorldGen.genRand.Next(Main.maxTilesY - 250, Main.maxTilesY - 20); while ((Main.tile[num21, num22].wall != 13 && Main.tile[num21, num22].wall != 14) || Main.tile[num21, num22].active()) { num21 = WorldGen.genRand.Next(num, Main.maxTilesX - num); num22 = WorldGen.genRand.Next(Main.maxTilesY - 250, Main.maxTilesY - 20); } int num23; int num24; int num25; int num26; for (int n = 0; n < 2; n++) { num23 = num21; num24 = num21; while (!Main.tile[num23, num22].active() && (Main.tile[num23, num22].wall == 13 || Main.tile[num23, num22].wall == 14)) { num23--; } num23++; while (!Main.tile[num24, num22].active() && (Main.tile[num24, num22].wall == 13 || Main.tile[num24, num22].wall == 14)) { num24++; } num24--; num21 = (num23 + num24) / 2; num25 = num22; num26 = num22; while (!Main.tile[num21, num25].active() && (Main.tile[num21, num25].wall == 13 || Main.tile[num21, num25].wall == 14)) { num25--; } num25++; while (!Main.tile[num21, num26].active() && (Main.tile[num21, num26].wall == 13 || Main.tile[num21, num26].wall == 14)) { num26++; } num26--; num22 = (num25 + num26) / 2; } num23 = num21; num24 = num21; while (!Main.tile[num23, num22].active() && !Main.tile[num23, num22 - 1].active() && !Main.tile[num23, num22 + 1].active()) { num23--; } num23++; while (!Main.tile[num24, num22].active() && !Main.tile[num24, num22 - 1].active() && !Main.tile[num24, num22 + 1].active()) { num24++; } num24--; num25 = num22; num26 = num22; while (!Main.tile[num21, num25].active() && !Main.tile[num21 - 1, num25].active() && !Main.tile[num21 + 1, num25].active()) { num25--; } num25++; while (!Main.tile[num21, num26].active() && !Main.tile[num21 - 1, num26].active() && !Main.tile[num21 + 1, num26].active()) { num26++; } num26--; num21 = (num23 + num24) / 2; num22 = (num25 + num26) / 2; int num27 = num24 - num23; int num28 = num26 - num25; if (num27 > 7 && num28 > 5) { int num29 = 0; if (WorldGen.nearPicture2(num21, num22)) { num29 = -1; } if (num29 == 0) { Vector2 vector = WorldGen.randHellPicture(); int type = (int)vector.X; int style7 = (int)vector.Y; if (!WorldGen.nearPicture(num21, num22)) { WorldGen.PlaceTile(num21, num22, type, true, false, -1, style7); } } } num20++; } int[] array = new int[] { WorldGen.genRand.Next(16, 22), WorldGen.genRand.Next(16, 22), WorldGen.genRand.Next(16, 22) }; while (array[1] == array[0]) { array[1] = WorldGen.genRand.Next(16, 22); } while (array[2] == array[0] || array[2] == array[1]) { array[2] = WorldGen.genRand.Next(16, 22); } num9 = 420000f / (float)Main.maxTilesX; int num30 = 0; while ((float)num30 < num9) { int num31 = WorldGen.genRand.Next(num, Main.maxTilesX - num); int num32 = WorldGen.genRand.Next(Main.maxTilesY - 250, Main.maxTilesY - 20); while ((Main.tile[num31, num32].wall != 13 && Main.tile[num31, num32].wall != 14) || Main.tile[num31, num32].active()) { num31 = WorldGen.genRand.Next(num, Main.maxTilesX - num); num32 = WorldGen.genRand.Next(Main.maxTilesY - 250, Main.maxTilesY - 20); } while (!WorldGen.SolidTile(num31, num32) && num32 > 10) { num32--; } num32++; if ((Main.tile[num31, num32].wall == 13 || Main.tile[num31, num32].wall == 14) && !Main.tile[num31, num32].active() && !Main.tile[num31, num32 + 1].active() && !Main.tile[num31, num32 + 2].active() && !Main.tile[num31, num32 + 3].active()) { bool flag3 = true; for (int num33 = num31 - 1; num33 <= num31 + 1; num33++) { for (int num34 = num32; num34 <= num32 + 3; num34++) { if (Main.tile[num33, num34].active() && (Main.tile[num33, num34].type == 10 || Main.tile[num33, num34].type == 11 || Main.tile[num33, num34].type == 91)) { flag3 = false; } } } if (flag3) { int style8 = array[WorldGen.genRand.Next(3)]; WorldGen.PlaceTile(num31, num32, 91, true, false, -1, style8); } } num30++; } } public static void HellFort(int i, int j, byte tileType = 75, byte wallType = 14) { int[] array = new int[5]; int[] array2 = new int[5]; int[] array3 = new int[10]; int[] array4 = new int[10]; int num = 8; int num2 = 20; array[2] = i - WorldGen.genRand.Next(num / 2, num2 / 2); array2[2] = i + WorldGen.genRand.Next(num / 2, num2 / 2); array[3] = array2[2]; array2[3] = array[3] + WorldGen.genRand.Next(num, num2); array[4] = array2[3]; array2[4] = array[4] + WorldGen.genRand.Next(num, num2); array2[1] = array[2]; array[1] = array2[1] - WorldGen.genRand.Next(num, num2); array2[0] = array[1]; array[0] = array2[0] - WorldGen.genRand.Next(num, num2); num = 6; num2 = 12; array3[3] = j - WorldGen.genRand.Next(num, num2); array4[3] = j; for (int k = 4; k < 10; k++) { array3[k] = array4[k - 1]; array4[k] = array3[k] + WorldGen.genRand.Next(num, num2); } for (int l = 2; l >= 0; l--) { array4[l] = array3[l + 1]; array3[l] = array4[l] - WorldGen.genRand.Next(num, num2); } bool flag = false; bool flag2 = false; bool[,] array5 = new bool[5, 10]; int num3 = 3; int num4 = 3; for (int m = 0; m < 2; m++) { if (WorldGen.genRand.Next(3) == 0) { flag = true; int num5 = WorldGen.genRand.Next(10); if (num5 < num3) { num3 = num5; } if (num5 > num4) { num4 = num5; } int num6 = 1; if (WorldGen.genRand.Next(2) == 0) { array5[0, num5] = true; array5[1, num5] = true; num6 = 0; } else { array5[1, num5] = true; } int num7 = WorldGen.genRand.Next(2); if (num7 == 0) { num7 = -1; } int num8 = WorldGen.genRand.Next(10); while (num8 > 0 && num5 >= 0 && num5 < 10) { array5[num6, num5] = true; num5 += num7; } } if (WorldGen.genRand.Next(3) == 0) { flag2 = true; int num9 = WorldGen.genRand.Next(10); if (num9 < num3) { num3 = num9; } if (num9 > num4) { num4 = num9; } int num10 = 3; if (WorldGen.genRand.Next(2) == 0) { array5[3, num9] = true; array5[4, num9] = true; num10 = 4; } else { array5[3, num9] = true; } int num11 = WorldGen.genRand.Next(2); if (num11 == 0) { num11 = -1; } int num12 = WorldGen.genRand.Next(10); while (num12 > 0 && num9 >= 0 && num9 < 10) { array5[num10, num9] = true; num9 += num11; } } } for (int n = 0; n < 5; n++) { int num13 = array[n]; bool flag3 = false; for (int num14 = Main.maxTilesY - 200; num14 < Main.maxTilesY; num14++) { if (Main.tile[num13, num14].wall > 0) { flag3 = true; } } if (flag3) { for (int num15 = 0; num15 < 10; num15++) { array5[n, num15] = false; } } } int num16 = WorldGen.genRand.Next(10); if (num16 < num3) { num3 = num16; } num16 = WorldGen.genRand.Next(10); if (num16 > num4) { num4 = num16; } if (!flag && !flag2) { while (num4 - num3 < 5) { num16 = WorldGen.genRand.Next(10); if (num16 < num3) { num3 = num16; } num16 = WorldGen.genRand.Next(10); if (num16 > num4) { num4 = num16; } } } for (int num17 = num3; num17 <= num4; num17++) { array5[2, num17] = true; } for (int num18 = 0; num18 < 5; num18++) { for (int num19 = 0; num19 < 10; num19++) { if (array5[num18, num19] && (array3[num19] < Main.maxTilesY - 200 || array4[num19] > Main.maxTilesY - 20)) { array5[num18, num19] = false; } } } for (int num20 = 0; num20 < 5; num20++) { for (int num21 = 0; num21 < 10; num21++) { if (array5[num20, num21]) { for (int num22 = array[num20]; num22 <= array2[num20]; num22++) { for (int num23 = array3[num21]; num23 <= array4[num21]; num23++) { Main.tile[num22, num23].liquid = 0; if (num22 == array[num20] || num22 == array2[num20] || num23 == array3[num21] || num23 == array4[num21]) { Main.tile[num22, num23].active(true); Main.tile[num22, num23].type = tileType; Main.tile[num22, num23].halfBrick(false); Main.tile[num22, num23].slope(0); } else { Main.tile[num22, num23].wall = wallType; Main.tile[num22, num23].active(false); } } } } } } int style = 19; int style2 = 13; for (int num24 = 0; num24 < 4; num24++) { bool[] array6 = new bool[10]; bool flag4 = false; for (int num25 = 0; num25 < 10; num25++) { if (array5[num24, num25] && array5[num24 + 1, num25]) { array6[num25] = true; flag4 = true; } } while (flag4) { int num26 = WorldGen.genRand.Next(10); if (array6[num26]) { flag4 = false; Main.tile[array2[num24], array4[num26] - 1].active(false); Main.tile[array2[num24], array4[num26] - 2].active(false); Main.tile[array2[num24], array4[num26] - 3].active(false); Main.tile[array2[num24], array4[num26] - 1].wall = wallType; Main.tile[array2[num24], array4[num26] - 2].wall = wallType; Main.tile[array2[num24], array4[num26] - 3].wall = wallType; WorldGen.PlaceTile(array2[num24], array4[num26] - 1, 10, true, false, -1, style); } } } for (int num27 = 0; num27 < 5; num27++) { for (int num28 = 0; num28 < 10; num28++) { if (array5[num27, num28]) { if (num28 > 0 && array5[num27, num28 - 1]) { int num29 = WorldGen.genRand.Next(array[num27] + 2, array2[num27] - 1); int num30 = WorldGen.genRand.Next(array[num27] + 2, array2[num27] - 1); while (num30 - num29 < 2 || num30 - num29 > 5) { num29 = WorldGen.genRand.Next(array[num27] + 2, array2[num27] - 1); num30 = WorldGen.genRand.Next(array[num27] + 2, array2[num27] - 1); } for (int num31 = num29; num31 <= num30; num31++) { Main.tile[num31, array3[num28]].active(false); WorldGen.PlaceTile(num31, array3[num28], 19, true, true, -1, style2); Main.tile[num31, array3[num28]].wall = wallType; } } if (num27 < 4 && array5[num27 + 1, num28] && WorldGen.genRand.Next(3) == 0) { Main.tile[array2[num27], array4[num28] - 1].active(false); Main.tile[array2[num27], array4[num28] - 2].active(false); Main.tile[array2[num27], array4[num28] - 3].active(false); Main.tile[array2[num27], array4[num28] - 1].wall = wallType; Main.tile[array2[num27], array4[num28] - 2].wall = wallType; Main.tile[array2[num27], array4[num28] - 3].wall = wallType; WorldGen.PlaceTile(array2[num27], array4[num28] - 1, 10, true, false, -1, style); } } } } bool flag5 = false; for (int num32 = 0; num32 < 5; num32++) { bool[] array7 = new bool[10]; for (int num33 = 0; num33 < 10; num33++) { if (array5[num32, num33]) { flag5 = true; array7[num33] = true; } } if (flag5) { bool flag6 = false; for (int num34 = 0; num34 < 10; num34++) { if (array7[num34]) { if (!Main.tile[array[num32] - 1, array4[num34] - 1].active() && !Main.tile[array[num32] - 1, array4[num34] - 2].active() && !Main.tile[array[num32] - 1, array4[num34] - 3].active() && Main.tile[array[num32] - 1, array4[num34] - 1].liquid == 0 && Main.tile[array[num32] - 1, array4[num34] - 2].liquid == 0 && Main.tile[array[num32] - 1, array4[num34] - 3].liquid == 0) { flag6 = true; } else { array7[num34] = false; } } } while (flag6) { int num35 = WorldGen.genRand.Next(10); if (array7[num35]) { flag6 = false; Main.tile[array[num32], array4[num35] - 1].active(false); Main.tile[array[num32], array4[num35] - 2].active(false); Main.tile[array[num32], array4[num35] - 3].active(false); WorldGen.PlaceTile(array[num32], array4[num35] - 1, 10, true, false, -1, style); } } break; } } bool flag7 = false; for (int num36 = 4; num36 >= 0; num36--) { bool[] array8 = new bool[10]; for (int num37 = 0; num37 < 10; num37++) { if (array5[num36, num37]) { flag7 = true; array8[num37] = true; } } if (flag7) { bool flag8 = false; for (int num38 = 0; num38 < 10; num38++) { if (array8[num38]) { if (!Main.tile[array2[num36] + 1, array4[num38] - 1].active() && !Main.tile[array2[num36] + 1, array4[num38] - 2].active() && !Main.tile[array2[num36] + 1, array4[num38] - 3].active() && Main.tile[array2[num36] + 1, array4[num38] - 1].liquid == 0 && Main.tile[array2[num36] + 1, array4[num38] - 2].liquid == 0 && Main.tile[array2[num36] + 1, array4[num38] - 3].liquid == 0) { flag8 = true; } else { array8[num38] = false; } } } while (flag8) { int num39 = WorldGen.genRand.Next(10); if (array8[num39]) { flag8 = false; Main.tile[array2[num36], array4[num39] - 1].active(false); Main.tile[array2[num36], array4[num39] - 2].active(false); Main.tile[array2[num36], array4[num39] - 3].active(false); WorldGen.PlaceTile(array2[num36], array4[num39] - 1, 10, true, false, -1, style); } } break; } } bool flag9 = false; for (int num40 = 0; num40 < 10; num40++) { bool[] array9 = new bool[10]; for (int num41 = 0; num41 < 5; num41++) { if (array5[num41, num40]) { flag9 = true; array9[num41] = true; } } if (flag9) { bool flag10 = true; while (flag10) { int num42 = WorldGen.genRand.Next(5); if (array9[num42]) { int num43 = WorldGen.genRand.Next(array[num42] + 2, array2[num42] - 1); int num44 = WorldGen.genRand.Next(array[num42] + 2, array2[num42] - 1); while (num44 - num43 < 2 || num44 - num43 > 5) { num43 = WorldGen.genRand.Next(array[num42] + 2, array2[num42] - 1); num44 = WorldGen.genRand.Next(array[num42] + 2, array2[num42] - 1); } for (int num45 = num43; num45 <= num44; num45++) { if (Main.tile[num45, array3[num40] - 1].active() || Main.tile[num45, array3[num40] - 1].liquid > 0) { flag10 = false; } } if (flag10) { for (int num46 = num43; num46 <= num44; num46++) { Main.tile[num46, array3[num40]].active(false); WorldGen.PlaceTile(num46, array3[num40], 19, true, true, -1, style2); } } flag10 = false; } } return; } } } public static void HellHouse(int i, int j, byte type = 76, byte wall = 13) { int num = WorldGen.genRand.Next(8, 20); int num2 = WorldGen.genRand.Next(1, 3); int num3 = WorldGen.genRand.Next(4, 13); int num4 = j; for (int k = 0; k < num2; k++) { int num5 = WorldGen.genRand.Next(5, 9); WorldGen.HellRoom(i, num4, num, num5, type, wall); num4 -= num5; } num4 = j; for (int l = 0; l < num3; l++) { int num6 = WorldGen.genRand.Next(5, 9); num4 += num6; WorldGen.HellRoom(i, num4, num, num6, type, wall); } for (int m = i - num / 2; m <= i + num / 2; m++) { num4 = j; while (num4 < Main.maxTilesY && ((Main.tile[m, num4].active() && (Main.tile[m, num4].type == 76 || Main.tile[m, num4].type == 75)) || Main.tile[i, num4].wall == 13 || Main.tile[i, num4].wall == 14)) { num4++; } int num7 = 6 + WorldGen.genRand.Next(3); while (num4 < Main.maxTilesY && !Main.tile[m, num4].active()) { num7--; Main.tile[m, num4].active(true); Main.tile[m, num4].type = 57; num4++; if (num7 <= 0) { break; } } } int num8 = 0; int num9 = 0; num4 = j; while (num4 < Main.maxTilesY && ((Main.tile[i, num4].active() && (Main.tile[i, num4].type == 76 || Main.tile[i, num4].type == 75)) || Main.tile[i, num4].wall == 13 || Main.tile[i, num4].wall == 14)) { num4++; } num4--; num9 = num4; while ((Main.tile[i, num4].active() && (Main.tile[i, num4].type == 76 || Main.tile[i, num4].type == 75)) || Main.tile[i, num4].wall == 13 || Main.tile[i, num4].wall == 14) { num4--; if (Main.tile[i, num4].active() && (Main.tile[i, num4].type == 76 || Main.tile[i, num4].type == 75)) { int num10 = WorldGen.genRand.Next(i - num / 2 + 1, i + num / 2 - 1); int num11 = WorldGen.genRand.Next(i - num / 2 + 1, i + num / 2 - 1); if (num10 > num11) { int num12 = num10; num10 = num11; num11 = num12; } if (num10 == num11) { if (num10 < i) { num11++; } else { num10--; } } for (int n = num10; n <= num11; n++) { if (Main.tile[n, num4 - 1].wall == 13) { Main.tile[n, num4].wall = 13; } if (Main.tile[n, num4 - 1].wall == 14) { Main.tile[n, num4].wall = 14; } Main.tile[n, num4].type = 19; Main.tile[n, num4].active(true); } num4--; } } num8 = num4; float num13 = (float)((num9 - num8) * num); float num14 = num13 * 0.02f; int num15 = 0; while ((float)num15 < num14) { int num16 = WorldGen.genRand.Next(i - num / 2, i + num / 2 + 1); int num17 = WorldGen.genRand.Next(num8, num9); int num18 = WorldGen.genRand.Next(3, 8); for (int num19 = num16 - num18; num19 <= num16 + num18; num19++) { for (int num20 = num17 - num18; num20 <= num17 + num18; num20++) { float num21 = (float)Math.Abs(num19 - num16); float num22 = (float)Math.Abs(num20 - num17); double num23 = Math.Sqrt((double)(num21 * num21 + num22 * num22)); if (num23 < (double)num18 * 0.4) { try { if (Main.tile[num19, num20].type == 76 || Main.tile[num19, num20].type == 19) { Main.tile[num19, num20].active(false); } Main.tile[num19, num20].wall = 0; } catch { } } } } num15++; } } public static void HellRoom(int i, int j, int width, int height, byte type = 76, byte wall = 13) { if (j > Main.maxTilesY - 40) { return; } for (int k = i - width / 2; k <= i + width / 2; k++) { for (int l = j - height; l <= j; l++) { try { Main.tile[k, l].active(true); Main.tile[k, l].type = type; Main.tile[k, l].liquid = 0; Main.tile[k, l].lava(false); } catch { } } } for (int m = i - width / 2 + 1; m <= i + width / 2 - 1; m++) { for (int n = j - height + 1; n <= j - 1; n++) { try { Main.tile[m, n].active(false); Main.tile[m, n].wall = wall; Main.tile[m, n].liquid = 0; Main.tile[m, n].lava(false); } catch { } } } } public static void templeCleaner(int x, int y) { int num = 0; if (Main.tile[x + 1, y].active() && Main.tile[x + 1, y].type == 226) { num++; } if (Main.tile[x - 1, y].active() && Main.tile[x - 1, y].type == 226) { num++; } if (Main.tile[x, y + 1].active() && Main.tile[x, y + 1].type == 226) { num++; } if (Main.tile[x, y - 1].active() && Main.tile[x, y - 1].type == 226) { num++; } if (Main.tile[x, y].active() && Main.tile[x, y].type == 226) { if (num <= 1) { Main.tile[x, y].active(false); Main.tile[x, y].wall = 87; return; } } else { if (!Main.tile[x, y].active() && num == 3) { Main.tile[x, y].active(true); Main.tile[x, y].type = 226; Main.tile[x, y].liquid = 0; Main.tile[x, y].slope(0); Main.tile[x, y].halfBrick(false); } } } public static Vector2 templePather(Vector2 templePath, int destX, int destY) { int num = (int)templePath.X; int num2 = (int)templePath.Y; int num3 = WorldGen.genRand.Next(5, 20); int num4 = WorldGen.genRand.Next(2, 5); while (num3 > 0 && (num != destX || num2 != destY)) { num3--; if (num > destX) { num--; } if (num < destX) { num++; } if (num2 > destY) { num2--; } if (num2 < destY) { num2++; } for (int i = num - num4; i < num + num4; i++) { for (int j = num2 - num4; j < num2 + num4; j++) { Main.tile[i, j].active(false); Main.tile[i, j].wall = 87; } } } return new Vector2((float)num, (float)num2); } public static void outerTempled(int x, int y) { if (Main.tile[x, y].active() & Main.tile[x, y].type == 226) { return; } if (Main.tile[x, y].wall == 87) { return; } int num = 6; for (int i = x - num; i <= x + num; i++) { for (int j = y - num; j <= y + num; j++) { if (!Main.tile[i, j].active() && Main.tile[i, j].wall == 87) { Main.tile[x, y].active(true); Main.tile[x, y].type = 226; Main.tile[x, y].liquid = 0; Main.tile[x, y].slope(0); Main.tile[x, y].halfBrick(false); return; } } } } public static void makeTemple(int x, int y) { Rectangle[] array = new Rectangle[40]; float num = (float)(Main.maxTilesX / 4200); int num2 = WorldGen.genRand.Next((int)(num * 10f), (int)(num * 16f)); int num3 = 1; if (WorldGen.genRand.Next(2) == 0) { num3 = -1; } int num4 = num3; int num5 = x; int num6 = y; int num7 = x; int num8 = y; int num9 = WorldGen.genRand.Next(1, 3); int num10 = 0; for (int i = 0; i < num2; i++) { num10++; int num11 = num3; int num12 = num7; int num13 = num8; bool flag = true; int num14 = 0; int num15 = 0; int num16 = -10; Rectangle rectangle = new Rectangle(num12 - num14 / 2, num13 - num15 / 2, num14, num15); while (flag) { num12 = num7; num13 = num8; num14 = WorldGen.genRand.Next(25, 50); num15 = WorldGen.genRand.Next(20, 35); if (num15 > num14) { num15 = num14; } if (i == num2 - 1) { num14 = WorldGen.genRand.Next(50, 60); num15 = WorldGen.genRand.Next(40, 45); if (num15 > num14) { num15 = num14; } num14 = (int)((double)((float)num14) * 1.5); num15 = (int)((double)((float)num15) * 1.25); num13 += WorldGen.genRand.Next(5, 10); } if (num10 > num9) { num13 += WorldGen.genRand.Next(num15 + 1, num15 + 3) + num16; num12 += WorldGen.genRand.Next(-5, 6); num11 = num3 * -1; } else { num12 += (WorldGen.genRand.Next(num14 + 1, num14 + 3) + num16) * num11; num13 += WorldGen.genRand.Next(-5, 6); } flag = false; rectangle = new Rectangle(num12 - num14 / 2, num13 - num15 / 2, num14, num15); for (int j = 0; j < i; j++) { if (rectangle.Intersects(array[j])) { flag = true; } if (WorldGen.genRand.Next(100) == 0) { num16++; } } } if (num10 > num9) { num9++; num10 = 1; } array[i] = rectangle; num3 = num11; num7 = num12; num8 = num13; } for (int k = 0; k < num2; k++) { for (int l = 0; l < 2; l++) { for (int m = 0; m < num2; m++) { for (int n = 0; n < 2; n++) { int num17 = array[k].X; if (l == 1) { num17 += array[k].Width - 1; } int num18 = array[k].Y; int num19 = num18 + array[k].Height; int num20 = array[m].X; if (n == 1) { num20 += array[m].Width - 1; } int y2 = array[m].Y; int num21 = y2 + array[m].Height; while (num17 != num20 || num18 != y2 || num19 != num21) { if (num17 < num20) { num17++; } if (num17 > num20) { num17--; } if (num18 < y2) { num18++; } if (num18 > y2) { num18--; } if (num19 < num21) { num19++; } if (num19 > num21) { num19--; } int num22 = num17; for (int num23 = num18; num23 < num19; num23++) { Main.tile[num22, num23].active(true); Main.tile[num22, num23].type = 226; Main.tile[num22, num23].liquid = 0; Main.tile[num22, num23].slope(0); Main.tile[num22, num23].halfBrick(false); } } } } } } for (int num24 = 0; num24 < num2; num24++) { if (WorldGen.genRand.Next(1) == 0) { for (int num25 = array[num24].X; num25 < array[num24].X + array[num24].Width; num25++) { for (int num26 = array[num24].Y; num26 < array[num24].Y + array[num24].Height; num26++) { Main.tile[num25, num26].active(true); Main.tile[num25, num26].type = 226; Main.tile[num25, num26].liquid = 0; Main.tile[num25, num26].slope(0); Main.tile[num25, num26].halfBrick(false); } } int num27 = array[num24].X; int num28 = num27 + array[num24].Width; int num29 = array[num24].Y; int num30 = num29 + array[num24].Height; num27 += WorldGen.genRand.Next(3, 8); num28 -= WorldGen.genRand.Next(3, 8); num29 += WorldGen.genRand.Next(3, 8); num30 -= WorldGen.genRand.Next(3, 8); int num31 = num27; int num32 = num28; int num33 = num29; int num34 = num30; int num35 = (num27 + num28) / 2; int num36 = (num29 + num30) / 2; for (int num37 = num27; num37 < num28; num37++) { for (int num38 = num29; num38 < num30; num38++) { if (WorldGen.genRand.Next(20) == 0) { num33 += WorldGen.genRand.Next(-1, 2); } if (WorldGen.genRand.Next(20) == 0) { num34 += WorldGen.genRand.Next(-1, 2); } if (WorldGen.genRand.Next(20) == 0) { num31 += WorldGen.genRand.Next(-1, 2); } if (WorldGen.genRand.Next(20) == 0) { num32 += WorldGen.genRand.Next(-1, 2); } if (num31 < num27) { num31 = num27; } if (num32 > num28) { num32 = num28; } if (num33 < num29) { num33 = num29; } if (num34 > num30) { num34 = num30; } if (num31 > num35) { num31 = num35; } if (num32 < num35) { num32 = num35; } if (num33 > num36) { num33 = num36; } if (num34 < num36) { num34 = num36; } if (num37 >= num31 && (num37 < num32 & num38 >= num33) && num38 <= num34) { Main.tile[num37, num38].active(false); Main.tile[num37, num38].wall = 87; } } } for (int num39 = num30; num39 > num29; num39--) { for (int num40 = num28; num40 > num27; num40--) { if (WorldGen.genRand.Next(20) == 0) { num33 += WorldGen.genRand.Next(-1, 2); } if (WorldGen.genRand.Next(20) == 0) { num34 += WorldGen.genRand.Next(-1, 2); } if (WorldGen.genRand.Next(20) == 0) { num31 += WorldGen.genRand.Next(-1, 2); } if (WorldGen.genRand.Next(20) == 0) { num32 += WorldGen.genRand.Next(-1, 2); } if (num31 < num27) { num31 = num27; } if (num32 > num28) { num32 = num28; } if (num33 < num29) { num33 = num29; } if (num34 > num30) { num34 = num30; } if (num31 > num35) { num31 = num35; } if (num32 < num35) { num32 = num35; } if (num33 > num36) { num33 = num36; } if (num34 < num36) { num34 = num36; } if (num40 >= num31 && (num40 < num32 & num39 >= num33) && num39 <= num34) { Main.tile[num40, num39].active(false); Main.tile[num40, num39].wall = 87; } } } } } Vector2 templePath = new Vector2((float)num5, (float)num6); for (int num41 = 0; num41 < num2; num41++) { Rectangle rectangle2 = array[num41]; rectangle2.X += 8; rectangle2.Y += 8; rectangle2.Width -= 16; rectangle2.Height -= 16; bool flag2 = true; while (flag2) { int num42 = WorldGen.genRand.Next(rectangle2.X, rectangle2.X + rectangle2.Width); int num43 = WorldGen.genRand.Next(rectangle2.Y, rectangle2.Y + rectangle2.Height); templePath = WorldGen.templePather(templePath, num42, num43); if (templePath.X == (float)num42 && templePath.Y == (float)num43) { flag2 = false; } } if (num41 < num2 - 1) { if (WorldGen.genRand.Next(3) != 0) { int num44 = num41 + 1; if (array[num44].Y >= array[num41].Y + array[num41].Height) { rectangle2.X = array[num44].X; if (array[num44].X < array[num41].X) { rectangle2.X += (int)((double)((float)array[num44].Width) * 0.2); } else { rectangle2.X += (int)((double)((float)array[num44].Width) * 0.8); } rectangle2.Y = array[num44].Y; } else { rectangle2.X = (array[num41].X + array[num41].Width / 2 + (array[num44].X + array[num44].Width / 2)) / 2; rectangle2.Y = (int)((double)array[num44].Y + (double)array[num44].Height * 0.8); } int x2 = rectangle2.X; int y3 = rectangle2.Y; flag2 = true; while (flag2) { int num45 = WorldGen.genRand.Next(x2 - 6, x2 + 7); int num46 = WorldGen.genRand.Next(y3 - 6, y3 + 7); templePath = WorldGen.templePather(templePath, num45, num46); if (templePath.X == (float)num45 && templePath.Y == (float)num46) { flag2 = false; } } } else { int num47 = num41 + 1; int num48 = (array[num41].X + array[num41].Width / 2 + (array[num47].X + array[num47].Width / 2)) / 2; int num49 = (array[num41].Y + array[num41].Height / 2 + (array[num47].Y + array[num47].Height / 2)) / 2; flag2 = true; while (flag2) { int num50 = WorldGen.genRand.Next(num48 - 6, num48 + 7); int num51 = WorldGen.genRand.Next(num49 - 6, num49 + 7); templePath = WorldGen.templePather(templePath, num50, num51); if (templePath.X == (float)num50 && templePath.Y == (float)num51) { flag2 = false; } } } } } int num52 = Main.maxTilesX - 20; int num53 = 20; int num54 = Main.maxTilesY - 20; int num55 = 20; for (int num56 = 0; num56 < num2; num56++) { if (array[num56].X < num52) { num52 = array[num56].X; } if (array[num56].X + array[num56].Width > num53) { num53 = array[num56].X + array[num56].Width; } if (array[num56].Y < num54) { num54 = array[num56].Y; } if (array[num56].Y + array[num56].Height > num55) { num55 = array[num56].Y + array[num56].Height; } } num52 -= 10; num53 += 10; num54 -= 10; num55 += 10; for (int num57 = num52; num57 < num53; num57++) { for (int num58 = num54; num58 < num55; num58++) { WorldGen.outerTempled(num57, num58); } } for (int num59 = num53; num59 >= num52; num59--) { for (int num60 = num54; num60 < num55 / 2; num60++) { WorldGen.outerTempled(num59, num60); } } for (int num61 = num54; num61 < num55; num61++) { for (int num62 = num52; num62 < num53; num62++) { WorldGen.outerTempled(num62, num61); } } for (int num63 = num55; num63 >= num54; num63--) { for (int num64 = num52; num64 < num53; num64++) { WorldGen.outerTempled(num64, num63); } } num3 = -num4; Vector2 vector = new Vector2((float)num5, (float)num6); int num65 = WorldGen.genRand.Next(2, 5); bool flag3 = true; int num66 = 0; int num67 = WorldGen.genRand.Next(9, 14); while (flag3) { num66++; if (num66 >= num67) { num66 = 0; vector.Y -= 1f; } vector.X += (float)num3; int num68 = (int)vector.X; flag3 = false; int num69 = (int)vector.Y - num65; while ((float)num69 < vector.Y + (float)num65) { if (Main.tile[num68, num69].wall == 87 || (Main.tile[num68, num69].active() && Main.tile[num68, num69].type == 226)) { flag3 = true; } if (Main.tile[num68, num69].active() && Main.tile[num68, num69].type == 226) { Main.tile[num68, num69].active(false); Main.tile[num68, num69].wall = 87; } num69++; } } int num70 = num5; int num71 = num6; while (!Main.tile[num70, num71].active()) { num71++; } num71 -= 4; int num72 = num71; while ((Main.tile[num70, num72].active() && Main.tile[num70, num72].type == 226) || Main.tile[num70, num72].wall == 87) { num72--; } num72 += 2; for (int num73 = num70 - 1; num73 <= num70 + 1; num73++) { for (int num74 = num72; num74 <= num71; num74++) { Main.tile[num73, num74].active(true); Main.tile[num73, num74].type = 226; Main.tile[num73, num74].liquid = 0; Main.tile[num73, num74].slope(0); Main.tile[num73, num74].halfBrick(false); } } for (int num75 = num70 - 4; num75 <= num70 + 4; num75++) { for (int num76 = num71 - 1; num76 < num71 + 3; num76++) { Main.tile[num75, num76].active(false); Main.tile[num75, num76].wall = 87; } } for (int num77 = num70 - 1; num77 <= num70 + 1; num77++) { for (int num78 = num71 - 5; num78 <= num71 + 8; num78++) { Main.tile[num77, num78].active(true); Main.tile[num77, num78].type = 226; Main.tile[num77, num78].liquid = 0; Main.tile[num77, num78].slope(0); Main.tile[num77, num78].halfBrick(false); } } for (int num79 = num70 - 1; num79 <= num70 + 1; num79++) { for (int num80 = num71; num80 < num71 + 3; num80++) { Main.tile[num79, num80].active(false); Main.tile[num79, num80].wall = 87; } } WorldGen.PlaceTile(num70, num71, 10, true, false, -1, 11); for (int num81 = num52; num81 < num53; num81++) { for (int num82 = num54; num82 < num55; num82++) { WorldGen.templeCleaner(num81, num82); } } for (int num83 = num55; num83 >= num54; num83--) { for (int num84 = num53; num84 >= num52; num84--) { WorldGen.templeCleaner(num84, num83); } } for (int num85 = num52; num85 < num53; num85++) { for (int num86 = num54; num86 < num55; num86++) { bool flag4 = true; for (int num87 = num85 - 1; num87 <= num85 + 1; num87++) { for (int num88 = num86 - 1; num88 <= num86 + 1; num88++) { if ((!Main.tile[num87, num88].active() || Main.tile[num87, num88].type != 226) && Main.tile[num87, num88].wall != 87) { flag4 = false; break; } } } if (flag4) { Main.tile[num85, num86].wall = 87; } } } int num89 = 0; Rectangle rectangle3; int num90; int num91; do { num89++; rectangle3 = array[num2 - 1]; num90 = rectangle3.X + WorldGen.genRand.Next(rectangle3.Width); num91 = rectangle3.Y + WorldGen.genRand.Next(rectangle3.Height); WorldGen.PlaceTile(num90, num91, 237, false, false, -1, 0); if (Main.tile[num90, num91].type == 237) { goto IL_14EC; } } while (num89 < 1000); num90 = rectangle3.X + rectangle3.Width / 2; num91 = rectangle3.Y + rectangle3.Height / 2; num90 += WorldGen.genRand.Next(-10, 11); num91 += WorldGen.genRand.Next(-10, 11); while (!Main.tile[num90, num91].active()) { num91++; } Main.tile[num90 - 1, num91].active(true); Main.tile[num90 - 1, num91].slope(0); Main.tile[num90 - 1, num91].halfBrick(false); Main.tile[num90 - 1, num91].type = 226; Main.tile[num90, num91].active(true); Main.tile[num90, num91].slope(0); Main.tile[num90, num91].halfBrick(false); Main.tile[num90, num91].type = 226; Main.tile[num90 + 1, num91].active(true); Main.tile[num90 + 1, num91].slope(0); Main.tile[num90 + 1, num91].halfBrick(false); Main.tile[num90 + 1, num91].type = 226; num91 -= 2; num90--; for (int num92 = 0; num92 <= 2; num92++) { for (int num93 = 0; num93 <= 1; num93++) { x = num90 + num92; y = num91 + num93; Main.tile[x, y].active(true); Main.tile[x, y].type = 237; Main.tile[x, y].frameX = (short)(num92 * 18); Main.tile[x, y].frameY = (short)(num93 * 18); } } IL_14EC: float num94 = (float)num2 * 1.1f; num94 *= 1f + (float)WorldGen.genRand.Next(-25, 26) * 0.01f; int num95 = 0; while (num94 > 0f) { num95++; int num96 = WorldGen.genRand.Next(num2); int num97 = WorldGen.genRand.Next(array[num96].X, array[num96].X + array[num96].Width); int num98 = WorldGen.genRand.Next(array[num96].Y, array[num96].Y + array[num96].Height); if (Main.tile[num97, num98].wall == 87 && !Main.tile[num97, num98].active()) { bool flag5 = false; if (WorldGen.genRand.Next(2) == 0) { int num99 = 1; if (WorldGen.genRand.Next(2) == 0) { num99 = -1; } while (!Main.tile[num97, num98].active()) { num98 += num99; } num98 -= num99; int num100 = WorldGen.genRand.Next(2); int num101 = WorldGen.genRand.Next(3, 10); bool flag6 = true; for (int num102 = num97 - num101; num102 < num97 + num101; num102++) { for (int num103 = num98 - num101; num103 < num98 + num101; num103++) { if (Main.tile[num102, num103].active() && Main.tile[num102, num103].type == 10) { flag6 = false; break; } } } if (flag6) { for (int num104 = num97 - num101; num104 < num97 + num101; num104++) { for (int num105 = num98 - num101; num105 < num98 + num101; num105++) { if (WorldGen.SolidTile(num104, num105) && Main.tile[num104, num105].type != 232 && !WorldGen.SolidTile(num104, num105 - num99)) { Main.tile[num104, num105].type = 232; flag5 = true; if (num100 == 0) { Main.tile[num104, num105 - 1].type = 232; Main.tile[num104, num105 - 1].active(true); } else { Main.tile[num104, num105 + 1].type = 232; Main.tile[num104, num105 + 1].active(true); } num100++; if (num100 > 1) { num100 = 0; } } } } } if (flag5) { num95 = 0; num94 -= 1f; } } else { int num106 = 1; if (WorldGen.genRand.Next(2) == 0) { num106 = -1; } while (!Main.tile[num97, num98].active()) { num97 += num106; } num97 -= num106; int num107 = WorldGen.genRand.Next(2); int num108 = WorldGen.genRand.Next(3, 10); bool flag7 = true; for (int num109 = num97 - num108; num109 < num97 + num108; num109++) { for (int num110 = num98 - num108; num110 < num98 + num108; num110++) { if (Main.tile[num109, num110].active() && Main.tile[num109, num110].type == 10) { flag7 = false; break; } } } if (flag7) { for (int num111 = num97 - num108; num111 < num97 + num108; num111++) { for (int num112 = num98 - num108; num112 < num98 + num108; num112++) { if (WorldGen.SolidTile(num111, num112) && Main.tile[num111, num112].type != 232 && !WorldGen.SolidTile(num111 - num106, num112)) { Main.tile[num111, num112].type = 232; flag5 = true; if (num107 == 0) { Main.tile[num111 - 1, num112].type = 232; Main.tile[num111 - 1, num112].active(true); } else { Main.tile[num111 + 1, num112].type = 232; Main.tile[num111 + 1, num112].active(true); } num107++; if (num107 > 1) { num107 = 0; } } } } } if (flag5) { num95 = 0; num94 -= 1f; } } } if (num95 > 1000) { num95 = 0; num94 -= 1f; } } WorldGen.tLeft = num52; WorldGen.tRight = num53; WorldGen.tTop = num54; WorldGen.tBottom = num55; WorldGen.tRooms = num2; } public static void templePart2() { int minValue = WorldGen.tLeft; int maxValue = WorldGen.tRight; int minValue2 = WorldGen.tTop; int num = WorldGen.tBottom; int num2 = WorldGen.tRooms; float num3 = (float)num2 * 1.9f; num3 *= 1f + (float)WorldGen.genRand.Next(-15, 16) * 0.01f; int num4 = 0; while (num3 > 0f) { int num5 = WorldGen.genRand.Next(minValue, maxValue); int num6 = WorldGen.genRand.Next(minValue2, num); if (Main.tile[num5, num6].wall == 87 && !Main.tile[num5, num6].active()) { if (WorldGen.mayanTrap(num5, num6)) { num3 -= 1f; num4 = 0; } else { num4++; } } else { num4++; } if (num4 > 100) { num4 = 0; num3 -= 1f; } } Main.tileSolid[232] = false; float num7 = (float)num2 * 0.35f; num7 *= 1f + (float)WorldGen.genRand.Next(-15, 16) * 0.01f; int contain = 1293; num4 = 0; while (num7 > 0f) { int num8 = WorldGen.genRand.Next(minValue, maxValue); int num9 = WorldGen.genRand.Next(minValue2, num); if (Main.tile[num8, num9].wall == 87 && !Main.tile[num8, num9].active() && WorldGen.AddBuriedChest(num8, num9, contain, true, 16)) { num7 -= 1f; num4 = 0; } num4++; if (num4 > 10000) { break; } } float num10 = (float)num2 * 1.25f; num10 *= 1f + (float)WorldGen.genRand.Next(-25, 36) * 0.01f; num4 = 0; while (num10 > 0f) { num4++; int num11 = WorldGen.genRand.Next(minValue, maxValue); int num12 = WorldGen.genRand.Next(minValue2, num); if (Main.tile[num11, num12].wall == 87 && !Main.tile[num11, num12].active()) { int num13 = num11; int num14 = num12; while (!Main.tile[num13, num14].active()) { num14++; if (num14 > num) { break; } } num14--; if (num14 <= num) { WorldGen.PlaceTile(num13, num14, 105, true, false, -1, WorldGen.genRand.Next(43, 46)); if (Main.tile[num13, num14].type == 105) { num10 -= 1f; } } } } float num15 = (float)num2 * 1.35f; num15 *= 1f + (float)WorldGen.genRand.Next(-15, 26) * 0.01f; num4 = 0; while (num15 > 0f) { num4++; int num16 = WorldGen.genRand.Next(minValue, maxValue); int num17 = WorldGen.genRand.Next(minValue2, num); if (Main.tile[num16, num17].wall == 87 && !Main.tile[num16, num17].active()) { int num18 = num16; int num19 = num17; while (!Main.tile[num18, num19].active()) { num19++; if (num19 > num) { break; } } num19--; if (num19 <= num) { int num20 = WorldGen.genRand.Next(3); if (num20 == 0) { WorldGen.PlaceTile(num18, num19, 18, true, false, -1, 10); if (Main.tile[num18, num19].type == 18) { num15 -= 1f; } } else { if (num20 == 1) { WorldGen.PlaceTile(num18, num19, 14, true, false, -1, 9); if (Main.tile[num18, num19].type == 14) { num15 -= 1f; } } else { if (num20 == 2) { WorldGen.PlaceTile(num18, num19, 15, true, false, -1, 12); if (Main.tile[num18, num19].type == 15) { num15 -= 1f; } } } } } } if (num4 > 10000) { break; } } Main.tileSolid[232] = true; } public static void dWallOut(int x, int y, int wall) { if (!WorldGen.SolidTile(x, y) && (int)Main.tile[x, y].wall != wall && Main.tile[x, y].wall > 0) { WorldGen.dWallCount++; if (WorldGen.dWallCount > 1000) { Main.tile[x, y].wall = 17; WorldGen.dWallBroke = true; return; } Main.tile[x, y].wall = (byte)wall; if ((int)Main.tile[x - 1, y].wall != wall) { WorldGen.dWallOut(x - 1, y, wall); } if ((int)Main.tile[x + 1, y].wall != wall) { WorldGen.dWallOut(x + 1, y, wall); } if ((int)Main.tile[x, y - 1].wall != wall) { WorldGen.dWallOut(x, y - 1, wall); } if ((int)Main.tile[x, y + 1].wall != wall) { WorldGen.dWallOut(x, y + 1, wall); return; } } else { if (Main.tile[x, y].active()) { Main.tile[x, y].wall = (byte)wall; } } } public static bool nearPicture(int x, int y) { for (int i = x - 4; i <= x + 3; i++) { for (int j = y - 3; j <= y + 2; j++) { if (Main.tile[i, j].active()) { return true; } } } return false; } public static bool nearPicture2(int x, int y) { if (Main.tile[x, y].wall != 7 && Main.tile[x, y].wall != 8 && Main.tile[x, y].wall != 9) { for (int i = x - 8; i <= x + 8; i++) { for (int j = y - 5; j <= y + 5; j++) { if (Main.tile[i, j].active() && (Main.tile[i, j].type == 240 || Main.tile[i, j].type == 241 || Main.tile[i, j].type == 242)) { return true; } } } } else { for (int k = x - 15; k <= x + 15; k++) { for (int l = y - 10; l <= y + 10; l++) { if (Main.tile[k, l].active() && (Main.tile[k, l].type == 240 || Main.tile[k, l].type == 241 || Main.tile[k, l].type == 242)) { return true; } } } } return false; } public static void MakeDungeon(int x, int y, int tileType = 41, int wallType = 7) { int num = WorldGen.genRand.Next(3); int num2 = WorldGen.genRand.Next(3); num2 = num; if (num == 1) { tileType = 43; } else { if (num == 2) { tileType = 44; } } if (num2 == 1) { wallType = 8; } else { if (num2 == 2) { wallType = 9; } } WorldGen.numDDoors = 0; WorldGen.numDPlats = 0; WorldGen.numDRooms = 0; WorldGen.dungeonX = x; WorldGen.dungeonY = y; WorldGen.dMinX = x; WorldGen.dMaxX = x; WorldGen.dMinY = y; WorldGen.dMaxY = y; WorldGen.dxStrength1 = (double)WorldGen.genRand.Next(25, 30); WorldGen.dyStrength1 = (double)WorldGen.genRand.Next(20, 25); WorldGen.dxStrength2 = (double)WorldGen.genRand.Next(35, 50); WorldGen.dyStrength2 = (double)WorldGen.genRand.Next(10, 15); float num3 = (float)(Main.maxTilesX / 60); num3 += (float)WorldGen.genRand.Next(0, (int)(num3 / 3f)); float num4 = num3; int num5 = 5; WorldGen.DungeonRoom(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType); while (num3 > 0f) { if (WorldGen.dungeonX < WorldGen.dMinX) { WorldGen.dMinX = WorldGen.dungeonX; } if (WorldGen.dungeonX > WorldGen.dMaxX) { WorldGen.dMaxX = WorldGen.dungeonX; } if (WorldGen.dungeonY > WorldGen.dMaxY) { WorldGen.dMaxY = WorldGen.dungeonY; } num3 -= 1f; Main.statusText = string.Concat(new object[] { Lang.gen[58], " ", (int)((num4 - num3) / num4 * 60f), "%" }); if (num5 > 0) { num5--; } if (num5 == 0 & WorldGen.genRand.Next(3) == 0) { num5 = 5; if (WorldGen.genRand.Next(2) == 0) { int num6 = WorldGen.dungeonX; int num7 = WorldGen.dungeonY; WorldGen.DungeonHalls(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType, false); if (WorldGen.genRand.Next(2) == 0) { WorldGen.DungeonHalls(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType, false); } WorldGen.DungeonRoom(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType); WorldGen.dungeonX = num6; WorldGen.dungeonY = num7; } else { WorldGen.DungeonRoom(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType); } } else { WorldGen.DungeonHalls(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType, false); } } WorldGen.DungeonRoom(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType); int num8 = WorldGen.dRoomX[0]; int num9 = WorldGen.dRoomY[0]; for (int i = 0; i < WorldGen.numDRooms; i++) { if (WorldGen.dRoomY[i] < num9) { num8 = WorldGen.dRoomX[i]; num9 = WorldGen.dRoomY[i]; } } WorldGen.dungeonX = num8; WorldGen.dungeonY = num9; WorldGen.dEnteranceX = num8; WorldGen.dSurface = false; num5 = 5; while (!WorldGen.dSurface) { if (num5 > 0) { num5--; } if (num5 == 0 && WorldGen.genRand.Next(5) == 0 && (double)WorldGen.dungeonY > Main.worldSurface + 100.0) { num5 = 10; int num10 = WorldGen.dungeonX; int num11 = WorldGen.dungeonY; WorldGen.DungeonHalls(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType, true); WorldGen.DungeonRoom(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType); WorldGen.dungeonX = num10; WorldGen.dungeonY = num11; } WorldGen.DungeonStairs(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType); } WorldGen.DungeonEnt(WorldGen.dungeonX, WorldGen.dungeonY, tileType, wallType); Main.statusText = Lang.gen[58] + " 65%"; for (int j = 0; j < WorldGen.numDRooms; j++) { for (int k = WorldGen.dRoomL[j]; k <= WorldGen.dRoomR[j]; k++) { if (!Main.tile[k, WorldGen.dRoomT[j] - 1].active()) { WorldGen.DPlatX[WorldGen.numDPlats] = k; WorldGen.DPlatY[WorldGen.numDPlats] = WorldGen.dRoomT[j] - 1; WorldGen.numDPlats++; break; } } for (int l = WorldGen.dRoomL[j]; l <= WorldGen.dRoomR[j]; l++) { if (!Main.tile[l, WorldGen.dRoomB[j] + 1].active()) { WorldGen.DPlatX[WorldGen.numDPlats] = l; WorldGen.DPlatY[WorldGen.numDPlats] = WorldGen.dRoomB[j] + 1; WorldGen.numDPlats++; break; } } for (int m = WorldGen.dRoomT[j]; m <= WorldGen.dRoomB[j]; m++) { if (!Main.tile[WorldGen.dRoomL[j] - 1, m].active()) { WorldGen.DDoorX[WorldGen.numDDoors] = WorldGen.dRoomL[j] - 1; WorldGen.DDoorY[WorldGen.numDDoors] = m; WorldGen.DDoorPos[WorldGen.numDDoors] = -1; WorldGen.numDDoors++; break; } } for (int n = WorldGen.dRoomT[j]; n <= WorldGen.dRoomB[j]; n++) { if (!Main.tile[WorldGen.dRoomR[j] + 1, n].active()) { WorldGen.DDoorX[WorldGen.numDDoors] = WorldGen.dRoomR[j] + 1; WorldGen.DDoorY[WorldGen.numDDoors] = n; WorldGen.DDoorPos[WorldGen.numDDoors] = 1; WorldGen.numDDoors++; break; } } } Main.statusText = Lang.gen[58] + " 70%"; int num12 = 0; int num13 = 1000; int num14 = 0; while (num14 < Main.maxTilesX / 100) { num12++; int num15 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num16 = WorldGen.genRand.Next((int)Main.worldSurface + 25, WorldGen.dMaxY); int num17 = num15; if ((int)Main.tile[num15, num16].wall == wallType && !Main.tile[num15, num16].active()) { int num18 = 1; if (WorldGen.genRand.Next(2) == 0) { num18 = -1; } while (!Main.tile[num15, num16].active()) { num16 += num18; } if (Main.tile[num15 - 1, num16].active() && Main.tile[num15 + 1, num16].active() && !Main.tile[num15 - 1, num16 - num18].active() && !Main.tile[num15 + 1, num16 - num18].active()) { num14++; int num19 = WorldGen.genRand.Next(5, 13); while (Main.tile[num15 - 1, num16].active() && Main.tile[num15, num16 + num18].active() && Main.tile[num15, num16].active() && !Main.tile[num15, num16 - num18].active() && num19 > 0) { Main.tile[num15, num16].type = 48; if (!Main.tile[num15 - 1, num16 - num18].active() && !Main.tile[num15 + 1, num16 - num18].active()) { Main.tile[num15, num16 - num18].type = 48; Main.tile[num15, num16 - num18].active(true); } num15--; num19--; } num19 = WorldGen.genRand.Next(5, 13); num15 = num17 + 1; while (Main.tile[num15 + 1, num16].active() && Main.tile[num15, num16 + num18].active() && Main.tile[num15, num16].active() && !Main.tile[num15, num16 - num18].active() && num19 > 0) { Main.tile[num15, num16].type = 48; if (!Main.tile[num15 - 1, num16 - num18].active() && !Main.tile[num15 + 1, num16 - num18].active()) { Main.tile[num15, num16 - num18].type = 48; Main.tile[num15, num16 - num18].active(true); } num15++; num19--; } } } if (num12 > num13) { num12 = 0; num14++; } } num12 = 0; num13 = 1000; num14 = 0; Main.statusText = Lang.gen[58] + " 75%"; while (num14 < Main.maxTilesX / 100) { num12++; int num20 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num21 = WorldGen.genRand.Next((int)Main.worldSurface + 25, WorldGen.dMaxY); int num22 = num21; if ((int)Main.tile[num20, num21].wall == wallType && !Main.tile[num20, num21].active()) { int num23 = 1; if (WorldGen.genRand.Next(2) == 0) { num23 = -1; } while (num20 > 5 && num20 < Main.maxTilesX - 5 && !Main.tile[num20, num21].active()) { num20 += num23; } if (Main.tile[num20, num21 - 1].active() && Main.tile[num20, num21 + 1].active() && !Main.tile[num20 - num23, num21 - 1].active() && !Main.tile[num20 - num23, num21 + 1].active()) { num14++; int num24 = WorldGen.genRand.Next(5, 13); while (Main.tile[num20, num21 - 1].active() && Main.tile[num20 + num23, num21].active() && Main.tile[num20, num21].active() && !Main.tile[num20 - num23, num21].active() && num24 > 0) { Main.tile[num20, num21].type = 48; if (!Main.tile[num20 - num23, num21 - 1].active() && !Main.tile[num20 - num23, num21 + 1].active()) { Main.tile[num20 - num23, num21].type = 48; Main.tile[num20 - num23, num21].active(true); } num21--; num24--; } num24 = WorldGen.genRand.Next(5, 13); num21 = num22 + 1; while (Main.tile[num20, num21 + 1].active() && Main.tile[num20 + num23, num21].active() && Main.tile[num20, num21].active() && !Main.tile[num20 - num23, num21].active() && num24 > 0) { Main.tile[num20, num21].type = 48; if (!Main.tile[num20 - num23, num21 - 1].active() && !Main.tile[num20 - num23, num21 + 1].active()) { Main.tile[num20 - num23, num21].type = 48; Main.tile[num20 - num23, num21].active(true); } num21++; num24--; } } } if (num12 > num13) { num12 = 0; num14++; } } Main.statusText = Lang.gen[58] + " 80%"; for (int num25 = 0; num25 < WorldGen.numDDoors; num25++) { int num26 = WorldGen.DDoorX[num25] - 10; int num27 = WorldGen.DDoorX[num25] + 10; int num28 = 100; int num29 = 0; for (int num30 = num26; num30 < num27; num30++) { bool flag = true; int num31 = WorldGen.DDoorY[num25]; while (num31 > 10 && !Main.tile[num30, num31].active()) { num31--; } if (!Main.tileDungeon[(int)Main.tile[num30, num31].type]) { flag = false; } int num32 = num31; num31 = WorldGen.DDoorY[num25]; while (!Main.tile[num30, num31].active()) { num31++; } if (!Main.tileDungeon[(int)Main.tile[num30, num31].type]) { flag = false; } int num33 = num31; if (num33 - num32 >= 3) { int num34 = num30 - 20; int num35 = num30 + 20; int num36 = num33 - 10; int num37 = num33 + 10; for (int num38 = num34; num38 < num35; num38++) { for (int num39 = num36; num39 < num37; num39++) { if (Main.tile[num38, num39].active() && Main.tile[num38, num39].type == 10) { flag = false; break; } } } if (flag) { for (int num40 = num33 - 3; num40 < num33; num40++) { for (int num41 = num30 - 3; num41 <= num30 + 3; num41++) { if (Main.tile[num41, num40].active()) { flag = false; break; } } } } if (flag && num33 - num32 < 20) { bool flag2 = false; if (WorldGen.DDoorPos[num25] == 0 && num33 - num32 < num28) { flag2 = true; } if (WorldGen.DDoorPos[num25] == -1 && num30 > num29) { flag2 = true; } if (WorldGen.DDoorPos[num25] == 1 && (num30 < num29 || num29 == 0)) { flag2 = true; } if (flag2) { num29 = num30; num28 = num33 - num32; } } } } if (num28 < 20) { int num42 = num29; int num43 = WorldGen.DDoorY[num25]; int num44 = num43; while (!Main.tile[num42, num43].active()) { Main.tile[num42, num43].active(false); num43++; } while (!Main.tile[num42, num44].active()) { num44--; } num43--; num44++; for (int num45 = num44; num45 < num43 - 2; num45++) { Main.tile[num42, num45].active(true); Main.tile[num42, num45].type = (byte)tileType; } int style = 13; if (WorldGen.genRand.Next(3) == 0) { if (wallType == 7) { style = 16; } else { if (wallType == 8) { style = 17; } else { if (wallType == 9) { style = 18; } } } } WorldGen.PlaceTile(num42, num43, 10, true, false, -1, style); num42--; int num46 = num43 - 3; while (!Main.tile[num42, num46].active()) { num46--; } if (num43 - num46 < num43 - num44 + 5 && Main.tileDungeon[(int)Main.tile[num42, num46].type]) { for (int num47 = num43 - 4 - WorldGen.genRand.Next(3); num47 > num46; num47--) { Main.tile[num42, num47].active(true); Main.tile[num42, num47].type = (byte)tileType; } } num42 += 2; num46 = num43 - 3; while (!Main.tile[num42, num46].active()) { num46--; } if (num43 - num46 < num43 - num44 + 5 && Main.tileDungeon[(int)Main.tile[num42, num46].type]) { for (int num48 = num43 - 4 - WorldGen.genRand.Next(3); num48 > num46; num48--) { Main.tile[num42, num48].active(true); Main.tile[num42, num48].type = (byte)tileType; } } num43++; num42--; Main.tile[num42 - 1, num43].active(true); Main.tile[num42 - 1, num43].type = (byte)tileType; Main.tile[num42 + 1, num43].active(true); Main.tile[num42 + 1, num43].type = (byte)tileType; } } int[] array = new int[3]; if (wallType == 7) { array[0] = 7; array[1] = 94; array[2] = 95; } else { if (wallType == 9) { array[0] = 9; array[1] = 96; array[2] = 97; } else { array[0] = 8; array[1] = 98; array[2] = 99; } } for (int num49 = 0; num49 < 5; num49++) { for (int num50 = 0; num50 < 3; num50++) { int num51 = WorldGen.genRand.Next(40, 240); int num52 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num53 = WorldGen.genRand.Next(WorldGen.dMinY, WorldGen.dMaxY); for (int num54 = num52 - num51; num54 < num52 + num51; num54++) { for (int num55 = num53 - num51; num55 < num53 + num51; num55++) { if ((double)num55 > Main.worldSurface) { float num56 = (float)Math.Abs(num52 - num54); float num57 = (float)Math.Abs(num53 - num55); double num58 = Math.Sqrt((double)(num56 * num56 + num57 * num57)); if (num58 < (double)num51 * 0.4 && Main.wallDungeon[(int)Main.tile[num54, num55].wall]) { WorldGen.dWallCount = 0; WorldGen.dWallOut(num54, num55, array[num50]); while (WorldGen.dWallBroke) { WorldGen.dWallBroke = false; for (int num59 = WorldGen.dMinX; num59 < WorldGen.dMaxX; num59++) { for (int num60 = 10; num60 < WorldGen.dMaxY; num60++) { if (Main.tile[num59, num60].wall == 17) { WorldGen.dWallCount = 0; WorldGen.dWallOut(num59, num60, array[num50]); } } } } } } } } } } Main.statusText = Lang.gen[58] + " 85%"; for (int num61 = 0; num61 < WorldGen.numDPlats; num61++) { int num62 = WorldGen.DPlatX[num61]; int num63 = WorldGen.DPlatY[num61]; int num64 = Main.maxTilesX; int num65 = 10; if ((double)num63 < Main.worldSurface + 50.0) { num65 = 20; } for (int num66 = num63 - 5; num66 <= num63 + 5; num66++) { int num67 = num62; int num68 = num62; bool flag3 = false; if (Main.tile[num67, num66].active()) { flag3 = true; } else { while (!Main.tile[num67, num66].active()) { num67--; if (!Main.tileDungeon[(int)Main.tile[num67, num66].type]) { flag3 = true; } } while (!Main.tile[num68, num66].active()) { num68++; if (!Main.tileDungeon[(int)Main.tile[num68, num66].type]) { flag3 = true; } } } if (!flag3 && num68 - num67 <= num65) { bool flag4 = true; int num69 = num62 - num65 / 2 - 2; int num70 = num62 + num65 / 2 + 2; int num71 = num66 - 5; int num72 = num66 + 5; for (int num73 = num69; num73 <= num70; num73++) { for (int num74 = num71; num74 <= num72; num74++) { if (Main.tile[num73, num74].active() && Main.tile[num73, num74].type == 19) { flag4 = false; break; } } } for (int num75 = num66 + 3; num75 >= num66 - 5; num75--) { if (Main.tile[num62, num75].active()) { flag4 = false; break; } } if (flag4) { num64 = num66; break; } } } if (num64 > num63 - 10 && num64 < num63 + 10) { int num76 = num62; int num77 = num64; int num78 = num62 + 1; while (!Main.tile[num76, num77].active()) { Main.tile[num76, num77].active(true); Main.tile[num76, num77].type = 19; if (wallType == 7) { Main.tile[num76, num77].frameY = 108; } if (wallType == 8) { Main.tile[num76, num77].frameY = 144; } if (wallType == 9) { Main.tile[num76, num77].frameY = 126; } num76--; } while (!Main.tile[num78, num77].active()) { Main.tile[num78, num77].active(true); Main.tile[num78, num77].type = 19; if (wallType == 7) { Main.tile[num78, num77].frameY = 108; } if (wallType == 8) { Main.tile[num78, num77].frameY = 144; } if (wallType == 9) { Main.tile[num78, num77].frameY = 126; } num78++; } } } for (int num79 = 0; num79 < 4; num79++) { bool flag5 = false; while (!flag5) { int num80 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num81 = WorldGen.genRand.Next((int)Main.worldSurface, WorldGen.dMaxY); if (Main.wallDungeon[(int)Main.tile[num80, num81].wall] && !Main.tile[num80, num81].active()) { int contain = 0; int style2 = 0; if (num79 == 0) { style2 = 23; contain = 1156; } else { if (num79 == 1) { if (!WorldGen.crimson) { style2 = 24; contain = 1571; } else { style2 = 25; contain = 1569; } } else { if (num79 == 2) { style2 = 26; contain = 1260; } else { if (num79 == 3) { style2 = 27; contain = 1572; } } } } flag5 = WorldGen.AddBuriedChest(num80, num81, contain, false, style2); } } } int[] array2 = new int[3]; array2[0] = WorldGen.genRand.Next(9, 13); array2[1] = WorldGen.genRand.Next(9, 13); while (array2[1] == array2[0]) { array2[1] = WorldGen.genRand.Next(9, 13); } array2[2] = WorldGen.genRand.Next(9, 13); while (array2[2] == array2[0] || array2[2] == array2[1]) { array2[2] = WorldGen.genRand.Next(9, 13); } Main.statusText = Lang.gen[58] + " 90%"; num12 = 0; num13 = 1000; num14 = 0; while (num14 < Main.maxTilesX / 20) { num12++; int num82 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num83 = WorldGen.genRand.Next(WorldGen.dMinY, WorldGen.dMaxY); bool flag6 = true; if (Main.wallDungeon[(int)Main.tile[num82, num83].wall] && !Main.tile[num82, num83].active()) { int num84 = 1; if (WorldGen.genRand.Next(2) == 0) { num84 = -1; } while (flag6 && !Main.tile[num82, num83].active()) { num82 -= num84; if (num82 < 5 || num82 > Main.maxTilesX - 5) { flag6 = false; } else { if (Main.tile[num82, num83].active() && !Main.tileDungeon[(int)Main.tile[num82, num83].type]) { flag6 = false; } } } if (flag6 && Main.tile[num82, num83].active() && Main.tileDungeon[(int)Main.tile[num82, num83].type] && Main.tile[num82, num83 - 1].active() && Main.tileDungeon[(int)Main.tile[num82, num83 - 1].type] && Main.tile[num82, num83 + 1].active() && Main.tileDungeon[(int)Main.tile[num82, num83 + 1].type]) { num82 += num84; for (int num85 = num82 - 3; num85 <= num82 + 3; num85++) { for (int num86 = num83 - 3; num86 <= num83 + 3; num86++) { if (Main.tile[num85, num86].active() && Main.tile[num85, num86].type == 19) { flag6 = false; break; } } } if (flag6 && (!Main.tile[num82, num83 - 1].active() & !Main.tile[num82, num83 - 2].active() & !Main.tile[num82, num83 - 3].active())) { int num87 = num82; int num88 = num82; while (num87 > WorldGen.dMinX && num87 < WorldGen.dMaxX && !Main.tile[num87, num83].active() && !Main.tile[num87, num83 - 1].active() && !Main.tile[num87, num83 + 1].active()) { num87 += num84; } num87 = Math.Abs(num82 - num87); bool flag7 = false; if (WorldGen.genRand.Next(2) == 0) { flag7 = true; } if (num87 > 5) { for (int num89 = WorldGen.genRand.Next(1, 4); num89 > 0; num89--) { Main.tile[num82, num83].active(true); Main.tile[num82, num83].type = 19; if ((int)Main.tile[num82, num83].wall == array[0]) { Main.tile[num82, num83].frameY = (short)(18 * array2[0]); } if ((int)Main.tile[num82, num83].wall == array[1]) { Main.tile[num82, num83].frameY = (short)(18 * array2[1]); } if ((int)Main.tile[num82, num83].wall == array[2]) { Main.tile[num82, num83].frameY = (short)(18 * array2[2]); } if (flag7) { WorldGen.PlaceTile(num82, num83 - 1, 50, true, false, -1, 0); if (WorldGen.genRand.Next(50) == 0 && Main.tile[num82, num83 - 1].type == 50) { Main.tile[num82, num83 - 1].frameX = 90; } } num82 += num84; } num12 = 0; num14++; if (!flag7 && WorldGen.genRand.Next(2) == 0) { num82 = num88; num83--; int num90 = 0; if (WorldGen.genRand.Next(4) == 0) { num90 = 1; } if (num90 == 0) { num90 = 13; } else { if (num90 == 1) { num90 = 49; } } WorldGen.PlaceTile(num82, num83, num90, true, false, -1, 0); if (Main.tile[num82, num83].type == 13) { if (WorldGen.genRand.Next(2) == 0) { Main.tile[num82, num83].frameX = 18; } else { Main.tile[num82, num83].frameX = 36; } } } } } } } if (num12 > num13) { num12 = 0; num14++; } } Main.statusText = Lang.gen[58] + " 95%"; int num91 = 1; for (int num92 = 0; num92 < WorldGen.numDRooms; num92++) { int num93 = 0; while (num93 < 1000) { int num94 = (int)((double)WorldGen.dRoomSize[num92] * 0.4); int i2 = WorldGen.dRoomX[num92] + WorldGen.genRand.Next(-num94, num94 + 1); int num95 = WorldGen.dRoomY[num92] + WorldGen.genRand.Next(-num94, num94 + 1); int style3 = 2; int num96; if (num91 == 1) { num96 = 329; } else { if (num91 == 2) { num96 = 155; } else { if (num91 == 3) { num96 = 156; } else { if (num91 == 4) { num96 = 157; } else { if (num91 == 5) { num96 = 163; } else { if (num91 == 6) { num96 = 113; } else { if (num91 == 7) { num96 = 327; style3 = 0; } else { num96 = 164; num91 = 0; } } } } } } } if ((double)num95 < Main.worldSurface + 50.0) { num96 = 327; style3 = 0; } if (num96 == 0 && WorldGen.genRand.Next(2) == 0) { num93 = 1000; } else { if (WorldGen.AddBuriedChest(i2, num95, num96, false, style3)) { num93 += 1000; num91++; } num93++; } } } WorldGen.dMinX -= 25; WorldGen.dMaxX += 25; WorldGen.dMinY -= 25; WorldGen.dMaxY += 25; if (WorldGen.dMinX < 0) { WorldGen.dMinX = 0; } if (WorldGen.dMaxX > Main.maxTilesX) { WorldGen.dMaxX = Main.maxTilesX; } if (WorldGen.dMinY < 0) { WorldGen.dMinY = 0; } if (WorldGen.dMaxY > Main.maxTilesY) { WorldGen.dMaxY = Main.maxTilesY; } num12 = 0; num13 = 1000; num14 = 0; int[] array3 = new int[3]; array3[0] = WorldGen.genRand.Next(7); array3[1] = WorldGen.genRand.Next(7); while (array3[1] == array3[0]) { array3[1] = WorldGen.genRand.Next(7); } array3[2] = WorldGen.genRand.Next(7); while (array3[2] == array3[0] || array3[2] == array3[1]) { array3[2] = WorldGen.genRand.Next(7); } while (num14 < Main.maxTilesX / 150) { num12++; int num97 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num98 = WorldGen.genRand.Next(WorldGen.dMinY, WorldGen.dMaxY); if (Main.wallDungeon[(int)Main.tile[num97, num98].wall]) { int num99 = num98; while (num99 > WorldGen.dMinY) { if (Main.tile[num97, num99 - 1].active() && (int)Main.tile[num97, num99 - 1].type == tileType) { bool flag8 = false; for (int num100 = num97 - 15; num100 < num97 + 15; num100++) { for (int num101 = num99 - 15; num101 < num99 + 15; num101++) { if (num100 > 0 && num100 < Main.maxTilesX && num101 > 0 && num101 < Main.maxTilesY && Main.tile[num100, num101].type == 42) { flag8 = true; break; } } } if (Main.tile[num97 - 1, num99].active() || Main.tile[num97 + 1, num99].active() || Main.tile[num97 - 1, num99 + 1].active() || Main.tile[num97 + 1, num99 + 1].active() || Main.tile[num97, num99 + 2].active()) { flag8 = true; } if (flag8) { break; } int style4 = array3[0]; if ((int)Main.tile[num97, num99].wall == array[1]) { style4 = array3[1]; } if ((int)Main.tile[num97, num99].wall == array[2]) { style4 = array3[2]; } WorldGen.Place1x2Top(num97, num99, 42, style4); if (Main.tile[num97, num99].type == 42) { num12 = 0; num14++; for (int num102 = 0; num102 < 1000; num102++) { int num103 = num97 + WorldGen.genRand.Next(-12, 13); int num104 = num99 + WorldGen.genRand.Next(3, 21); if (!Main.tile[num103, num104].active() && !Main.tile[num103, num104 + 1].active() && Main.tile[num103 - 1, num104].type != 48 && Main.tile[num103 + 1, num104].type != 48 && Collision.CanHit(new Vector2((float)(num103 * 16), (float)(num104 * 16)), 16, 16, new Vector2((float)(num97 * 16), (float)(num99 * 16 + 1)), 16, 16)) { WorldGen.PlaceTile(num103, num104, 136, true, false, -1, 0); if (Main.tile[num103, num104].active()) { while (num103 != num97 || num104 != num99) { Main.tile[num103, num104].wire(true); if (num103 > num97) { num103--; } if (num103 < num97) { num103++; } Main.tile[num103, num104].wire(true); if (num104 > num99) { num104--; } if (num104 < num99) { num104++; } Main.tile[num103, num104].wire(true); } if (Main.rand.Next(3) > 0) { Main.tile[num97, num99].frameX = 18; Main.tile[num97, num99 + 1].frameX = 18; break; } break; } } } break; } break; } else { num99--; } } } if (num12 > num13) { num14++; num12 = 0; } } num12 = 0; num13 = 1000; num14 = 0; while (num14 < Main.maxTilesX / 500) { num12++; int num105 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num106 = WorldGen.genRand.Next(WorldGen.dMinY, WorldGen.dMaxY); while ((double)num106 < Main.worldSurface) { num106 = WorldGen.genRand.Next(WorldGen.dMinY, WorldGen.dMaxY); } if (Main.wallDungeon[(int)Main.tile[num105, num106].wall] && WorldGen.placeTrap(num105, num106, 0)) { num12 = num13; } if (num12 > num13) { num14++; num12 = 0; } } float num107 = 8400000f / (float)Main.maxTilesX; int num108 = 0; while ((float)num108 < num107) { int num109 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num110 = WorldGen.genRand.Next(50, WorldGen.dMaxY); while (!Main.wallDungeon[(int)Main.tile[num109, num110].wall] || Main.tile[num109, num110].active()) { num109 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); num110 = WorldGen.genRand.Next(50, WorldGen.dMaxY); } if (Main.wallDungeon[(int)Main.tile[num109, num110].wall] && !Main.tile[num109, num110].active()) { while (!WorldGen.SolidTile(num109, num110) && num110 < Main.maxTilesY - 200) { num110++; } num110--; int num111 = num109; int num112 = num109; while (!Main.tile[num111, num110].active() && WorldGen.SolidTile(num111, num110 + 1)) { num111--; } num111++; while (!Main.tile[num112, num110].active() && WorldGen.SolidTile(num112, num110 + 1)) { num112++; } num112--; int num113 = num112 - num111; int num114 = (num112 + num111) / 2; if (!Main.tile[num114, num110].active() && Main.wallDungeon[(int)Main.tile[num114, num110].wall] && WorldGen.SolidTile(num114, num110 + 1) && Main.tile[num114, num110 + 1].type != 48) { int style5 = 13; int style6 = 10; int style7 = 11; int num115 = 1; int num116 = 46; int style8 = 1; int num117 = 5; if (wallType == 8) { style5 = 14; style6 = 11; style7 = 12; num115 = 2; num116 = 47; style8 = 2; num117 = 6; } else { if (wallType == 9) { style5 = 15; style6 = 12; style7 = 13; num115 = 3; num116 = 48; style8 = 3; num117 = 7; } } if (Main.tile[num114, num110].wall >= 94 && Main.tile[num114, num110].wall <= 105) { style5 = 17; style6 = 14; style7 = 15; num115 = -1; num116 = -1; style8 = 5; num117 = -1; } int num118 = WorldGen.genRand.Next(6); while ((num118 == 2 && num116 == -1) || (num118 == 5 && num117 == -1)) { num118 = WorldGen.genRand.Next(6); } int num119 = 0; int num120 = 0; if (num118 == 0) { num119 = 5; num120 = 4; } if (num118 == 1) { num119 = 4; num120 = 3; } if (num118 == 2) { num119 = 3; num120 = 5; } if (num118 == 3) { num119 = 4; num120 = 6; } if (num118 == 4) { num119 = 3; num120 = 3; } if (num118 == 5) { num119 = 5; num120 = 3; } for (int num121 = num114 - num119; num121 <= num114 + num119; num121++) { for (int num122 = num110 - num120; num122 <= num110; num122++) { if (Main.tile[num121, num122].active()) { num118 = -1; break; } } } if ((double)num113 < (double)num119 * 1.75) { num118 = -1; } if (num118 == 0) { WorldGen.PlaceTile(num114, num110, 14, true, false, -1, style6); if (Main.tile[num114, num110].active()) { if (!Main.tile[num114 - 2, num110].active()) { WorldGen.PlaceTile(num114 - 2, num110, 15, true, false, -1, style5); if (Main.tile[num114 - 2, num110].active()) { Tile expr_273A = Main.tile[num114 - 2, num110]; expr_273A.frameX += 18; Tile expr_275B = Main.tile[num114 - 2, num110 - 1]; expr_275B.frameX += 18; } } if (!Main.tile[num114 + 2, num110].active()) { WorldGen.PlaceTile(num114 + 2, num110, 15, true, false, -1, style5); } } for (int num123 = num114 - 1; num123 <= num114 + 1; num123++) { if (WorldGen.genRand.Next(2) == 0 && !Main.tile[num123, num110 - 2].active()) { int num124 = WorldGen.genRand.Next(5); if (num115 != -1 && num124 <= 1 && !Main.tileLighted[(int)Main.tile[num123 - 1, num110 - 2].type]) { WorldGen.PlaceTile(num123, num110 - 2, 33, true, false, -1, num115); } if (num124 == 2 && !Main.tileLighted[(int)Main.tile[num123 - 1, num110 - 2].type]) { WorldGen.PlaceTile(num123, num110 - 2, 49, true, false, -1, 0); } if (num124 == 3) { WorldGen.PlaceTile(num123, num110 - 2, 50, true, false, -1, 0); } if (num124 == 4) { WorldGen.PlaceTile(num123, num110 - 2, 103, true, false, -1, 0); } } } } else { if (num118 == 1) { WorldGen.PlaceTile(num114, num110, 18, true, false, -1, style7); if (Main.tile[num114, num110].active()) { if (WorldGen.genRand.Next(2) == 0) { if (!Main.tile[num114 - 1, num110].active()) { WorldGen.PlaceTile(num114 - 1, num110, 15, true, false, -1, style5); if (Main.tile[num114 - 1, num110].active()) { Tile expr_2921 = Main.tile[num114 - 1, num110]; expr_2921.frameX += 18; Tile expr_2942 = Main.tile[num114 - 1, num110 - 1]; expr_2942.frameX += 18; } } } else { if (!Main.tile[num114 + 2, num110].active()) { WorldGen.PlaceTile(num114 + 2, num110, 15, true, false, -1, style5); } } for (int num125 = num114; num125 <= num114 + 1; num125++) { if (WorldGen.genRand.Next(2) == 0 && !Main.tile[num125, num110 - 1].active()) { int num126 = WorldGen.genRand.Next(5); if (num115 != -1 && num126 <= 1 && !Main.tileLighted[(int)Main.tile[num125 - 1, num110 - 1].type]) { WorldGen.PlaceTile(num125, num110 - 1, 33, true, false, -1, num115); } if (num126 == 2 && !Main.tileLighted[(int)Main.tile[num125 - 1, num110 - 1].type]) { WorldGen.PlaceTile(num125, num110 - 1, 49, true, false, -1, 0); } if (num126 == 3) { WorldGen.PlaceTile(num125, num110 - 1, 50, true, false, -1, 0); } if (num126 == 4) { WorldGen.PlaceTile(num125, num110 - 1, 103, true, false, -1, 0); } } } } } else { if (num118 == 2) { WorldGen.PlaceTile(num114, num110, 105, true, false, -1, num116); } else { if (num118 == 3) { WorldGen.PlaceTile(num114, num110, 101, true, false, -1, style8); } else { if (num118 == 4) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.PlaceTile(num114, num110, 15, true, false, -1, style5); Tile expr_2ADA = Main.tile[num114, num110]; expr_2ADA.frameX += 18; Tile expr_2AF9 = Main.tile[num114, num110 - 1]; expr_2AF9.frameX += 18; } else { WorldGen.PlaceTile(num114, num110, 15, true, false, -1, style5); } } else { if (num118 == 5) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.Place4x2(num114, num110, 79, 1, num117); } else { WorldGen.Place4x2(num114, num110, 79, -1, num117); } } } } } } } } } num108++; } num107 = 420000f / (float)Main.maxTilesX; int num127 = 0; while ((float)num127 < num107) { int num128 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num129 = WorldGen.genRand.Next((int)Main.worldSurface, WorldGen.dMaxY); while (!Main.wallDungeon[(int)Main.tile[num128, num129].wall] || Main.tile[num128, num129].active()) { num128 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); num129 = WorldGen.genRand.Next((int)Main.worldSurface, WorldGen.dMaxY); } int num131; int num132; int num133; int num134; for (int num130 = 0; num130 < 2; num130++) { num131 = num128; num132 = num128; while (!Main.tile[num131, num129].active() && Main.wallDungeon[(int)Main.tile[num131, num129].wall]) { num131--; } num131++; while (!Main.tile[num132, num129].active() && Main.wallDungeon[(int)Main.tile[num132, num129].wall]) { num132++; } num132--; num128 = (num131 + num132) / 2; num133 = num129; num134 = num129; while (!Main.tile[num128, num133].active() && Main.wallDungeon[(int)Main.tile[num128, num133].wall]) { num133--; } num133++; while (!Main.tile[num128, num134].active() && Main.wallDungeon[(int)Main.tile[num128, num134].wall]) { num134++; } num134--; num129 = (num133 + num134) / 2; } num131 = num128; num132 = num128; while (!Main.tile[num131, num129].active() && !Main.tile[num131, num129 - 1].active() && !Main.tile[num131, num129 + 1].active()) { num131--; } num131++; while (!Main.tile[num132, num129].active() && !Main.tile[num132, num129 - 1].active() && !Main.tile[num132, num129 + 1].active()) { num132++; } num132--; num133 = num129; num134 = num129; while (!Main.tile[num128, num133].active() && !Main.tile[num128 - 1, num133].active() && !Main.tile[num128 + 1, num133].active()) { num133--; } num133++; while (!Main.tile[num128, num134].active() && !Main.tile[num128 - 1, num134].active() && !Main.tile[num128 + 1, num134].active()) { num134++; } num134--; num128 = (num131 + num132) / 2; num129 = (num133 + num134) / 2; int num135 = num132 - num131; int num136 = num134 - num133; if (num135 > 7 && num136 > 5) { bool[] array4 = new bool[3]; array4[0] = true; if (num135 > num136 * 3 && num135 > 21) { array4[1] = true; } if (num136 > num135 * 3 && num136 > 21) { array4[2] = true; } int num137 = WorldGen.genRand.Next(3); if ((int)Main.tile[num128, num129].wall == array[0]) { num137 = 0; } while (!array4[num137]) { num137 = WorldGen.genRand.Next(3); } if (WorldGen.nearPicture2(num128, num129)) { num137 = -1; } if (num137 == 0) { Vector2 vector = WorldGen.randPictureTile(); if ((int)Main.tile[num128, num129].wall != array[0]) { vector = WorldGen.randBoneTile(); } int type = (int)vector.X; int style9 = (int)vector.Y; if (!WorldGen.nearPicture(num128, num129)) { WorldGen.PlaceTile(num128, num129, type, true, false, -1, style9); } } else { if (num137 == 1) { Vector2 vector2 = WorldGen.randPictureTile(); if ((int)Main.tile[num128, num129].wall != array[0]) { vector2 = WorldGen.randBoneTile(); } int type2 = (int)vector2.X; int style10 = (int)vector2.Y; if (!Main.tile[num128, num129].active()) { WorldGen.PlaceTile(num128, num129, type2, true, false, -1, style10); } int num138 = num128; int num139 = num129; int num140 = num129; for (int num141 = 0; num141 < 2; num141++) { num128 += 7; num133 = num140; num134 = num140; while (!Main.tile[num128, num133].active() && !Main.tile[num128 - 1, num133].active() && !Main.tile[num128 + 1, num133].active()) { num133--; } num133++; while (!Main.tile[num128, num134].active() && !Main.tile[num128 - 1, num134].active() && !Main.tile[num128 + 1, num134].active()) { num134++; } num134--; num140 = (num133 + num134) / 2; vector2 = WorldGen.randPictureTile(); if ((int)Main.tile[num128, num140].wall != array[0]) { vector2 = WorldGen.randBoneTile(); } type2 = (int)vector2.X; style10 = (int)vector2.Y; if (Math.Abs(num139 - num140) >= 4 || WorldGen.nearPicture(num128, num140)) { break; } WorldGen.PlaceTile(num128, num140, type2, true, false, -1, style10); } num140 = num129; num128 = num138; for (int num142 = 0; num142 < 2; num142++) { num128 -= 7; num133 = num140; num134 = num140; while (!Main.tile[num128, num133].active() && !Main.tile[num128 - 1, num133].active() && !Main.tile[num128 + 1, num133].active()) { num133--; } num133++; while (!Main.tile[num128, num134].active() && !Main.tile[num128 - 1, num134].active() && !Main.tile[num128 + 1, num134].active()) { num134++; } num134--; num140 = (num133 + num134) / 2; vector2 = WorldGen.randPictureTile(); if ((int)Main.tile[num128, num140].wall != array[0]) { vector2 = WorldGen.randBoneTile(); } type2 = (int)vector2.X; style10 = (int)vector2.Y; if (Math.Abs(num139 - num140) >= 4 || WorldGen.nearPicture(num128, num140)) { break; } WorldGen.PlaceTile(num128, num140, type2, true, false, -1, style10); } } else { if (num137 == 2) { Vector2 vector3 = WorldGen.randPictureTile(); if ((int)Main.tile[num128, num129].wall != array[0]) { vector3 = WorldGen.randBoneTile(); } int type3 = (int)vector3.X; int style11 = (int)vector3.Y; if (!Main.tile[num128, num129].active()) { WorldGen.PlaceTile(num128, num129, type3, true, false, -1, style11); } int num143 = num129; int num144 = num128; int num145 = num128; for (int num146 = 0; num146 < 3; num146++) { num129 += 7; num131 = num145; num132 = num145; while (!Main.tile[num131, num129].active() && !Main.tile[num131, num129 - 1].active() && !Main.tile[num131, num129 + 1].active()) { num131--; } num131++; while (!Main.tile[num132, num129].active() && !Main.tile[num132, num129 - 1].active() && !Main.tile[num132, num129 + 1].active()) { num132++; } num132--; num145 = (num131 + num132) / 2; vector3 = WorldGen.randPictureTile(); if ((int)Main.tile[num145, num129].wall != array[0]) { vector3 = WorldGen.randBoneTile(); } type3 = (int)vector3.X; style11 = (int)vector3.Y; if (Math.Abs(num144 - num145) >= 4 || WorldGen.nearPicture(num145, num129)) { break; } WorldGen.PlaceTile(num145, num129, type3, true, false, -1, style11); } num145 = num128; num129 = num143; for (int num147 = 0; num147 < 3; num147++) { num129 -= 7; num131 = num145; num132 = num145; while (!Main.tile[num131, num129].active() && !Main.tile[num131, num129 - 1].active() && !Main.tile[num131, num129 + 1].active()) { num131--; } num131++; while (!Main.tile[num132, num129].active() && !Main.tile[num132, num129 - 1].active() && !Main.tile[num132, num129 + 1].active()) { num132++; } num132--; num145 = (num131 + num132) / 2; vector3 = WorldGen.randPictureTile(); if ((int)Main.tile[num145, num129].wall != array[0]) { vector3 = WorldGen.randBoneTile(); } type3 = (int)vector3.X; style11 = (int)vector3.Y; if (Math.Abs(num144 - num145) >= 4 || WorldGen.nearPicture(num145, num129)) { break; } WorldGen.PlaceTile(num145, num129, type3, true, false, -1, style11); } } } } } num127++; } num107 = 840000f / (float)Main.maxTilesX; int num148 = 0; while ((float)num148 < num107) { int num149 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); int num150 = WorldGen.genRand.Next(WorldGen.dMinY, WorldGen.dMaxY); while (!Main.wallDungeon[(int)Main.tile[num149, num150].wall] || Main.tile[num149, num150].active()) { num149 = WorldGen.genRand.Next(WorldGen.dMinX, WorldGen.dMaxX); num150 = WorldGen.genRand.Next(WorldGen.dMinY, WorldGen.dMaxY); } while (!WorldGen.SolidTile(num149, num150) && num150 > 10) { num150--; } num150++; if (Main.wallDungeon[(int)Main.tile[num149, num150].wall] && Main.tile[num149, num150 - 1].type != 48 && !Main.tile[num149, num150].active() && !Main.tile[num149, num150 + 1].active() && !Main.tile[num149, num150 + 2].active() && !Main.tile[num149, num150 + 3].active()) { bool flag9 = true; for (int num151 = num149 - 1; num151 <= num149 + 1; num151++) { for (int num152 = num150; num152 <= num150 + 3; num152++) { if (Main.tile[num151, num152].active() && (Main.tile[num151, num152].type == 10 || Main.tile[num151, num152].type == 11 || Main.tile[num151, num152].type == 91)) { flag9 = false; } } } if (flag9) { int num153 = 10; if ((int)Main.tile[num149, num150].wall == array[1]) { num153 = 12; } if ((int)Main.tile[num149, num150].wall == array[2]) { num153 = 14; } num153 += WorldGen.genRand.Next(2); WorldGen.PlaceTile(num149, num150, 91, true, false, -1, num153); } } num148++; } } public static Vector2 randBoneTile() { int num = WorldGen.genRand.Next(2); int num2 = 0; if (num == 0) { num = 240; num2 = WorldGen.genRand.Next(2); if (num2 == 0) { num2 = 16; } else { if (num2 == 1) { num2 = 17; } } } else { if (num == 1) { num = 241; num2 = WorldGen.genRand.Next(9); } } return new Vector2((float)num, (float)num2); } public static Vector2 randHellPicture() { int num = WorldGen.genRand.Next(4); if (num == 1) { num = WorldGen.genRand.Next(4); } int num2; if (num == 0) { num = 240; num2 = WorldGen.genRand.Next(5); if (num2 == 0) { num2 = 27; } else { if (num2 == 1) { num2 = 29; } else { if (num2 == 2) { num2 = 30; } else { if (num2 == 3) { num2 = 31; } else { if (num2 == 4) { num2 = 32; } } } } } } else { if (num == 1) { num = 242; num2 = 14; } else { if (num == 2) { num = 245; num2 = WorldGen.genRand.Next(3); if (num2 == 0) { num2 = 1; } else { if (num2 == 1) { num2 = 2; } else { if (num2 == 2) { num2 = 4; } } } } else { num = 246; num2 = WorldGen.genRand.Next(3); if (num2 == 0) { num2 = 0; } else { if (num2 == 1) { num2 = 16; } else { if (num2 == 2) { num2 = 17; } } } } } } return new Vector2((float)num, (float)num2); } public static Vector2 randHousePicture() { int num = WorldGen.genRand.Next(4); int num2; if (num <= 1) { num = 240; int maxValue = 10; num2 = WorldGen.genRand.Next(maxValue); if (num2 == 9) { num2 = WorldGen.genRand.Next(maxValue); } if (num2 == 5) { num2 = WorldGen.genRand.Next(maxValue); } if (num2 == 6) { num2 = WorldGen.genRand.Next(maxValue); } if (num2 == 0) { num2 = 26; } else { if (num2 == 1) { num2 = 28; } else { if (num2 == 2) { num2 = 20; } else { if (num2 == 3) { num2 = 21; } else { if (num2 == 4) { num2 = 22; } else { if (num2 == 5) { num2 = 24; } else { if (num2 == 6) { num2 = 25; } else { if (num2 == 7) { num2 = 33; } else { if (num2 == 8) { num2 = 34; } else { if (num2 == 9) { num2 = 35; } } } } } } } } } } } else { if (num == 2) { int maxValue2 = 4; num = 245; num2 = WorldGen.genRand.Next(maxValue2); if (num2 == 2) { num2 = WorldGen.genRand.Next(maxValue2); } if (num2 == 0) { num2 = WorldGen.genRand.Next(maxValue2); } if (num2 == 0) { num2 = WorldGen.genRand.Next(maxValue2); } if (num2 == 0) { num2 = WorldGen.genRand.Next(maxValue2); } if (num2 == 0) { num2 = 0; } else { if (num2 == 1) { num2 = 3; } else { if (num2 == 2) { num2 = 5; } else { if (num2 == 3) { num2 = 6; } } } } } else { num = 246; num2 = 1; } } return new Vector2((float)num, (float)num2); } public static Vector2 randPictureTile() { int num = WorldGen.genRand.Next(3); int num2 = 0; if (num <= 1) { int maxValue = 7; num = 240; num2 = WorldGen.genRand.Next(maxValue); if (num2 == 6) { num2 = WorldGen.genRand.Next(maxValue); } if (num2 == 0) { num2 = 12; } else { if (num2 == 1) { num2 = 13; } else { if (num2 == 2) { num2 = 14; } else { if (num2 == 3) { num2 = 15; } else { if (num2 == 4) { num2 = 18; } else { if (num2 == 5) { num2 = 19; } else { if (num2 == 6) { num2 = 23; } } } } } } } } else { if (num == 2) { num = 242; int maxValue2 = 16; num2 = WorldGen.genRand.Next(maxValue2); for (int i = 0; i < 2; i++) { if (num2 == 6) { num2 = WorldGen.genRand.Next(maxValue2); } if (num2 == 13) { num2 = WorldGen.genRand.Next(maxValue2); } if (num2 == 14) { num2 = WorldGen.genRand.Next(maxValue2); } if (num2 == 15) { num2 = WorldGen.genRand.Next(maxValue2); } } if (num2 == 14) { num2 = 15; } if (num2 == 15) { num2 = 16; } } } return new Vector2((float)num, (float)num2); } public static void DungeonStairs(int i, int j, int tileType, int wallType) { Vector2 value = default(Vector2); double num = (double)WorldGen.genRand.Next(5, 9); Vector2 value2; value2.X = (float)i; value2.Y = (float)j; int k = WorldGen.genRand.Next(10, 30); int num2; if (i > WorldGen.dEnteranceX) { num2 = -1; } else { num2 = 1; } if (i > Main.maxTilesX - 400) { num2 = -1; } else { if (i < 400) { num2 = 1; } } value.Y = -1f; value.X = (float)num2; if (WorldGen.genRand.Next(3) != 0) { value.X *= 1f + (float)WorldGen.genRand.Next(0, 200) * 0.01f; } else { if (WorldGen.genRand.Next(3) == 0) { value.X *= (float)WorldGen.genRand.Next(50, 76) * 0.01f; } else { if (WorldGen.genRand.Next(6) == 0) { value.Y *= 2f; } } } if (WorldGen.dungeonX < Main.maxTilesX / 2 && value.X < 0f && (double)value.X < 0.5) { value.X = -0.5f; } if (WorldGen.dungeonX > Main.maxTilesX / 2 && value.X > 0f && (double)value.X > 0.5) { value.X = -0.5f; } while (k > 0) { k--; int num3 = (int)((double)value2.X - num - 4.0 - (double)WorldGen.genRand.Next(6)); int num4 = (int)((double)value2.X + num + 4.0 + (double)WorldGen.genRand.Next(6)); int num5 = (int)((double)value2.Y - num - 4.0); int num6 = (int)((double)value2.Y + num + 4.0 + (double)WorldGen.genRand.Next(6)); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX) { num4 = Main.maxTilesX; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } int num7 = 1; if (value2.X > (float)(Main.maxTilesX / 2)) { num7 = -1; } int num8 = (int)(value2.X + (float)WorldGen.dxStrength1 * 0.6f * (float)num7 + (float)WorldGen.dxStrength2 * (float)num7); int num9 = (int)(WorldGen.dyStrength2 * 0.5); if ((double)value2.Y < Main.worldSurface - 5.0 && Main.tile[num8, (int)((double)value2.Y - num - 6.0 + (double)num9)].wall == 0 && Main.tile[num8, (int)((double)value2.Y - num - 7.0 + (double)num9)].wall == 0 && Main.tile[num8, (int)((double)value2.Y - num - 8.0 + (double)num9)].wall == 0) { WorldGen.dSurface = true; WorldGen.TileRunner(num8, (int)((double)value2.Y - num - 6.0 + (double)num9), (double)WorldGen.genRand.Next(25, 35), WorldGen.genRand.Next(10, 20), -1, false, 0f, -1f, false, true); } for (int l = num3; l < num4; l++) { for (int m = num5; m < num6; m++) { Main.tile[l, m].liquid = 0; if (!Main.wallDungeon[(int)Main.tile[l, m].wall]) { Main.tile[l, m].wall = 0; Main.tile[l, m].active(true); Main.tile[l, m].type = (byte)tileType; } } } for (int n = num3 + 1; n < num4 - 1; n++) { for (int num10 = num5 + 1; num10 < num6 - 1; num10++) { Main.tile[n, num10].wall = (byte)wallType; } } int num11 = 0; if (WorldGen.genRand.Next((int)num) == 0) { num11 = WorldGen.genRand.Next(1, 3); } num3 = (int)((double)value2.X - num * 0.5 - (double)num11); num4 = (int)((double)value2.X + num * 0.5 + (double)num11); num5 = (int)((double)value2.Y - num * 0.5 - (double)num11); num6 = (int)((double)value2.Y + num * 0.5 + (double)num11); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX) { num4 = Main.maxTilesX; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } for (int num12 = num3; num12 < num4; num12++) { for (int num13 = num5; num13 < num6; num13++) { Main.tile[num12, num13].active(false); WorldGen.PlaceWall(num12, num13, wallType, true); } } if (WorldGen.dSurface) { k = 0; } value2 += value; if ((double)value2.Y < Main.worldSurface) { value.Y *= 0.98f; } } WorldGen.dungeonX = (int)value2.X; WorldGen.dungeonY = (int)value2.Y; } public static void DungeonHalls(int i, int j, int tileType, int wallType, bool forceX = false) { Vector2 value = default(Vector2); double num = (double)WorldGen.genRand.Next(4, 6); double num2 = num; Vector2 vector = default(Vector2); Vector2 value2 = default(Vector2); Vector2 value3; value3.X = (float)i; value3.Y = (float)j; int k = WorldGen.genRand.Next(35, 80); if (forceX) { k += 20; WorldGen.lastDungeonHall = default(Vector2); } else { if (WorldGen.genRand.Next(5) == 0) { num *= 2.0; k /= 2; } } bool flag = false; bool flag2 = false; bool flag3 = true; while (!flag) { bool flag4 = false; int num5; if (flag3 && !forceX) { bool flag5 = true; bool flag6 = true; bool flag7 = true; bool flag8 = true; int num3 = k; bool flag9 = false; for (int l = j; l > j - num3; l--) { if ((int)Main.tile[i, l].wall == wallType) { if (flag9) { flag5 = false; break; } } else { flag9 = true; } } flag9 = false; for (int m = j; m < j + num3; m++) { if ((int)Main.tile[i, m].wall == wallType) { if (flag9) { flag6 = false; break; } } else { flag9 = true; } } flag9 = false; for (int n = i; n > i - num3; n--) { if ((int)Main.tile[n, j].wall == wallType) { if (flag9) { flag7 = false; break; } } else { flag9 = true; } } flag9 = false; for (int num4 = i; num4 < i + num3; num4++) { if ((int)Main.tile[num4, j].wall == wallType) { if (flag9) { flag8 = false; break; } } else { flag9 = true; } } if (!flag7 && !flag8 && !flag5 && !flag6) { if (WorldGen.genRand.Next(2) == 0) { num5 = -1; } else { num5 = 1; } if (WorldGen.genRand.Next(2) == 0) { flag4 = true; } } else { int num6 = WorldGen.genRand.Next(4); do { num6 = WorldGen.genRand.Next(4); } while ((num6 != 0 || !flag5) && (num6 != 1 || !flag6) && (num6 != 2 || !flag7) && (num6 != 3 || !flag8)); if (num6 == 0) { num5 = -1; } else { if (num6 == 1) { num5 = 1; } else { flag4 = true; if (num6 == 2) { num5 = -1; } else { num5 = 1; } } } } } else { if (WorldGen.genRand.Next(2) == 0) { num5 = -1; } else { num5 = 1; } if (WorldGen.genRand.Next(2) == 0) { flag4 = true; } } flag3 = false; if (forceX) { flag4 = true; } if (flag4) { vector.Y = 0f; vector.X = (float)num5; value2.Y = 0f; value2.X = (float)(-(float)num5); value.Y = 0f; value.X = (float)num5; if (WorldGen.genRand.Next(3) == 0) { if (WorldGen.genRand.Next(2) == 0) { value.Y = -0.2f; } else { value.Y = 0.2f; } } } else { num += 1.0; value.Y = (float)num5; value.X = 0f; vector.X = 0f; vector.Y = (float)num5; value2.X = 0f; value2.Y = (float)(-(float)num5); if (WorldGen.genRand.Next(3) != 0) { flag2 = true; if (WorldGen.genRand.Next(2) == 0) { value.X = (float)WorldGen.genRand.Next(10, 20) * 0.1f; } else { value.X = (float)(-(float)WorldGen.genRand.Next(10, 20)) * 0.1f; } } else { if (WorldGen.genRand.Next(2) == 0) { if (WorldGen.genRand.Next(2) == 0) { value.X = (float)WorldGen.genRand.Next(20, 40) * 0.01f; } else { value.X = (float)(-(float)WorldGen.genRand.Next(20, 40)) * 0.01f; } } else { k /= 2; } } } if (WorldGen.lastDungeonHall != value2) { flag = true; } } int num7 = 0; if (!forceX) { if (value3.X > (float)(WorldGen.lastMaxTilesX - 200)) { int num5 = -1; vector.Y = 0f; vector.X = (float)num5; value.Y = 0f; value.X = (float)num5; if (WorldGen.genRand.Next(3) == 0) { if (WorldGen.genRand.Next(2) == 0) { value.Y = -0.2f; } else { value.Y = 0.2f; } } } else { if (value3.X < 200f) { int num5 = 1; vector.Y = 0f; vector.X = (float)num5; value.Y = 0f; value.X = (float)num5; if (WorldGen.genRand.Next(3) == 0) { if (WorldGen.genRand.Next(2) == 0) { value.Y = -0.2f; } else { value.Y = 0.2f; } } } else { if (value3.Y > (float)(WorldGen.lastMaxTilesY - 300)) { int num5 = -1; num += 1.0; value.Y = (float)num5; value.X = 0f; vector.X = 0f; vector.Y = (float)num5; if (WorldGen.genRand.Next(2) == 0) { if (WorldGen.genRand.Next(2) == 0) { value.X = (float)WorldGen.genRand.Next(20, 50) * 0.01f; } else { value.X = (float)(-(float)WorldGen.genRand.Next(20, 50)) * 0.01f; } } } else { if ((double)value3.Y < Main.rockLayer + 100.0) { int num5 = 1; num += 1.0; value.Y = (float)num5; value.X = 0f; vector.X = 0f; vector.Y = (float)num5; if (WorldGen.genRand.Next(3) != 0) { flag2 = true; if (WorldGen.genRand.Next(2) == 0) { value.X = (float)WorldGen.genRand.Next(10, 20) * 0.1f; } else { value.X = (float)(-(float)WorldGen.genRand.Next(10, 20)) * 0.1f; } } else { if (WorldGen.genRand.Next(2) == 0) { if (WorldGen.genRand.Next(2) == 0) { value.X = (float)WorldGen.genRand.Next(20, 50) * 0.01f; } else { value.X = (float)WorldGen.genRand.Next(20, 50) * 0.01f; } } } } else { if (value3.X < (float)(Main.maxTilesX / 2) && (double)value3.X > (double)Main.maxTilesX * 0.25) { int num5 = -1; vector.Y = 0f; vector.X = (float)num5; value.Y = 0f; value.X = (float)num5; if (WorldGen.genRand.Next(3) == 0) { if (WorldGen.genRand.Next(2) == 0) { value.Y = -0.2f; } else { value.Y = 0.2f; } } } else { if (value3.X > (float)(Main.maxTilesX / 2) && (double)value3.X < (double)Main.maxTilesX * 0.75) { int num5 = 1; vector.Y = 0f; vector.X = (float)num5; value.Y = 0f; value.X = (float)num5; if (WorldGen.genRand.Next(3) == 0) { if (WorldGen.genRand.Next(2) == 0) { value.Y = -0.2f; } else { value.Y = 0.2f; } } } } } } } } } if (vector.Y == 0f) { WorldGen.DDoorX[WorldGen.numDDoors] = (int)value3.X; WorldGen.DDoorY[WorldGen.numDDoors] = (int)value3.Y; WorldGen.DDoorPos[WorldGen.numDDoors] = 0; WorldGen.numDDoors++; } else { WorldGen.DPlatX[WorldGen.numDPlats] = (int)value3.X; WorldGen.DPlatY[WorldGen.numDPlats] = (int)value3.Y; WorldGen.numDPlats++; } WorldGen.lastDungeonHall = vector; if (Math.Abs(value.X) > Math.Abs(value.Y) && WorldGen.genRand.Next(3) != 0) { num = (double)((int)((double)((float)num2) * ((double)WorldGen.genRand.Next(110, 150) * 0.01))); } while (k > 0) { num7++; if (vector.X > 0f && value3.X > (float)(Main.maxTilesX - 100)) { k = 0; } else { if (vector.X < 0f && value3.X < 100f) { k = 0; } else { if (vector.Y > 0f && value3.Y > (float)(Main.maxTilesY - 100)) { k = 0; } else { if (vector.Y < 0f && (double)value3.Y < Main.rockLayer + 50.0) { k = 0; } } } } k--; int num8 = (int)((double)value3.X - num - 4.0 - (double)WorldGen.genRand.Next(6)); int num9 = (int)((double)value3.X + num + 4.0 + (double)WorldGen.genRand.Next(6)); int num10 = (int)((double)value3.Y - num - 4.0 - (double)WorldGen.genRand.Next(6)); int num11 = (int)((double)value3.Y + num + 4.0 + (double)WorldGen.genRand.Next(6)); if (num8 < 0) { num8 = 0; } if (num9 > Main.maxTilesX) { num9 = Main.maxTilesX; } if (num10 < 0) { num10 = 0; } if (num11 > Main.maxTilesY) { num11 = Main.maxTilesY; } for (int num12 = num8; num12 < num9; num12++) { for (int num13 = num10; num13 < num11; num13++) { if (num12 < WorldGen.dMinX) { WorldGen.dMinX = num12; } if (num12 > WorldGen.dMaxX) { WorldGen.dMaxX = num12; } if (num13 > WorldGen.dMaxY) { WorldGen.dMaxY = num13; } Main.tile[num12, num13].liquid = 0; if (!Main.wallDungeon[(int)Main.tile[num12, num13].wall]) { Main.tile[num12, num13].active(true); Main.tile[num12, num13].type = (byte)tileType; } } } for (int num14 = num8 + 1; num14 < num9 - 1; num14++) { for (int num15 = num10 + 1; num15 < num11 - 1; num15++) { Main.tile[num14, num15].wall = (byte)wallType; } } int num16 = 0; if (value.Y == 0f && WorldGen.genRand.Next((int)num + 1) == 0) { num16 = WorldGen.genRand.Next(1, 3); } else { if (value.X == 0f && WorldGen.genRand.Next((int)num - 1) == 0) { num16 = WorldGen.genRand.Next(1, 3); } else { if (WorldGen.genRand.Next((int)num * 3) == 0) { num16 = WorldGen.genRand.Next(1, 3); } } } num8 = (int)((double)value3.X - num * 0.5 - (double)num16); num9 = (int)((double)value3.X + num * 0.5 + (double)num16); num10 = (int)((double)value3.Y - num * 0.5 - (double)num16); num11 = (int)((double)value3.Y + num * 0.5 + (double)num16); if (num8 < 0) { num8 = 0; } if (num9 > Main.maxTilesX) { num9 = Main.maxTilesX; } if (num10 < 0) { num10 = 0; } if (num11 > Main.maxTilesY) { num11 = Main.maxTilesY; } for (int num17 = num8; num17 < num9; num17++) { for (int num18 = num10; num18 < num11; num18++) { Main.tile[num17, num18].active(false); Main.tile[num17, num18].wall = (byte)wallType; } } value3 += value; if (flag2 && num7 > WorldGen.genRand.Next(10, 20)) { num7 = 0; value.X *= -1f; } } WorldGen.dungeonX = (int)value3.X; WorldGen.dungeonY = (int)value3.Y; if (vector.Y == 0f) { WorldGen.DDoorX[WorldGen.numDDoors] = (int)value3.X; WorldGen.DDoorY[WorldGen.numDDoors] = (int)value3.Y; WorldGen.DDoorPos[WorldGen.numDDoors] = 0; WorldGen.numDDoors++; return; } WorldGen.DPlatX[WorldGen.numDPlats] = (int)value3.X; WorldGen.DPlatY[WorldGen.numDPlats] = (int)value3.Y; WorldGen.numDPlats++; } public static void DungeonRoom(int i, int j, int tileType, int wallType) { double num = (double)WorldGen.genRand.Next(15, 30); Vector2 value; value.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value.Y = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; Vector2 value2; value2.X = (float)i; value2.Y = (float)j - (float)num / 2f; int k = WorldGen.genRand.Next(10, 20); double num2 = (double)value2.X; double num3 = (double)value2.X; double num4 = (double)value2.Y; double num5 = (double)value2.Y; while (k > 0) { k--; int num6 = (int)((double)value2.X - num * 0.800000011920929 - 5.0); int num7 = (int)((double)value2.X + num * 0.800000011920929 + 5.0); int num8 = (int)((double)value2.Y - num * 0.800000011920929 - 5.0); int num9 = (int)((double)value2.Y + num * 0.800000011920929 + 5.0); if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesX) { num7 = Main.maxTilesX; } if (num8 < 0) { num8 = 0; } if (num9 > Main.maxTilesY) { num9 = Main.maxTilesY; } for (int l = num6; l < num7; l++) { for (int m = num8; m < num9; m++) { if (l < WorldGen.dMinX) { WorldGen.dMinX = l; } if (l > WorldGen.dMaxX) { WorldGen.dMaxX = l; } if (m > WorldGen.dMaxY) { WorldGen.dMaxY = m; } Main.tile[l, m].liquid = 0; if (!Main.wallDungeon[(int)Main.tile[l, m].wall]) { Main.tile[l, m].active(true); Main.tile[l, m].type = (byte)tileType; } } } for (int n = num6 + 1; n < num7 - 1; n++) { for (int num10 = num8 + 1; num10 < num9 - 1; num10++) { Main.tile[n, num10].wall = (byte)wallType; } } num6 = (int)((double)value2.X - num * 0.5); num7 = (int)((double)value2.X + num * 0.5); num8 = (int)((double)value2.Y - num * 0.5); num9 = (int)((double)value2.Y + num * 0.5); if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesX) { num7 = Main.maxTilesX; } if (num8 < 0) { num8 = 0; } if (num9 > Main.maxTilesY) { num9 = Main.maxTilesY; } if ((double)num6 < num2) { num2 = (double)num6; } if ((double)num7 > num3) { num3 = (double)num7; } if ((double)num8 < num4) { num4 = (double)num8; } if ((double)num9 > num5) { num5 = (double)num9; } for (int num11 = num6; num11 < num7; num11++) { for (int num12 = num8; num12 < num9; num12++) { Main.tile[num11, num12].active(false); Main.tile[num11, num12].wall = (byte)wallType; } } value2 += value; value.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value.X > 1f) { value.X = 1f; } if (value.X < -1f) { value.X = -1f; } if (value.Y > 1f) { value.Y = 1f; } if (value.Y < -1f) { value.Y = -1f; } } WorldGen.dRoomX[WorldGen.numDRooms] = (int)value2.X; WorldGen.dRoomY[WorldGen.numDRooms] = (int)value2.Y; WorldGen.dRoomSize[WorldGen.numDRooms] = (int)num; WorldGen.dRoomL[WorldGen.numDRooms] = (int)num2; WorldGen.dRoomR[WorldGen.numDRooms] = (int)num3; WorldGen.dRoomT[WorldGen.numDRooms] = (int)num4; WorldGen.dRoomB[WorldGen.numDRooms] = (int)num5; WorldGen.dRoomTreasure[WorldGen.numDRooms] = false; WorldGen.numDRooms++; } public static void DungeonEnt(int i, int j, int tileType, int wallType) { int num = 60; for (int k = i - num; k < i + num; k++) { for (int l = j - num; l < j + num; l++) { Main.tile[k, l].liquid = 0; Main.tile[k, l].lava(false); } } double num2 = WorldGen.dxStrength1; double num3 = WorldGen.dyStrength1; Vector2 vector; vector.X = (float)i; vector.Y = (float)j - (float)num3 / 2f; WorldGen.dMinY = (int)vector.Y; int num4 = 1; if (i > Main.maxTilesX / 2) { num4 = -1; } int num5 = (int)((double)vector.X - num2 * 0.60000002384185791 - (double)WorldGen.genRand.Next(2, 5)); int num6 = (int)((double)vector.X + num2 * 0.60000002384185791 + (double)WorldGen.genRand.Next(2, 5)); int num7 = (int)((double)vector.Y - num3 * 0.60000002384185791 - (double)WorldGen.genRand.Next(2, 5)); int num8 = (int)((double)vector.Y + num3 * 0.60000002384185791 + (double)WorldGen.genRand.Next(8, 16)); if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesX) { num6 = Main.maxTilesX; } if (num7 < 0) { num7 = 0; } if (num8 > Main.maxTilesY) { num8 = Main.maxTilesY; } for (int m = num5; m < num6; m++) { for (int n = num7; n < num8; n++) { Main.tile[m, n].liquid = 0; if ((int)Main.tile[m, n].wall != wallType) { Main.tile[m, n].wall = 0; if (m > num5 + 1 && m < num6 - 2 && n > num7 + 1 && n < num8 - 2) { Main.tile[m, n].wall = (byte)wallType; } Main.tile[m, n].active(true); Main.tile[m, n].type = (byte)tileType; } } } int num9 = num5; int num10 = num5 + 5 + WorldGen.genRand.Next(4); int num11 = num7 - 3 - WorldGen.genRand.Next(3); int num12 = num7; for (int num13 = num9; num13 < num10; num13++) { for (int num14 = num11; num14 < num12; num14++) { if ((int)Main.tile[num13, num14].wall != wallType) { Main.tile[num13, num14].active(true); Main.tile[num13, num14].type = (byte)tileType; } } } num9 = num6 - 5 - WorldGen.genRand.Next(4); num10 = num6; num11 = num7 - 3 - WorldGen.genRand.Next(3); num12 = num7; for (int num15 = num9; num15 < num10; num15++) { for (int num16 = num11; num16 < num12; num16++) { if ((int)Main.tile[num15, num16].wall != wallType) { Main.tile[num15, num16].active(true); Main.tile[num15, num16].type = (byte)tileType; } } } int num17 = 1 + WorldGen.genRand.Next(2); int num18 = 2 + WorldGen.genRand.Next(4); int num19 = 0; for (int num20 = num5; num20 < num6; num20++) { for (int num21 = num7 - num17; num21 < num7; num21++) { if ((int)Main.tile[num20, num21].wall != wallType) { Main.tile[num20, num21].active(true); Main.tile[num20, num21].type = (byte)tileType; } } num19++; if (num19 >= num18) { num20 += num18; num19 = 0; } } for (int num22 = num5; num22 < num6; num22++) { int num23 = num8; while ((double)num23 < Main.worldSurface) { if (!Main.wallDungeon[(int)Main.tile[num22, num23].wall]) { Main.tile[num22, num23].active(true); Main.tile[num22, num23].type = (byte)tileType; } Main.tile[num22, num23].wall = (byte)wallType; num23++; } } num5 = (int)((double)vector.X - num2 * 0.60000002384185791); num6 = (int)((double)vector.X + num2 * 0.60000002384185791); num7 = (int)((double)vector.Y - num3 * 0.60000002384185791); num8 = (int)((double)vector.Y + num3 * 0.60000002384185791); if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesX) { num6 = Main.maxTilesX; } if (num7 < 0) { num7 = 0; } if (num8 > Main.maxTilesY) { num8 = Main.maxTilesY; } for (int num24 = num5; num24 < num6; num24++) { for (int num25 = num7; num25 < num8; num25++) { Main.tile[num24, num25].wall = (byte)wallType; } } num5 = (int)((double)vector.X - num2 * 0.6 - 1.0); num6 = (int)((double)vector.X + num2 * 0.6 + 1.0); num7 = (int)((double)vector.Y - num3 * 0.6 - 1.0); num8 = (int)((double)vector.Y + num3 * 0.6 + 1.0); if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesX) { num6 = Main.maxTilesX; } if (num7 < 0) { num7 = 0; } if (num8 > Main.maxTilesY) { num8 = Main.maxTilesY; } for (int num26 = num5; num26 < num6; num26++) { for (int num27 = num7; num27 < num8; num27++) { Main.tile[num26, num27].wall = (byte)wallType; } } num5 = (int)((double)vector.X - num2 * 0.5); num6 = (int)((double)vector.X + num2 * 0.5); num7 = (int)((double)vector.Y - num3 * 0.5); num8 = (int)((double)vector.Y + num3 * 0.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; } for (int num28 = num5; num28 < num6; num28++) { for (int num29 = num7; num29 < num8; num29++) { Main.tile[num28, num29].active(false); Main.tile[num28, num29].wall = (byte)wallType; } } int num30 = (int)vector.X; int num31 = num8; for (int num32 = 0; num32 < 20; num32++) { num30 = (int)vector.X - num32; if (!Main.tile[num30, num31].active() && Main.wallDungeon[(int)Main.tile[num30, num31].wall]) { WorldGen.DPlatX[WorldGen.numDPlats] = num30; WorldGen.DPlatY[WorldGen.numDPlats] = num31; WorldGen.numDPlats++; break; } num30 = (int)vector.X + num32; if (!Main.tile[num30, num31].active() && Main.wallDungeon[(int)Main.tile[num30, num31].wall]) { WorldGen.DPlatX[WorldGen.numDPlats] = num30; WorldGen.DPlatY[WorldGen.numDPlats] = num31; WorldGen.numDPlats++; break; } } vector.X += (float)num2 * 0.6f * (float)num4; vector.Y += (float)num3 * 0.5f; num2 = WorldGen.dxStrength2; num3 = WorldGen.dyStrength2; vector.X += (float)num2 * 0.55f * (float)num4; vector.Y -= (float)num3 * 0.5f; num5 = (int)((double)vector.X - num2 * 0.60000002384185791 - (double)WorldGen.genRand.Next(1, 3)); num6 = (int)((double)vector.X + num2 * 0.60000002384185791 + (double)WorldGen.genRand.Next(1, 3)); num7 = (int)((double)vector.Y - num3 * 0.60000002384185791 - (double)WorldGen.genRand.Next(1, 3)); num8 = (int)((double)vector.Y + num3 * 0.60000002384185791 + (double)WorldGen.genRand.Next(6, 16)); if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesX) { num6 = Main.maxTilesX; } if (num7 < 0) { num7 = 0; } if (num8 > Main.maxTilesY) { num8 = Main.maxTilesY; } for (int num33 = num5; num33 < num6; num33++) { for (int num34 = num7; num34 < num8; num34++) { if ((int)Main.tile[num33, num34].wall != wallType) { bool flag = true; if (num4 < 0) { if ((double)num33 < (double)vector.X - num2 * 0.5) { flag = false; } } else { if ((double)num33 > (double)vector.X + num2 * 0.5 - 1.0) { flag = false; } } if (flag) { Main.tile[num33, num34].wall = 0; Main.tile[num33, num34].active(true); Main.tile[num33, num34].type = (byte)tileType; } } } } for (int num35 = num5; num35 < num6; num35++) { int num36 = num8; while ((double)num36 < Main.worldSurface) { if (!Main.wallDungeon[(int)Main.tile[num35, num36].wall]) { Main.tile[num35, num36].active(true); Main.tile[num35, num36].type = (byte)tileType; } Main.tile[num35, num36].wall = (byte)wallType; num36++; } } num5 = (int)((double)vector.X - num2 * 0.5); num6 = (int)((double)vector.X + num2 * 0.5); num9 = num5; if (num4 < 0) { num9++; } num10 = num9 + 5 + WorldGen.genRand.Next(4); num11 = num7 - 3 - WorldGen.genRand.Next(3); num12 = num7; for (int num37 = num9; num37 < num10; num37++) { for (int num38 = num11; num38 < num12; num38++) { if ((int)Main.tile[num37, num38].wall != wallType) { Main.tile[num37, num38].active(true); Main.tile[num37, num38].type = (byte)tileType; } } } num9 = num6 - 5 - WorldGen.genRand.Next(4); num10 = num6; num11 = num7 - 3 - WorldGen.genRand.Next(3); num12 = num7; for (int num39 = num9; num39 < num10; num39++) { for (int num40 = num11; num40 < num12; num40++) { if ((int)Main.tile[num39, num40].wall != wallType) { Main.tile[num39, num40].active(true); Main.tile[num39, num40].type = (byte)tileType; } } } num17 = 1 + WorldGen.genRand.Next(2); num18 = 2 + WorldGen.genRand.Next(4); num19 = 0; if (num4 < 0) { num6++; } for (int num41 = num5 + 1; num41 < num6 - 1; num41++) { for (int num42 = num7 - num17; num42 < num7; num42++) { if ((int)Main.tile[num41, num42].wall != wallType) { Main.tile[num41, num42].active(true); Main.tile[num41, num42].type = (byte)tileType; } } num19++; if (num19 >= num18) { num41 += num18; num19 = 0; } } num5 = (int)((double)vector.X - num2 * 0.6); num6 = (int)((double)vector.X + num2 * 0.6); num7 = (int)((double)vector.Y - num3 * 0.6); num8 = (int)((double)vector.Y + num3 * 0.6); if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesX) { num6 = Main.maxTilesX; } if (num7 < 0) { num7 = 0; } if (num8 > Main.maxTilesY) { num8 = Main.maxTilesY; } for (int num43 = num5; num43 < num6; num43++) { for (int num44 = num7; num44 < num8; num44++) { Main.tile[num43, num44].wall = 0; } } num5 = (int)((double)vector.X - num2 * 0.5); num6 = (int)((double)vector.X + num2 * 0.5); num7 = (int)((double)vector.Y - num3 * 0.5); num8 = (int)((double)vector.Y + num3 * 0.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; } for (int num45 = num5; num45 < num6; num45++) { for (int num46 = num7; num46 < num8; num46++) { Main.tile[num45, num46].active(false); Main.tile[num45, num46].wall = 0; } } for (int num47 = num5; num47 < num6; num47++) { if (!Main.tile[num47, num8].active()) { Main.tile[num47, num8].active(true); Main.tile[num47, num8].type = 19; if (wallType == 7) { Main.tile[num47, num8].frameY = 108; } if (wallType == 8) { Main.tile[num47, num8].frameY = 144; } if (wallType == 9) { Main.tile[num47, num8].frameY = 126; } } } Main.dungeonX = (int)vector.X; Main.dungeonY = num8; int num48 = NPC.NewNPC(Main.dungeonX * 16 + 8, Main.dungeonY * 16, 37, 0); Main.npc[num48].homeless = false; Main.npc[num48].homeTileX = Main.dungeonX; Main.npc[num48].homeTileY = Main.dungeonY; if (num4 == 1) { int num49 = 0; for (int num50 = num6; num50 < num6 + 50; num50++) { num49++; for (int num51 = num8 + num49; num51 < num8 + 50; num51++) { if (!Main.wallDungeon[(int)Main.tile[num50, num51].wall]) { Main.tile[num50, num51].active(true); Main.tile[num50, num51].type = (byte)tileType; } } } } else { int num52 = 0; for (int num53 = num5; num53 > num5 - 50; num53--) { num52++; for (int num54 = num8 + num52; num54 < num8 + 50; num54++) { if (!Main.wallDungeon[(int)Main.tile[num53, num54].wall]) { Main.tile[num53, num54].active(true); Main.tile[num53, num54].type = (byte)tileType; } } } } num17 = 1 + WorldGen.genRand.Next(2); num18 = 2 + WorldGen.genRand.Next(4); num19 = 0; num5 = (int)((double)vector.X - num2 * 0.5); num6 = (int)((double)vector.X + num2 * 0.5); num5 += 2; num6 -= 2; for (int num55 = num5; num55 < num6; num55++) { for (int num56 = num7; num56 < num8; num56++) { WorldGen.PlaceWall(num55, num56, wallType, true); } num19++; if (num19 >= num18) { num55 += num18 * 2; num19 = 0; } } vector.X -= (float)num2 * 0.6f * (float)num4; vector.Y += (float)num3 * 0.5f; num2 = 15.0; num3 = 3.0; vector.Y -= (float)num3 * 0.5f; num5 = (int)((double)vector.X - num2 * 0.5); num6 = (int)((double)vector.X + num2 * 0.5); num7 = (int)((double)vector.Y - num3 * 0.5); num8 = (int)((double)vector.Y + num3 * 0.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; } for (int num57 = num5; num57 < num6; num57++) { for (int num58 = num7; num58 < num8; num58++) { Main.tile[num57, num58].active(false); } } if (num4 < 0) { vector.X -= 1f; } WorldGen.PlaceTile((int)vector.X, (int)vector.Y + 1, 10, true, false, -1, 13); } public static bool AddBuriedChest(int i, int j, int contain = 0, bool notNearOtherChests = false, int Style = -1) { if (WorldGen.genRand == null) { WorldGen.genRand = new Random((int)DateTime.Now.Ticks); } int k = j; while (k < Main.maxTilesY) { if (WorldGen.SolidTile(i, k)) { bool flag = false; int num = k; int num2 = 0; if ((double)num >= Main.worldSurface + 25.0 || contain > 0) { num2 = 1; if (contain == 211 || contain == 212 || contain == 213 || contain == 753) { num2 = 10; } } if (Style >= 0) { num2 = Style; } if (contain == 0 && (double)num >= Main.worldSurface + 25.0 && num <= Main.maxTilesY - 205 && (Main.tile[i, k].type == 147 || Main.tile[i, k].type == 161 || Main.tile[i, k].type == 162)) { num2 = 11; int num3 = WorldGen.genRand.Next(6); if (num3 == 0) { contain = 670; } else { if (num3 == 1) { contain = 724; } else { if (num3 == 2) { contain = 950; } else { if (num3 == 3) { contain = 1319; } else { if (num3 == 4) { contain = 987; } else { if (num3 == 5) { contain = 1579; } } } } } } if (WorldGen.genRand.Next(20) == 0) { contain = 997; } if (WorldGen.genRand.Next(50) == 0) { contain = 669; } } if (num > Main.maxTilesY - 205 && contain == 0) { if (WorldGen.hellChest == 0) { contain = 274; num2 = 4; flag = true; } else { if (WorldGen.hellChest == 1) { contain = 220; num2 = 4; flag = true; } else { if (WorldGen.hellChest == 2) { contain = 112; num2 = 4; flag = true; } else { if (WorldGen.hellChest == 3) { contain = 218; num2 = 4; flag = true; } } } } } int num4 = WorldGen.PlaceChest(i - 1, num - 1, 21, notNearOtherChests, num2); if (num4 >= 0) { if (flag) { WorldGen.hellChest++; if (WorldGen.hellChest > 3) { WorldGen.hellChest = 0; } } int num5 = 0; while (num5 == 0) { if ((double)num < Main.worldSurface + 25.0 || contain == 848) { if (contain > 0) { Main.chest[num4].item[num5].SetDefaults(contain, false); Main.chest[num4].item[num5].Prefix(-1); if (contain == 848) { num5++; Main.chest[num4].item[num5].SetDefaults(866, false); } num5++; } else { int num6 = WorldGen.genRand.Next(8); if (num6 == 0) { Main.chest[num4].item[num5].SetDefaults(280, false); Main.chest[num4].item[num5].Prefix(-1); } if (num6 == 1) { Main.chest[num4].item[num5].SetDefaults(281, false); Main.chest[num4].item[num5].Prefix(-1); } if (num6 == 2) { Main.chest[num4].item[num5].SetDefaults(284, false); Main.chest[num4].item[num5].Prefix(-1); } if (num6 == 3) { Main.chest[num4].item[num5].SetDefaults(282, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(50, 75); } if (num6 == 4) { Main.chest[num4].item[num5].SetDefaults(279, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(25, 50); } if (num6 == 5) { Main.chest[num4].item[num5].SetDefaults(285, false); Main.chest[num4].item[num5].Prefix(-1); } if (num6 == 6) { Main.chest[num4].item[num5].SetDefaults(953, false); Main.chest[num4].item[num5].Prefix(-1); } if (num6 == 7) { Main.chest[num4].item[num5].SetDefaults(946, false); Main.chest[num4].item[num5].Prefix(-1); } num5++; } if (WorldGen.genRand.Next(3) == 0) { Main.chest[num4].item[num5].SetDefaults(168, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(3, 6); num5++; } if (WorldGen.genRand.Next(2) == 0) { int num7 = WorldGen.genRand.Next(2); int stack = WorldGen.genRand.Next(8) + 3; if (num7 == 0) { Main.chest[num4].item[num5].SetDefaults(WorldGen.copperBar, false); } if (num7 == 1) { Main.chest[num4].item[num5].SetDefaults(WorldGen.ironBar, false); } Main.chest[num4].item[num5].stack = stack; num5++; } if (WorldGen.genRand.Next(2) == 0) { int stack2 = WorldGen.genRand.Next(50, 101); Main.chest[num4].item[num5].SetDefaults(965, false); Main.chest[num4].item[num5].stack = stack2; num5++; } if (WorldGen.genRand.Next(3) != 0) { int num8 = WorldGen.genRand.Next(2); int stack3 = WorldGen.genRand.Next(26) + 25; if (num8 == 0) { Main.chest[num4].item[num5].SetDefaults(40, false); } if (num8 == 1) { Main.chest[num4].item[num5].SetDefaults(42, false); } Main.chest[num4].item[num5].stack = stack3; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num9 = WorldGen.genRand.Next(1); int stack4 = WorldGen.genRand.Next(3) + 3; if (num9 == 0) { Main.chest[num4].item[num5].SetDefaults(28, false); } Main.chest[num4].item[num5].stack = stack4; num5++; } if (WorldGen.genRand.Next(3) > 0) { int num10 = WorldGen.genRand.Next(4); int stack5 = WorldGen.genRand.Next(1, 3); if (num10 == 0) { Main.chest[num4].item[num5].SetDefaults(292, false); } if (num10 == 1) { Main.chest[num4].item[num5].SetDefaults(298, false); } if (num10 == 2) { Main.chest[num4].item[num5].SetDefaults(299, false); } if (num10 == 3) { Main.chest[num4].item[num5].SetDefaults(290, false); } Main.chest[num4].item[num5].stack = stack5; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num11 = WorldGen.genRand.Next(2); int stack6 = WorldGen.genRand.Next(11) + 10; if (num11 == 0) { Main.chest[num4].item[num5].SetDefaults(8, false); } if (num11 == 1) { Main.chest[num4].item[num5].SetDefaults(31, false); } Main.chest[num4].item[num5].stack = stack6; num5++; } if (WorldGen.genRand.Next(2) == 0) { Main.chest[num4].item[num5].SetDefaults(72, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(10, 30); num5++; } } else { if ((double)num < Main.rockLayer) { if (contain > 0) { Main.chest[num4].item[num5].SetDefaults(contain, false); Main.chest[num4].item[num5].Prefix(-1); num5++; } else { int num12 = WorldGen.genRand.Next(7); if (WorldGen.genRand.Next(20) == 0) { Main.chest[num4].item[num5].SetDefaults(997, false); Main.chest[num4].item[num5].Prefix(-1); } else { if (num12 == 0) { Main.chest[num4].item[num5].SetDefaults(49, false); Main.chest[num4].item[num5].Prefix(-1); } if (num12 == 1) { Main.chest[num4].item[num5].SetDefaults(50, false); Main.chest[num4].item[num5].Prefix(-1); } if (num12 == 2) { Main.chest[num4].item[num5].SetDefaults(53, false); Main.chest[num4].item[num5].Prefix(-1); } if (num12 == 3) { Main.chest[num4].item[num5].SetDefaults(54, false); Main.chest[num4].item[num5].Prefix(-1); } if (num12 == 4) { Main.chest[num4].item[num5].SetDefaults(55, false); Main.chest[num4].item[num5].Prefix(-1); } if (num12 == 5) { Main.chest[num4].item[num5].SetDefaults(975, false); Main.chest[num4].item[num5].Prefix(-1); } if (num12 == 6) { Main.chest[num4].item[num5].SetDefaults(930, false); Main.chest[num4].item[num5].Prefix(-1); num5++; Main.chest[num4].item[num5].SetDefaults(931, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(26) + 25; } } num5++; } if (WorldGen.genRand.Next(3) == 0) { Main.chest[num4].item[num5].SetDefaults(166, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(10, 20); num5++; } if (WorldGen.genRand.Next(5) == 0) { Main.chest[num4].item[num5].SetDefaults(52, false); num5++; } if (WorldGen.genRand.Next(3) == 0) { int stack7 = WorldGen.genRand.Next(50, 101); Main.chest[num4].item[num5].SetDefaults(965, false); Main.chest[num4].item[num5].stack = stack7; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num13 = WorldGen.genRand.Next(2); int stack8 = WorldGen.genRand.Next(10) + 5; if (num13 == 0) { Main.chest[num4].item[num5].SetDefaults(WorldGen.ironBar, false); } if (num13 == 1) { Main.chest[num4].item[num5].SetDefaults(WorldGen.silverBar, false); } Main.chest[num4].item[num5].stack = stack8; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num14 = WorldGen.genRand.Next(2); int stack9 = WorldGen.genRand.Next(25) + 25; if (num14 == 0) { Main.chest[num4].item[num5].SetDefaults(40, false); } if (num14 == 1) { Main.chest[num4].item[num5].SetDefaults(42, false); } Main.chest[num4].item[num5].stack = stack9; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num15 = WorldGen.genRand.Next(1); int stack10 = WorldGen.genRand.Next(3) + 3; if (num15 == 0) { Main.chest[num4].item[num5].SetDefaults(28, false); } Main.chest[num4].item[num5].stack = stack10; num5++; } if (WorldGen.genRand.Next(3) > 0) { int num16 = WorldGen.genRand.Next(7); int stack11 = WorldGen.genRand.Next(1, 3); if (num16 == 0) { Main.chest[num4].item[num5].SetDefaults(289, false); } if (num16 == 1) { Main.chest[num4].item[num5].SetDefaults(298, false); } if (num16 == 2) { Main.chest[num4].item[num5].SetDefaults(299, false); } if (num16 == 3) { Main.chest[num4].item[num5].SetDefaults(290, false); } if (num16 == 4) { Main.chest[num4].item[num5].SetDefaults(303, false); } if (num16 == 5) { Main.chest[num4].item[num5].SetDefaults(291, false); } if (num16 == 6) { Main.chest[num4].item[num5].SetDefaults(304, false); } Main.chest[num4].item[num5].stack = stack11; num5++; } if (WorldGen.genRand.Next(2) == 0) { int stack12 = WorldGen.genRand.Next(11) + 10; if (num2 == 11) { Main.chest[num4].item[num5].SetDefaults(974, false); } else { Main.chest[num4].item[num5].SetDefaults(8, false); } Main.chest[num4].item[num5].stack = stack12; num5++; } if (WorldGen.genRand.Next(2) == 0) { Main.chest[num4].item[num5].SetDefaults(72, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(50, 90); num5++; } } else { if (num < Main.maxTilesY - 250) { if (contain > 0) { Main.chest[num4].item[num5].SetDefaults(contain, false); Main.chest[num4].item[num5].Prefix(-1); num5++; } else { int num17 = WorldGen.genRand.Next(7); if (WorldGen.genRand.Next(40) == 0) { Main.chest[num4].item[num5].SetDefaults(906, false); Main.chest[num4].item[num5].Prefix(-1); } else { if (WorldGen.genRand.Next(15) == 0) { Main.chest[num4].item[num5].SetDefaults(997, false); Main.chest[num4].item[num5].Prefix(-1); } else { if (num17 == 0) { Main.chest[num4].item[num5].SetDefaults(49, false); Main.chest[num4].item[num5].Prefix(-1); } if (num17 == 1) { Main.chest[num4].item[num5].SetDefaults(50, false); Main.chest[num4].item[num5].Prefix(-1); } if (num17 == 2) { Main.chest[num4].item[num5].SetDefaults(53, false); Main.chest[num4].item[num5].Prefix(-1); } if (num17 == 3) { Main.chest[num4].item[num5].SetDefaults(54, false); Main.chest[num4].item[num5].Prefix(-1); } if (num17 == 4) { Main.chest[num4].item[num5].SetDefaults(55, false); Main.chest[num4].item[num5].Prefix(-1); } if (num17 == 5) { Main.chest[num4].item[num5].SetDefaults(975, false); Main.chest[num4].item[num5].Prefix(-1); } if (num17 == 6) { Main.chest[num4].item[num5].SetDefaults(930, false); Main.chest[num4].item[num5].Prefix(-1); num5++; Main.chest[num4].item[num5].SetDefaults(931, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(26) + 25; } } } num5++; } if (WorldGen.genRand.Next(5) == 0) { Main.chest[num4].item[num5].SetDefaults(43, false); num5++; } if (WorldGen.genRand.Next(3) == 0) { Main.chest[num4].item[num5].SetDefaults(167, false); num5++; } if (WorldGen.genRand.Next(4) == 0) { Main.chest[num4].item[num5].SetDefaults(51, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(26) + 25; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num18 = WorldGen.genRand.Next(2); int stack13 = WorldGen.genRand.Next(8) + 3; if (num18 == 0) { Main.chest[num4].item[num5].SetDefaults(WorldGen.goldBar, false); } if (num18 == 1) { Main.chest[num4].item[num5].SetDefaults(WorldGen.silverBar, false); } Main.chest[num4].item[num5].stack = stack13; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num19 = WorldGen.genRand.Next(2); int stack14 = WorldGen.genRand.Next(26) + 25; if (num19 == 0) { Main.chest[num4].item[num5].SetDefaults(41, false); } if (num19 == 1) { Main.chest[num4].item[num5].SetDefaults(279, false); } Main.chest[num4].item[num5].stack = stack14; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num20 = WorldGen.genRand.Next(1); int stack15 = WorldGen.genRand.Next(3) + 3; if (num20 == 0) { Main.chest[num4].item[num5].SetDefaults(188, false); } Main.chest[num4].item[num5].stack = stack15; num5++; } if (WorldGen.genRand.Next(3) > 0) { int num21 = WorldGen.genRand.Next(6); int stack16 = WorldGen.genRand.Next(1, 3); if (num21 == 0) { Main.chest[num4].item[num5].SetDefaults(296, false); } if (num21 == 1) { Main.chest[num4].item[num5].SetDefaults(295, false); } if (num21 == 2) { Main.chest[num4].item[num5].SetDefaults(299, false); } if (num21 == 3) { Main.chest[num4].item[num5].SetDefaults(302, false); } if (num21 == 4) { Main.chest[num4].item[num5].SetDefaults(303, false); } if (num21 == 5) { Main.chest[num4].item[num5].SetDefaults(305, false); } Main.chest[num4].item[num5].stack = stack16; num5++; } if (WorldGen.genRand.Next(3) > 1) { int num22 = WorldGen.genRand.Next(4); int stack17 = WorldGen.genRand.Next(1, 3); if (num22 == 0) { Main.chest[num4].item[num5].SetDefaults(301, false); } if (num22 == 1) { Main.chest[num4].item[num5].SetDefaults(302, false); } if (num22 == 2) { Main.chest[num4].item[num5].SetDefaults(297, false); } if (num22 == 3) { Main.chest[num4].item[num5].SetDefaults(304, false); } Main.chest[num4].item[num5].stack = stack17; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num23 = WorldGen.genRand.Next(2); int stack18 = WorldGen.genRand.Next(15) + 15; if (num23 == 0) { if (num2 == 11) { Main.chest[num4].item[num5].SetDefaults(974, false); } else { Main.chest[num4].item[num5].SetDefaults(8, false); } } if (num23 == 1) { Main.chest[num4].item[num5].SetDefaults(282, false); } Main.chest[num4].item[num5].stack = stack18; num5++; } if (WorldGen.genRand.Next(2) == 0) { Main.chest[num4].item[num5].SetDefaults(73, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(1, 3); num5++; } } else { if (contain > 0) { Main.chest[num4].item[num5].SetDefaults(contain, false); Main.chest[num4].item[num5].Prefix(-1); num5++; } else { int num24 = WorldGen.genRand.Next(4); if (num24 == 0) { Main.chest[num4].item[num5].SetDefaults(49, false); Main.chest[num4].item[num5].Prefix(-1); } if (num24 == 1) { Main.chest[num4].item[num5].SetDefaults(50, false); Main.chest[num4].item[num5].Prefix(-1); } if (num24 == 2) { Main.chest[num4].item[num5].SetDefaults(53, false); Main.chest[num4].item[num5].Prefix(-1); } if (num24 == 3) { Main.chest[num4].item[num5].SetDefaults(54, false); Main.chest[num4].item[num5].Prefix(-1); } num5++; } if (WorldGen.genRand.Next(3) == 0) { Main.chest[num4].item[num5].SetDefaults(167, false); num5++; } if (WorldGen.genRand.Next(2) == 0) { int num25 = WorldGen.genRand.Next(2); int stack19 = WorldGen.genRand.Next(15) + 15; if (num25 == 0) { Main.chest[num4].item[num5].SetDefaults(117, false); } if (num25 == 1) { Main.chest[num4].item[num5].SetDefaults(WorldGen.goldBar, false); } Main.chest[num4].item[num5].stack = stack19; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num26 = WorldGen.genRand.Next(2); int stack20 = WorldGen.genRand.Next(25) + 50; if (num26 == 0) { Main.chest[num4].item[num5].SetDefaults(265, false); } if (num26 == 1) { Main.chest[num4].item[num5].SetDefaults(278, false); } Main.chest[num4].item[num5].stack = stack20; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num27 = WorldGen.genRand.Next(2); int stack21 = WorldGen.genRand.Next(15) + 15; if (num27 == 0) { Main.chest[num4].item[num5].SetDefaults(226, false); } if (num27 == 1) { Main.chest[num4].item[num5].SetDefaults(227, false); } Main.chest[num4].item[num5].stack = stack21; num5++; } if (WorldGen.genRand.Next(4) > 0) { int num28 = WorldGen.genRand.Next(7); int stack22 = WorldGen.genRand.Next(1, 3); if (num28 == 0) { Main.chest[num4].item[num5].SetDefaults(296, false); } if (num28 == 1) { Main.chest[num4].item[num5].SetDefaults(295, false); } if (num28 == 2) { Main.chest[num4].item[num5].SetDefaults(293, false); } if (num28 == 3) { Main.chest[num4].item[num5].SetDefaults(288, false); } if (num28 == 4) { Main.chest[num4].item[num5].SetDefaults(294, false); } if (num28 == 5) { Main.chest[num4].item[num5].SetDefaults(297, false); } if (num28 == 6) { Main.chest[num4].item[num5].SetDefaults(304, false); } Main.chest[num4].item[num5].stack = stack22; num5++; } if (WorldGen.genRand.Next(3) > 0) { int num29 = WorldGen.genRand.Next(5); int stack23 = WorldGen.genRand.Next(1, 3); if (num29 == 0) { Main.chest[num4].item[num5].SetDefaults(305, false); } if (num29 == 1) { Main.chest[num4].item[num5].SetDefaults(301, false); } if (num29 == 2) { Main.chest[num4].item[num5].SetDefaults(302, false); } if (num29 == 3) { Main.chest[num4].item[num5].SetDefaults(288, false); } if (num29 == 4) { Main.chest[num4].item[num5].SetDefaults(300, false); } Main.chest[num4].item[num5].stack = stack23; num5++; } if (WorldGen.genRand.Next(2) == 0) { int num30 = WorldGen.genRand.Next(2); int stack24 = WorldGen.genRand.Next(15) + 15; if (num30 == 0) { Main.chest[num4].item[num5].SetDefaults(8, false); } if (num30 == 1) { Main.chest[num4].item[num5].SetDefaults(282, false); } Main.chest[num4].item[num5].stack = stack24; num5++; } if (WorldGen.genRand.Next(2) == 0) { Main.chest[num4].item[num5].SetDefaults(73, false); Main.chest[num4].item[num5].stack = WorldGen.genRand.Next(2, 5); num5++; } } } } } return true; } return false; } else { k++; } } return false; } public static void UnlockDoor(int i, int j) { int num = j; while (Main.tile[i, num].frameY != 594) { num--; if (Main.tile[i, num].frameY < 594 || num <= 0) { return; } } Main.PlaySound(22, i * 16, num * 16 + 16, 1); for (int k = num; k <= num + 2; k++) { if (Main.tile[i, k] == null) { Main.tile[i, k] = new Tile(); } Tile expr_81 = Main.tile[i, k]; expr_81.frameY += 54; for (int l = 0; l < 4; l++) { Dust.NewDust(new Vector2((float)(i * 16), (float)(k * 16)), 16, 16, 11, 0f, 0f, 0, default(Color), 1f); } } } public static bool OpenDoor(int i, int j, int direction) { if (Main.tile[i, j - 1] == null) { Main.tile[i, j - 1] = new Tile(); } if (Main.tile[i, j - 2] == null) { Main.tile[i, j - 2] = new Tile(); } if (Main.tile[i, j + 1] == null) { Main.tile[i, j + 1] = new Tile(); } if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].type != 10) { return false; } if (Main.tile[i, j].frameY >= 594 && Main.tile[i, j].frameY <= 646) { return false; } int k = (int)Main.tile[i, j].frameY; int num = 0; while (k >= 54) { k -= 54; num++; } int num2 = j - k / 18; byte color = Main.tile[i, num2].color(); if (Main.tile[i, num2 + 1] == null) { Main.tile[i, num2 + 1] = new Tile(); } Main.tile[i, num2 + 1].color(); if (Main.tile[i, num2 + 2] == null) { Main.tile[i, num2 + 2] = new Tile(); } Main.tile[i, num2 + 2].color(); short num3 = 0; int num4; int num5; if (direction == -1) { num4 = i - 1; num3 = 36; num5 = i - 1; } else { num4 = i; num5 = i + 1; } bool flag = true; for (int l = num2; l < num2 + 3; l++) { if (Main.tile[num5, l] == null) { Main.tile[num5, l] = new Tile(); } if (Main.tile[num5, l].active()) { if (!Main.tileCut[(int)Main.tile[num5, l].type] && Main.tile[num5, l].type != 3 && Main.tile[num5, l].type != 24 && Main.tile[num5, l].type != 52 && Main.tile[num5, l].type != 61 && Main.tile[num5, l].type != 62 && Main.tile[num5, l].type != 69 && Main.tile[num5, l].type != 71 && Main.tile[num5, l].type != 73 && Main.tile[num5, l].type != 74 && Main.tile[num5, l].type != 110 && Main.tile[num5, l].type != 113 && Main.tile[num5, l].type != 115) { flag = false; break; } WorldGen.KillTile(num5, l, false, false, false); } } if (flag) { if (Main.netMode != 1) { for (int m = num4; m <= num4 + 1; m++) { for (int n = num2; n <= num2 + 2; n++) { if (WorldGen.numNoWire < WorldGen.maxWire - 1) { WorldGen.noWireX[WorldGen.numNoWire] = m; WorldGen.noWireY[WorldGen.numNoWire] = n; WorldGen.numNoWire++; } } } } int num6 = num * 54; Main.PlaySound(8, i * 16, j * 16, 1); Main.tile[num4, num2].active(true); Main.tile[num4, num2].type = 11; Main.tile[num4, num2].frameY = (short)num6; Main.tile[num4, num2].frameX = num3; Main.tile[num4, num2].color(color); if (Main.tile[num4 + 1, num2] == null) { Main.tile[num4 + 1, num2] = new Tile(); } Main.tile[num4 + 1, num2].active(true); Main.tile[num4 + 1, num2].type = 11; Main.tile[num4 + 1, num2].frameY = (short)num6; Main.tile[num4 + 1, num2].frameX = (short)(num3 + 18); Main.tile[num4 + 1, num2].color(color); if (Main.tile[num4, num2 + 1] == null) { Main.tile[num4, num2 + 1] = new Tile(); } Main.tile[num4, num2 + 1].active(true); Main.tile[num4, num2 + 1].type = 11; Main.tile[num4, num2 + 1].frameY = (short)(num6 + 18); Main.tile[num4, num2 + 1].frameX = num3; Main.tile[num4, num2 + 1].color(color); if (Main.tile[num4 + 1, num2 + 1] == null) { Main.tile[num4 + 1, num2 + 1] = new Tile(); } Main.tile[num4 + 1, num2 + 1].active(true); Main.tile[num4 + 1, num2 + 1].type = 11; Main.tile[num4 + 1, num2 + 1].frameY = (short)(num6 + 18); Main.tile[num4 + 1, num2 + 1].frameX = (short)(num3 + 18); Main.tile[num4 + 1, num2 + 1].color(color); if (Main.tile[num4, num2 + 2] == null) { Main.tile[num4, num2 + 2] = new Tile(); } Main.tile[num4, num2 + 2].active(true); Main.tile[num4, num2 + 2].type = 11; Main.tile[num4, num2 + 2].frameY = (short)(num6 + 36); Main.tile[num4, num2 + 2].frameX = num3; Main.tile[num4, num2 + 2].color(color); if (Main.tile[num4 + 1, num2 + 2] == null) { Main.tile[num4 + 1, num2 + 2] = new Tile(); } Main.tile[num4 + 1, num2 + 2].active(true); Main.tile[num4 + 1, num2 + 2].type = 11; Main.tile[num4 + 1, num2 + 2].frameY = (short)(num6 + 36); Main.tile[num4 + 1, num2 + 2].frameX = (short)(num3 + 18); Main.tile[num4 + 1, num2 + 2].color(color); for (int num7 = num4 - 1; num7 <= num4 + 2; num7++) { for (int num8 = num2 - 1; num8 <= num2 + 2; num8++) { WorldGen.TileFrame(num7, num8, false, false); } } } return flag; } public static void Check1xX(int x, int j, byte type) { if (WorldGen.destroyObject) { return; } int num = j - (int)(Main.tile[x, j].frameY / 18); int frameX = (int)Main.tile[x, j].frameX; int num2 = 3; if (type == 92) { num2 = 6; } bool flag = false; for (int i = 0; i < num2; i++) { if (Main.tile[x, num + i] == null) { Main.tile[x, num + i] = new Tile(); } if (!Main.tile[x, num + i].active()) { flag = true; } else { if (Main.tile[x, num + i].type != type) { flag = true; } else { if ((int)Main.tile[x, num + i].frameY != i * 18) { flag = true; } else { if ((int)Main.tile[x, num + i].frameX != frameX) { flag = true; } } } } } if (Main.tile[x, num + num2] == null) { Main.tile[x, num + num2] = new Tile(); } if (!WorldGen.SolidTile2(x, num + num2)) { flag = true; } if (flag) { WorldGen.destroyObject = true; for (int k = 0; k < num2; k++) { if (Main.tile[x, num + k].type == type) { WorldGen.KillTile(x, num + k, false, false, false); } } if (type == 92) { Item.NewItem(x * 16, j * 16, 32, 32, 341, 1, false, 0, false); } if (type == 93) { Item.NewItem(x * 16, j * 16, 32, 32, 342, 1, false, 0, false); } WorldGen.destroyObject = false; } } public static void Check2xX(int i, int j, byte type) { if (WorldGen.destroyObject) { return; } int num = i; int k; for (k = (int)Main.tile[i, j].frameX; k >= 36; k -= 36) { } if (k == 18) { num--; } if (Main.tile[num, j] == null) { Main.tile[num, j] = new Tile(); } int l = (int)(Main.tile[num, j].frameY / 18); int num2 = 3; if (type == 104) { num2 = 5; } if (type == 207) { num2 = 4; } int num3 = 0; while (l >= num2) { l -= num2; num3 += num2 * 18; } int num4 = j - l; if (Main.tile[num, num4] == null) { Main.tile[num, num4] = new Tile(); } int frameX = (int)Main.tile[num, j].frameX; bool flag = false; for (int m = 0; m < num2; m++) { if (Main.tile[num, num4 + m] == null) { Main.tile[num, num4 + m] = new Tile(); } if (!Main.tile[num, num4 + m].active()) { flag = true; } else { if (Main.tile[num, num4 + m].type != type) { flag = true; } else { if ((int)Main.tile[num, num4 + m].frameY != m * 18 + num3) { flag = true; } else { if ((int)Main.tile[num, num4 + m].frameX != frameX) { flag = true; } } } } if (Main.tile[num + 1, num4 + m] == null) { Main.tile[num + 1, num4 + m] = new Tile(); } if (!Main.tile[num + 1, num4 + m].active()) { flag = true; } else { if (Main.tile[num + 1, num4 + m].type != type) { flag = true; } else { if ((int)Main.tile[num + 1, num4 + m].frameY != m * 18 + num3) { flag = true; } else { if ((int)Main.tile[num + 1, num4 + m].frameX != frameX + 18) { flag = true; } } } } } if (!WorldGen.SolidTile2(num, num4 + num2)) { flag = true; } if (!WorldGen.SolidTile2(num + 1, num4 + num2)) { flag = true; } if (flag) { WorldGen.destroyObject = true; for (int n = 0; n < num2; n++) { if (Main.tile[num, num4 + n].type == type) { WorldGen.KillTile(num, num4 + n, false, false, false); } if (Main.tile[num + 1, num4 + n].type == type) { WorldGen.KillTile(num + 1, num4 + n, false, false, false); } } if (type == 104) { Item.NewItem(num * 16, j * 16, 32, 32, 359, 1, false, 0, false); } if (type == 105) { int num5 = frameX / 36; if (num5 == 0) { num5 = 360; } else { if (num5 == 1) { num5 = 52; } else { if (num5 == 43) { num5 = 1152; } else { if (num5 == 44) { num5 = 1153; } else { if (num5 == 45) { num5 = 1154; } else { if (num5 == 46) { num5 = 1408; } else { if (num5 == 47) { num5 = 1409; } else { if (num5 == 48) { num5 = 1410; } else { if (num5 == 49) { num5 = 1462; } else { num5 = 438 + num5 - 2; } } } } } } } } } Item.NewItem(num * 16, j * 16, 32, 32, num5, 1, false, 0, false); } if (type == 207) { int num6 = frameX / 36; if (num6 == 0) { num6 = 909; } else { if (num6 == 1) { num6 = 910; } else { if (num6 >= 2 && num6 <= 7) { num6 = 938 + num6; } } } Item.NewItem(num * 16, j * 16, 32, 32, num6, 1, false, 0, false); } WorldGen.destroyObject = false; } } public static void PlaceTight(int x, int y, int type = 165, bool spiders = false) { if (Main.tile[x, y - 1] == null) { Main.tile[x, y - 1] = new Tile(); } if (Main.tile[x, y] == null) { Main.tile[x, y] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } if (WorldGen.SolidTile(x, y - 1) && !Main.tile[x, y].active() && !Main.tile[x, y + 1].active()) { if (spiders) { int num = 108 + Main.rand.Next(3) * 18; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num; Main.tile[x, y].frameY = 0; Main.tile[x, y + 1].type = (byte)type; Main.tile[x, y + 1].active(true); Main.tile[x, y + 1].frameX = (short)num; Main.tile[x, y + 1].frameY = 18; return; } if (Main.tile[x, y - 1].type == 147 || Main.tile[x, y - 1].type == 161 || Main.tile[x, y - 1].type == 163 || Main.tile[x, y - 1].type == 164) { if (WorldGen.genRand.Next(2) == 0) { int num2 = Main.rand.Next(3) * 18; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num2; Main.tile[x, y].frameY = 72; } else { int num3 = Main.rand.Next(3) * 18; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num3; Main.tile[x, y].frameY = 0; Main.tile[x, y + 1].type = (byte)type; Main.tile[x, y + 1].active(true); Main.tile[x, y + 1].frameX = (short)num3; Main.tile[x, y + 1].frameY = 18; } } if (Main.tile[x, y - 1].type == 1 || Main.tileMoss[(int)Main.tile[x, y - 1].type]) { if (WorldGen.genRand.Next(2) == 0) { int num4 = 54 + Main.rand.Next(3) * 18; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num4; Main.tile[x, y].frameY = 72; } else { int num5 = 54 + Main.rand.Next(3) * 18; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num5; Main.tile[x, y].frameY = 0; Main.tile[x, y + 1].type = (byte)type; Main.tile[x, y + 1].active(true); Main.tile[x, y + 1].frameX = (short)num5; Main.tile[x, y + 1].frameY = 18; } } if (Main.tile[x, y - 1].type == 225) { int num6 = 162 + Main.rand.Next(3) * 18; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num6; Main.tile[x, y].frameY = 72; return; } } else { if (spiders) { return; } if (WorldGen.SolidTile(x, y + 1) && !Main.tile[x, y].active() && !Main.tile[x, y - 1].active()) { if (Main.tile[x, y + 1].type == 1 || Main.tileMoss[(int)Main.tile[x, y + 1].type]) { if (WorldGen.genRand.Next(2) == 0) { int num7 = 54 + Main.rand.Next(3) * 18; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num7; Main.tile[x, y].frameY = 90; } else { int num8 = 54 + Main.rand.Next(3) * 18; Main.tile[x, y - 1].type = (byte)type; Main.tile[x, y - 1].active(true); Main.tile[x, y - 1].frameX = (short)num8; Main.tile[x, y - 1].frameY = 36; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num8; Main.tile[x, y].frameY = 54; } } if (Main.tile[x, y + 1].type == 225) { int num9 = 162 + Main.rand.Next(3) * 18; Main.tile[x, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameX = (short)num9; Main.tile[x, y].frameY = 90; } } } } public static void CheckTight(int x, int j) { if (Main.tile[x, j] == null) { return; } int num = j; if (Main.tile[x, num].frameY == 72) { if (Main.tile[x, num - 1] == null) { Main.tile[x, num - 1] = new Tile(); } if (Main.tile[x, num] == null) { Main.tile[x, num] = new Tile(); } if (Main.tile[x, num + 1] == null) { Main.tile[x, num + 1] = new Tile(); } bool flag = false; if (!WorldGen.SolidTile(x, num - 1)) { flag = true; } if (flag && Main.tile[x, num].type == Main.tile[x, j].type) { WorldGen.KillTile(x, num, false, false, false); return; } } else { if (Main.tile[x, num].frameY == 90) { if (Main.tile[x, num - 1] == null) { Main.tile[x, num - 1] = new Tile(); } if (Main.tile[x, num] == null) { Main.tile[x, num] = new Tile(); } if (Main.tile[x, num + 1] == null) { Main.tile[x, num + 1] = new Tile(); } bool flag2 = false; if (!WorldGen.SolidTile(x, num + 1)) { flag2 = true; } if (flag2 && Main.tile[x, num].type == Main.tile[x, j].type) { WorldGen.KillTile(x, num, false, false, false); return; } } else { if (Main.tile[x, num].frameY >= 36) { if (Main.tile[x, num].frameY == 54) { num--; } if (Main.tile[x, num] == null) { Main.tile[x, num] = new Tile(); } if (Main.tile[x, num + 1] == null) { Main.tile[x, num + 1] = new Tile(); } if (Main.tile[x, num + 2] == null) { Main.tile[x, num + 2] = new Tile(); } bool flag3 = false; if (!WorldGen.SolidTile(x, num + 2)) { flag3 = true; } if (Main.tile[x, num + 1].type != Main.tile[x, num].type) { flag3 = true; } if (Main.tile[x, num + 1].frameX != Main.tile[x, num].frameX) { flag3 = true; } if (flag3) { if (Main.tile[x, num].type == Main.tile[x, j].type) { WorldGen.KillTile(x, num, false, false, false); } if (Main.tile[x, num + 1].type == Main.tile[x, j].type) { WorldGen.KillTile(x, num + 1, false, false, false); return; } } } else { if (Main.tile[x, num].frameY == 18) { num--; } if (Main.tile[x, num - 1] == null) { Main.tile[x, num - 1] = new Tile(); } if (Main.tile[x, num] == null) { Main.tile[x, num] = new Tile(); } if (Main.tile[x, num + 1] == null) { Main.tile[x, num + 1] = new Tile(); } bool flag4 = false; if (!WorldGen.SolidTile(x, num - 1)) { flag4 = true; } if (Main.tile[x, num + 1].type != Main.tile[x, num].type) { flag4 = true; } if (Main.tile[x, num + 1].frameX != Main.tile[x, num].frameX) { flag4 = true; } if (flag4) { if (Main.tile[x, num].type == Main.tile[x, j].type) { WorldGen.KillTile(x, num, false, false, false); } if (Main.tile[x, num + 1].type == Main.tile[x, j].type) { WorldGen.KillTile(x, num + 1, false, false, false); } } } } } } public static void Place1xX(int x, int y, int type, int style = 0) { int num = style * 18; int num2 = 3; if (type == 92) { num2 = 6; } bool flag = true; for (int i = y - num2 + 1; i < y + 1; i++) { if (Main.tile[x, i] == null) { Main.tile[x, i] = new Tile(); } if (Main.tile[x, i].active()) { flag = false; } if (type == 93 && Main.tile[x, i].liquid > 0) { flag = false; } } if (flag && WorldGen.SolidTile2(x, y + 1)) { for (int j = 0; j < num2; j++) { Main.tile[x, y - num2 + 1 + j].active(true); Main.tile[x, y - num2 + 1 + j].frameY = (short)(j * 18); Main.tile[x, y - num2 + 1 + j].frameX = (short)num; Main.tile[x, y - num2 + 1 + j].type = (byte)type; } } } public static void Place2xX(int x, int y, int type, int style = 0) { int num = style * 36; int num2 = 3; if (type == 104) { num2 = 5; } if (type == 207) { num2 = 4; } bool flag = true; for (int i = y - num2 + 1; i < y + 1; i++) { if (Main.tile[x, i] == null) { Main.tile[x, i] = new Tile(); } if (Main.tile[x, i].active()) { flag = false; } if (Main.tile[x + 1, i] == null) { Main.tile[x + 1, i] = new Tile(); } if (Main.tile[x + 1, i].active()) { flag = false; } } if (flag && WorldGen.SolidTile2(x, y + 1) && WorldGen.SolidTile2(x + 1, y + 1)) { for (int j = 0; j < num2; j++) { Main.tile[x, y - num2 + 1 + j].active(true); Main.tile[x, y - num2 + 1 + j].frameY = (short)(j * 18); Main.tile[x, y - num2 + 1 + j].frameX = (short)num; Main.tile[x, y - num2 + 1 + j].type = (byte)type; Main.tile[x + 1, y - num2 + 1 + j].active(true); Main.tile[x + 1, y - num2 + 1 + j].frameY = (short)(j * 18); Main.tile[x + 1, y - num2 + 1 + j].frameX = (short)(num + 18); Main.tile[x + 1, y - num2 + 1 + j].type = (byte)type; } } } public static void Check1x2(int x, int j, byte type) { if (WorldGen.destroyObject) { return; } int num = j; bool flag = true; if (Main.tile[x, num] == null) { Main.tile[x, num] = new Tile(); } if (Main.tile[x, num + 1] == null) { Main.tile[x, num + 1] = new Tile(); } int i = (int)Main.tile[x, num].frameY; int num2 = 0; while (i >= 40) { i -= 40; num2++; } if (i == 18) { num--; } if (Main.tile[x, num] == null) { Main.tile[x, num] = new Tile(); } if ((int)Main.tile[x, num].frameY == 40 * num2 && (int)Main.tile[x, num + 1].frameY == 40 * num2 + 18 && Main.tile[x, num].type == type && Main.tile[x, num + 1].type == type) { flag = false; } if (Main.tile[x, num + 2] == null) { Main.tile[x, num + 2] = new Tile(); } if (!WorldGen.SolidTile2(x, num + 2)) { flag = true; } if (Main.tile[x, num + 2].type != 2 && Main.tile[x, num + 2].type != 109 && Main.tile[x, num + 2].type != 147 && Main.tile[x, num].type == 20) { flag = true; } if (flag) { WorldGen.destroyObject = true; if (Main.tile[x, num].type == type) { WorldGen.KillTile(x, num, false, false, false); } if (Main.tile[x, num + 1].type == type) { WorldGen.KillTile(x, num + 1, false, false, false); } if (type == 216) { Item.NewItem(x * 16, num * 16, 32, 32, 970 + num2, 1, false, 0, false); } if (type == 15) { if (num2 >= 18 && num2 <= 23) { Item.NewItem(x * 16, num * 16, 32, 32, 1703 + num2 - 18, 1, false, 0, false); } else { if (num2 == 5) { Item.NewItem(x * 16, num * 16, 32, 32, 806, 1, false, 0, false); } else { if (num2 == 6) { Item.NewItem(x * 16, num * 16, 32, 32, 807, 1, false, 0, false); } else { if (num2 == 7) { Item.NewItem(x * 16, num * 16, 32, 32, 808, 1, false, 0, false); } else { if (num2 == 8) { Item.NewItem(x * 16, num * 16, 32, 32, 809, 1, false, 0, false); } else { if (num2 == 9) { Item.NewItem(x * 16, num * 16, 32, 32, 810, 1, false, 0, false); } else { if (num2 == 10) { Item.NewItem(x * 16, num * 16, 32, 32, 826, 1, false, 0, false); } else { if (num2 == 11) { Item.NewItem(x * 16, num * 16, 32, 32, 915, 1, false, 0, false); } else { if (num2 == 13) { Item.NewItem(x * 16, num * 16, 32, 32, 1396, 1, false, 0, false); } else { if (num2 == 14) { Item.NewItem(x * 16, num * 16, 32, 32, 1399, 1, false, 0, false); } else { if (num2 == 15) { Item.NewItem(x * 16, num * 16, 32, 32, 1402, 1, false, 0, false); } else { if (num2 == 12) { Item.NewItem(x * 16, num * 16, 32, 32, 1143, 1, false, 0, false); } else { if (num2 == 4) { Item.NewItem(x * 16, num * 16, 32, 32, 630, 1, false, 0, false); } else { if (num2 == 3) { Item.NewItem(x * 16, num * 16, 32, 32, 629, 1, false, 0, false); } else { if (num2 == 2) { Item.NewItem(x * 16, num * 16, 32, 32, 628, 1, false, 0, false); } else { if (num2 == 17) { Item.NewItem(x * 16, num * 16, 32, 32, 1509, 1, false, 0, false); } else { if (num2 == 1) { Item.NewItem(x * 16, num * 16, 32, 32, 358, 1, false, 0, false); } else { if (num2 == 16) { Item.NewItem(x * 16, num * 16, 32, 32, 1459, 1, false, 0, false); } else { Item.NewItem(x * 16, num * 16, 32, 32, 34, 1, false, 0, false); } } } } } } } } } } } } } } } } } } } else { if (type == 134) { if (num2 == 1) { Item.NewItem(x * 16, num * 16, 32, 32, 1220, 1, false, 0, false); } else { Item.NewItem(x * 16, num * 16, 32, 32, 525, 1, false, 0, false); } } } WorldGen.destroyObject = false; } } public static void CheckOnTable1x1(int x, int y, int type) { if (Main.tile[x, y + 1] != null && (!Main.tile[x, y + 1].active() || !Main.tileTable[(int)Main.tile[x, y + 1].type])) { if (type == 78) { if (!WorldGen.SolidTile2(x, y + 1)) { WorldGen.KillTile(x, y, false, false, false); return; } } else { WorldGen.KillTile(x, y, false, false, false); } } } public static void CheckSign(int x, int y, int type) { if (WorldGen.destroyObject) { return; } int num = x - 2; int num2 = x + 3; int num3 = y - 2; int num4 = y + 3; if (num < 0) { return; } if (num2 > Main.maxTilesX) { return; } if (num3 < 0) { return; } if (num4 > Main.maxTilesY) { return; } bool flag = false; for (int i = num; i < num2; i++) { for (int j = num3; j < num4; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } } } int k = (int)(Main.tile[x, y].frameX / 18); int num5 = (int)(Main.tile[x, y].frameY / 18); while (k > 1) { k -= 2; } int num6 = x - k; int num7 = y - num5; int num8 = (int)(Main.tile[num6, num7].frameX / 18 / 2); int l = (int)(Main.tile[x, y].frameX / 18); int num9 = 0; while (l > 1) { l -= 2; num9++; } num = num6; num2 = num6 + 2; num3 = num7; num4 = num7 + 2; k = 0; for (int m = num; m < num2; m++) { num5 = 0; for (int n = num3; n < num4; n++) { if (!Main.tile[m, n].active() || (int)Main.tile[m, n].type != type) { flag = true; break; } if ((int)(Main.tile[m, n].frameX / 18) != k + num8 * 2 || (int)(Main.tile[m, n].frameY / 18) != num5) { flag = true; break; } num5++; } k++; } if (!flag) { if (type == 85) { if (WorldGen.SolidTile2(num6, num7 + 2) && WorldGen.SolidTile2(num6 + 1, num7 + 2)) { num8 = num9; } else { flag = true; } } else { if (WorldGen.SolidTile2(num6, num7 + 2) && WorldGen.SolidTile2(num6 + 1, num7 + 2)) { num8 = 0; } else { if (Main.tile[num6, num7 - 1].nactive() && Main.tileSolid[(int)Main.tile[num6, num7 - 1].type] && !Main.tileSolidTop[(int)Main.tile[num6, num7 - 1].type] && Main.tile[num6 + 1, num7 - 1].nactive() && Main.tileSolid[(int)Main.tile[num6 + 1, num7 - 1].type] && !Main.tileSolidTop[(int)Main.tile[num6 + 1, num7 - 1].type]) { num8 = 1; } else { if (Main.tile[num6 - 1, num7].nactive() && Main.tileSolid[(int)Main.tile[num6 - 1, num7].type] && !Main.tileSolidTop[(int)Main.tile[num6 - 1, num7].type] && Main.tile[num6 - 1, num7 + 1].nactive() && Main.tileSolid[(int)Main.tile[num6 - 1, num7 + 1].type] && !Main.tileSolidTop[(int)Main.tile[num6 - 1, num7 + 1].type]) { num8 = 2; } else { if (Main.tile[num6 + 2, num7].nactive() && Main.tileSolid[(int)Main.tile[num6 + 2, num7].type] && !Main.tileSolidTop[(int)Main.tile[num6 + 2, num7].type] && Main.tile[num6 + 2, num7 + 1].nactive() && Main.tileSolid[(int)Main.tile[num6 + 2, num7 + 1].type] && !Main.tileSolidTop[(int)Main.tile[num6 + 2, num7 + 1].type]) { num8 = 3; } else { flag = true; } } } } } } if (flag) { WorldGen.destroyObject = true; for (int num10 = num; num10 < num2; num10++) { for (int num11 = num3; num11 < num4; num11++) { if ((int)Main.tile[num10, num11].type == type) { WorldGen.KillTile(num10, num11, false, false, false); } } } Sign.KillSign(num6, num7); if (type == 85) { if (num9 == 0) { Item.NewItem(x * 16, y * 16, 32, 32, 321, 1, false, 0, false); } else { Item.NewItem(x * 16, y * 16, 32, 32, 1172 + num9, 1, false, 0, false); } } else { Item.NewItem(x * 16, y * 16, 32, 32, 171, 1, false, 0, false); } WorldGen.destroyObject = false; return; } int num12 = 36 * num8; for (int num13 = 0; num13 < 2; num13++) { for (int num14 = 0; num14 < 2; num14++) { Main.tile[num6 + num13, num7 + num14].active(true); Main.tile[num6 + num13, num7 + num14].type = (byte)type; Main.tile[num6 + num13, num7 + num14].frameX = (short)(num12 + 18 * num13); Main.tile[num6 + num13, num7 + num14].frameY = (short)(18 * num14); } } } public static bool PlaceSign(int x, int y, int type, int Style = 0) { int num = x - 2; int num2 = x + 3; int num3 = y - 2; int num4 = y + 3; if (num < 0) { return false; } if (num2 > Main.maxTilesX) { return false; } if (num3 < 0) { return false; } if (num4 > Main.maxTilesY) { return false; } for (int i = num; i < num2; i++) { for (int j = num3; j < num4; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } } } int num5 = x; int num6 = y; int num7 = 0; if (type == 55) { if (WorldGen.SolidTile2(x, y + 1) && WorldGen.SolidTile2(x + 1, y + 1)) { num6--; num7 = 0; } else { if (Main.tile[x, y - 1].nactive() && Main.tileSolid[(int)Main.tile[x, y - 1].type] && !Main.tileSolidTop[(int)Main.tile[x, y - 1].type] && Main.tile[x + 1, y - 1].nactive() && Main.tileSolid[(int)Main.tile[x + 1, y - 1].type] && !Main.tileSolidTop[(int)Main.tile[x + 1, y - 1].type]) { num7 = 1; } else { if (Main.tile[x - 1, y].nactive() && Main.tileSolid[(int)Main.tile[x - 1, y].type] && !Main.tileSolidTop[(int)Main.tile[x - 1, y].type] && !Main.tileNoAttach[(int)Main.tile[x - 1, y].type] && Main.tile[x - 1, y + 1].nactive() && Main.tileSolid[(int)Main.tile[x - 1, y + 1].type] && !Main.tileSolidTop[(int)Main.tile[x - 1, y + 1].type] && !Main.tileNoAttach[(int)Main.tile[x - 1, y + 1].type]) { num7 = 2; } else { if (!Main.tile[x + 1, y].nactive() || !Main.tileSolid[(int)Main.tile[x + 1, y].type] || Main.tileSolidTop[(int)Main.tile[x + 1, y].type] || Main.tileNoAttach[(int)Main.tile[x + 1, y].type] || !Main.tile[x + 1, y + 1].nactive() || !Main.tileSolid[(int)Main.tile[x + 1, y + 1].type] || Main.tileSolidTop[(int)Main.tile[x + 1, y + 1].type] || Main.tileNoAttach[(int)Main.tile[x + 1, y + 1].type]) { return false; } num5--; num7 = 3; } } } } else { if (type == 85) { if (!WorldGen.SolidTile2(x, y + 1) || !WorldGen.SolidTile2(x + 1, y + 1)) { return false; } num6--; num7 = Style; } } if (Main.tile[num5, num6].active() || Main.tile[num5 + 1, num6].active() || Main.tile[num5, num6 + 1].active() || Main.tile[num5 + 1, num6 + 1].active()) { return false; } int num8 = 36 * num7; for (int k = 0; k < 2; k++) { for (int l = 0; l < 2; l++) { Main.tile[num5 + k, num6 + l].active(true); Main.tile[num5 + k, num6 + l].type = (byte)type; Main.tile[num5 + k, num6 + l].frameX = (short)(num8 + 18 * k); Main.tile[num5 + k, num6 + l].frameY = (short)(18 * l); } } return true; } public static Color paintColor(int color) { Color white = Color.White; if (color == 1 || color == 13) { white.R = 255; white.G = 0; white.B = 0; } if (color == 2 || color == 14) { white.R = 255; white.G = 127; white.B = 0; } if (color == 3 || color == 15) { white.R = 255; white.G = 255; white.B = 0; } if (color == 4 || color == 16) { white.R = 127; white.G = 255; white.B = 0; } if (color == 5 || color == 17) { white.R = 0; white.G = 255; white.B = 0; } if (color == 6 || color == 18) { white.R = 0; white.G = 255; white.B = 127; } if (color == 7 || color == 19) { white.R = 0; white.G = 255; white.B = 255; } if (color == 8 || color == 20) { white.R = 0; white.G = 127; white.B = 255; } if (color == 9 || color == 21) { white.R = 0; white.G = 0; white.B = 255; } if (color == 10 || color == 22) { white.R = 127; white.G = 0; white.B = 255; } if (color == 11 || color == 23) { white.R = 255; white.G = 0; white.B = 255; } if (color == 12 || color == 24) { white.R = 255; white.G = 0; white.B = 127; } if (color == 25) { white.R = 75; white.G = 75; white.B = 75; } if (color == 26) { white.R = 255; white.G = 255; white.B = 255; } if (color == 27) { white.R = 175; white.G = 175; white.B = 175; } return white; } public static void paintEffect(int x, int y, byte color, byte oldColor) { int color2 = (int)((color != null) ? color : oldColor); Color newColor = WorldGen.paintColor(color2); for (int i = 0; i < 10; i++) { int num = Dust.NewDust(new Vector2((float)(x * 16), (float)(y * 16)), 16, 16, 143, 0f, 0f, 50, newColor, 1f); if (Main.rand.Next(2) == 0) { Main.dust[num].noGravity = true; Main.dust[num].scale *= 1.2f; } else { Main.dust[num].scale *= 0.5f; } } } public static bool paintTile(int x, int y, byte color, bool broadCast = false) { if (Main.tile[x, y] == null || !Main.tile[x, y].active()) { return false; } byte oldColor = Main.tile[x, y].color(); Main.tile[x, y].color(color); if (broadCast) { NetMessage.SendData(63, -1, -1, "", x, (float)y, (float)color, 0f, 0); } WorldGen.paintEffect(x, y, color, oldColor); return true; } public static bool paintWall(int x, int y, byte color, bool broadCast = false) { if (Main.tile[x, y] == null || Main.tile[x, y].wall == 0) { return false; } byte oldColor = Main.tile[x, y].wallColor(); Main.tile[x, y].wallColor(color); if (broadCast) { NetMessage.SendData(64, -1, -1, "", x, (float)y, (float)color, 0f, 0); } WorldGen.paintEffect(x, y, color, oldColor); return true; } public static void Place3x3Wall(int x, int y, int type, int style) { int num = x - 1; int num2 = y - 1; bool flag = true; for (int i = num; i < num + 3; i++) { for (int j = num2; j < num2 + 3; j++) { if (Main.tile[i, j].active() || Main.tile[i, j].wall == 0) { flag = false; break; } } } if (flag) { int num3 = style * 54; int num4 = 0; for (int k = num; k < num + 3; k++) { for (int l = num2; l < num2 + 3; l++) { Main.tile[k, l].active(true); Main.tile[k, l].type = (byte)type; Main.tile[k, l].frameX = (short)(num3 + 18 * (k - num)); Main.tile[k, l].frameY = (short)(num4 + 18 * (l - num2)); } } } } public static void Check3x3Wall(int x, int y) { if (WorldGen.destroyObject) { return; } bool flag = false; int type = (int)Main.tile[x, y].type; int num = 0; int i = (int)(Main.tile[x, y].frameX / 18); while (i >= 3) { i -= 3; num++; } int num2 = x - i; int num3 = y - (int)(Main.tile[x, y].frameY / 18); i = num * 54; for (int j = num2; j < num2 + 3; j++) { for (int k = num3; k < num3 + 3; k++) { if ((int)Main.tile[j, k].type != type || !Main.tile[j, k].active() || Main.tile[j, k].wall <= 0 || (int)Main.tile[j, k].frameX != i + (j - num2) * 18 || (int)Main.tile[j, k].frameY != (k - num3) * 18) { flag = true; break; } } } if (flag) { WorldGen.destroyObject = true; for (int l = num2; l < num2 + 3; l++) { for (int m = num3; m < num3 + 3; m++) { if ((int)Main.tile[l, m].type == type && Main.tile[l, m].active()) { WorldGen.KillTile(l, m, false, false, false); } } } if (type == 240) { if (num == 33) { Item.NewItem(x * 16, y * 16, 32, 32, 1574, 1, false, 0, false); } else { if (num == 34) { Item.NewItem(x * 16, y * 16, 32, 32, 1575, 1, false, 0, false); } else { if (num == 35) { Item.NewItem(x * 16, y * 16, 32, 32, 1576, 1, false, 0, false); } else { if (num == 18) { Item.NewItem(x * 16, y * 16, 32, 32, 1419, 1, false, 0, false); } else { if (num == 19) { Item.NewItem(x * 16, y * 16, 32, 32, 1420, 1, false, 0, false); } else { if (num == 20) { Item.NewItem(x * 16, y * 16, 32, 32, 1427, 1, false, 0, false); } else { if (num == 21) { Item.NewItem(x * 16, y * 16, 32, 32, 1428, 1, false, 0, false); } else { if (num >= 22 && num <= 25) { Item.NewItem(x * 16, y * 16, 32, 32, 1440 + num - 22, 1, false, 0, false); } else { if (num >= 26 && num <= 29) { Item.NewItem(x * 16, y * 16, 32, 32, 1496 + num - 26, 1, false, 0, false); } else { if (num >= 30 && num <= 32) { Item.NewItem(x * 16, y * 16, 32, 32, 1538 + num - 30, 1, false, 0, false); } else { Item.NewItem(x * 16, y * 16, 32, 32, 1360 + num, 1, false, 0, false); } } } } } } } } } } } WorldGen.destroyObject = false; } } public static void Place2x3Wall(int x, int y, int type, int style) { int num = y - 1; bool flag = true; for (int i = x; i < x + 2; i++) { for (int j = num; j < num + 3; j++) { if (Main.tile[i, j].active() || Main.tile[i, j].wall == 0) { flag = false; break; } } } if (flag) { int num2 = style * 36; int num3 = 0; for (int k = x; k < x + 2; k++) { for (int l = num; l < num + 3; l++) { Main.tile[k, l].active(true); Main.tile[k, l].type = (byte)type; Main.tile[k, l].frameX = (short)(num2 + 18 * (k - x)); Main.tile[k, l].frameY = (short)(num3 + 18 * (l - num)); } } } } public static void Check2x3Wall(int x, int y) { if (WorldGen.destroyObject) { return; } bool flag = false; int type = (int)Main.tile[x, y].type; int num = 0; int i = (int)(Main.tile[x, y].frameX / 18); while (i >= 2) { i -= 2; num++; } int num2 = x - i; int num3 = y - (int)(Main.tile[x, y].frameY / 18); i = num * 36; for (int j = num2; j < num2 + 2; j++) { for (int k = num3; k < num3 + 3; k++) { if ((int)Main.tile[j, k].type != type || !Main.tile[j, k].active() || Main.tile[j, k].wall <= 0 || (int)Main.tile[j, k].frameX != i + (j - num2) * 18 || (int)Main.tile[j, k].frameY != (k - num3) * 18) { flag = true; break; } } } if (flag) { WorldGen.destroyObject = true; for (int l = num2; l < num2 + 2; l++) { for (int m = num3; m < num3 + 3; m++) { if ((int)Main.tile[l, m].type == type && Main.tile[l, m].active()) { WorldGen.KillTile(l, m, false, false, false); } } } if (type == 245) { if (num == 6) { Item.NewItem(x * 16, y * 16, 32, 32, 1577, 1, false, 0, false); } else { if (num == 5) { Item.NewItem(x * 16, y * 16, 32, 32, 1495, 1, false, 0, false); } else { Item.NewItem(x * 16, y * 16, 32, 32, 1474 + num, 1, false, 0, false); } } } WorldGen.destroyObject = false; } } public static void Place3x2Wall(int x, int y, int type, int style) { int num = x - 1; bool flag = true; for (int i = num; i < num + 3; i++) { for (int j = y; j < y + 2; j++) { if (Main.tile[i, j].active() || Main.tile[i, j].wall == 0) { flag = false; break; } } } if (flag) { int num2 = 0; int num3 = style * 36; for (int k = num; k < num + 3; k++) { for (int l = y; l < y + 2; l++) { Main.tile[k, l].active(true); Main.tile[k, l].type = (byte)type; Main.tile[k, l].frameX = (short)(num2 + 18 * (k - num)); Main.tile[k, l].frameY = (short)(num3 + 18 * (l - y)); } } } } public static void Check3x2Wall(int x, int y) { if (WorldGen.destroyObject) { return; } bool flag = false; int type = (int)Main.tile[x, y].type; int num = 0; int i = (int)(Main.tile[x, y].frameY / 18); while (i >= 2) { i -= 2; num++; } int num2 = y - i; int num3 = x - (int)(Main.tile[x, y].frameX / 18); i = num * 36; for (int j = num3; j < num3 + 3; j++) { for (int k = num2; k < num2 + 2; k++) { if ((int)Main.tile[j, k].type != type || !Main.tile[j, k].active() || Main.tile[j, k].wall <= 0 || (int)Main.tile[j, k].frameY != i + (k - num2) * 18 || (int)Main.tile[j, k].frameX != (j - num3) * 18) { flag = true; break; } } } if (flag) { WorldGen.destroyObject = true; for (int l = num3; l < num3 + 3; l++) { for (int m = num2; m < num2 + 2; m++) { if ((int)Main.tile[l, m].type == type && Main.tile[l, m].active()) { WorldGen.KillTile(l, m, false, false, false); } } } if (type == 246) { if (num == 16) { Item.NewItem(x * 16, y * 16, 32, 32, 1541, 1, false, 0, false); } else { if (num == 17) { Item.NewItem(x * 16, y * 16, 32, 32, 1542, 1, false, 0, false); } else { Item.NewItem(x * 16, y * 16, 32, 32, 1479 + num, 1, false, 0, false); } } } WorldGen.destroyObject = false; } } public static void Place4x3Wall(int x, int y, int type, int style) { int num = x - 1; int num2 = y - 1; bool flag = true; for (int i = num; i < num + 4; i++) { for (int j = num2; j < num2 + 3; j++) { if (Main.tile[i, j].active() || Main.tile[i, j].wall == 0) { flag = false; break; } } } if (flag) { int num3 = 0; int num4 = style * 54; for (int k = num; k < num + 4; k++) { for (int l = num2; l < num2 + 3; l++) { Main.tile[k, l].active(true); Main.tile[k, l].type = (byte)type; Main.tile[k, l].frameX = (short)(num3 + 18 * (k - num)); Main.tile[k, l].frameY = (short)(num4 + 18 * (l - num2)); } } } } public static void Check4x3Wall(int x, int y) { if (WorldGen.destroyObject) { return; } bool flag = false; int type = (int)Main.tile[x, y].type; int num = 0; int i = (int)(Main.tile[x, y].frameY / 18); while (i >= 3) { i -= 3; num++; } int num2 = y - i; int num3 = x - (int)(Main.tile[x, y].frameX / 18); i = num * 54; for (int j = num3; j < num3 + 4; j++) { for (int k = num2; k < num2 + 3; k++) { if ((int)Main.tile[j, k].type != type || !Main.tile[j, k].active() || Main.tile[j, k].wall <= 0 || (int)Main.tile[j, k].frameY != i + (k - num2) * 18 || (int)Main.tile[j, k].frameX != (j - num3) * 18) { flag = true; break; } } } if (flag) { WorldGen.destroyObject = true; for (int l = num3; l < num3 + 4; l++) { for (int m = num2; m < num2 + 3; m++) { if ((int)Main.tile[l, m].type == type && Main.tile[l, m].active()) { WorldGen.KillTile(l, m, false, false, false); } } } if (type == 241) { Item.NewItem(x * 16, y * 16, 32, 32, 1417, 1, false, 0, false); } WorldGen.destroyObject = false; } } public static void Place6x4Wall(int x, int y, int type, int style) { int num = x - 2; int num2 = y - 2; bool flag = true; for (int i = num; i < num + 6; i++) { for (int j = num2; j < num2 + 4; j++) { if (Main.tile[i, j].active() || Main.tile[i, j].wall == 0) { flag = false; break; } } } if (flag) { int num3 = 0; int num4 = style * 72; for (int k = num; k < num + 6; k++) { for (int l = num2; l < num2 + 4; l++) { Main.tile[k, l].active(true); Main.tile[k, l].type = (byte)type; Main.tile[k, l].frameX = (short)(num3 + 18 * (k - num)); Main.tile[k, l].frameY = (short)(num4 + 18 * (l - num2)); } } } } public static void Check6x4Wall(int x, int y) { if (WorldGen.destroyObject) { return; } bool flag = false; int type = (int)Main.tile[x, y].type; int num = 0; int i = (int)(Main.tile[x, y].frameY / 18); while (i >= 4) { i -= 4; num++; } int num2 = y - i; int num3 = x - (int)(Main.tile[x, y].frameX / 18); i = num * 72; for (int j = num3; j < num3 + 6; j++) { for (int k = num2; k < num2 + 4; k++) { if ((int)Main.tile[j, k].type != type || !Main.tile[j, k].active() || Main.tile[j, k].wall <= 0 || (int)Main.tile[j, k].frameY != i + (k - num2) * 18 || (int)Main.tile[j, k].frameX != (j - num3) * 18) { flag = true; break; } } } if (flag) { WorldGen.destroyObject = true; for (int l = num3; l < num3 + 6; l++) { for (int m = num2; m < num2 + 4; m++) { if ((int)Main.tile[l, m].type == type && Main.tile[l, m].active()) { WorldGen.KillTile(l, m, false, false, false); } } } if (type == 242) { if (num == 16) { Item.NewItem(x * 16, y * 16, 32, 32, 1573, 1, false, 0, false); } else { if (num >= 13) { Item.NewItem(x * 16, y * 16, 32, 32, 1500 + num - 13, 1, false, 0, false); } else { if (num >= 6) { Item.NewItem(x * 16, y * 16, 32, 32, 1433 + num - 6, 1, false, 0, false); } else { Item.NewItem(x * 16, y * 16, 32, 32, 1421 + num, 1, false, 0, false); } } } } WorldGen.destroyObject = false; } } public static void Place1x1(int x, int y, int type, int style = 0) { if (Main.tile[x, y] == null) { Main.tile[x, y] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } if (WorldGen.SolidTile2(x, y + 1) && !Main.tile[x, y].active()) { Main.tile[x, y].active(true); Main.tile[x, y].type = (byte)type; if (type == 144 || type == 239) { Main.tile[x, y].frameX = (short)(style * 18); Main.tile[x, y].frameY = 0; return; } Main.tile[x, y].frameY = (short)(style * 18); } } public static void Check1x1(int x, int y, int type) { if (Main.tile[x, y + 1] != null && !WorldGen.SolidTile2(x, y + 1)) { WorldGen.KillTile(x, y, false, false, false); } } public static void PlaceOnTable1x1(int x, int y, int type, int style = 0) { bool flag = false; if (Main.tile[x, y] == null) { Main.tile[x, y] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } if (!Main.tile[x, y].active() && Main.tile[x, y + 1].nactive() && Main.tileTable[(int)Main.tile[x, y + 1].type]) { flag = true; } if (type == 78 && !Main.tile[x, y].active() && Main.tile[x, y + 1].nactive() && Main.tileSolid[(int)Main.tile[x, y + 1].type] && !Main.tile[x, y + 1].halfBrick() && Main.tile[x, y + 1].slope() == 0) { flag = true; } if (flag) { Main.tile[x, y].active(true); Main.tile[x, y].type = (byte)type; if (type == 33) { Main.tile[x, y].frameX = 0; Main.tile[x, y].frameY = (short)(style * 22); } else { Main.tile[x, y].frameX = (short)(style * 18); Main.tile[x, y].frameY = 0; } if (type == 50) { Main.tile[x, y].frameX = (short)(18 * WorldGen.genRand.Next(5)); } } } public static bool PlaceAlch(int x, int y, int style) { if (Main.tile[x, y] == null) { Main.tile[x, y] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } if (!Main.tile[x, y].active() && Main.tile[x, y + 1].nactive() && !Main.tile[x, y + 1].halfBrick() && Main.tile[x, y + 1].slope() == 0) { bool flag = false; if (style == 0) { if (Main.tile[x, y + 1].type != 2 && Main.tile[x, y + 1].type != 78 && Main.tile[x, y + 1].type != 109) { flag = true; } if (Main.tile[x, y].liquid > 0) { flag = true; } } else { if (style == 1) { if (Main.tile[x, y + 1].type != 60 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0) { flag = true; } } else { if (style == 2) { if (Main.tile[x, y + 1].type != 0 && Main.tile[x, y + 1].type != 59 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0) { flag = true; } } else { if (style == 3) { if (Main.tile[x, y + 1].type != 203 && Main.tile[x, y + 1].type != 199 && Main.tile[x, y + 1].type != 23 && Main.tile[x, y + 1].type != 25 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0) { flag = true; } } else { if (style == 4) { if (Main.tile[x, y + 1].type != 53 && Main.tile[x, y + 1].type != 78 && Main.tile[x, y + 1].type != 116) { flag = true; } if (Main.tile[x, y].liquid > 0 && Main.tile[x, y].lava()) { flag = true; } } else { if (style == 5) { if (Main.tile[x, y + 1].type != 57 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0 && !Main.tile[x, y].lava()) { flag = true; } } } } } } } if (!flag) { Main.tile[x, y].active(true); Main.tile[x, y].type = 82; Main.tile[x, y].frameX = (short)(18 * style); Main.tile[x, y].frameY = 0; return true; } } return false; } public static void GrowAlch(int x, int y) { if (Main.tile[x, y].active()) { if (Main.tile[x, y].type == 82 && WorldGen.genRand.Next(50) == 0) { Main.tile[x, y].type = 83; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, x, y, 1); } WorldGen.SquareTileFrame(x, y, true); return; } if (Main.tile[x, y].frameX == 36) { if (Main.tile[x, y].type == 83) { Main.tile[x, y].type = 84; } else { Main.tile[x, y].type = 83; } if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, x, y, 1); } } } } public static void PlantAlch() { int num = WorldGen.genRand.Next(20, Main.maxTilesX - 20); int num2; if (WorldGen.genRand.Next(40) == 0) { num2 = WorldGen.genRand.Next((int)(Main.rockLayer + (double)Main.maxTilesY) / 2, Main.maxTilesY - 20); } else { if (WorldGen.genRand.Next(10) == 0) { num2 = WorldGen.genRand.Next(0, Main.maxTilesY - 20); } else { num2 = WorldGen.genRand.Next((int)Main.worldSurface, Main.maxTilesY - 20); } } while (num2 < Main.maxTilesY - 20 && !Main.tile[num, num2].active()) { num2++; } if (Main.tile[num, num2].nactive() && !Main.tile[num, num2 - 1].active() && Main.tile[num, num2 - 1].liquid == 0) { if (Main.tile[num, num2].type == 2 || Main.tile[num, num2].type == 109) { WorldGen.PlaceAlch(num, num2 - 1, 0); } if (Main.tile[num, num2].type == 60) { WorldGen.PlaceAlch(num, num2 - 1, 1); } if (Main.tile[num, num2].type == 0 || Main.tile[num, num2].type == 59) { WorldGen.PlaceAlch(num, num2 - 1, 2); } if (Main.tile[num, num2].type == 23 || Main.tile[num, num2].type == 25 || Main.tile[num, num2].type == 203 || Main.tile[num, num2].type == 199) { WorldGen.PlaceAlch(num, num2 - 1, 3); } if (Main.tile[num, num2].type == 53 || Main.tile[num, num2].type == 116) { WorldGen.PlaceAlch(num, num2 - 1, 4); } if (Main.tile[num, num2].type == 57) { WorldGen.PlaceAlch(num, num2 - 1, 5); } if (Main.tile[num, num2 - 1].active() && Main.netMode == 2) { NetMessage.SendTileSquare(-1, num, num2 - 1, 1); } } } public static void CheckAlch(int x, int y) { if (Main.tile[x, y] == null) { Main.tile[x, y] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } bool flag = false; if (!Main.tile[x, y + 1].active()) { flag = true; } if (Main.tile[x, y + 1].halfBrick()) { flag = true; } int num = (int)(Main.tile[x, y].frameX / 18); Main.tile[x, y].frameY = 0; if (!flag) { if (num == 0) { if (Main.tile[x, y + 1].type != 109 && Main.tile[x, y + 1].type != 2 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0 && Main.tile[x, y].lava()) { flag = true; } } else { if (num == 1) { if (Main.tile[x, y + 1].type != 60 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0 && Main.tile[x, y].lava()) { flag = true; } } else { if (num == 2) { if (Main.tile[x, y + 1].type != 0 && Main.tile[x, y + 1].type != 59 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0 && Main.tile[x, y].lava()) { flag = true; } } else { if (num == 3) { if (Main.tile[x, y + 1].type != 199 && Main.tile[x, y + 1].type != 203 && Main.tile[x, y + 1].type != 23 && Main.tile[x, y + 1].type != 25 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0 && Main.tile[x, y].lava()) { flag = true; } } else { if (num == 4) { if (Main.tile[x, y + 1].type != 53 && Main.tile[x, y + 1].type != 78 && Main.tile[x, y + 1].type != 116) { flag = true; } if (Main.tile[x, y].liquid > 0 && Main.tile[x, y].lava()) { flag = true; } if (Main.tile[x, y].type != 82 && !Main.tile[x, y].lava() && Main.netMode != 1) { if (Main.tile[x, y].liquid > 16) { if (Main.tile[x, y].type == 83) { Main.tile[x, y].type = 84; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, x, y, 1); } } } else { if (Main.tile[x, y].type == 84) { Main.tile[x, y].type = 83; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, x, y, 1); } } } } } else { if (num == 5) { if (Main.tile[x, y + 1].type != 57 && Main.tile[x, y + 1].type != 78) { flag = true; } if (Main.tile[x, y].liquid > 0 && !Main.tile[x, y].lava()) { flag = true; } if (Main.tile[x, y].type != 82 && Main.tile[x, y].lava() && Main.tile[x, y].type != 82 && Main.tile[x, y].lava() && Main.netMode != 1) { if (Main.tile[x, y].liquid > 16) { if (Main.tile[x, y].type == 83) { Main.tile[x, y].type = 84; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, x, y, 1); } } } else { if (Main.tile[x, y].type == 84) { Main.tile[x, y].type = 83; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, x, y, 1); } } } } } } } } } } } if (flag) { WorldGen.KillTile(x, y, false, false, false); } } public static void CheckBanner(int x, int j, byte type) { if (WorldGen.destroyObject) { return; } int num = j - (int)(Main.tile[x, j].frameY / 18); int frameX = (int)Main.tile[x, j].frameX; bool flag = false; for (int i = 0; i < 3; i++) { if (Main.tile[x, num + i] == null) { Main.tile[x, num + i] = new Tile(); } if (!Main.tile[x, num + i].active()) { flag = true; } else { if (Main.tile[x, num + i].type != type) { flag = true; } else { if ((int)Main.tile[x, num + i].frameY != i * 18) { flag = true; } else { if ((int)Main.tile[x, num + i].frameX != frameX) { flag = true; } } } } } if (Main.tile[x, num - 1] == null) { Main.tile[x, num - 1] = new Tile(); } if (!Main.tile[x, num - 1].nactive()) { flag = true; } if (!Main.tileSolid[(int)Main.tile[x, num - 1].type]) { flag = true; } if (Main.tileSolidTop[(int)Main.tile[x, num - 1].type]) { flag = true; } if (flag) { WorldGen.destroyObject = true; for (int k = 0; k < 3; k++) { if (Main.tile[x, num + k].type == type) { WorldGen.KillTile(x, num + k, false, false, false); } } if (type == 91) { int num2 = frameX / 18; if (num2 >= 22) { Item.NewItem(x * 16, (num + 1) * 16, 32, 32, 1593 + num2, 1, false, 0, false); } else { if (num2 >= 10 && num2 <= 15) { Item.NewItem(x * 16, (num + 1) * 16, 32, 32, 1441 + num2, 1, false, 0, false); } else { if (num2 >= 16 && num2 <= 21) { Item.NewItem(x * 16, (num + 1) * 16, 32, 32, 1448 + num2, 1, false, 0, false); } else { if (num2 >= 7 && num2 <= 9) { Item.NewItem(x * 16, (num + 1) * 16, 32, 32, 838 + num2, 1, false, 0, false); } else { if (num2 >= 4 && num2 <= 6) { Item.NewItem(x * 16, (num + 1) * 16, 32, 32, 785 + num2, 1, false, 0, false); } else { Item.NewItem(x * 16, (num + 1) * 16, 32, 32, 337 + num2, 1, false, 0, false); } } } } } } WorldGen.destroyObject = false; } } public static void PlaceBanner(int x, int y, int type, int style = 0) { int num = style * 18; if (Main.tile[x, y - 1] == null) { Main.tile[x, y - 1] = new Tile(); } if (Main.tile[x, y] == null) { Main.tile[x, y] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } if (Main.tile[x, y + 2] == null) { Main.tile[x, y + 2] = new Tile(); } if (Main.tile[x, y - 1].nactive() && Main.tileSolid[(int)Main.tile[x, y - 1].type] && !Main.tileSolidTop[(int)Main.tile[x, y - 1].type] && !Main.tile[x, y].active() && !Main.tile[x, y + 1].active() && !Main.tile[x, y + 2].active()) { Main.tile[x, y].active(true); Main.tile[x, y].frameY = 0; Main.tile[x, y].frameX = (short)num; Main.tile[x, y].type = (byte)type; Main.tile[x, y + 1].active(true); Main.tile[x, y + 1].frameY = 18; Main.tile[x, y + 1].frameX = (short)num; Main.tile[x, y + 1].type = (byte)type; Main.tile[x, y + 2].active(true); Main.tile[x, y + 2].frameY = 36; Main.tile[x, y + 2].frameX = (short)num; Main.tile[x, y + 2].type = (byte)type; } } public static void PlaceMan(int i, int j, int dir) { for (int k = i; k <= i + 1; k++) { for (int l = j - 2; l <= j; l++) { if (Main.tile[k, l].active()) { return; } } } if (!WorldGen.SolidTile2(i, j + 1) || !WorldGen.SolidTile2(i + 1, j + 1)) { return; } byte b = 0; if (dir == 1) { b = 36; } Main.tile[i, j - 2].active(true); Main.tile[i, j - 2].frameY = 0; Main.tile[i, j - 2].frameX = (short)b; Main.tile[i, j - 2].type = 128; Main.tile[i, j - 1].active(true); Main.tile[i, j - 1].frameY = 18; Main.tile[i, j - 1].frameX = (short)b; Main.tile[i, j - 1].type = 128; Main.tile[i, j].active(true); Main.tile[i, j].frameY = 36; Main.tile[i, j].frameX = (short)b; Main.tile[i, j].type = 128; Main.tile[i + 1, j - 2].active(true); Main.tile[i + 1, j - 2].frameY = 0; Main.tile[i + 1, j - 2].frameX = (short)(18 + b); Main.tile[i + 1, j - 2].type = 128; Main.tile[i + 1, j - 1].active(true); Main.tile[i + 1, j - 1].frameY = 18; Main.tile[i + 1, j - 1].frameX = (short)(18 + b); Main.tile[i + 1, j - 1].type = 128; Main.tile[i + 1, j].active(true); Main.tile[i + 1, j].frameY = 36; Main.tile[i + 1, j].frameX = (short)(18 + b); Main.tile[i + 1, j].type = 128; } public static void CheckMan(int i, int j) { if (WorldGen.destroyObject) { return; } int num = j - (int)(Main.tile[i, j].frameY / 18); int k; for (k = (int)Main.tile[i, j].frameX; k >= 100; k -= 100) { } while (k >= 36) { k -= 36; } int num2 = i - k / 18; bool flag = false; for (int l = 0; l <= 1; l++) { for (int m = 0; m <= 2; m++) { int num3 = num2 + l; int num4 = num + m; int n; for (n = (int)Main.tile[num3, num4].frameX; n >= 100; n -= 100) { } if (n >= 36) { n -= 36; } if (!Main.tile[num3, num4].active() || Main.tile[num3, num4].type != 128 || (int)Main.tile[num3, num4].frameY != m * 18 || n != l * 18) { flag = true; } } } if (!WorldGen.SolidTile2(num2, num + 3) || !WorldGen.SolidTile2(num2 + 1, num + 3)) { flag = true; } if (flag) { WorldGen.destroyObject = true; Item.NewItem(i * 16, j * 16, 32, 32, 498, 1, false, 0, false); for (int num5 = 0; num5 <= 1; num5++) { for (int num6 = 0; num6 <= 2; num6++) { int num7 = num2 + num5; int num8 = num + num6; if (Main.tile[num7, num8].active() && Main.tile[num7, num8].type == 128) { WorldGen.KillTile(num7, num8, false, false, false); } } } WorldGen.destroyObject = false; } } public static void Place1x2(int x, int y, int type, int style) { short frameX = 0; if (type == 20) { frameX = (short)(WorldGen.genRand.Next(3) * 18); } if (Main.tile[x, y - 1] == null) { Main.tile[x, y - 1] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } if (WorldGen.SolidTile2(x, y + 1) & !Main.tile[x, y - 1].active()) { short num = (short)(style * 40); Main.tile[x, y - 1].active(true); Main.tile[x, y - 1].frameY = num; Main.tile[x, y - 1].frameX = frameX; Main.tile[x, y - 1].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameY = (short)(num + 18); Main.tile[x, y].frameX = frameX; Main.tile[x, y].type = (byte)type; } } public static void Place1x2Top(int x, int y, int type, int style) { short frameX = 0; if (Main.tile[x, y - 1] == null) { Main.tile[x, y - 1] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } if (Main.tile[x, y - 1].nactive() && Main.tileSolid[(int)Main.tile[x, y - 1].type] && !Main.tileSolidTop[(int)Main.tile[x, y - 1].type] && !Main.tile[x, y + 1].active()) { short num = (short)(style * 36); Main.tile[x, y].active(true); Main.tile[x, y].frameY = num; Main.tile[x, y].frameX = frameX; Main.tile[x, y].type = (byte)type; Main.tile[x, y + 1].active(true); Main.tile[x, y + 1].frameY = (short)(num + 18); Main.tile[x, y + 1].frameX = frameX; Main.tile[x, y + 1].type = (byte)type; } } public static void Check1x2Top(int x, int j, byte type) { if (WorldGen.destroyObject) { return; } bool flag = true; int i = (int)(Main.tile[x, j].frameY / 18); int num = 0; while (i >= 2) { i -= 2; num++; } int num2 = j - i; i = num * 36; if (Main.tile[x, num2] == null) { Main.tile[x, num2] = new Tile(); } if (Main.tile[x, num2 + 1] == null) { Main.tile[x, num2 + 1] = new Tile(); } if (Main.tile[x, num2] == null) { Main.tile[x, num2] = new Tile(); } if ((int)Main.tile[x, num2].frameY == i && (int)Main.tile[x, num2 + 1].frameY == i + 18 && Main.tile[x, num2].type == type && Main.tile[x, num2 + 1].type == type) { flag = false; } if (Main.tile[x, num2 - 1] == null) { Main.tile[x, num2 - 1] = new Tile(); } if (!Main.tile[x, num2 - 1].nactive() || !Main.tileSolid[(int)Main.tile[x, num2 - 1].type] || Main.tileSolidTop[(int)Main.tile[x, num2 - 1].type]) { flag = true; } if (flag) { WorldGen.destroyObject = true; if (Main.tile[x, num2].type == type) { WorldGen.KillTile(x, num2, false, false, false); } if (Main.tile[x, num2 + 1].type == type) { WorldGen.KillTile(x, num2 + 1, false, false, false); } if (type == 42) { if (num == 0) { Item.NewItem(x * 16, num2 * 16, 32, 32, 136, 1, false, 0, false); } else { if (num == 7) { Item.NewItem(x * 16, num2 * 16, 32, 32, 1431, 1, false, 0, false); } else { Item.NewItem(x * 16, num2 * 16, 32, 32, 1389 + num, 1, false, 0, false); } } } WorldGen.destroyObject = false; } } public static bool PlaceSmallPile(int i, int j, int X, int Y, int type = 185) { short frameY = (short)(Y * 18); short num = (short)(X * 18); if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i + 1, j] == null) { Main.tile[i + 1, j] = new Tile(); } if (Main.tile[i, j + 1] == null) { Main.tile[i, j + 1] = new Tile(); } if (Main.tile[i + 1, j + 1] == null) { Main.tile[i + 1, j + 1] = new Tile(); } if (Main.tile[i, j].lava()) { return false; } if (Y == 1) { num = (short)(X * 36); bool flag = false; if (WorldGen.SolidTile2(i, j + 1) && WorldGen.SolidTile2(i + 1, j + 1) && !Main.tile[i, j].active() && !Main.tile[i + 1, j].active()) { flag = true; } if (flag) { Main.tile[i, j].active(true); Main.tile[i, j].frameY = frameY; Main.tile[i, j].frameX = num; Main.tile[i, j].type = (byte)type; Main.tile[i + 1, j].active(true); Main.tile[i + 1, j].frameY = frameY; Main.tile[i + 1, j].frameX = (short)(num + 18); Main.tile[i + 1, j].type = (byte)type; return true; } } else { if (WorldGen.SolidTile2(i, j + 1) && !Main.tile[i, j].active()) { Main.tile[i, j].active(true); Main.tile[i, j].frameY = frameY; Main.tile[i, j].frameX = num; Main.tile[i, j].type = (byte)type; return true; } } return false; } public static void CheckPile(int i, int y) { if (Main.tile[i, y] == null) { Main.tile[i, y] = new Tile(); } if (Main.tile[i + 1, y] == null) { Main.tile[i + 1, y] = new Tile(); } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (Main.tile[i + 1, y + 1] == null) { Main.tile[i + 1, y + 1] = new Tile(); } if (Main.tile[i, y].frameY == 18) { WorldGen.Check2x1(i, y, Main.tile[i, y].type); return; } if (!WorldGen.SolidTile(i, y + 1)) { WorldGen.KillTile(i, y, false, false, false); } } public static void Check2x1(int i, int y, byte type) { if (WorldGen.destroyObject) { return; } bool flag = true; if (Main.tile[i, y] == null) { Main.tile[i, y] = new Tile(); } if (Main.tile[i + 1, y] == null) { Main.tile[i + 1, y] = new Tile(); } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (Main.tile[i + 1, y + 1] == null) { Main.tile[i + 1, y + 1] = new Tile(); } int j = (int)(Main.tile[i, y].frameX / 18); int num = 0; while (j > 1) { j -= 2; num++; } int num2 = i - j; if (Main.tile[num2 + 1, y].frameX == Main.tile[num2, y].frameX + 18 && Main.tile[num2, y].type == type && Main.tile[num2 + 1, y].type == type) { flag = false; } if (type == 29 || type == 103) { if (!Main.tile[num2, y + 1].active() || !Main.tileTable[(int)Main.tile[num2, y + 1].type]) { flag = true; } if (!Main.tile[num2 + 1, y + 1].active() || !Main.tileTable[(int)Main.tile[num2 + 1, y + 1].type]) { flag = true; } } else { if (!WorldGen.SolidTile2(num2, y + 1)) { flag = true; } if (!WorldGen.SolidTile2(num2 + 1, y + 1)) { flag = true; } } if (type == 185 && Main.tile[num2, y].frameX >= 1368 && Main.tile[num2, y].frameX <= 1458 && Main.tile[num2, y + 1].type != 2 && Main.tile[num2 + 1, y + 1].type != 2) { Tile expr_21E = Main.tile[num2, y]; expr_21E.frameX -= 1368; Tile expr_23E = Main.tile[num2 + 1, y]; expr_23E.frameX -= 1368; } if (flag) { int frameX = (int)Main.tile[num2, y].frameX; if (!Main.tile[num2, y].active()) { frameX = (int)Main.tile[num2 + 1, y].frameX; } WorldGen.destroyObject = true; if (Main.tile[num2, y].type == type) { WorldGen.KillTile(num2, y, false, false, false); } if (Main.tile[num2 + 1, y].type == type) { WorldGen.KillTile(num2 + 1, y, false, false, false); } if (type == 16) { if (num == 1) { Item.NewItem(num2 * 16, y * 16, 32, 32, 716, 1, false, 0, false); } else { Item.NewItem(num2 * 16, y * 16, 32, 32, 35, 1, false, 0, false); } } if (type == 18) { int type2 = 36; if (num >= 1 && num <= 3) { type2 = 634 + num; } if (num >= 4 && num <= 8) { type2 = 807 + num; } if (num == 9) { type2 = 916; } if (num == 10) { type2 = 1145; } if (num == 11) { type2 = 1398; } if (num == 12) { type2 = 1401; } if (num == 13) { type2 = 1404; } if (num == 14) { type2 = 1461; } if (num == 15) { type2 = 1511; } Item.NewItem(num2 * 16, y * 16, 32, 32, type2, 1, false, 0, false); } if (type == 185) { if (frameX >= 576 && frameX <= 610) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(10, 100), false, 0, false); Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); if (WorldGen.genRand.Next(3) != 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(10, 100), false, 0, false); } if (WorldGen.genRand.Next(3) != 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(2) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(10, 100), false, 0, false); } if (WorldGen.genRand.Next(2) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(3) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(10, 100), false, 0, false); } if (WorldGen.genRand.Next(3) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(4) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(10, 100), false, 0, false); } if (WorldGen.genRand.Next(4) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(5) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(10, 100), false, 0, false); } if (WorldGen.genRand.Next(5) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } } if (frameX >= 612 && frameX <= 646) { Item.NewItem(num2 * 16, y * 16, 32, 32, 72, WorldGen.genRand.Next(10, 100), false, 0, false); if (Main.rand.Next(2) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 72, WorldGen.genRand.Next(20, 100), false, 0, false); } if (Main.rand.Next(3) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 72, WorldGen.genRand.Next(30, 100), false, 0, false); } } if (frameX >= 648 && frameX <= 682) { Item.NewItem(num2 * 16, y * 16, 32, 32, 73, WorldGen.genRand.Next(1, 6), false, 0, false); if (WorldGen.genRand.Next(2) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 73, WorldGen.genRand.Next(2, 6), false, 0, false); } if (WorldGen.genRand.Next(3) == 0) { Item.NewItem(num2 * 16, y * 16, 32, 32, 73, WorldGen.genRand.Next(3, 6), false, 0, false); } } if (frameX >= 684 && frameX <= 718) { Item.NewItem(num2 * 16, y * 16, 32, 32, 181, WorldGen.genRand.Next(1, 4), false, 0, false); } if (frameX >= 720 && frameX <= 754) { Item.NewItem(num2 * 16, y * 16, 32, 32, 180, WorldGen.genRand.Next(1, 4), false, 0, false); } if (frameX >= 756 && frameX <= 790) { Item.NewItem(num2 * 16, y * 16, 32, 32, 177, WorldGen.genRand.Next(1, 4), false, 0, false); } if (frameX >= 792 && frameX <= 826) { Item.NewItem(num2 * 16, y * 16, 32, 32, 179, WorldGen.genRand.Next(1, 4), false, 0, false); } if (frameX >= 828 && frameX <= 862) { Item.NewItem(num2 * 16, y * 16, 32, 32, 178, WorldGen.genRand.Next(1, 4), false, 0, false); } if (frameX >= 864 && frameX <= 898) { Item.NewItem(num2 * 16, y * 16, 32, 32, 182, WorldGen.genRand.Next(1, 4), false, 0, false); } } if (type == 29) { Item.NewItem(num2 * 16, y * 16, 32, 32, 87, 1, false, 0, false); Main.PlaySound(13, i * 16, y * 16, 1); } if (type == 103) { Item.NewItem(num2 * 16, y * 16, 32, 32, 356, 1, false, 0, false); Main.PlaySound(13, i * 16, y * 16, 1); } else { if (type == 134) { if (num == 1) { Item.NewItem(num2 * 16, y * 16, 32, 32, 1220, 1, false, 0, false); } else { Item.NewItem(num2 * 16, y * 16, 32, 32, 525, 1, false, 0, false); } } } WorldGen.destroyObject = false; WorldGen.SquareTileFrame(num2, y, true); WorldGen.SquareTileFrame(num2 + 1, y, true); } } public static void Place2x1(int x, int y, int type, int style = 0) { if (Main.tile[x, y] == null) { Main.tile[x, y] = new Tile(); } if (Main.tile[x + 1, y] == null) { Main.tile[x + 1, y] = new Tile(); } if (Main.tile[x, y + 1] == null) { Main.tile[x, y + 1] = new Tile(); } if (Main.tile[x + 1, y + 1] == null) { Main.tile[x + 1, y + 1] = new Tile(); } bool flag = false; if (type != 29 && type != 103 && WorldGen.SolidTile2(x, y + 1) && WorldGen.SolidTile2(x + 1, y + 1) && !Main.tile[x, y].active() && !Main.tile[x + 1, y].active()) { flag = true; } else { if ((type == 29 || type == 103) && Main.tile[x, y + 1].active() && Main.tile[x + 1, y + 1].active() && Main.tileTable[(int)Main.tile[x, y + 1].type] && Main.tileTable[(int)Main.tile[x + 1, y + 1].type] && !Main.tile[x, y].active() && !Main.tile[x + 1, y].active()) { flag = true; } } if (flag) { Main.tile[x, y].active(true); Main.tile[x, y].frameY = 0; Main.tile[x, y].frameX = (short)(36 * style); Main.tile[x, y].type = (byte)type; Main.tile[x + 1, y].active(true); Main.tile[x + 1, y].frameY = 0; Main.tile[x + 1, y].frameX = (short)(36 * style + 18); Main.tile[x + 1, y].type = (byte)type; } } public static void Check4x2(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int num = i + (int)(Main.tile[i, j].frameX / 18 * -1); if ((type == 79 || type == 90) && Main.tile[i, j].frameX >= 72) { num += 4; } int k = (int)(Main.tile[i, j].frameY / 18); int num2 = 0; while (k > 1) { k -= 2; num2++; } k = j - k; for (int l = num; l < num + 4; l++) { for (int m = k; m < k + 2; m++) { int num3 = (l - num) * 18; if ((type == 79 || type == 90) && Main.tile[i, j].frameX >= 72) { num3 = (l - num + 4) * 18; } if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } if (!Main.tile[l, m].active() || (int)Main.tile[l, m].type != type || (int)Main.tile[l, m].frameX != num3 || (int)Main.tile[l, m].frameY != (m - k) * 18 + num2 * 36) { flag = true; } } if (Main.tile[l, k + 2] == null) { Main.tile[l, k + 2] = new Tile(); } if (!WorldGen.SolidTile2(l, k + 2)) { flag = true; } } if (flag) { WorldGen.destroyObject = true; for (int n = num; n < num + 4; n++) { for (int num4 = k; num4 < k + 3; num4++) { if ((int)Main.tile[n, num4].type == type && Main.tile[n, num4].active()) { WorldGen.KillTile(n, num4, false, false, false); } } } if (type == 79) { if (num2 == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 224, 1, false, 0, false); } else { if (num2 == 4) { Item.NewItem(i * 16, j * 16, 32, 32, 920, 1, false, 0, false); } else { if (num2 >= 9 && num2 <= 12) { Item.NewItem(i * 16, j * 16, 32, 32, 1710 + num2, 1, false, 0, false); } else { if (num2 >= 5 && num2 <= 8) { Item.NewItem(i * 16, j * 16, 32, 32, 1465 + num2, 1, false, 0, false); } else { Item.NewItem(i * 16, j * 16, 32, 32, num2 + 643, 1, false, 0, false); } } } } } if (type == 90) { Item.NewItem(i * 16, j * 16, 32, 32, 336, 1, false, 0, false); } WorldGen.destroyObject = false; for (int num5 = num - 1; num5 < num + 4; num5++) { for (int num6 = k - 1; num6 < k + 4; num6++) { WorldGen.TileFrame(num5, num6, false, false); } } } } public static void PlaceJunglePlant(int X2, int Y2, int type, int styleX, int styleY) { if (styleY > 0 || type == 236 || type == 238) { int num = Y2; if (type == 95 || type == 126) { num++; } if (X2 < 5 || X2 > Main.maxTilesX - 5 || num < 5 || num > Main.maxTilesY - 5) { return; } bool flag = true; for (int i = X2 - 1; i < X2 + 1; i++) { for (int j = num - 1; j < num + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active() && Main.tile[i, j].type != 61 && Main.tile[i, j].type != 62 && Main.tile[i, j].type != 69 && Main.tile[i, j].type != 74 && (type != 236 || Main.tile[i, j].type != 233) && (type != 238 || Main.tile[i, j].type != 233) && (Main.tile[i, j].type != 185 || Main.tile[i, j].frameY != 0)) { flag = false; } if (type == 98 && Main.tile[i, j].liquid > 0) { flag = false; } } if (Main.tile[i, num + 1] == null) { Main.tile[i, num + 1] = new Tile(); } if (!WorldGen.SolidTile(i, num + 1) || Main.tile[i, num + 1].type != 60) { flag = false; } } if (flag) { short num2 = 36; if (type == 236 || type == 238) { num2 = 0; } short num3 = (short)(36 * styleX); Main.tile[X2 - 1, num - 1].active(true); Main.tile[X2 - 1, num - 1].frameY = num2; Main.tile[X2 - 1, num - 1].frameX = num3; Main.tile[X2 - 1, num - 1].type = (byte)type; Main.tile[X2, num - 1].active(true); Main.tile[X2, num - 1].frameY = num2; Main.tile[X2, num - 1].frameX = (short)(18 + num3); Main.tile[X2, num - 1].type = (byte)type; Main.tile[X2 - 1, num].active(true); Main.tile[X2 - 1, num].frameY = (short)(num2 + 18); Main.tile[X2 - 1, num].frameX = num3; Main.tile[X2 - 1, num].type = (byte)type; Main.tile[X2, num].active(true); Main.tile[X2, num].frameY = (short)(num2 + 18); Main.tile[X2, num].frameX = (short)(18 + num3); Main.tile[X2, num].type = (byte)type; return; } } else { if (X2 < 5 || X2 > Main.maxTilesX - 5 || Y2 < 5 || Y2 > Main.maxTilesY - 5) { return; } bool flag2 = true; for (int k = X2 - 1; k < X2 + 2; k++) { for (int l = Y2 - 1; l < Y2 + 1; l++) { if (Main.tile[k, l] == null) { Main.tile[k, l] = new Tile(); } if (Main.tile[k, l].active() && Main.tile[k, l].type != 61 && Main.tile[k, l].type != 62 && Main.tile[k, l].type != 69 && Main.tile[k, l].type != 74 && (Main.tile[k, l].type != 185 || Main.tile[k, l].frameY != 0)) { flag2 = false; } } if (Main.tile[k, Y2 + 1] == null) { Main.tile[k, Y2 + 1] = new Tile(); } if (!WorldGen.SolidTile(k, Y2 + 1) || Main.tile[k, Y2 + 1].type != 60) { flag2 = false; } } if (flag2) { short num4 = (short)(54 * styleX); Main.tile[X2 - 1, Y2 - 1].active(true); Main.tile[X2 - 1, Y2 - 1].frameY = 0; Main.tile[X2 - 1, Y2 - 1].frameX = num4; Main.tile[X2 - 1, Y2 - 1].type = (byte)type; Main.tile[X2, Y2 - 1].active(true); Main.tile[X2, Y2 - 1].frameY = 0; Main.tile[X2, Y2 - 1].frameX = (short)(num4 + 18); Main.tile[X2, Y2 - 1].type = (byte)type; Main.tile[X2 + 1, Y2 - 1].active(true); Main.tile[X2 + 1, Y2 - 1].frameY = 0; Main.tile[X2 + 1, Y2 - 1].frameX = (short)(num4 + 36); Main.tile[X2 + 1, Y2 - 1].type = (byte)type; Main.tile[X2 - 1, Y2].active(true); Main.tile[X2 - 1, Y2].frameY = 18; Main.tile[X2 - 1, Y2].frameX = num4; Main.tile[X2 - 1, Y2].type = (byte)type; Main.tile[X2, Y2].active(true); Main.tile[X2, Y2].frameY = 18; Main.tile[X2, Y2].frameX = (short)(num4 + 18); Main.tile[X2, Y2].type = (byte)type; Main.tile[X2 + 1, Y2].active(true); Main.tile[X2 + 1, Y2].frameY = 18; Main.tile[X2 + 1, Y2].frameX = (short)(num4 + 36); Main.tile[X2 + 1, Y2].type = (byte)type; } } } public static void CheckJunglePlant(int i, int j, int type) { if (WorldGen.destroyObject) { return; } if (Main.tile[i, j].frameY >= 36 || Main.tile[i, j].type == 236 || Main.tile[i, j].type == 238) { bool flag = false; int k = (int)(Main.tile[i, j].frameX / 18); int num = 0; while (k > 1) { k -= 2; num++; } k = i - k; int num2 = 36; if (type == 236 || type == 238) { num2 = 0; } int l; for (l = (int)(Main.tile[i, j].frameY / 18); l > 1; l -= 2) { } l = j - l; int num3 = num * 36; for (int m = k; m < k + 2; m++) { for (int n = l; n < l + 2; n++) { if (Main.tile[m, n] == null) { Main.tile[m, n] = new Tile(); } if (!Main.tile[m, n].active() || (int)Main.tile[m, n].type != type || (int)Main.tile[m, n].frameX != (m - k) * 18 + num3 || (int)Main.tile[m, n].frameY != (n - l) * 18 + num2) { flag = true; } } if (Main.tile[m, l + 2] == null) { Main.tile[m, l + 2] = new Tile(); } if (!WorldGen.SolidTile(m, l + 2) || Main.tile[m, l + 2].type != 60) { flag = true; } } if (flag) { if (type == 238) { float num4 = (float)(i * 16); float num5 = (float)(j * 16); float num6 = -1f; int plr = 0; for (int num7 = 0; num7 < 255; num7++) { float num8 = Math.Abs(Main.player[num7].position.X - num4) + Math.Abs(Main.player[num7].position.Y - num5); if (num8 < num6 || num6 == -1f) { plr = num7; num6 = num8; } } if (num6 / 16f < 50f) { NPC.SpawnOnPlayer(plr, 262); } } if (type == 236) { Item.NewItem(i * 16, j * 16, 32, 32, 1291, 1, false, 0, false); } short arg_2A8_0 = Main.tile[i, j].frameX; WorldGen.destroyObject = true; for (int num9 = k; num9 < k + 2; num9++) { for (int num10 = l; num10 < l + 2; num10++) { if (Main.tile[num9, num10] == null) { Main.tile[num9, num10] = new Tile(); } if ((int)Main.tile[num9, num10].type == type && Main.tile[num9, num10].active()) { WorldGen.KillTile(num9, num10, false, false, false); } } } return; } } else { bool flag2 = false; int num11 = j + (int)(Main.tile[i, j].frameY / 18 * -1); int num12 = (int)(Main.tile[i, j].frameX / 18); int num13 = 0; while (num12 > 2) { num12 -= 3; num13++; } num12 = i - num12; int num14 = num13 * 54; for (int num15 = num12; num15 < num12 + 3; num15++) { for (int num16 = num11; num16 < num11 + 2; num16++) { if (Main.tile[num15, num16] == null) { Main.tile[num15, num16] = new Tile(); } if (!Main.tile[num15, num16].active() || (int)Main.tile[num15, num16].type != type || (int)Main.tile[num15, num16].frameX != (num15 - num12) * 18 + num14 || (int)Main.tile[num15, num16].frameY != (num16 - num11) * 18) { flag2 = true; } } if (!WorldGen.SolidTile(num15, num11 + 2) || Main.tile[num15, num11 + 2].type != 60) { flag2 = true; } } if (flag2) { short arg_48D_0 = Main.tile[i, j].frameX; WorldGen.destroyObject = true; for (int num17 = num12; num17 < num12 + 3; num17++) { for (int num18 = num11; num18 < num11 + 3; num18++) { if (Main.tile[num17, num18] == null) { Main.tile[num17, num18] = new Tile(); } if ((int)Main.tile[num17, num18].type == type && Main.tile[num17, num18].active()) { WorldGen.KillTile(num17, num18, false, false, false); } } } } } } public static void Check2x2(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int num = 0; int num2 = (int)(Main.tile[i, j].frameX / 18 * -1); if (num2 < -1) { num2 += 2; num = 36; } num2 += i; int num3 = (int)(Main.tile[i, j].frameY / 18 * -1); num3 += j; for (int k = num2; k < num2 + 2; k++) { for (int l = num3; l < num3 + 2; l++) { if (Main.tile[k, l] == null) { Main.tile[k, l] = new Tile(); } if (!Main.tile[k, l].active() || (int)Main.tile[k, l].type != type || (int)Main.tile[k, l].frameX != (k - num2) * 18 + num || (int)Main.tile[k, l].frameY != (l - num3) * 18) { flag = true; } } if (type == 95 || type == 126) { if (Main.tile[k, num3 - 1] == null) { Main.tile[k, num3 - 1] = new Tile(); } if (!Main.tile[k, num3 - 1].active() || !Main.tileSolid[(int)Main.tile[k, num3 - 1].type] || Main.tileSolidTop[(int)Main.tile[k, num3 - 1].type]) { flag = true; } } else { if (type != 138) { if (Main.tile[k, num3 + 2] == null) { Main.tile[k, num3 + 2] = new Tile(); } if (!Main.tile[k, num3 + 2].active() || (!Main.tileSolid[(int)Main.tile[k, num3 + 2].type] && !Main.tileTable[(int)Main.tile[k, num3 + 2].type])) { flag = true; } if (Main.tile[k, num3 + 2].halfBrick()) { flag = true; } } } } if (type == 138 && !WorldGen.SolidTile2(num2, num3 + 2) && !WorldGen.SolidTile2(num2 + 1, num3 + 2)) { flag = true; } if (flag) { WorldGen.destroyObject = true; for (int m = num2; m < num2 + 2; m++) { for (int n = num3; n < num3 + 2; n++) { if ((int)Main.tile[m, n].type == type && Main.tile[m, n].active()) { WorldGen.KillTile(m, n, false, false, false); } } } if (type == 85) { Item.NewItem(i * 16, j * 16, 32, 32, 321, 1, false, 0, false); } if (type == 94) { Item.NewItem(i * 16, j * 16, 32, 32, 352, 1, false, 0, false); } if (type == 95) { Item.NewItem(i * 16, j * 16, 32, 32, 344, 1, false, 0, false); } if (type == 96) { Item.NewItem(i * 16, j * 16, 32, 32, 345, 1, false, 0, false); } if (type == 97) { Item.NewItem(i * 16, j * 16, 32, 32, 346, 1, false, 0, false); } if (type == 98) { Item.NewItem(i * 16, j * 16, 32, 32, 347, 1, false, 0, false); } if (type == 99) { Item.NewItem(i * 16, j * 16, 32, 32, 348, 1, false, 0, false); } if (type == 100) { Item.NewItem(i * 16, j * 16, 32, 32, 349, 1, false, 0, false); } if (type == 173) { Item.NewItem(i * 16, j * 16, 32, 32, 714, 1, false, 0, false); } if (type == 125) { Item.NewItem(i * 16, j * 16, 32, 32, 487, 1, false, 0, false); } if (type == 126) { Item.NewItem(i * 16, j * 16, 32, 32, 488, 1, false, 0, false); } if (type == 132) { Item.NewItem(i * 16, j * 16, 32, 32, 513, 1, false, 0, false); } if (type == 142) { Item.NewItem(i * 16, j * 16, 32, 32, 581, 1, false, 0, false); } if (type == 143) { Item.NewItem(i * 16, j * 16, 32, 32, 582, 1, false, 0, false); } if (type == 138 && !WorldGen.gen && Main.netMode != 1) { Projectile.NewProjectile((float)(num2 * 16) + 15.5f, (float)(num3 * 16 + 16), 0f, 0f, 99, 70, 10f, Main.myPlayer, 0f, 0f); } WorldGen.destroyObject = false; for (int num4 = num2 - 1; num4 < num2 + 3; num4++) { for (int num5 = num3 - 1; num5 < num3 + 3; num5++) { WorldGen.TileFrame(num4, num5, false, false); } } } } public static void OreRunner(int i, int j, double strength, int steps, int type) { double num = strength; float num2 = (float)steps; Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; while (num > 0.0 && num2 > 0f) { if (value.Y < 0f && num2 > 0f && type == 59) { num2 = 0f; } num = strength * (double)(num2 / (float)steps); num2 -= 1f; int num3 = (int)((double)value.X - num * 0.5); int num4 = (int)((double)value.X + num * 0.5); int num5 = (int)((double)value.Y - num * 0.5); int num6 = (int)((double)value.Y + num * 0.5); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX) { num4 = Main.maxTilesX; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } for (int k = num3; k < num4; k++) { for (int l = num5; l < num6; l++) { if ((double)(Math.Abs((float)k - value.X) + Math.Abs((float)l - value.Y)) < strength * 0.5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015) && Main.tile[k, l].active() && (Main.tile[k, l].type == 0 || Main.tile[k, l].type == 1 || Main.tile[k, l].type == 23 || Main.tile[k, l].type == 25 || Main.tile[k, l].type == 40 || Main.tile[k, l].type == 53 || Main.tile[k, l].type == 57 || Main.tile[k, l].type == 59 || Main.tile[k, l].type == 60 || Main.tile[k, l].type == 70 || Main.tile[k, l].type == 109 || Main.tile[k, l].type == 112 || Main.tile[k, l].type == 116 || Main.tile[k, l].type == 117 || Main.tile[k, l].type == 147 || Main.tile[k, l].type == 161 || Main.tile[k, l].type == 163 || Main.tile[k, l].type == 164 || Main.tileMoss[(int)Main.tile[k, l].type] || Main.tile[k, l].type == 199 || Main.tile[k, l].type == 200 || Main.tile[k, l].type == 203 || Main.tile[k, l].type == 234)) { Main.tile[k, l].type = (byte)type; WorldGen.SquareTileFrame(k, l, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, k, l, 1); } } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.X > 1f) { value2.X = 1f; } if (value2.X < -1f) { value2.X = -1f; } } } public static void SmashAltar(int i, int j) { if (Main.netMode == 1) { return; } if (!Main.hardMode) { return; } if (WorldGen.noTileActions) { return; } if (WorldGen.gen) { return; } int num = WorldGen.altarCount % 3; int num2 = WorldGen.altarCount / 3 + 1; float num3 = (float)(Main.maxTilesX / 4200); int num4 = 1 - num; num3 = num3 * 310f - (float)(85 * num); num3 *= 0.85f; num3 /= (float)num2; if (num == 0) { if (WorldGen.oreTier1 == -1) { WorldGen.oreTier1 = 107; if (WorldGen.genRand.Next(2) == 0) { WorldGen.oreTier1 = 221; } } int num5 = 12; if (WorldGen.oreTier1 == 221) { num5 += 9; } if (Main.netMode == 0) { Main.NewText(Lang.misc[num5], 50, 255, 130, false); } else { if (Main.netMode == 2) { NetMessage.SendData(25, -1, -1, Lang.misc[num5], 255, 50f, 255f, 130f, 0); } } num = WorldGen.oreTier1; num3 *= 1.05f; } else { if (num == 1) { if (WorldGen.oreTier2 == -1) { WorldGen.oreTier2 = 108; if (WorldGen.genRand.Next(2) == 0) { WorldGen.oreTier2 = 222; } } int num6 = 13; if (WorldGen.oreTier2 == 222) { num6 += 9; } if (Main.netMode == 0) { Main.NewText(Lang.misc[num6], 50, 255, 130, false); } else { if (Main.netMode == 2) { NetMessage.SendData(25, -1, -1, Lang.misc[num6], 255, 50f, 255f, 130f, 0); } } num = WorldGen.oreTier2; } else { if (WorldGen.oreTier3 == -1) { WorldGen.oreTier3 = 111; if (WorldGen.genRand.Next(2) == 0) { WorldGen.oreTier3 = 223; } } int num7 = 14; if (WorldGen.oreTier3 == 223) { num7 += 9; } if (Main.netMode == 0) { Main.NewText(Lang.misc[num7], 50, 255, 130, false); } else { if (Main.netMode == 2) { NetMessage.SendData(25, -1, -1, Lang.misc[num7], 255, 50f, 255f, 130f, 0); } } num = WorldGen.oreTier3; } } int num8 = 0; while ((float)num8 < num3) { int i2 = WorldGen.genRand.Next(100, Main.maxTilesX - 100); double num9 = Main.worldSurface; if (num == 108) { num9 = Main.rockLayer; } if (num == 111) { num9 = (Main.rockLayer + Main.rockLayer + (double)Main.maxTilesY) / 3.0; } int j2 = WorldGen.genRand.Next((int)num9, Main.maxTilesY - 150); WorldGen.OreRunner(i2, j2, (double)WorldGen.genRand.Next(5, 9 + num4), WorldGen.genRand.Next(5, 9 + num4), num); num8++; } int num10 = WorldGen.genRand.Next(3); while (num10 != 2) { int num11 = WorldGen.genRand.Next(100, Main.maxTilesX - 100); int num12 = WorldGen.genRand.Next((int)Main.rockLayer + 50, Main.maxTilesY - 300); if (Main.tile[num11, num12].active() && Main.tile[num11, num12].type == 1) { if (num10 == 0) { if (WorldGen.crimson) { Main.tile[num11, num12].type = 203; } else { Main.tile[num11, num12].type = 25; } } else { Main.tile[num11, num12].type = 117; } if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num11, num12, 1); break; } break; } } if (Main.netMode != 1) { int num13 = Main.rand.Next(2) + 1; for (int k = 0; k < num13; k++) { NPC.SpawnOnPlayer((int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16), 82); } } WorldGen.altarCount++; } public static void Check3x1(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int k = (int)(Main.tile[i, j].frameX / 18); int num = 0; while (k > 2) { k -= 3; num++; } k = i - k; int num2 = num * 54; for (int l = k; l < k + 3; l++) { if (Main.tile[l, j] == null) { Main.tile[l, j] = new Tile(); } if (!Main.tile[l, j].active() || (int)Main.tile[l, j].type != type || (int)Main.tile[l, j].frameX != (l - k) * 18 + num2 || Main.tile[l, j].frameY != 0) { flag = true; } if (!WorldGen.SolidTile2(l, j + 1)) { flag = true; } } if (flag) { short arg_FC_0 = Main.tile[i, j].frameX; WorldGen.destroyObject = true; if (type == 235) { Item.NewItem(i * 16, j * 16, 32, 32, 1263, 1, false, 0, false); } for (int m = k; m < k + 3; m++) { if (Main.tile[m, j] == null) { Main.tile[m, j] = new Tile(); } if ((int)Main.tile[m, j].type == type && Main.tile[m, j].active()) { WorldGen.KillTile(m, j, false, false, false); } } WorldGen.destroyObject = false; for (int n = k - 1; n < k + 4; n++) { WorldGen.TileFrame(n, j, false, false); } } } public static void Check3x2(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int num = j + (int)(Main.tile[i, j].frameY / 18 * -1); int k = (int)(Main.tile[i, j].frameX / 18); int num2 = 0; while (k > 2) { k -= 3; num2++; } k = i - k; int num3 = num2 * 54; for (int l = k; l < k + 3; l++) { for (int m = num; m < num + 2; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } if (!Main.tile[l, m].active() || (int)Main.tile[l, m].type != type || (int)Main.tile[l, m].frameX != (l - k) * 18 + num3 || (int)Main.tile[l, m].frameY != (m - num) * 18) { flag = true; } } if (!WorldGen.SolidTile2(l, num + 2)) { flag = true; } } if (type == 187 && Main.tile[k, num].frameX >= 756 && Main.tile[k, num].frameX <= 900 && Main.tile[k, num + 2].type != 2 && Main.tile[k + 1, num + 2].type != 2 && Main.tile[k + 2, num + 2].type != 2) { Tile expr_1B9 = Main.tile[k, num]; expr_1B9.frameX -= 378; Tile expr_1D9 = Main.tile[k + 1, num]; expr_1D9.frameX -= 378; Tile expr_1F9 = Main.tile[k + 2, num]; expr_1F9.frameX -= 378; Tile expr_219 = Main.tile[k, num + 1]; expr_219.frameX -= 378; Tile expr_23B = Main.tile[k + 1, num + 1]; expr_23B.frameX -= 378; Tile expr_25D = Main.tile[k + 2, num + 1]; expr_25D.frameX -= 378; Main.tile[k, num].type = 186; Main.tile[k + 1, num].type = 186; Main.tile[k + 2, num].type = 186; Main.tile[k, num + 1].type = 186; Main.tile[k + 1, num + 1].type = 186; Main.tile[k + 2, num + 1].type = 186; } if (flag) { int frameX = (int)Main.tile[i, j].frameX; WorldGen.destroyObject = true; for (int n = k; n < k + 3; n++) { for (int num4 = num; num4 < num + 3; num4++) { if (Main.tile[n, num4] == null) { Main.tile[n, num4] = new Tile(); } if ((int)Main.tile[n, num4].type == type && Main.tile[n, num4].active()) { WorldGen.KillTile(n, num4, false, false, false); } } } if (type == 14) { int type2 = 32; if (num2 >= 1 && num2 <= 3) { type2 = 637 + num2; } if (num2 >= 15 && num2 <= 20) { type2 = 1698 + num2; } if (num2 >= 4 && num2 <= 7) { type2 = 823 + num2; } if (num2 == 8) { type2 = 917; } if (num2 == 9) { type2 = 1144; } if (num2 == 10) { type2 = 1397; } if (num2 == 11) { type2 = 1400; } if (num2 == 12) { type2 = 1403; } if (num2 == 13) { type2 = 1460; } if (num2 == 14) { type2 = 1510; } Item.NewItem(i * 16, j * 16, 32, 32, type2, 1, false, 0, false); } else { if (type == 114) { Item.NewItem(i * 16, j * 16, 32, 32, 398, 1, false, 0, false); } else { if (type == 26) { if (!WorldGen.noTileActions) { WorldGen.SmashAltar(i, j); } } else { if (type == 217) { Item.NewItem(i * 16, j * 16, 32, 32, 995, 1, false, 0, false); } else { if (type == 218) { Item.NewItem(i * 16, j * 16, 32, 32, 996, 1, false, 0, false); } else { if (type == 219) { Item.NewItem(i * 16, j * 16, 32, 32, 997, 1, false, 0, false); } else { if (type == 220) { Item.NewItem(i * 16, j * 16, 32, 32, 998, 1, false, 0, false); } else { if (type == 228) { Item.NewItem(i * 16, j * 16, 32, 32, 1120, 1, false, 0, false); } else { if (type == 215) { Item.NewItem(i * 16, j * 16, 32, 32, 966, 1, false, 0, false); } else { if (type == 244) { Item.NewItem(i * 16, j * 16, 32, 32, 1449, 1, false, 0, false); } else { if (type == 17) { Item.NewItem(i * 16, j * 16, 32, 32, 33, 1, false, 0, false); } else { if (type == 77) { Item.NewItem(i * 16, j * 16, 32, 32, 221, 1, false, 0, false); } else { if (type == 86) { Item.NewItem(i * 16, j * 16, 32, 32, 332, 1, false, 0, false); } else { if (type == 237) { Item.NewItem(i * 16, j * 16, 32, 32, 1292, 1, false, 0, false); } else { if (type == 87) { int type3 = 333; if (num2 >= 1 && num2 <= 3) { type3 = 640 + num2; } if (num2 == 4) { type3 = 919; } Item.NewItem(i * 16, j * 16, 32, 32, type3, 1, false, 0, false); } else { if (type == 88) { int type4 = 334; if (num2 >= 1 && num2 <= 3) { type4 = 646 + num2; } if (num2 == 4) { type4 = 918; } Item.NewItem(i * 16, j * 16, 32, 32, type4, 1, false, 0, false); } else { if (type == 89) { Item.NewItem(i * 16, j * 16, 32, 32, 335, 1, false, 0, false); } else { if (type == 133) { if (frameX >= 54) { Item.NewItem(i * 16, j * 16, 32, 32, 1221, 1, false, 0, false); } else { Item.NewItem(i * 16, j * 16, 32, 32, 524, 1, false, 0, false); } } else { if (type == 186) { if (frameX >= 864) { if (frameX <= 954) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(30, 100), false, 0, false); Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(40, 100), false, 0, false); if (WorldGen.genRand.Next(3) != 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(3) != 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(30, 100), false, 0, false); } if (WorldGen.genRand.Next(3) != 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(40, 100), false, 0, false); } if (WorldGen.genRand.Next(2) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(2) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(30, 100), false, 0, false); } if (WorldGen.genRand.Next(2) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(40, 100), false, 0, false); } if (WorldGen.genRand.Next(3) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(3) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(30, 100), false, 0, false); } if (WorldGen.genRand.Next(3) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(40, 100), false, 0, false); } if (WorldGen.genRand.Next(4) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(4) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(30, 100), false, 0, false); } if (WorldGen.genRand.Next(4) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(40, 100), false, 0, false); } if (WorldGen.genRand.Next(5) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(20, 100), false, 0, false); } if (WorldGen.genRand.Next(5) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(30, 100), false, 0, false); } if (WorldGen.genRand.Next(5) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 71, WorldGen.genRand.Next(40, 100), false, 0, false); } } else { if (frameX <= 1062) { Item.NewItem(i * 16, j * 16, 32, 32, 72, WorldGen.genRand.Next(10, 100), false, 0, false); if (Main.rand.Next(2) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 72, WorldGen.genRand.Next(20, 100), false, 0, false); } if (Main.rand.Next(3) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 72, WorldGen.genRand.Next(30, 100), false, 0, false); } if (Main.rand.Next(4) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 72, WorldGen.genRand.Next(40, 100), false, 0, false); } if (Main.rand.Next(5) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 72, WorldGen.genRand.Next(50, 100), false, 0, false); } } else { if (frameX <= 1170) { Item.NewItem(i * 16, j * 16, 32, 32, 73, WorldGen.genRand.Next(1, 7), false, 0, false); if (WorldGen.genRand.Next(2) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 73, WorldGen.genRand.Next(2, 7), false, 0, false); } if (WorldGen.genRand.Next(3) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 73, WorldGen.genRand.Next(3, 7), false, 0, false); } if (WorldGen.genRand.Next(4) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 73, WorldGen.genRand.Next(4, 7), false, 0, false); } if (WorldGen.genRand.Next(5) == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 73, WorldGen.genRand.Next(5, 7), false, 0, false); } } } } } } else { if (type == 187 && frameX >= 918 && frameX <= 970) { Item.NewItem(i * 16, j * 16, 32, 32, 989, 1, false, 0, false); } } } } } } } } } } } } } } } } } } } } WorldGen.destroyObject = false; for (int num5 = k - 1; num5 < k + 4; num5++) { for (int num6 = num - 1; num6 < num + 4; num6++) { WorldGen.TileFrame(num5, num6, false, false); } } } } public static void Check3x4(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int num = 0; int k; for (k = (int)(Main.tile[i, j].frameX / 18); k >= 3; k -= 3) { num++; } int num2 = i - k; int num3 = j + (int)(Main.tile[i, j].frameY / 18 * -1); for (int l = num2; l < num2 + 3; l++) { for (int m = num3; m < num3 + 4; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } if (!Main.tile[l, m].active() || (int)Main.tile[l, m].type != type || (int)Main.tile[l, m].frameX != num * 54 + (l - num2) * 18 || (int)Main.tile[l, m].frameY != (m - num3) * 18) { flag = true; } } if (Main.tile[l, num3 + 4] == null) { Main.tile[l, num3 + 4] = new Tile(); } if (!WorldGen.SolidTile2(l, num3 + 4)) { flag = true; } } if (flag) { WorldGen.destroyObject = true; for (int n = num2; n < num2 + 3; n++) { for (int num4 = num3; num4 < num3 + 4; num4++) { if ((int)Main.tile[n, num4].type == type && Main.tile[n, num4].active()) { WorldGen.KillTile(n, num4, false, false, false); } } } if (type == 101) { if (num == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 354, 1, false, 0, false); } if (num == 1) { Item.NewItem(i * 16, j * 16, 32, 32, 1414, 1, false, 0, false); } if (num == 2) { Item.NewItem(i * 16, j * 16, 32, 32, 1415, 1, false, 0, false); } if (num == 3) { Item.NewItem(i * 16, j * 16, 32, 32, 1416, 1, false, 0, false); } if (num == 4) { Item.NewItem(i * 16, j * 16, 32, 32, 1463, 1, false, 0, false); } if (num == 5) { Item.NewItem(i * 16, j * 16, 32, 32, 1512, 1, false, 0, false); } } else { if (type == 102) { Item.NewItem(i * 16, j * 16, 32, 32, 355, 1, false, 0, false); } } WorldGen.destroyObject = false; for (int num5 = num2 - 1; num5 < num2 + 4; num5++) { for (int num6 = num3 - 1; num6 < num3 + 4; num6++) { WorldGen.TileFrame(num5, num6, false, false); } } } } public static void Place4x2(int x, int y, int type, int direction = -1, int style = 0) { if (x < 5 || x > Main.maxTilesX - 5 || y < 5 || y > Main.maxTilesY - 5) { return; } bool flag = true; for (int i = x - 1; i < x + 3; i++) { for (int j = y - 1; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!WorldGen.SolidTile2(i, y + 1)) { flag = false; } } short num = 0; if (direction == 1) { num = 72; } int num2 = 36 * style; if (flag) { Main.tile[x - 1, y - 1].active(true); Main.tile[x - 1, y - 1].frameY = (short)num2; Main.tile[x - 1, y - 1].frameX = num; Main.tile[x - 1, y - 1].type = (byte)type; Main.tile[x, y - 1].active(true); Main.tile[x, y - 1].frameY = (short)num2; Main.tile[x, y - 1].frameX = (short)(18 + num); Main.tile[x, y - 1].type = (byte)type; Main.tile[x + 1, y - 1].active(true); Main.tile[x + 1, y - 1].frameY = (short)num2; Main.tile[x + 1, y - 1].frameX = (short)(36 + num); Main.tile[x + 1, y - 1].type = (byte)type; Main.tile[x + 2, y - 1].active(true); Main.tile[x + 2, y - 1].frameY = (short)num2; Main.tile[x + 2, y - 1].frameX = (short)(54 + num); Main.tile[x + 2, y - 1].type = (byte)type; Main.tile[x - 1, y].active(true); Main.tile[x - 1, y].frameY = (short)(num2 + 18); Main.tile[x - 1, y].frameX = num; Main.tile[x - 1, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameY = (short)(num2 + 18); Main.tile[x, y].frameX = (short)(18 + num); Main.tile[x, y].type = (byte)type; Main.tile[x + 1, y].active(true); Main.tile[x + 1, y].frameY = (short)(num2 + 18); Main.tile[x + 1, y].frameX = (short)(36 + num); Main.tile[x + 1, y].type = (byte)type; Main.tile[x + 2, y].active(true); Main.tile[x + 2, y].frameY = (short)(num2 + 18); Main.tile[x + 2, y].frameX = (short)(54 + num); Main.tile[x + 2, y].type = (byte)type; } } public static void SwitchCannon(int i, int j) { int k; for (k = (int)(Main.tile[i, j].frameX / 18); k >= 4; k -= 4) { } int l; for (l = (int)(Main.tile[i, j].frameY / 18); l >= 3; l -= 3) { } int num = 1; if (k < 2) { num = -1; } k = i - k; l = j - l; if (num == 1 && Main.tile[k, l].frameY <= 52) { return; } if (num == -1 && Main.tile[k, l].frameY >= 432) { return; } num *= -54; for (int m = k; m < k + 4; m++) { for (int n = l; n < l + 3; n++) { if (Main.tile[m, n] == null) { Main.tile[m, n] = new Tile(); } if (Main.tile[m, n].active() && Main.tile[m, n].type == 209) { Main.tile[m, n].frameY = (short)((int)Main.tile[m, n].frameY + num); } } } NetMessage.SendTileSquare(-1, k + 1, l + 1, 4); } public static void CheckCannon(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int k = (int)(Main.tile[i, j].frameX / 18); int num = 0; while (k >= 4) { num++; k -= 4; } k = i - k; int l = (int)(Main.tile[i, j].frameY / 18); int num2 = 0; while (l >= 3) { num2 += 54; l -= 3; } l = j - l; int num3 = 72 * num; for (int m = k; m < k + 4; m++) { int num4 = num2; for (int n = l; n < l + 3; n++) { if (Main.tile[m, n] == null) { Main.tile[m, n] = new Tile(); } if (!Main.tile[m, n].active() || (int)Main.tile[m, n].type != type || (int)Main.tile[m, n].frameX != num3 || (int)Main.tile[m, n].frameY != num4) { flag = true; } num4 += 18; } if (Main.tile[m, l + 3] == null) { Main.tile[m, l + 3] = new Tile(); } if (!WorldGen.SolidTile2(m, l + 3) && m != k && m != k + 3) { flag = true; } num3 += 18; } if (flag) { WorldGen.destroyObject = true; for (int num5 = k; num5 < k + 4; num5++) { for (int num6 = l; num6 < l + 3; num6++) { if ((int)Main.tile[num5, num6].type == type && Main.tile[num5, num6].active()) { WorldGen.KillTile(num5, num6, false, false, false); } } } if (num == 0) { Item.NewItem(i * 16, j * 16, 32, 32, 928, 1, false, 0, false); } if (num == 1) { Item.NewItem(i * 16, j * 16, 32, 32, 1337, 1, false, 0, false); } WorldGen.destroyObject = false; for (int num7 = k; num7 < k + 4; num7++) { for (int num8 = l; num8 < l + 3; num8++) { WorldGen.TileFrame(num7, num8, false, false); } } } } public static void PlaceCannon(int x, int y, int type, int style = 0) { if (x < 5 || x > Main.maxTilesX - 5 || y < 5 || y > Main.maxTilesY - 5) { return; } bool flag = true; for (int i = x - 1; i < x + 3; i++) { for (int j = y - 2; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!WorldGen.SolidTile2(i, y + 1) && i != x - 1 && i != x + 2) { flag = false; } } int num = 72 * style; int num2 = 0; if (flag) { Main.tile[x - 1, y - 2].active(true); Main.tile[x - 1, y - 2].frameY = (short)num2; Main.tile[x - 1, y - 2].frameX = (short)num; Main.tile[x - 1, y - 2].type = (byte)type; Main.tile[x, y - 2].active(true); Main.tile[x, y - 2].frameY = (short)num2; Main.tile[x, y - 2].frameX = (short)(18 + num); Main.tile[x, y - 2].type = (byte)type; Main.tile[x + 1, y - 2].active(true); Main.tile[x + 1, y - 2].frameY = (short)num2; Main.tile[x + 1, y - 2].frameX = (short)(36 + num); Main.tile[x + 1, y - 2].type = (byte)type; Main.tile[x + 2, y - 2].active(true); Main.tile[x + 2, y - 2].frameY = (short)num2; Main.tile[x + 2, y - 2].frameX = (short)(54 + num); Main.tile[x + 2, y - 2].type = (byte)type; Main.tile[x - 1, y - 1].active(true); Main.tile[x - 1, y - 1].frameY = (short)(num2 + 18); Main.tile[x - 1, y - 1].frameX = (short)num; Main.tile[x - 1, y - 1].type = (byte)type; Main.tile[x, y - 1].active(true); Main.tile[x, y - 1].frameY = (short)(num2 + 18); Main.tile[x, y - 1].frameX = (short)(18 + num); Main.tile[x, y - 1].type = (byte)type; Main.tile[x + 1, y - 1].active(true); Main.tile[x + 1, y - 1].frameY = (short)(num2 + 18); Main.tile[x + 1, y - 1].frameX = (short)(36 + num); Main.tile[x + 1, y - 1].type = (byte)type; Main.tile[x + 2, y - 1].active(true); Main.tile[x + 2, y - 1].frameY = (short)(num2 + 18); Main.tile[x + 2, y - 1].frameX = (short)(54 + num); Main.tile[x + 2, y - 1].type = (byte)type; Main.tile[x - 1, y].active(true); Main.tile[x - 1, y].frameY = (short)(num2 + 36); Main.tile[x - 1, y].frameX = (short)num; Main.tile[x - 1, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameY = (short)(num2 + 36); Main.tile[x, y].frameX = (short)(18 + num); Main.tile[x, y].type = (byte)type; Main.tile[x + 1, y].active(true); Main.tile[x + 1, y].frameY = (short)(num2 + 36); Main.tile[x + 1, y].frameX = (short)(36 + num); Main.tile[x + 1, y].type = (byte)type; Main.tile[x + 2, y].active(true); Main.tile[x + 2, y].frameY = (short)(num2 + 36); Main.tile[x + 2, y].frameX = (short)(54 + num); Main.tile[x + 2, y].type = (byte)type; } } public static void SwitchMB(int i, int j) { int k; for (k = (int)(Main.tile[i, j].frameY / 18); k >= 2; k -= 2) { } int num = (int)(Main.tile[i, j].frameX / 18); if (num >= 2) { num -= 2; } int num2 = i - num; int num3 = j - k; for (int l = num2; l < num2 + 2; l++) { for (int m = num3; m < num3 + 2; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } if (Main.tile[l, m].active() && Main.tile[l, m].type == 139) { if (Main.tile[l, m].frameX < 36) { Tile expr_D2 = Main.tile[l, m]; expr_D2.frameX += 36; } else { Tile expr_F1 = Main.tile[l, m]; expr_F1.frameX -= 36; } WorldGen.noWireX[WorldGen.numNoWire] = l; WorldGen.noWireY[WorldGen.numNoWire] = m; WorldGen.numNoWire++; } } } NetMessage.SendTileSquare(-1, num2, num3, 3); } public static void SwitchFountain(int i, int j) { int k; for (k = (int)(Main.tile[i, j].frameX / 18); k >= 2; k -= 2) { } int num = (int)(Main.tile[i, j].frameY / 18); if (num >= 4) { num -= 4; } int num2 = i - k; int num3 = j - num; for (int l = num2; l < num2 + 2; l++) { for (int m = num3; m < num3 + 4; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } if (Main.tile[l, m].active() && Main.tile[l, m].type == 207) { if (Main.tile[l, m].frameY < 72) { Tile expr_D2 = Main.tile[l, m]; expr_D2.frameY += 72; } else { Tile expr_F1 = Main.tile[l, m]; expr_F1.frameY -= 72; } WorldGen.noWireX[WorldGen.numNoWire] = l; WorldGen.noWireY[WorldGen.numNoWire] = m; WorldGen.numNoWire++; } } } NetMessage.SendTileSquare(-1, num2, num3 + 1, 4); } public static void CheckMB(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int num = 0; int k; for (k = (int)(Main.tile[i, j].frameY / 18); k >= 2; k -= 2) { num++; } int num2 = (int)(Main.tile[i, j].frameX / 18); int num3 = 0; if (num2 >= 2) { num2 -= 2; num3++; } int num4 = i - num2; int num5 = j - k; for (int l = num4; l < num4 + 2; l++) { for (int m = num5; m < num5 + 2; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } if (!Main.tile[l, m].active() || (int)Main.tile[l, m].type != type || (int)Main.tile[l, m].frameX != (l - num4) * 18 + num3 * 36 || (int)Main.tile[l, m].frameY != (m - num5) * 18 + num * 36) { flag = true; } } if (!Main.tileSolid[(int)Main.tile[l, num5 + 2].type] && !Main.tileTable[(int)Main.tile[l, num5 + 2].type]) { flag = true; } } if (flag) { WorldGen.destroyObject = true; for (int n = num4; n < num4 + 2; n++) { for (int num6 = num5; num6 < num5 + 3; num6++) { if ((int)Main.tile[n, num6].type == type && Main.tile[n, num6].active()) { WorldGen.KillTile(n, num6, false, false, false); } } } if (num >= 13) { Item.NewItem(i * 16, j * 16, 32, 32, 1596 + num - 13, 1, false, 0, false); } else { Item.NewItem(i * 16, j * 16, 32, 32, 562 + num, 1, false, 0, false); } for (int num7 = num4 - 1; num7 < num4 + 3; num7++) { for (int num8 = num5 - 1; num8 < num5 + 3; num8++) { WorldGen.TileFrame(num7, num8, false, false); } } WorldGen.destroyObject = false; } } public static void PlaceMB(int X, int y, int type, int style) { int num = X + 1; if (num < 5 || num > Main.maxTilesX - 5 || y < 5 || y > Main.maxTilesY - 5) { return; } bool flag = true; for (int i = num - 1; i < num + 1; i++) { for (int j = y - 1; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!Main.tile[i, y + 1].active() || Main.tile[i, y + 1].halfBrick() || (!Main.tileSolid[(int)Main.tile[i, y + 1].type] && !Main.tileTable[(int)Main.tile[i, y + 1].type])) { flag = false; } } if (flag) { Main.tile[num - 1, y - 1].active(true); Main.tile[num - 1, y - 1].frameY = (short)(style * 36); Main.tile[num - 1, y - 1].frameX = 0; Main.tile[num - 1, y - 1].type = (byte)type; Main.tile[num, y - 1].active(true); Main.tile[num, y - 1].frameY = (short)(style * 36); Main.tile[num, y - 1].frameX = 18; Main.tile[num, y - 1].type = (byte)type; Main.tile[num - 1, y].active(true); Main.tile[num - 1, y].frameY = (short)(style * 36 + 18); Main.tile[num - 1, y].frameX = 0; Main.tile[num - 1, y].type = (byte)type; Main.tile[num, y].active(true); Main.tile[num, y].frameY = (short)(style * 36 + 18); Main.tile[num, y].frameX = 18; Main.tile[num, y].type = (byte)type; } } public static void Place2x2(int x, int superY, int type) { int num = superY; if (type == 95 || type == 126) { num++; } if (x < 5 || x > Main.maxTilesX - 5 || num < 5 || num > Main.maxTilesY - 5) { return; } bool flag = true; for (int i = x - 1; i < x + 1; i++) { for (int j = num - 1; j < num + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } if (type == 98 && Main.tile[i, j].liquid > 0) { flag = false; } } if (type == 95 || type == 126) { if (Main.tile[i, num - 2] == null) { Main.tile[i, num - 2] = new Tile(); } if (!Main.tile[i, num - 2].nactive() || !Main.tileSolid[(int)Main.tile[i, num - 2].type] || Main.tileSolidTop[(int)Main.tile[i, num - 2].type]) { flag = false; } } else { if (Main.tile[i, num + 1] == null) { Main.tile[i, num + 1] = new Tile(); } if (!Main.tile[i, num + 1].nactive() || (!WorldGen.SolidTile2(i, num + 1) && !Main.tileTable[(int)Main.tile[i, num + 1].type])) { flag = false; } } } if (flag) { Main.tile[x - 1, num - 1].active(true); Main.tile[x - 1, num - 1].frameY = 0; Main.tile[x - 1, num - 1].frameX = 0; Main.tile[x - 1, num - 1].type = (byte)type; Main.tile[x, num - 1].active(true); Main.tile[x, num - 1].frameY = 0; Main.tile[x, num - 1].frameX = 18; Main.tile[x, num - 1].type = (byte)type; Main.tile[x - 1, num].active(true); Main.tile[x - 1, num].frameY = 18; Main.tile[x - 1, num].frameX = 0; Main.tile[x - 1, num].type = (byte)type; Main.tile[x, num].active(true); Main.tile[x, num].frameY = 18; Main.tile[x, num].frameX = 18; Main.tile[x, num].type = (byte)type; } } public static void Place3x4(int x, int y, int type, int style) { if (x < 5 || x > Main.maxTilesX - 5 || y < 5 || y > Main.maxTilesY - 5) { return; } bool flag = true; for (int i = x - 1; i < x + 2; i++) { for (int j = y - 3; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!WorldGen.SolidTile2(i, y + 1)) { flag = false; } } if (flag) { int num = style * 54; for (int k = -3; k <= 0; k++) { short frameY = (short)((3 + k) * 18); Main.tile[x - 1, y + k].active(true); Main.tile[x - 1, y + k].frameY = frameY; Main.tile[x - 1, y + k].frameX = (short)num; Main.tile[x - 1, y + k].type = (byte)type; Main.tile[x, y + k].active(true); Main.tile[x, y + k].frameY = frameY; Main.tile[x, y + k].frameX = (short)(num + 18); Main.tile[x, y + k].type = (byte)type; Main.tile[x + 1, y + k].active(true); Main.tile[x + 1, y + k].frameY = frameY; Main.tile[x + 1, y + k].frameX = (short)(num + 36); Main.tile[x + 1, y + k].type = (byte)type; } } } public static void Place3x1(int x, int y, int type, int style = 0) { if (x < 5 || x > Main.maxTilesX - 5 || y < 5 || y > Main.maxTilesY - 5) { return; } bool flag = true; for (int i = x - 1; i < x + 2; i++) { if (Main.tile[i, y] == null) { Main.tile[i, y] = new Tile(); } if (Main.tile[i, y].active()) { flag = false; } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!WorldGen.SolidTile2(i, y + 1)) { flag = false; } } if (flag) { short num = (short)(54 * style); Main.tile[x - 1, y].active(true); Main.tile[x - 1, y].frameY = 0; Main.tile[x - 1, y].frameX = num; Main.tile[x - 1, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameY = 0; Main.tile[x, y].frameX = (short)(num + 18); Main.tile[x, y].type = (byte)type; Main.tile[x + 1, y].active(true); Main.tile[x + 1, y].frameY = 0; Main.tile[x + 1, y].frameX = (short)(num + 36); Main.tile[x + 1, y].type = (byte)type; } } public static void Place3x2(int x, int y, int type, int style = 0) { if (x < 5 || x > Main.maxTilesX - 5 || y < 5 || y > Main.maxTilesY - 5) { return; } bool flag = true; for (int i = x - 1; i < x + 2; i++) { for (int j = y - 1; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!WorldGen.SolidTile2(i, y + 1)) { flag = false; } } if (flag) { short num = (short)(54 * style); Main.tile[x - 1, y - 1].active(true); Main.tile[x - 1, y - 1].frameY = 0; Main.tile[x - 1, y - 1].frameX = num; Main.tile[x - 1, y - 1].type = (byte)type; Main.tile[x, y - 1].active(true); Main.tile[x, y - 1].frameY = 0; Main.tile[x, y - 1].frameX = (short)(num + 18); Main.tile[x, y - 1].type = (byte)type; Main.tile[x + 1, y - 1].active(true); Main.tile[x + 1, y - 1].frameY = 0; Main.tile[x + 1, y - 1].frameX = (short)(num + 36); Main.tile[x + 1, y - 1].type = (byte)type; Main.tile[x - 1, y].active(true); Main.tile[x - 1, y].frameY = 18; Main.tile[x - 1, y].frameX = num; Main.tile[x - 1, y].type = (byte)type; Main.tile[x, y].active(true); Main.tile[x, y].frameY = 18; Main.tile[x, y].frameX = (short)(num + 18); Main.tile[x, y].type = (byte)type; Main.tile[x + 1, y].active(true); Main.tile[x + 1, y].frameY = 18; Main.tile[x + 1, y].frameX = (short)(num + 36); Main.tile[x + 1, y].type = (byte)type; } } public static void Check3x3(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int k = (int)(Main.tile[i, j].frameX / 18); int num = 0; while (k >= 3) { num++; k -= 3; } int num2 = i - k; int num3 = 54 * num; if (k >= 3) { k -= 3; } k = i - k; int num4 = j + (int)(Main.tile[i, j].frameY / 18 * -1); for (int l = k; l < k + 3; l++) { for (int m = num4; m < num4 + 3; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } if (!Main.tile[l, m].active() || (int)Main.tile[l, m].type != type || (int)Main.tile[l, m].frameX != (l - num2) * 18 + num3 || (int)Main.tile[l, m].frameY != (m - num4) * 18) { flag = true; } } } if (type == 106 || type == 212 || type == 219 || type == 220 || type == 228 || type == 231 || type == 243 || type == 247) { for (int n = k; n < k + 3; n++) { if (Main.tile[n, num4 + 3] == null) { Main.tile[n, num4 + 3] = new Tile(); } if (!WorldGen.SolidTile2(n, num4 + 3)) { flag = true; break; } } } else { if (Main.tile[k + 1, num4 - 1] == null) { Main.tile[k + 1, num4 - 1] = new Tile(); } if (!Main.tile[k + 1, num4 - 1].nactive() || !Main.tileSolid[(int)Main.tile[k + 1, num4 - 1].type] || Main.tileSolidTop[(int)Main.tile[k + 1, num4 - 1].type]) { flag = true; } } if (flag) { WorldGen.destroyObject = true; for (int num5 = k; num5 < k + 3; num5++) { for (int num6 = num4; num6 < num4 + 3; num6++) { if ((int)Main.tile[num5, num6].type == type && Main.tile[num5, num6].active()) { WorldGen.KillTile(num5, num6, false, false, false); } } } if (type == 34) { Item.NewItem(i * 16, j * 16, 32, 32, 106, 1, false, 0, false); } else { if (type == 35) { Item.NewItem(i * 16, j * 16, 32, 32, 107, 1, false, 0, false); } else { if (type == 36) { Item.NewItem(i * 16, j * 16, 32, 32, 108, 1, false, 0, false); } else { if (type == 106) { Item.NewItem(i * 16, j * 16, 32, 32, 363, 1, false, 0, false); } else { if (type == 243) { Item.NewItem(i * 16, j * 16, 32, 32, 1430, 1, false, 0, false); } else { if (type == 170) { Item.NewItem(i * 16, j * 16, 32, 32, 710, 1, false, 0, false); } else { if (type == 171) { Item.NewItem(i * 16, j * 16, 32, 32, 711, 1, false, 0, false); } else { if (type == 172) { Item.NewItem(i * 16, j * 16, 32, 32, 712, 1, false, 0, false); } else { if (type == 212) { Item.NewItem(i * 16, j * 16, 32, 32, 951, 1, false, 0, false); } else { if (type == 219) { Item.NewItem(i * 16, j * 16, 32, 32, 997, 1, false, 0, false); } else { if (type == 220) { Item.NewItem(i * 16, j * 16, 32, 32, 998, 1, false, 0, false); } else { if (type == 228) { Item.NewItem(i * 16, j * 16, 32, 32, 1120, 1, false, 0, false); } else { if (type == 247) { Item.NewItem(i * 16, j * 16, 32, 32, 1551, 1, false, 0, false); } else { if (type == 231) { int num7 = (i + 1) * 16 + 8; int num8 = j * 16; Gore.NewGore(new Vector2((float)num7, (float)num8), default(Vector2), 300, 1f); Gore.NewGore(new Vector2((float)num7, (float)(num8 + 8)), default(Vector2), 301, 1f); Gore.NewGore(new Vector2((float)num7, (float)(num8 + 16)), default(Vector2), 302, 1f); float num9 = (float)(i * 16); float num10 = (float)(j * 16); float num11 = -1f; int plr = 0; for (int num12 = 0; num12 < 255; num12++) { if (Main.player[num12].active && !Main.player[num12].dead) { float num13 = Math.Abs(Main.player[num12].position.X - num9) + Math.Abs(Main.player[num12].position.Y - num10); if (num13 < num11 || num11 == -1f) { plr = num12; num11 = num13; } } } NPC.SpawnOnPlayer(plr, 222); } } } } } } } } } } } } } } WorldGen.destroyObject = false; for (int num14 = k - 1; num14 < k + 4; num14++) { for (int num15 = num4 - 1; num15 < num4 + 4; num15++) { WorldGen.TileFrame(num14, num15, false, false); } } } } public static void Place3x3(int x, int y, int type, int style = 0) { bool flag = true; int num = 0; if (type == 106 || type == 212 || type == 219 || type == 220 || type == 228 || type == 231 || type == 243 || type == 247) { num = -2; for (int i = x - 1; i < x + 2; i++) { for (int j = y - 2; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } } } for (int k = x - 1; k < x + 2; k++) { if (Main.tile[k, y + 1] == null) { Main.tile[k, y + 1] = new Tile(); } if (!WorldGen.SolidTile2(k, y + 1)) { flag = false; break; } } } else { for (int l = x - 1; l < x + 2; l++) { for (int m = y; m < y + 3; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } if (Main.tile[l, m].active()) { flag = false; } } } if (Main.tile[x, y - 1] == null) { Main.tile[x, y - 1] = new Tile(); } if (!Main.tile[x, y - 1].nactive() || !Main.tileSolid[(int)Main.tile[x, y - 1].type] || Main.tileSolidTop[(int)Main.tile[x, y - 1].type]) { flag = false; } } if (flag) { int num2 = style * 18 * 3; Main.tile[x - 1, y + num].active(true); Main.tile[x - 1, y + num].frameY = 0; Main.tile[x - 1, y + num].frameX = (short)num2; Main.tile[x - 1, y + num].type = (byte)type; Main.tile[x, y + num].active(true); Main.tile[x, y + num].frameY = 0; Main.tile[x, y + num].frameX = (short)(num2 + 18); Main.tile[x, y + num].type = (byte)type; Main.tile[x + 1, y + num].active(true); Main.tile[x + 1, y + num].frameY = 0; Main.tile[x + 1, y + num].frameX = (short)(num2 + 36); Main.tile[x + 1, y + num].type = (byte)type; Main.tile[x - 1, y + 1 + num].active(true); Main.tile[x - 1, y + 1 + num].frameY = 18; Main.tile[x - 1, y + 1 + num].frameX = (short)num2; Main.tile[x - 1, y + 1 + num].type = (byte)type; Main.tile[x, y + 1 + num].active(true); Main.tile[x, y + 1 + num].frameY = 18; Main.tile[x, y + 1 + num].frameX = (short)(num2 + 18); Main.tile[x, y + 1 + num].type = (byte)type; Main.tile[x + 1, y + 1 + num].active(true); Main.tile[x + 1, y + 1 + num].frameY = 18; Main.tile[x + 1, y + 1 + num].frameX = (short)(num2 + 36); Main.tile[x + 1, y + 1 + num].type = (byte)type; Main.tile[x - 1, y + 2 + num].active(true); Main.tile[x - 1, y + 2 + num].frameY = 36; Main.tile[x - 1, y + 2 + num].frameX = (short)num2; Main.tile[x - 1, y + 2 + num].type = (byte)type; Main.tile[x, y + 2 + num].active(true); Main.tile[x, y + 2 + num].frameY = 36; Main.tile[x, y + 2 + num].frameX = (short)(num2 + 18); Main.tile[x, y + 2 + num].type = (byte)type; Main.tile[x + 1, y + 2 + num].active(true); Main.tile[x + 1, y + 2 + num].frameY = 36; Main.tile[x + 1, y + 2 + num].frameX = (short)(num2 + 36); Main.tile[x + 1, y + 2 + num].type = (byte)type; } } public static void PlaceSunflower(int x, int y, int type = 27) { if ((double)y > Main.worldSurface - 1.0) { return; } bool flag = true; for (int i = x; i < x + 2; i++) { for (int j = y - 3; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active() || Main.tile[i, j].wall > 0) { flag = false; } } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!Main.tile[i, y + 1].nactive() || Main.tile[i, y + 1].halfBrick() || Main.tile[i, y + 1].slope() != 0 || (Main.tile[i, y + 1].type != 2 && Main.tile[i, y + 1].type != 109)) { flag = false; } } if (flag) { int num = WorldGen.genRand.Next(3); for (int k = 0; k < 2; k++) { for (int l = -3; l < 1; l++) { int num2 = k * 18 + WorldGen.genRand.Next(3) * 36; if (l <= -2) { num2 = k * 18 + num * 36; } int num3 = (l + 3) * 18; Main.tile[x + k, y + l].active(true); Main.tile[x + k, y + l].frameX = (short)num2; Main.tile[x + k, y + l].frameY = (short)num3; Main.tile[x + k, y + l].type = (byte)type; } } } } public static void FixSunflowers() { for (int i = 5; i < Main.maxTilesX - 5; i++) { int num = 5; while ((double)num < Main.worldSurface) { if (Main.tile[i, num].active() && Main.tile[i, num].type == 27) { WorldGen.FixSunflower(i, num); } num++; } } } public static void FixSunflower(int i, int j) { if (Main.tile[i, j].type != 27) { return; } int k = 0; k += (int)(Main.tile[i, j].frameX / 18); int num = j + (int)(Main.tile[i, j].frameY / 18 * -1); while (k > 1) { k -= 2; } k *= -1; k += i; int num2 = WorldGen.genRand.Next(3) * 36; int num3 = 0; for (int l = k; l < k + 2; l++) { for (int m = num; m < num + 4; m++) { Main.tile[l, m].frameX = (short)(num3 + num2); } num3 += 18; } } public static void CheckSunflower(int i, int j, int type = 27) { if (WorldGen.destroyObject) { return; } bool flag = false; int k = 0; k += (int)(Main.tile[i, j].frameX / 18); int num = j + (int)(Main.tile[i, j].frameY / 18 * -1); while (k > 1) { k -= 2; } k *= -1; k += i; for (int l = k; l < k + 2; l++) { for (int m = num; m < num + 4; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } int n; for (n = (int)(Main.tile[l, m].frameX / 18); n > 1; n -= 2) { } if (!Main.tile[l, m].nactive() || (int)Main.tile[l, m].type != type || n != l - k || (int)Main.tile[l, m].frameY != (m - num) * 18) { flag = true; } } if (Main.tile[l, num + 4] == null) { Main.tile[l, num + 4] = new Tile(); } if (!Main.tile[l, num + 4].nactive() || (Main.tile[l, num + 4].type != 2 && Main.tile[l, num + 4].type != 109)) { flag = true; } if (!WorldGen.SolidTile(l, num + 4)) { flag = true; } } if (flag) { WorldGen.destroyObject = true; for (int num2 = k; num2 < k + 2; num2++) { for (int num3 = num; num3 < num + 4; num3++) { if ((int)Main.tile[num2, num3].type == type && Main.tile[num2, num3].active()) { WorldGen.KillTile(num2, num3, false, false, false); } } } Item.NewItem(i * 16, j * 16, 32, 32, 63, 1, false, 0, false); WorldGen.destroyObject = false; } } public static void CheckDye(int x, int y) { int num = (int)(Main.tile[x, y].frameX / 34); if (num == 7) { if (!WorldGen.SolidTile(x, y - 1)) { WorldGen.KillTile(x, y, false, false, false); return; } } else { if (num == 6) { if (!Main.tile[x, y + 1].nactive() || Main.tile[x, y + 1].type != 80) { WorldGen.KillTile(x, y, false, false, false); return; } } else { if (!WorldGen.SolidTile(x, y + 1)) { WorldGen.KillTile(x, y, false, false, false); } } } } public static void PlaceDye(int x, int y, int style) { bool flag = false; if (style == 7) { if (Main.tile[x, y + 1].active() && Main.tile[x, y + 1].type != 3 && Main.tile[x, y + 1].type != 51 && Main.tile[x, y + 1].type != 61 && Main.tile[x, y + 1].type != 73 && Main.tile[x, y + 1].type != 74 && Main.tile[x, y + 1].type != 184) { return; } if (WorldGen.SolidTile(x, y - 1) && !Main.tile[x, y + 1].active()) { flag = true; } } else { if (Main.tile[x, y - 1].active() && Main.tile[x, y - 1].type != 3 && Main.tile[x, y - 1].type != 51 && Main.tile[x, y - 1].type != 61 && Main.tile[x, y - 1].type != 73 && Main.tile[x, y - 1].type != 74 && Main.tile[x, y - 1].type != 184) { return; } if (style == 6) { if (Main.tile[x, y + 1].nactive() && Main.tile[x, y + 1].type == 80 && !Main.tile[x - 1, y + 1].active() && !Main.tile[x + 1, y + 1].active()) { flag = true; } } else { if (WorldGen.SolidTile(x, y + 1) && !Main.tile[x, y - 1].active()) { if (style == 5) { if (Main.tile[x, y].liquid == 255) { flag = true; } } else { if (Main.tile[x, y].liquid == 0) { if (style == 3 || style == 4) { if (Main.tile[x, y].wall == 0) { flag = true; } } else { flag = true; } } } } } } if (flag) { Main.tile[x, y].type = 227; Main.tile[x, y].active(true); Main.tile[x, y].halfBrick(false); Main.tile[x, y].slope(0); Main.tile[x, y].frameY = 0; Main.tile[x, y].frameX = (short)(34 * style); } } public static bool PlacePot(int x, int y, int type = 28, int style = 0) { bool flag = true; for (int i = x; i < x + 2; i++) { for (int j = y - 1; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!Main.tile[i, y + 1].nactive() || Main.tile[i, y + 1].halfBrick() || Main.tile[i, y + 1].slope() != 0 || !Main.tileSolid[(int)Main.tile[i, y + 1].type]) { flag = false; } } if (flag) { int num = WorldGen.genRand.Next(3) * 36; for (int k = 0; k < 2; k++) { for (int l = -1; l < 1; l++) { int num2 = k * 18 + num; int num3 = (l + 1) * 18; Main.tile[x + k, y + l].active(true); Main.tile[x + k, y + l].frameX = (short)num2; Main.tile[x + k, y + l].frameY = (short)(num3 + style * 36); Main.tile[x + k, y + l].type = (byte)type; Main.tile[x + k, y + l].halfBrick(false); } } return true; } return false; } public static bool CheckCactus(int i, int j) { int num = j; int num2 = i; while (Main.tile[num2, num].active() && Main.tile[num2, num].type == 80) { num++; if (!Main.tile[num2, num].active() || Main.tile[num2, num].type != 80) { if (Main.tile[num2 - 1, num].active() && Main.tile[num2 - 1, num].type == 80 && Main.tile[num2 - 1, num - 1].active() && Main.tile[num2 - 1, num - 1].type == 80 && num2 >= i) { num2--; } if (Main.tile[num2 + 1, num].active() && Main.tile[num2 + 1, num].type == 80 && Main.tile[num2 + 1, num - 1].active() && Main.tile[num2 + 1, num - 1].type == 80 && num2 <= i) { num2++; } } } if (!Main.tile[num2, num].nactive() || Main.tile[num2, num].halfBrick() || Main.tile[num2, num].slope() != 0 || (Main.tile[num2, num].type != 53 && Main.tile[num2, num].type != 112 && Main.tile[num2, num].type != 116 && Main.tile[num2, num].type != 234)) { WorldGen.KillTile(i, j, false, false, false); return true; } if (i != num2) { if ((!Main.tile[i, j + 1].active() || Main.tile[i, j + 1].type != 80) && (!Main.tile[i - 1, j].active() || Main.tile[i - 1, j].type != 80) && (!Main.tile[i + 1, j].active() || Main.tile[i + 1, j].type != 80)) { WorldGen.KillTile(i, j, false, false, false); return true; } } else { if (i == num2 && (!Main.tile[i, j + 1].active() || (Main.tile[i, j + 1].type != 80 && Main.tile[i, j + 1].type != 53 && Main.tile[i, j + 1].type != 112 && Main.tile[i, j + 1].type != 116 && Main.tile[i, j + 1].type != 234))) { WorldGen.KillTile(i, j, false, false, false); return true; } } return false; } public static void PlantCactus(int i, int j) { WorldGen.GrowCactus(i, j); for (int k = 0; k < 150; k++) { int i2 = WorldGen.genRand.Next(i - 1, i + 2); int j2 = WorldGen.genRand.Next(j - 10, j + 2); WorldGen.GrowCactus(i2, j2); } } public static void CheckOrb(int i, int j, int type) { int frameX = (int)Main.tile[i, j].frameX; bool flag = false; if (frameX >= 36) { flag = true; } if (!WorldGen.destroyObject) { int num; if (Main.tile[i, j].frameX == 0 || Main.tile[i, j].frameX == 36) { num = i; } else { num = i - 1; } int num2; if (Main.tile[i, j].frameY == 0) { num2 = j; } else { num2 = j - 1; } if (Main.tile[num, num2] != null && Main.tile[num + 1, num2] != null && Main.tile[num, num2 + 1] != null && Main.tile[num + 1, num2 + 1] != null && (!Main.tile[num, num2].active() || (int)Main.tile[num, num2].type != type || !Main.tile[num + 1, num2].active() || (int)Main.tile[num + 1, num2].type != type || !Main.tile[num, num2 + 1].active() || (int)Main.tile[num, num2 + 1].type != type || !Main.tile[num + 1, num2 + 1].active() || (int)Main.tile[num + 1, num2 + 1].type != type)) { WorldGen.destroyObject = true; if ((int)Main.tile[num, num2].type == type) { WorldGen.KillTile(num, num2, false, false, false); } if ((int)Main.tile[num + 1, num2].type == type) { WorldGen.KillTile(num + 1, num2, false, false, false); } if ((int)Main.tile[num, num2 + 1].type == type) { WorldGen.KillTile(num, num2 + 1, false, false, false); } if ((int)Main.tile[num + 1, num2 + 1].type == type) { WorldGen.KillTile(num + 1, num2 + 1, false, false, false); } if (Main.netMode != 1 && !WorldGen.noTileActions) { if (type == 12) { Item.NewItem(num * 16, num2 * 16, 32, 32, 29, 1, false, 0, false); } else { if (type == 31) { if (WorldGen.genRand.Next(2) == 0) { WorldGen.spawnMeteor = true; } if (flag) { int num3 = Main.rand.Next(4); if (!WorldGen.shadowOrbSmashed) { num3 = 0; } if (num3 == 0) { Item.NewItem(num * 16, num2 * 16, 32, 32, 800, 1, false, -1, false); int stack = WorldGen.genRand.Next(25, 51); Item.NewItem(num * 16, num2 * 16, 32, 32, 97, stack, false, 0, false); } else { if (num3 == 1) { Item.NewItem(num * 16, num2 * 16, 32, 32, 1256, 1, false, -1, false); } else { if (num3 == 2) { Item.NewItem(num * 16, num2 * 16, 32, 32, 802, 1, false, -1, false); } else { if (num3 == 3) { Item.NewItem(num * 16, num2 * 16, 32, 32, 1290, 1, false, -1, false); } } } } } else { int num4 = Main.rand.Next(5); if (!WorldGen.shadowOrbSmashed) { num4 = 0; } if (num4 == 0) { Item.NewItem(num * 16, num2 * 16, 32, 32, 96, 1, false, -1, false); int stack2 = WorldGen.genRand.Next(25, 51); Item.NewItem(num * 16, num2 * 16, 32, 32, 97, stack2, false, 0, false); } else { if (num4 == 1) { Item.NewItem(num * 16, num2 * 16, 32, 32, 64, 1, false, -1, false); } else { if (num4 == 2) { Item.NewItem(num * 16, num2 * 16, 32, 32, 162, 1, false, -1, false); } else { if (num4 == 3) { Item.NewItem(num * 16, num2 * 16, 32, 32, 115, 1, false, -1, false); } else { if (num4 == 4) { Item.NewItem(num * 16, num2 * 16, 32, 32, 111, 1, false, -1, false); } } } } } } WorldGen.shadowOrbSmashed = true; WorldGen.shadowOrbCount++; if (WorldGen.shadowOrbCount >= 3) { WorldGen.shadowOrbCount = 0; float num5 = (float)(num * 16); float num6 = (float)(num2 * 16); float num7 = -1f; int plr = 0; for (int k = 0; k < 255; k++) { float num8 = Math.Abs(Main.player[k].position.X - num5) + Math.Abs(Main.player[k].position.Y - num6); if (num8 < num7 || num7 == -1f) { plr = k; num7 = num8; } } if (flag) { NPC.SpawnOnPlayer(plr, 266); } else { NPC.SpawnOnPlayer(plr, 13); } } else { string text = Lang.misc[10]; if (WorldGen.shadowOrbCount == 2) { text = Lang.misc[11]; } if (Main.netMode == 0) { Main.NewText(text, 50, 255, 130, false); } else { if (Main.netMode == 2) { NetMessage.SendData(25, -1, -1, text, 255, 50f, 255f, 130f, 0); } } } } } } if (frameX >= 36) { Main.PlaySound(4, i * 16, j * 16, 1); } else { Main.PlaySound(13, i * 16, j * 16, 1); } WorldGen.destroyObject = false; } } } public static void CheckTree(int i, int j) { int num = -1; int num2 = -1; int num3 = -1; int num4 = -1; int type = (int)Main.tile[i, j].type; int frameX = (int)Main.tile[i, j].frameX; int frameY = (int)Main.tile[i, j].frameY; if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].active()) { num2 = (int)Main.tile[i - 1, j].type; } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].active()) { num3 = (int)Main.tile[i + 1, j].type; } if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].active()) { num = (int)Main.tile[i, j - 1].type; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].active()) { num4 = (int)Main.tile[i, j + 1].type; } if (Main.tile[i - 1, j - 1] != null && Main.tile[i - 1, j - 1].active()) { byte arg_163_0 = Main.tile[i - 1, j - 1].type; } if (Main.tile[i + 1, j - 1] != null && Main.tile[i + 1, j - 1].active()) { byte arg_1A2_0 = Main.tile[i + 1, j - 1].type; } if (Main.tile[i - 1, j + 1] != null && Main.tile[i - 1, j + 1].active()) { byte arg_1E1_0 = Main.tile[i - 1, j + 1].type; } if (Main.tile[i + 1, j + 1] != null && Main.tile[i + 1, j + 1].active()) { byte arg_220_0 = Main.tile[i + 1, j + 1].type; } if (num4 == 23) { num4 = 2; } if (num4 == 60) { num4 = 2; } if (num4 == 70) { num4 = 2; } if (num4 == 109) { num4 = 2; } if (num4 == 147) { num4 = 2; } if (num4 == 199) { num4 = 2; } if (num4 != 2 && num4 != type && ((Main.tile[i, j].frameX == 0 && Main.tile[i, j].frameY <= 130) || (Main.tile[i, j].frameX == 22 && Main.tile[i, j].frameY <= 130) || (Main.tile[i, j].frameX == 44 && Main.tile[i, j].frameY <= 130))) { WorldGen.KillTile(i, j, false, false, false); } if (Main.tile[i, j].frameX >= 22 && Main.tile[i, j].frameX <= 44 && Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176) { if (num4 != 2) { WorldGen.KillTile(i, j, false, false, false); } else { if ((Main.tile[i, j].frameX != 22 || num2 != type) && (Main.tile[i, j].frameX != 44 || num3 != type)) { WorldGen.KillTile(i, j, false, false, false); } } } else { if ((Main.tile[i, j].frameX == 88 && Main.tile[i, j].frameY >= 0 && Main.tile[i, j].frameY <= 44) || (Main.tile[i, j].frameX == 66 && Main.tile[i, j].frameY >= 66 && Main.tile[i, j].frameY <= 130) || (Main.tile[i, j].frameX == 110 && Main.tile[i, j].frameY >= 66 && Main.tile[i, j].frameY <= 110) || (Main.tile[i, j].frameX == 132 && Main.tile[i, j].frameY >= 0 && Main.tile[i, j].frameY <= 176)) { if (num2 == type && num3 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 66; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 88; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 110; } } else { if (num2 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 0; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 22; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 44; } } else { if (num3 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 66; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 88; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 110; } } else { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 0; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 22; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 44; } } } } } } if (Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176 && (Main.tile[i, j].frameX == 0 || Main.tile[i, j].frameX == 66 || Main.tile[i, j].frameX == 88)) { if (num4 != 2) { WorldGen.KillTile(i, j, false, false, false); } if (num2 != type && num3 != type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 0; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 22; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 44; } } else { if (num2 != type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 132; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 154; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 176; } } else { if (num3 != type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 132; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 154; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 66; Main.tile[i, j].frameY = 176; } } else { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 132; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 154; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 88; Main.tile[i, j].frameY = 176; } } } } } if ((Main.tile[i, j].frameX == 66 && (Main.tile[i, j].frameY == 0 || Main.tile[i, j].frameY == 22 || Main.tile[i, j].frameY == 44)) || (Main.tile[i, j].frameX == 44 && (Main.tile[i, j].frameY == 198 || Main.tile[i, j].frameY == 220 || Main.tile[i, j].frameY == 242))) { if (num3 != type) { WorldGen.KillTile(i, j, false, false, false); } } else { if ((Main.tile[i, j].frameX == 88 && (Main.tile[i, j].frameY == 66 || Main.tile[i, j].frameY == 88 || Main.tile[i, j].frameY == 110)) || (Main.tile[i, j].frameX == 66 && (Main.tile[i, j].frameY == 198 || Main.tile[i, j].frameY == 220 || Main.tile[i, j].frameY == 242))) { if (num2 != type) { WorldGen.KillTile(i, j, false, false, false); } } else { if (num4 == -1 || num4 == 23) { WorldGen.KillTile(i, j, false, false, false); } else { if (num != type && Main.tile[i, j].frameY < 198 && ((Main.tile[i, j].frameX != 22 && Main.tile[i, j].frameX != 44) || Main.tile[i, j].frameY < 132)) { if (num2 == type || num3 == type) { if (num4 == type) { if (num2 == type && num3 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 132; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 154; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 176; } } else { if (num2 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 0; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 22; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 44; } } else { if (num3 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 66; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 88; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 132; Main.tile[i, j].frameY = 110; } } } } } else { if (num2 == type && num3 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 132; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 154; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 176; } } else { if (num2 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 0; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 22; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 44; } } else { if (num3 == type) { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 66; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 88; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 154; Main.tile[i, j].frameY = 110; } } } } } } else { if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 0; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 22; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 110; Main.tile[i, j].frameY = 44; } } } } } } if ((int)Main.tile[i, j].frameX != frameX && (int)Main.tile[i, j].frameY != frameY && frameX >= 0 && frameY >= 0) { WorldGen.TileFrame(i - 1, j, false, false); WorldGen.TileFrame(i + 1, j, false, false); WorldGen.TileFrame(i, j - 1, false, false); WorldGen.TileFrame(i, j + 1, false, false); } } public static void Convert(int i, int j, int type, int size = 4) { for (int k = i - size; k <= i + size; k++) { for (int l = j - size; l <= j + size; l++) { if (Math.Abs(k - i) + Math.Abs(l - j) < 6) { if (type == 4) { if (Main.tile[k, l].wall == 63 || Main.tile[k, l].wall == 64 || Main.tile[k, l].wall == 65 || Main.tile[k, l].wall == 66 || Main.tile[k, l].wall == 67 || Main.tile[k, l].wall == 68 || Main.tile[k, l].wall == 69 || Main.tile[k, l].wall == 70) { Main.tile[k, l].wall = 81; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].wall == 3 || Main.tile[k, l].wall == 1 || Main.tile[k, l].wall == 28) { Main.tile[k, l].wall = 83; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } } if (Main.tile[k, l].type == 59 && (Main.tile[k - 1, l].type == 199 || Main.tile[k + 1, l].type == 199 || Main.tile[k, l - 1].type == 199 || Main.tile[k, l + 1].type == 199)) { Main.tile[k, l].type = 0; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } if (Main.tile[k, l].type == 2 || Main.tile[k, l].type == 60 || Main.tile[k, l].type == 109 || Main.tile[k, l].type == 23) { Main.tile[k, l].type = 199; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 1 || Main.tile[k, l].type == 25 || Main.tile[k, l].type == 117 || Main.tileMoss[(int)Main.tile[k, l].type]) { Main.tile[k, l].type = 203; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 161 || Main.tile[k, l].type == 163 || Main.tile[k, l].type == 164) { Main.tile[k, l].type = 200; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 53 || Main.tile[k, l].type == 112 || Main.tile[k, l].type == 116) { Main.tile[k, l].type = 234; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 32 || Main.tile[k, l].type == 69) { WorldGen.KillTile(k, l, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)k, (float)l, 0f, 0); } } } } } } } else { if (type == 2) { if (Main.tile[k, l].wall == 63 || Main.tile[k, l].wall == 64 || Main.tile[k, l].wall == 65 || Main.tile[k, l].wall == 66 || Main.tile[k, l].wall == 67 || Main.tile[k, l].wall == 68 || Main.tile[k, l].wall == 69 || Main.tile[k, l].wall == 81) { Main.tile[k, l].wall = 70; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].wall == 3 || Main.tile[k, l].wall == 1 || Main.tile[k, l].wall == 83) { Main.tile[k, l].wall = 28; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } } if (Main.tile[k, l].type == 59) { if (Main.tile[k - 1, l].type == 109 || Main.tile[k + 1, l].type == 109 || Main.tile[k, l - 1].type == 109 || Main.tile[k, l + 1].type == 109) { Main.tile[k, l].type = 0; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } } else { if (Main.tile[k, l].type == 2 || Main.tile[k, l].type == 60 || Main.tile[k, l].type == 199) { Main.tile[k, l].type = 109; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 1 || Main.tileMoss[(int)Main.tile[k, l].type] || Main.tile[k, l].type == 203) { Main.tile[k, l].type = 117; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 53 || Main.tile[k, l].type == 234) { Main.tile[k, l].type = 116; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 23) { Main.tile[k, l].type = 109; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 25) { Main.tile[k, l].type = 117; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 112) { Main.tile[k, l].type = 116; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 161 || Main.tile[k, l].type == 163 || Main.tile[k, l].type == 200) { Main.tile[k, l].type = 164; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 32 || Main.tile[k, l].type == 69) { WorldGen.KillTile(k, l, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)k, (float)l, 0f, 0); } } } } } } } } } } } else { if (type == 1) { if (Main.tile[k, l].wall == 63 || Main.tile[k, l].wall == 64 || Main.tile[k, l].wall == 65 || Main.tile[k, l].wall == 66 || Main.tile[k, l].wall == 67 || Main.tile[k, l].wall == 68 || Main.tile[k, l].wall == 70 || Main.tile[k, l].wall == 81) { Main.tile[k, l].wall = 69; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].wall == 28 || Main.tile[k, l].wall == 1 || Main.tile[k, l].wall == 83) { Main.tile[k, l].wall = 3; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } } if (Main.tile[k, l].type == 59) { if (Main.tile[k - 1, l].type == 23 || Main.tile[k + 1, l].type == 23 || Main.tile[k, l - 1].type == 23 || Main.tile[k, l + 1].type == 23) { Main.tile[k, l].type = 0; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } } else { if (Main.tile[k, l].type == 2 || Main.tile[k, l].type == 60 || Main.tile[k, l].type == 199) { Main.tile[k, l].type = 23; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 1 || Main.tileMoss[(int)Main.tile[k, l].type] || Main.tile[k, l].type == 203) { Main.tile[k, l].type = 25; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 53 || Main.tile[k, l].type == 234) { Main.tile[k, l].type = 112; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 109) { Main.tile[k, l].type = 23; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 117) { Main.tile[k, l].type = 25; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 116) { Main.tile[k, l].type = 112; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 161 || Main.tile[k, l].type == 164 || Main.tile[k, l].type == 200) { Main.tile[k, l].type = 163; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 69) { WorldGen.KillTile(k, l, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)k, (float)l, 0f, 0); } } } } } } } } } } } else { if (type == 3) { if (Main.tile[k, l].wall == 64 || Main.tile[k, l].wall == 15) { Main.tile[k, l].wall = 80; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 3); } if (Main.tile[k, l].type == 60) { Main.tile[k, l].type = 70; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 3); } else { if (Main.tile[k, l].type == 32 || Main.tile[k, l].type == 69) { WorldGen.KillTile(k, l, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)k, (float)l, 0f, 0); } } } } else { if (Main.tile[k, l].wall == 69 || Main.tile[k, l].wall == 70 || Main.tile[k, l].wall == 81) { if ((double)l < Main.worldSurface) { if (Main.rand.Next(10) == 0) { Main.tile[k, l].wall = 65; } else { Main.tile[k, l].wall = 63; } } else { Main.tile[k, l].wall = 64; } WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].wall == 3 || Main.tile[k, l].wall == 28 || Main.tile[k, l].wall == 83) { Main.tile[k, l].wall = 1; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].wall == 80) { if ((double)l < Main.worldSurface + 4.0 + (double)WorldGen.genRand.Next(3) || (double)l > ((double)Main.maxTilesY + Main.rockLayer) / 2.0 - 3.0 + (double)WorldGen.genRand.Next(3)) { Main.tile[k, l].wall = 15; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 3); } else { Main.tile[k, l].wall = 64; WorldGen.SquareWallFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 3); } } } } if (Main.tile[k, l].type == 23 || Main.tile[k, l].type == 109 || Main.tile[k, l].type == 199) { Main.tile[k, l].type = 2; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 117 || Main.tile[k, l].type == 25 || Main.tile[k, l].type == 203) { Main.tile[k, l].type = 1; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 112 || Main.tile[k, l].type == 116 || Main.tile[k, l].type == 234) { Main.tile[k, l].type = 53; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 164 || Main.tile[k, l].type == 163 || Main.tile[k, l].type == 200) { Main.tile[k, l].type = 161; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 70) { Main.tile[k, l].type = 60; WorldGen.SquareTileFrame(k, l, true); NetMessage.SendTileSquare(-1, k, l, 1); } else { if (Main.tile[k, l].type == 32) { WorldGen.KillTile(k, l, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)k, (float)l, 0f, 0); } } } } } } } } } } } } } } } public static void CactusFrame(int i, int j) { try { int num = j; int num2 = i; if (!WorldGen.CheckCactus(i, j)) { while (Main.tile[num2, num].active() && Main.tile[num2, num].type == 80) { num++; if (!Main.tile[num2, num].active() || Main.tile[num2, num].type != 80) { if (Main.tile[num2 - 1, num].active() && Main.tile[num2 - 1, num].type == 80 && Main.tile[num2 - 1, num - 1].active() && Main.tile[num2 - 1, num - 1].type == 80 && num2 >= i) { num2--; } if (Main.tile[num2 + 1, num].active() && Main.tile[num2 + 1, num].type == 80 && Main.tile[num2 + 1, num - 1].active() && Main.tile[num2 + 1, num - 1].type == 80 && num2 <= i) { num2++; } } } num--; int num3 = i - num2; int type = (int)Main.tile[i - 2, j].type; int num4 = (int)Main.tile[i - 1, j].type; int num5 = (int)Main.tile[i + 1, j].type; int num6 = (int)Main.tile[i, j - 1].type; if (num6 == 227) { num6 = 80; } int num7 = (int)Main.tile[i, j + 1].type; int num8 = (int)Main.tile[i - 1, j + 1].type; int num9 = (int)Main.tile[i + 1, j + 1].type; if (!Main.tile[i - 1, j].active()) { num4 = -1; } if (!Main.tile[i + 1, j].active()) { num5 = -1; } if (!Main.tile[i, j - 1].active()) { num6 = -1; } if (!Main.tile[i, j + 1].active()) { num7 = -1; } if (!Main.tile[i - 1, j + 1].active()) { num8 = -1; } if (!Main.tile[i + 1, j + 1].active()) { num9 = -1; } short num10 = Main.tile[i, j].frameX; short num11 = Main.tile[i, j].frameY; if (num3 == 0) { if (num6 != 80) { if (num4 == 80 && num5 == 80 && num8 != 80 && num9 != 80 && type != 80) { num10 = 90; num11 = 0; } else { if (num4 == 80 && num8 != 80 && type != 80) { num10 = 72; num11 = 0; } else { if (num5 == 80 && num9 != 80) { num10 = 18; num11 = 0; } else { num10 = 0; num11 = 0; } } } } else { if (num4 == 80 && num5 == 80 && num8 != 80 && num9 != 80 && type != 80) { num10 = 90; num11 = 36; } else { if (num4 == 80 && num8 != 80 && type != 80) { num10 = 72; num11 = 36; } else { if (num5 == 80 && num9 != 80) { num10 = 18; num11 = 36; } else { if (num7 >= 0 && Main.tileSolid[num7]) { num10 = 0; num11 = 36; } else { num10 = 0; num11 = 18; } } } } } } else { if (num3 == -1) { if (num5 == 80) { if (num6 != 80 && num7 != 80) { num10 = 108; num11 = 36; } else { if (num7 != 80) { num10 = 54; num11 = 36; } else { if (num6 != 80) { num10 = 54; num11 = 0; } else { num10 = 54; num11 = 18; } } } } else { if (num6 != 80) { num10 = 54; num11 = 0; } else { num10 = 54; num11 = 18; } } } else { if (num3 == 1) { if (num4 == 80) { if (num6 != 80 && num7 != 80) { num10 = 108; num11 = 18; } else { if (num7 != 80) { num10 = 36; num11 = 36; } else { if (num6 != 80) { num10 = 36; num11 = 0; } else { num10 = 36; num11 = 18; } } } } else { if (num6 != 80) { num10 = 36; num11 = 0; } else { num10 = 36; num11 = 18; } } } } } if (num10 != Main.tile[i, j].frameX || num11 != Main.tile[i, j].frameY) { Main.tile[i, j].frameX = num10; Main.tile[i, j].frameY = num11; WorldGen.DiamondTileFrame(i, j); } } } catch { Main.tile[i, j].frameX = 0; Main.tile[i, j].frameY = 0; } } public static void GrowCactus(int i, int j) { int num = j; int num2 = i; if (!Main.tile[i, j].nactive()) { return; } if (Main.tile[i, j].halfBrick()) { return; } if (Main.tile[i, j].slope() != 0) { return; } if (Main.tile[i, j - 1].liquid > 0) { return; } if (Main.tile[i, j].type != 53 && Main.tile[i, j].type != 80 && Main.tile[i, j].type != 234 && Main.tile[i, j].type != 112 && Main.tile[i, j].type != 116) { return; } if (Main.tile[i, j].type == 53 || Main.tile[i, j].type == 112 || Main.tile[i, j].type == 116 || Main.tile[i, j].type == 234) { if (Main.tile[i, j - 1].active() || Main.tile[i - 1, j - 1].active() || Main.tile[i + 1, j - 1].active()) { return; } int num3 = 0; int num4 = 0; for (int k = i - 6; k <= i + 6; k++) { for (int l = j - 3; l <= j + 1; l++) { try { if (Main.tile[k, l].active()) { if (Main.tile[k, l].type == 80) { num3++; if (num3 >= 4) { return; } } if (Main.tile[k, l].type == 53 || Main.tile[k, l].type == 112 || Main.tile[k, l].type == 116 || Main.tile[k, l].type == 234) { num4++; } } } catch { } } } if (num4 > 10) { Main.tile[i, j - 1].active(true); Main.tile[i, j - 1].type = 80; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, i, j - 1, 1); } WorldGen.SquareTileFrame(num2, num - 1, true); return; } return; } else { if (Main.tile[i, j].type != 80) { return; } while (Main.tile[num2, num].active() && Main.tile[num2, num].type == 80) { num++; if (!Main.tile[num2, num].active() || Main.tile[num2, num].type != 80) { if (Main.tile[num2 - 1, num].active() && Main.tile[num2 - 1, num].type == 80 && Main.tile[num2 - 1, num - 1].active() && Main.tile[num2 - 1, num - 1].type == 80 && num2 >= i) { num2--; } if (Main.tile[num2 + 1, num].active() && Main.tile[num2 + 1, num].type == 80 && Main.tile[num2 + 1, num - 1].active() && Main.tile[num2 + 1, num - 1].type == 80 && num2 <= i) { num2++; } } } num--; int num5 = num - j; int num6 = i - num2; num2 = i - num6; num = j; int num7 = 11 - num5; int num8 = 0; for (int m = num2 - 2; m <= num2 + 2; m++) { for (int n = num - num7; n <= num + num5; n++) { if (Main.tile[m, n].active() && Main.tile[m, n].type == 80) { num8++; } } } if (num8 < WorldGen.genRand.Next(11, 13)) { num2 = i; num = j; if (num6 == 0) { if (num5 == 0) { if (Main.tile[num2, num - 1].active()) { return; } Main.tile[num2, num - 1].active(true); Main.tile[num2, num - 1].type = 80; WorldGen.SquareTileFrame(num2, num - 1, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num2, num - 1, 1); return; } return; } else { bool flag = false; bool flag2 = false; if (Main.tile[num2, num - 1].active() && Main.tile[num2, num - 1].type == 80) { if (!Main.tile[num2 - 1, num].active() && !Main.tile[num2 - 2, num + 1].active() && !Main.tile[num2 - 1, num - 1].active() && !Main.tile[num2 - 1, num + 1].active() && !Main.tile[num2 - 2, num].active()) { flag = true; } if (!Main.tile[num2 + 1, num].active() && !Main.tile[num2 + 2, num + 1].active() && !Main.tile[num2 + 1, num - 1].active() && !Main.tile[num2 + 1, num + 1].active() && !Main.tile[num2 + 2, num].active()) { flag2 = true; } } int num9 = WorldGen.genRand.Next(3); if (num9 == 0 && flag) { Main.tile[num2 - 1, num].active(true); Main.tile[num2 - 1, num].type = 80; WorldGen.SquareTileFrame(num2 - 1, num, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num2 - 1, num, 1); return; } return; } else { if (num9 == 1 && flag2) { Main.tile[num2 + 1, num].active(true); Main.tile[num2 + 1, num].type = 80; WorldGen.SquareTileFrame(num2 + 1, num, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num2 + 1, num, 1); return; } return; } else { if (num5 >= WorldGen.genRand.Next(2, 8)) { return; } if (Main.tile[num2 - 1, num - 1].active()) { byte arg_6E3_0 = Main.tile[num2 - 1, num - 1].type; } if (Main.tile[num2 + 1, num - 1].active() && Main.tile[num2 + 1, num - 1].type == 80) { return; } if (Main.tile[num2, num - 1].active()) { return; } Main.tile[num2, num - 1].active(true); Main.tile[num2, num - 1].type = 80; WorldGen.SquareTileFrame(num2, num - 1, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num2, num - 1, 1); return; } return; } } } } else { if (Main.tile[num2, num - 1].active() || Main.tile[num2, num - 2].active() || Main.tile[num2 + num6, num - 1].active() || !Main.tile[num2 - num6, num - 1].active() || Main.tile[num2 - num6, num - 1].type != 80) { return; } Main.tile[num2, num - 1].active(true); Main.tile[num2, num - 1].type = 80; WorldGen.SquareTileFrame(num2, num - 1, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num2, num - 1, 1); return; } return; } } } } public static void CheckPot(int i, int j, int type = 28) { if (WorldGen.destroyObject) { return; } bool flag = false; int k = 0; for (k += (int)(Main.tile[i, j].frameX / 18); k > 1; k -= 2) { } k *= -1; k += i; int l = (int)(Main.tile[i, j].frameY / 18); int num = 0; while (l > 1) { l -= 2; num++; } int num2 = j - l; for (int m = k; m < k + 2; m++) { for (int n = num2; n < num2 + 2; n++) { if (Main.tile[m, n] == null) { Main.tile[m, n] = new Tile(); } int num3; for (num3 = (int)(Main.tile[m, n].frameX / 18); num3 > 1; num3 -= 2) { } if (!Main.tile[m, n].active() || (int)Main.tile[m, n].type != type || num3 != m - k || (int)Main.tile[m, n].frameY != (n - num2) * 18 + num * 36) { flag = true; } } if (Main.tile[m, num2 + 2] == null) { Main.tile[m, num2 + 2] = new Tile(); } if (!WorldGen.SolidTile2(m, num2 + 2)) { flag = true; } } if (flag) { WorldGen.destroyObject = true; if (num >= 7 && num <= 9) { Main.PlaySound(6, i * 16, j * 16, 1); } else { if (num >= 16 && num <= 24) { Main.PlaySound(4, i * 16, j * 16, 1); } else { Main.PlaySound(13, i * 16, j * 16, 1); } } for (int num4 = k; num4 < k + 2; num4++) { for (int num5 = num2; num5 < num2 + 2; num5++) { if ((int)Main.tile[num4, num5].type == type && Main.tile[num4, num5].active()) { WorldGen.KillTile(num4, num5, false, false, false); } } } if (num == 0) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 51, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 52, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 53, 1f); } else { if (num == 1) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 166, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 167, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 168, 1f); } else { if (num == 2) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 169, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 170, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 171, 1f); } else { if (num == 3) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 172, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 173, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 174, 1f); } else { if (num >= 4 && num <= 6) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 197, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 198, 1f); } else { if (num >= 7 && num <= 9) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 199, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 200, 1f); } else { if (num >= 10 && num <= 12) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 201, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 202, 1f); } else { if (num >= 13 && num <= 15) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 203, 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), 204, 1f); } else { if (num >= 25 && num <= 27) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), WorldGen.genRand.Next(217, 220), 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), WorldGen.genRand.Next(217, 220), 1f); } else { if (num >= 28 && num <= 30) { Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), WorldGen.genRand.Next(315, 317), 1f); Gore.NewGore(new Vector2((float)(i * 16), (float)(j * 16)), default(Vector2), WorldGen.genRand.Next(315, 317), 1f); } } } } } } } } } } if (WorldGen.genRand.Next(40) == 0 && Main.wallDungeon[(int)Main.tile[i, j].wall]) { Item.NewItem(i * 16, j * 16, 16, 16, 327, 1, false, 0, false); } else { if (WorldGen.genRand.Next(45) == 0) { if ((double)j < Main.worldSurface) { int num6 = WorldGen.genRand.Next(4); if (num6 == 0) { Item.NewItem(i * 16, j * 16, 16, 16, 292, 1, false, 0, false); } if (num6 == 1) { Item.NewItem(i * 16, j * 16, 16, 16, 298, 1, false, 0, false); } if (num6 == 2) { Item.NewItem(i * 16, j * 16, 16, 16, 299, 1, false, 0, false); } if (num6 == 3) { Item.NewItem(i * 16, j * 16, 16, 16, 290, 1, false, 0, false); } } else { if ((double)j < Main.rockLayer) { int num7 = WorldGen.genRand.Next(7); if (num7 == 0) { Item.NewItem(i * 16, j * 16, 16, 16, 289, 1, false, 0, false); } if (num7 == 1) { Item.NewItem(i * 16, j * 16, 16, 16, 298, 1, false, 0, false); } if (num7 == 2) { Item.NewItem(i * 16, j * 16, 16, 16, 299, 1, false, 0, false); } if (num7 == 3) { Item.NewItem(i * 16, j * 16, 16, 16, 290, 1, false, 0, false); } if (num7 == 4) { Item.NewItem(i * 16, j * 16, 16, 16, 303, 1, false, 0, false); } if (num7 == 5) { Item.NewItem(i * 16, j * 16, 16, 16, 291, 1, false, 0, false); } if (num7 == 6) { Item.NewItem(i * 16, j * 16, 16, 16, 304, 1, false, 0, false); } } else { if (j < Main.maxTilesY - 200) { int num8 = WorldGen.genRand.Next(10); if (num8 == 0) { Item.NewItem(i * 16, j * 16, 16, 16, 296, 1, false, 0, false); } if (num8 == 1) { Item.NewItem(i * 16, j * 16, 16, 16, 295, 1, false, 0, false); } if (num8 == 2) { Item.NewItem(i * 16, j * 16, 16, 16, 299, 1, false, 0, false); } if (num8 == 3) { Item.NewItem(i * 16, j * 16, 16, 16, 302, 1, false, 0, false); } if (num8 == 4) { Item.NewItem(i * 16, j * 16, 16, 16, 303, 1, false, 0, false); } if (num8 == 5) { Item.NewItem(i * 16, j * 16, 16, 16, 305, 1, false, 0, false); } if (num8 == 6) { Item.NewItem(i * 16, j * 16, 16, 16, 301, 1, false, 0, false); } if (num8 == 7) { Item.NewItem(i * 16, j * 16, 16, 16, 302, 1, false, 0, false); } if (num8 == 8) { Item.NewItem(i * 16, j * 16, 16, 16, 297, 1, false, 0, false); } if (num8 == 9) { Item.NewItem(i * 16, j * 16, 16, 16, 304, 1, false, 0, false); } } else { int num9 = WorldGen.genRand.Next(12); if (num9 == 0) { Item.NewItem(i * 16, j * 16, 16, 16, 296, 1, false, 0, false); } if (num9 == 1) { Item.NewItem(i * 16, j * 16, 16, 16, 295, 1, false, 0, false); } if (num9 == 2) { Item.NewItem(i * 16, j * 16, 16, 16, 293, 1, false, 0, false); } if (num9 == 3) { Item.NewItem(i * 16, j * 16, 16, 16, 288, 1, false, 0, false); } if (num9 == 4) { Item.NewItem(i * 16, j * 16, 16, 16, 294, 1, false, 0, false); } if (num9 == 5) { Item.NewItem(i * 16, j * 16, 16, 16, 297, 1, false, 0, false); } if (num9 == 6) { Item.NewItem(i * 16, j * 16, 16, 16, 304, 1, false, 0, false); } if (num9 == 7) { Item.NewItem(i * 16, j * 16, 16, 16, 305, 1, false, 0, false); } if (num9 == 8) { Item.NewItem(i * 16, j * 16, 16, 16, 301, 1, false, 0, false); } if (num9 == 9) { Item.NewItem(i * 16, j * 16, 16, 16, 302, 1, false, 0, false); } if (num9 == 10) { Item.NewItem(i * 16, j * 16, 16, 16, 288, 1, false, 0, false); } if (num9 == 11) { Item.NewItem(i * 16, j * 16, 16, 16, 300, 1, false, 0, false); } } } } } else { int num10 = Main.rand.Next(9); if (num10 == 0 && Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].statLife < Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].statLifeMax) { Item.NewItem(i * 16, j * 16, 16, 16, 58, 1, false, 0, false); } else { if (num10 == 1 && Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].statMana < Main.player[(int)Player.FindClosest(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16)].statManaMax) { Item.NewItem(i * 16, j * 16, 16, 16, 184, 1, false, 0, false); } else { if (num10 == 2) { int stack = Main.rand.Next(1, 6); if (Main.tile[i, j].liquid > 0) { Item.NewItem(i * 16, j * 16, 16, 16, 282, stack, false, 0, false); } else { Item.NewItem(i * 16, j * 16, 16, 16, 8, stack, false, 0, false); } } else { if (num10 == 3) { int stack2 = Main.rand.Next(8) + 3; int type2 = 40; if ((double)j < Main.rockLayer && WorldGen.genRand.Next(2) == 0) { if (Main.hardMode) { type2 = 168; } else { type2 = 42; } } if (j > Main.maxTilesY - 200) { type2 = 265; } else { if (Main.hardMode) { if (Main.rand.Next(2) == 0) { type2 = 278; } else { type2 = 47; } } } Item.NewItem(i * 16, j * 16, 16, 16, type2, stack2, false, 0, false); } else { if (num10 == 4) { int type3 = 28; if (j > Main.maxTilesY - 200 || Main.hardMode) { type3 = 188; } Item.NewItem(i * 16, j * 16, 16, 16, type3, 1, false, 0, false); } else { if (num10 == 5 && (double)j > Main.rockLayer) { int stack3 = Main.rand.Next(4) + 1; Item.NewItem(i * 16, j * 16, 16, 16, 166, stack3, false, 0, false); } else { if (num10 == 6 && j < Main.maxTilesY - 200 && !Main.hardMode) { int stack4 = Main.rand.Next(20, 41); Item.NewItem(i * 16, j * 16, 16, 16, 965, stack4, false, 0, false); } else { float num11 = (float)(200 + WorldGen.genRand.Next(-100, 101)); if ((double)j < Main.worldSurface) { num11 *= 0.5f; } else { if ((double)j < Main.rockLayer) { num11 *= 0.75f; } else { if (j > Main.maxTilesY - 250) { num11 *= 1.25f; } } } num11 *= 1f + (float)Main.rand.Next(-20, 21) * 0.01f; if (Main.rand.Next(5) == 0) { num11 *= 1f + (float)Main.rand.Next(5, 11) * 0.01f; } if (Main.rand.Next(10) == 0) { num11 *= 1f + (float)Main.rand.Next(10, 21) * 0.01f; } if (Main.rand.Next(15) == 0) { num11 *= 1f + (float)Main.rand.Next(20, 41) * 0.01f; } if (Main.rand.Next(20) == 0) { num11 *= 1f + (float)Main.rand.Next(40, 81) * 0.01f; } if (Main.rand.Next(25) == 0) { num11 *= 1f + (float)Main.rand.Next(50, 101) * 0.01f; } while ((int)num11 > 0) { if (num11 > 1000000f) { int num12 = (int)(num11 / 1000000f); if (num12 > 50 && Main.rand.Next(2) == 0) { num12 /= Main.rand.Next(3) + 1; } if (Main.rand.Next(2) == 0) { num12 /= Main.rand.Next(3) + 1; } num11 -= (float)(1000000 * num12); Item.NewItem(i * 16, j * 16, 16, 16, 74, num12, false, 0, false); } else { if (num11 > 10000f) { int num13 = (int)(num11 / 10000f); if (num13 > 50 && Main.rand.Next(2) == 0) { num13 /= Main.rand.Next(3) + 1; } if (Main.rand.Next(2) == 0) { num13 /= Main.rand.Next(3) + 1; } num11 -= (float)(10000 * num13); Item.NewItem(i * 16, j * 16, 16, 16, 73, num13, false, 0, false); } else { if (num11 > 100f) { int num14 = (int)(num11 / 100f); if (num14 > 50 && Main.rand.Next(2) == 0) { num14 /= Main.rand.Next(3) + 1; } if (Main.rand.Next(2) == 0) { num14 /= Main.rand.Next(3) + 1; } num11 -= (float)(100 * num14); Item.NewItem(i * 16, j * 16, 16, 16, 72, num14, false, 0, false); } else { int num15 = (int)num11; if (num15 > 50 && Main.rand.Next(2) == 0) { num15 /= Main.rand.Next(3) + 1; } if (Main.rand.Next(2) == 0) { num15 /= Main.rand.Next(4) + 1; } if (num15 < 1) { num15 = 1; } num11 -= (float)num15; Item.NewItem(i * 16, j * 16, 16, 16, 71, num15, false, 0, false); } } } } } } } } } } } } } WorldGen.destroyObject = false; } } public static int PlaceChest(int x, int y, int type = 21, bool notNearOtherChests = false, int style = 0) { bool flag = true; int num = -1; for (int i = x; i < x + 2; i++) { for (int j = y - 1; j < y + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].active()) { flag = false; } if (Main.tile[i, j].lava()) { flag = false; } } if (Main.tile[i, y + 1] == null) { Main.tile[i, y + 1] = new Tile(); } if (!WorldGen.SolidTile2(i, y + 1)) { flag = false; } } if (flag && notNearOtherChests) { for (int k = x - 25; k < x + 25; k++) { for (int l = y - 8; l < y + 8; l++) { try { if (Main.tile[k, l].active() && Main.tile[k, l].type == 21) { flag = false; return -1; } } catch { } } } } if (flag) { num = Chest.CreateChest(x, y - 1); if (num == -1) { flag = false; } } if (flag) { Main.tile[x, y - 1].active(true); Main.tile[x, y - 1].frameY = 0; Main.tile[x, y - 1].frameX = (short)(36 * style); Main.tile[x, y - 1].type = (byte)type; Main.tile[x, y - 1].halfBrick(false); Main.tile[x + 1, y - 1].active(true); Main.tile[x + 1, y - 1].frameY = 0; Main.tile[x + 1, y - 1].frameX = (short)(18 + 36 * style); Main.tile[x + 1, y - 1].type = (byte)type; Main.tile[x + 1, y - 1].halfBrick(false); Main.tile[x, y].active(true); Main.tile[x, y].frameY = 18; Main.tile[x, y].frameX = (short)(36 * style); Main.tile[x, y].type = (byte)type; Main.tile[x, y].halfBrick(false); Main.tile[x + 1, y].active(true); Main.tile[x + 1, y].frameY = 18; Main.tile[x + 1, y].frameX = (short)(18 + 36 * style); Main.tile[x + 1, y].type = (byte)type; Main.tile[x + 1, y].halfBrick(false); } return num; } public static void CheckChest(int i, int j, int type) { if (WorldGen.destroyObject) { return; } bool flag = false; int k = 0; k += (int)(Main.tile[i, j].frameX / 18); int num = j + (int)(Main.tile[i, j].frameY / 18 * -1); while (k > 1) { k -= 2; } k *= -1; k += i; for (int l = k; l < k + 2; l++) { for (int m = num; m < num + 2; m++) { if (Main.tile[l, m] == null) { Main.tile[l, m] = new Tile(); } int n; for (n = (int)(Main.tile[l, m].frameX / 18); n > 1; n -= 2) { } if (!Main.tile[l, m].active() || (int)Main.tile[l, m].type != type || n != l - k || (int)Main.tile[l, m].frameY != (m - num) * 18) { flag = true; } } if (Main.tile[l, num + 2] == null) { Main.tile[l, num + 2] = new Tile(); } if (!Main.tile[l, num + 2].active() || !Main.tileSolid[(int)Main.tile[l, num + 2].type]) { flag = true; } } if (flag) { int type2 = 48; if (Main.tile[i, j].frameX >= 792) { type2 = 1532; } else { if (Main.tile[i, j].frameX >= 756) { type2 = 1531; } else { if (Main.tile[i, j].frameX >= 720) { type2 = 1530; } else { if (Main.tile[i, j].frameX >= 684) { type2 = 1529; } else { if (Main.tile[i, j].frameX >= 648) { type2 = 1528; } else { if (Main.tile[i, j].frameX >= 612) { type2 = 1298; } else { if (Main.tile[i, j].frameX >= 576) { type2 = 1142; } else { if (Main.tile[i, j].frameX >= 540) { type2 = 952; } else { if (Main.tile[i, j].frameX >= 504) { type2 = 914; } else { if (Main.tile[i, j].frameX >= 468) { type2 = 838; } else { if (Main.tile[i, j].frameX >= 432) { type2 = 831; } else { if (Main.tile[i, j].frameX >= 396) { type2 = 681; } else { if (Main.tile[i, j].frameX >= 360) { type2 = 680; } else { if (Main.tile[i, j].frameX >= 324) { type2 = 627; } else { if (Main.tile[i, j].frameX >= 288) { type2 = 626; } else { if (Main.tile[i, j].frameX >= 252) { type2 = 625; } else { if (Main.tile[i, j].frameX >= 216) { type2 = 348; } else { if (Main.tile[i, j].frameX >= 180) { type2 = 343; } else { if (Main.tile[i, j].frameX >= 108) { type2 = 328; } else { if (Main.tile[i, j].frameX >= 36) { type2 = 306; } } } } } } } } } } } } } } } } } } } } WorldGen.destroyObject = true; for (int num2 = k; num2 < k + 2; num2++) { for (int num3 = num; num3 < num + 3; num3++) { if ((int)Main.tile[num2, num3].type == type && Main.tile[num2, num3].active()) { Chest.DestroyChest(num2, num3); WorldGen.KillTile(num2, num3, false, false, false); } } } Item.NewItem(i * 16, j * 16, 32, 32, type2, 1, false, 0, false); WorldGen.destroyObject = false; } } public static bool PlaceActuator(int i, int j) { if (!Main.tile[i, j].actuator()) { Main.PlaySound(0, i * 16, j * 16, 1); Main.tile[i, j].actuator(true); return true; } return false; } public static bool KillActuator(int i, int j) { if (Main.tile[i, j].actuator()) { Main.PlaySound(0, i * 16, j * 16, 1); Main.tile[i, j].actuator(false); if (Main.netMode != 1) { Item.NewItem(i * 16, j * 16, 16, 16, 849, 1, false, 0, false); } for (int k = 0; k < 5; k++) { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, 50, 0f, 0f, 0, default(Color), 1f); } return true; } return false; } public static bool PlaceWire(int i, int j) { if (!Main.tile[i, j].wire()) { Main.PlaySound(0, i * 16, j * 16, 1); Main.tile[i, j].wire(true); return true; } return false; } public static bool KillWire(int i, int j) { if (Main.tile[i, j].wire()) { Main.PlaySound(0, i * 16, j * 16, 1); Main.tile[i, j].wire(false); if (Main.netMode != 1) { Item.NewItem(i * 16, j * 16, 16, 16, 530, 1, false, 0, false); } for (int k = 0; k < 5; k++) { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, 50, 0f, 0f, 0, default(Color), 1f); } return true; } return false; } public static bool PlaceWire2(int i, int j) { if (!Main.tile[i, j].wire2()) { Main.PlaySound(0, i * 16, j * 16, 1); Main.tile[i, j].wire2(true); return true; } return false; } public static bool KillWire2(int i, int j) { if (Main.tile[i, j].wire2()) { Main.PlaySound(0, i * 16, j * 16, 1); Main.tile[i, j].wire2(false); if (Main.netMode != 1) { Item.NewItem(i * 16, j * 16, 16, 16, 530, 1, false, 0, false); } for (int k = 0; k < 5; k++) { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, 50, 0f, 0f, 0, default(Color), 1f); } return true; } return false; } public static bool PlaceWire3(int i, int j) { if (!Main.tile[i, j].wire3()) { Main.PlaySound(0, i * 16, j * 16, 1); Main.tile[i, j].wire3(true); return true; } return false; } public static bool KillWire3(int i, int j) { if (Main.tile[i, j].wire3()) { Main.PlaySound(0, i * 16, j * 16, 1); Main.tile[i, j].wire3(false); if (Main.netMode != 1) { Item.NewItem(i * 16, j * 16, 16, 16, 530, 1, false, 0, false); } for (int k = 0; k < 5; k++) { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, 50, 0f, 0f, 0, default(Color), 1f); } return true; } return false; } public static bool PlaceTile(int i, int j, int type, bool mute = false, bool forced = false, int plr = -1, int style = 0) { if (type >= 251) { return false; } bool result = false; if (i >= 0 && j >= 0 && i < Main.maxTilesX && j < Main.maxTilesY) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (forced || Collision.EmptyTile(i, j, false) || !Main.tileSolid[type] || (type == 23 && Main.tile[i, j].type == 0 && Main.tile[i, j].active()) || (type == 2 && Main.tile[i, j].type == 0 && Main.tile[i, j].active()) || (type == 109 && Main.tile[i, j].type == 0 && Main.tile[i, j].active()) || (type == 60 && Main.tile[i, j].type == 59 && Main.tile[i, j].active()) || (type == 70 && Main.tile[i, j].type == 59 && Main.tile[i, j].active())) { if (type == 23 && (Main.tile[i, j].type != 0 || !Main.tile[i, j].active())) { return false; } if (type == 2 && (Main.tile[i, j].type != 0 || !Main.tile[i, j].active())) { return false; } if (type == 109 && (Main.tile[i, j].type != 0 || !Main.tile[i, j].active())) { return false; } if (type == 60 && (Main.tile[i, j].type != 59 || !Main.tile[i, j].active())) { return false; } if (type == 81) { if (Main.tile[i - 1, j] == null) { Main.tile[i - 1, j] = new Tile(); } if (Main.tile[i + 1, j] == null) { Main.tile[i + 1, j] = new Tile(); } if (Main.tile[i, j - 1] == null) { Main.tile[i, j - 1] = new Tile(); } if (Main.tile[i, j + 1] == null) { Main.tile[i, j + 1] = new Tile(); } if (Main.tile[i - 1, j].active() || Main.tile[i + 1, j].active() || Main.tile[i, j - 1].active()) { return false; } if (!Main.tile[i, j + 1].active() || !Main.tileSolid[(int)Main.tile[i, j + 1].type] || Main.tile[i, j + 1].halfBrick() || Main.tile[i, j + 1].slope() != 0) { return false; } } if (Main.tile[i, j].liquid > 0) { if (type == 4) { if (style != 8 && style != 11) { return false; } } else { if (type == 3 || type == 4 || type == 20 || type == 24 || type == 27 || type == 32 || type == 51 || type == 69 || type == 72 || type == 201) { return false; } } } Main.tile[i, j].halfBrick(false); Main.tile[i, j].frameY = 0; Main.tile[i, j].frameX = 0; if (type == 3 || type == 24 || type == 110 || type == 201) { if (j + 1 < Main.maxTilesY && Main.tile[i, j + 1].active() && Main.tile[i, j + 1].slope() == 0 && !Main.tile[i, j + 1].halfBrick() && ((Main.tile[i, j + 1].type == 2 && type == 3) || (Main.tile[i, j + 1].type == 23 && type == 24) || (Main.tile[i, j + 1].type == 199 && type == 201) || (Main.tile[i, j + 1].type == 78 && type == 3) || (Main.tile[i, j + 1].type == 109 && type == 110))) { if (type == 24 && WorldGen.genRand.Next(13) == 0) { Main.tile[i, j].active(true); Main.tile[i, j].type = 32; WorldGen.SquareTileFrame(i, j, true); } else { if (Main.tile[i, j + 1].type == 78) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(2) * 18 + 108); } else { if ((Main.tile[i, j].wall == 0 || Main.tile[i, j].wall == 106 || Main.tile[i, j].wall == 107 || (Main.tile[i, j].wall >= 63 && Main.tile[i, j].wall <= 70)) && (Main.tile[i, j + 1].wall == 0 || Main.tile[i, j + 1].wall == 106 || Main.tile[i, j + 1].wall == 107 || (Main.tile[i, j + 1].wall >= 63 && Main.tile[i, j + 1].wall <= 70))) { if (type == 3 && WorldGen.genRand.Next(35) == 0) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(2) * 18 + 162); } else { if (WorldGen.genRand.Next(50) == 0 || (type == 24 && WorldGen.genRand.Next(40) == 0)) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = 144; } else { if (WorldGen.genRand.Next(35) == 0) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(2) * 18 + 108); } else { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(6) * 18); } } } } } } } } else { if (type == 61) { if (j + 1 < Main.maxTilesY && Main.tile[i, j + 1].active() && Main.tile[i, j + 1].slope() == 0 && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].type == 60) { if (WorldGen.genRand.Next(16) == 0 && (double)j > Main.worldSurface) { Main.tile[i, j].active(true); Main.tile[i, j].type = 69; WorldGen.SquareTileFrame(i, j, true); } else { if (WorldGen.genRand.Next(60) == 0 && (double)j > Main.rockLayer) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = 144; } else { if (WorldGen.genRand.Next(400) == 0 && (double)j > Main.rockLayer) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = 162; } else { if (WorldGen.genRand.Next(15) == 0) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(2) * 18 + 108); } else { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(6) * 18); } } } } } } else { if (type == 71) { if (j + 1 < Main.maxTilesY && Main.tile[i, j + 1].active() && Main.tile[i, j + 1].slope() == 0 && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].type == 70) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(5) * 18); } } else { if (type == 129) { if (WorldGen.SolidTile(i - 1, j) || WorldGen.SolidTile(i + 1, j) || WorldGen.SolidTile(i, j - 1) || WorldGen.SolidTile(i, j + 1)) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(WorldGen.genRand.Next(8) * 18); WorldGen.SquareTileFrame(i, j, true); } } else { if (type == 178) { if (WorldGen.SolidTile(i - 1, j) || WorldGen.SolidTile(i + 1, j) || WorldGen.SolidTile(i, j - 1) || WorldGen.SolidTile(i, j + 1)) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(style * 18); Main.tile[i, j].frameY = (short)(WorldGen.genRand.Next(3) * 18); WorldGen.SquareTileFrame(i, j, true); } } else { if (type == 184) { if ((Main.tileMoss[(int)Main.tile[i - 1, j].type] && WorldGen.SolidTile(i - 1, j)) || (Main.tileMoss[(int)Main.tile[i + 1, j].type] && WorldGen.SolidTile(i + 1, j)) || (Main.tileMoss[(int)Main.tile[i, j - 1].type] && WorldGen.SolidTile(i, j - 1)) || (Main.tileMoss[(int)Main.tile[i, j + 1].type] && WorldGen.SolidTile(i, j + 1))) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameX = (short)(style * 18); Main.tile[i, j].frameY = (short)(WorldGen.genRand.Next(3) * 18); WorldGen.SquareTileFrame(i, j, true); } } else { if (type == 132 || type == 138 || type == 142 || type == 143) { WorldGen.Place2x2(i, j, type); } else { if (type == 137) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameY = (short)(18 * style); } else { if (type == 136) { if (Main.tile[i - 1, j] == null) { Main.tile[i - 1, j] = new Tile(); } if (Main.tile[i + 1, j] == null) { Main.tile[i + 1, j] = new Tile(); } if (Main.tile[i, j + 1] == null) { Main.tile[i, j + 1] = new Tile(); } if ((Main.tile[i - 1, j].nactive() && !Main.tile[i - 1, j].halfBrick() && Main.tile[i - 1, j].type != 10 && Main.tile[i - 1, j].slope() == 0 && (WorldGen.SolidTile(i - 1, j) || Main.tile[i - 1, j].type == 124 || (Main.tile[i - 1, j].type == 5 && Main.tile[i - 1, j - 1].type == 5 && Main.tile[i - 1, j + 1].type == 5))) || (Main.tile[i + 1, j].nactive() && !Main.tile[i + 1, j].halfBrick() && Main.tile[i + 1, j].type != 10 && Main.tile[i + 1, j].slope() == 0 && (WorldGen.SolidTile(i + 1, j) || Main.tile[i + 1, j].type == 124 || (Main.tile[i + 1, j].type == 5 && Main.tile[i + 1, j - 1].type == 5 && Main.tile[i + 1, j + 1].type == 5))) || (Main.tile[i, j + 1].nactive() && !Main.tile[i, j + 1].halfBrick() && WorldGen.SolidTile(i, j + 1) && Main.tile[i, j + 1].slope() == 0)) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; WorldGen.SquareTileFrame(i, j, true); } } else { if (type == 4) { if (Main.tile[i - 1, j] == null) { Main.tile[i - 1, j] = new Tile(); } if (Main.tile[i + 1, j] == null) { Main.tile[i + 1, j] = new Tile(); } if (Main.tile[i, j + 1] == null) { Main.tile[i, j + 1] = new Tile(); } if (Main.tile[i, j].wall > 0 || (Main.tile[i - 1, j].active() && Main.tile[i - 1, j].slope() == 0 && (Main.tileSolid[(int)Main.tile[i - 1, j].type] || Main.tile[i - 1, j].type == 124 || (Main.tile[i - 1, j].type == 5 && Main.tile[i - 1, j - 1].type == 5 && Main.tile[i - 1, j + 1].type == 5))) || (Main.tile[i + 1, j].active() && Main.tile[i + 1, j].slope() == 0 && (Main.tileSolid[(int)Main.tile[i + 1, j].type] || Main.tile[i + 1, j].type == 124 || (Main.tile[i + 1, j].type == 5 && Main.tile[i + 1, j - 1].type == 5 && Main.tile[i + 1, j + 1].type == 5))) || (Main.tile[i, j + 1].active() && Main.tileSolid[(int)Main.tile[i, j + 1].type] && !Main.tileSolidTop[(int)Main.tile[i, j + 1].type] && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].slope() == 0)) { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; Main.tile[i, j].frameY = (short)(22 * style); WorldGen.SquareTileFrame(i, j, true); } } else { if (type == 10) { if (Main.tile[i, j - 1] == null) { Main.tile[i, j - 1] = new Tile(); } if (Main.tile[i, j - 2] == null) { Main.tile[i, j - 2] = new Tile(); } if (Main.tile[i, j - 3] == null) { Main.tile[i, j - 3] = new Tile(); } if (Main.tile[i, j + 1] == null) { Main.tile[i, j + 1] = new Tile(); } if (Main.tile[i, j + 2] == null) { Main.tile[i, j + 2] = new Tile(); } if (Main.tile[i, j + 3] == null) { Main.tile[i, j + 3] = new Tile(); } if (!Main.tile[i, j - 1].active() && !Main.tile[i, j - 2].active() && Main.tile[i, j - 3].active() && Main.tileSolid[(int)Main.tile[i, j - 3].type]) { WorldGen.PlaceDoor(i, j - 1, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (Main.tile[i, j + 1].active() || Main.tile[i, j + 2].active() || !Main.tile[i, j + 3].active() || !Main.tileSolid[(int)Main.tile[i, j + 3].type]) { return false; } WorldGen.PlaceDoor(i, j + 1, type, style); WorldGen.SquareTileFrame(i, j, true); } } else { if (type == 237 || type == 244) { WorldGen.Place3x2(i, j, type, 0); } else { if (type == 128) { WorldGen.PlaceMan(i, j, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 149) { if (WorldGen.SolidTile(i - 1, j) || WorldGen.SolidTile(i + 1, j) || WorldGen.SolidTile(i, j - 1) || WorldGen.SolidTile(i, j + 1)) { Main.tile[i, j].frameX = (short)(18 * style); Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; WorldGen.SquareTileFrame(i, j, true); } } else { if (type == 139) { WorldGen.PlaceMB(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 165) { WorldGen.PlaceTight(i, j, type, false); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 235) { WorldGen.Place3x1(i, j, type, 0); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 240) { WorldGen.Place3x3Wall(i, j, type, style); } else { if (type == 245) { WorldGen.Place2x3Wall(i, j, type, style); } else { if (type == 246) { WorldGen.Place3x2Wall(i, j, type, style); } else { if (type == 241) { WorldGen.Place4x3Wall(i, j, type, style); } else { if (type == 242) { WorldGen.Place6x4Wall(i, j, type, style); } else { if (type == 34 || type == 35 || type == 36 || type == 106 || type == 170 || type == 171 || type == 172 || type == 212 || type == 219 || type == 220 || type == 228 || type == 231 || type == 243 || type == 247) { WorldGen.Place3x3(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 13 || type == 33 || type == 49 || type == 50 || type == 78 || type == 174) { WorldGen.PlaceOnTable1x1(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 14 || type == 26 || type == 86 || type == 87 || type == 88 || type == 89 || type == 114 || type == 186 || type == 187 || type == 215 || type == 217 || type == 218) { WorldGen.Place3x2(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 236) { WorldGen.PlaceJunglePlant(i, j, type, WorldGen.genRand.Next(3), 0); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 238) { WorldGen.PlaceJunglePlant(i, j, type, 0, 0); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 20) { if (Main.tile[i, j + 1] == null) { Main.tile[i, j + 1] = new Tile(); } if (Main.tile[i, j + 1].active() && (Main.tile[i, j + 1].type == 2 || Main.tile[i, j + 1].type == 109 || Main.tile[i, j + 1].type == 147)) { WorldGen.Place1x2(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } } else { if (type == 15 || type == 216) { if (Main.tile[i, j - 1] == null) { Main.tile[i, j - 1] = new Tile(); } if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } WorldGen.Place1x2(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 227) { WorldGen.PlaceDye(i, j, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 16 || type == 18 || type == 29 || type == 103 || type == 134) { WorldGen.Place2x1(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 92 || type == 93) { WorldGen.Place1xX(i, j, type, 0); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 104 || type == 105) { WorldGen.Place2xX(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 17 || type == 77 || type == 133) { WorldGen.Place3x2(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 207) { WorldGen.Place2xX(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 21) { WorldGen.PlaceChest(i, j, type, false, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 91) { WorldGen.PlaceBanner(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 135 || type == 141 || type == 144 || type == 210 || type == 239) { WorldGen.Place1x1(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 101 || type == 102) { WorldGen.Place3x4(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 27) { WorldGen.PlaceSunflower(i, j, 27); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 28) { WorldGen.PlacePot(i, j, 28, Main.rand.Next(4)); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 42) { WorldGen.Place1x2Top(i, j, type, style); WorldGen.SquareTileFrame(i, j, true); } else { if (type == 55 || type == 85) { WorldGen.PlaceSign(i, j, type, style); } else { if (Main.tileAlch[type]) { WorldGen.PlaceAlch(i, j, style); } else { if (type == 94 || type == 95 || type == 96 || type == 97 || type == 98 || type == 99 || type == 100 || type == 125 || type == 126 || type == 173) { WorldGen.Place2x2(i, j, type); } else { if (type == 79 || type == 90) { int direction = 1; if (plr > -1) { direction = Main.player[plr].direction; } WorldGen.Place4x2(i, j, type, direction, style); } else { if (type == 209) { WorldGen.PlaceCannon(i, j, type, style); } else { if (type == 81) { Main.tile[i, j].frameX = (short)(26 * WorldGen.genRand.Next(6)); Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; } else { if (type == 19) { Main.tile[i, j].frameY = (short)(18 * style); Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; } else { Main.tile[i, j].active(true); Main.tile[i, j].type = (byte)type; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } if (Main.tile[i, j].active() && !mute) { WorldGen.SquareTileFrame(i, j, true); result = true; if (type == 127) { Main.PlaySound(2, i * 16, j * 16, 30); } else { Main.PlaySound(0, i * 16, j * 16, 1); } if (type == 22 || type == 140) { for (int k = 0; k < 3; k++) { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, 14, 0f, 0f, 0, default(Color), 1f); } } } } } return result; } public static void UpdateMech() { for (int i = WorldGen.numMechs - 1; i >= 0; i--) { WorldGen.mechTime[i]--; if (Main.tile[WorldGen.mechX[i], WorldGen.mechY[i]].active() && Main.tile[WorldGen.mechX[i], WorldGen.mechY[i]].type == 144) { if (Main.tile[WorldGen.mechX[i], WorldGen.mechY[i]].frameY == 0) { WorldGen.mechTime[i] = 0; } else { int num = (int)(Main.tile[WorldGen.mechX[i], WorldGen.mechY[i]].frameX / 18); if (num == 0) { num = 60; } else { if (num == 1) { num = 180; } else { if (num == 2) { num = 300; } } } if (Math.IEEERemainder((double)WorldGen.mechTime[i], (double)num) == 0.0) { WorldGen.mechTime[i] = 18000; WorldGen.TripWire(WorldGen.mechX[i], WorldGen.mechY[i]); } } } if (WorldGen.mechTime[i] <= 0) { if (Main.tile[WorldGen.mechX[i], WorldGen.mechY[i]].active() && Main.tile[WorldGen.mechX[i], WorldGen.mechY[i]].type == 144) { Main.tile[WorldGen.mechX[i], WorldGen.mechY[i]].frameY = 0; NetMessage.SendTileSquare(-1, WorldGen.mechX[i], WorldGen.mechY[i], 1); } for (int j = i; j < WorldGen.numMechs; j++) { WorldGen.mechX[j] = WorldGen.mechX[j + 1]; WorldGen.mechY[j] = WorldGen.mechY[j + 1]; WorldGen.mechTime[j] = WorldGen.mechTime[j + 1]; } WorldGen.numMechs--; } } } public static bool checkMech(int i, int j, int time) { for (int k = 0; k < WorldGen.numMechs; k++) { if (WorldGen.mechX[k] == i && WorldGen.mechY[k] == j) { return false; } } if (WorldGen.numMechs < WorldGen.maxMech - 1) { WorldGen.mechX[WorldGen.numMechs] = i; WorldGen.mechY[WorldGen.numMechs] = j; WorldGen.mechTime[WorldGen.numMechs] = time; WorldGen.numMechs++; return true; } return false; } public static void Teleport() { if (WorldGen.teleport[0].X < WorldGen.teleport[1].X + 3f && WorldGen.teleport[0].X > WorldGen.teleport[1].X - 3f && WorldGen.teleport[0].Y > WorldGen.teleport[1].Y - 3f && WorldGen.teleport[0].Y < WorldGen.teleport[1].Y) { return; } Rectangle[] array = new Rectangle[2]; array[0].X = (int)(WorldGen.teleport[0].X * 16f); array[0].Width = 48; array[0].Height = 48; array[0].Y = (int)(WorldGen.teleport[0].Y * 16f - (float)array[0].Height); array[1].X = (int)(WorldGen.teleport[1].X * 16f); array[1].Width = 48; array[1].Height = 48; array[1].Y = (int)(WorldGen.teleport[1].Y * 16f - (float)array[1].Height); for (int i = 0; i < 2; i++) { Vector2 value = new Vector2((float)(array[1].X - array[0].X), (float)(array[1].Y - array[0].Y)); if (i == 1) { value = new Vector2((float)(array[0].X - array[1].X), (float)(array[0].Y - array[1].Y)); } for (int j = 0; j < 255; j++) { if (Main.player[j].active && !Main.player[j].dead && !Main.player[j].teleporting && array[i].Intersects(Main.player[j].getRect())) { Vector2 vector = Main.player[j].position + value; Main.player[j].teleporting = true; if (Main.netMode == 2) { ServerSock.CheckSection(j, vector); } Main.player[j].Teleport(vector, 0); if (Main.netMode == 2) { NetMessage.SendData(65, -1, -1, "", 0, (float)j, vector.X, vector.Y, 0); } } } for (int k = 0; k < 200; k++) { if (Main.npc[k].active && !Main.npc[k].teleporting && Main.npc[k].lifeMax > 5 && !Main.npc[k].boss && !Main.npc[k].noTileCollide && array[i].Intersects(Main.npc[k].getRect())) { Main.npc[k].teleporting = true; Main.npc[k].Teleport(Main.npc[k].position + value, 0); } } } for (int l = 0; l < 255; l++) { Main.player[l].teleporting = false; } for (int m = 0; m < 200; m++) { Main.npc[m].teleporting = false; } } public static void hitSwitch(int i, int j) { if (Main.tile[i, j] == null) { return; } if (Main.tile[i, j].type == 135) { Main.PlaySound(28, i * 16, j * 16, 0); WorldGen.TripWire(i, j); return; } if (Main.tile[i, j].type == 136) { if (Main.tile[i, j].frameY == 0) { Main.tile[i, j].frameY = 18; } else { Main.tile[i, j].frameY = 0; } Main.PlaySound(28, i * 16, j * 16, 0); WorldGen.TripWire(i, j); return; } if (Main.tile[i, j].type == 144) { if (Main.tile[i, j].frameY == 0) { Main.tile[i, j].frameY = 18; if (Main.netMode != 1) { WorldGen.checkMech(i, j, 18000); } } else { Main.tile[i, j].frameY = 0; } Main.PlaySound(28, i * 16, j * 16, 0); return; } if (Main.tile[i, j].type == 132) { short num = 36; int num2 = (int)(Main.tile[i, j].frameX / 18 * -1); int num3 = (int)(Main.tile[i, j].frameY / 18 * -1); if (num2 < -1) { num2 += 2; num = -36; } num2 += i; num3 += j; for (int k = num2; k < num2 + 2; k++) { for (int l = num3; l < num3 + 2; l++) { if (Main.tile[k, l].type == 132) { Tile expr_1B3 = Main.tile[k, l]; expr_1B3.frameX += num; } } } WorldGen.TileFrame(num2, num3, false, false); Main.PlaySound(28, i * 16, j * 16, 0); for (int m = num2; m < num2 + 2; m++) { for (int n = num3; n < num3 + 2; n++) { if (Main.tile[m, n].type == 132 && Main.tile[m, n].active() && (Main.tile[m, n].wire() || Main.tile[m, n].wire2() || Main.tile[m, n].wire3())) { WorldGen.TripWire(m, n); return; } } } } } public static void TripWire(int i, int j) { if (Main.netMode == 1) { return; } WorldGen.teleport[0].X = -1f; WorldGen.teleport[0].Y = -1f; WorldGen.teleport[1].X = -1f; WorldGen.teleport[1].Y = -1f; WorldGen.numWire = 0; WorldGen.numNoWire = 0; WorldGen.numInPump = 0; WorldGen.numOutPump = 0; WorldGen.noWire(i, j); WorldGen.hitWire(i, j, 1); if (WorldGen.numInPump > 0 && WorldGen.numOutPump > 0) { WorldGen.xferWater(); } WorldGen.numWire = 0; WorldGen.numNoWire = 0; WorldGen.numInPump = 0; WorldGen.numOutPump = 0; WorldGen.noWire(i, j); WorldGen.hitWire(i, j, 2); if (WorldGen.numInPump > 0 && WorldGen.numOutPump > 0) { WorldGen.xferWater(); } WorldGen.numWire = 0; WorldGen.numNoWire = 0; WorldGen.numInPump = 0; WorldGen.numOutPump = 0; WorldGen.noWire(i, j); WorldGen.hitWire(i, j, 3); if (WorldGen.numInPump > 0 && WorldGen.numOutPump > 0) { WorldGen.xferWater(); } if (WorldGen.teleport[0].X >= 0f && WorldGen.teleport[1].X >= 0f) { WorldGen.Teleport(); } } public static void xferWater() { for (int i = 0; i < WorldGen.numInPump; i++) { int num = WorldGen.inPumpX[i]; int num2 = WorldGen.inPumpY[i]; int liquid = (int)Main.tile[num, num2].liquid; if (liquid > 0) { bool flag = Main.tile[num, num2].lava(); bool flag2 = Main.tile[num, num2].honey(); for (int j = 0; j < WorldGen.numOutPump; j++) { int num3 = WorldGen.outPumpX[j]; int num4 = WorldGen.outPumpY[j]; int liquid2 = (int)Main.tile[num3, num4].liquid; if (liquid2 < 255) { bool flag3 = Main.tile[num3, num4].lava(); bool flag4 = Main.tile[num3, num4].honey(); if (liquid2 == 0) { flag3 = flag; flag4 = flag2; } if (flag == flag3 && flag2 == flag4) { int num5 = liquid; if (num5 + liquid2 > 255) { num5 = 255 - liquid2; } Tile expr_102 = Main.tile[num3, num4]; expr_102.liquid += (byte)num5; Tile expr_11E = Main.tile[num, num2]; expr_11E.liquid -= (byte)num5; liquid = (int)Main.tile[num, num2].liquid; Main.tile[num3, num4].lava(flag); Main.tile[num3, num4].honey(flag2); WorldGen.SquareTileFrame(num3, num4, true); if (Main.tile[num, num2].liquid == 0) { Main.tile[num, num2].lava(false); WorldGen.SquareTileFrame(num, num2, true); break; } } } } WorldGen.SquareTileFrame(num, num2, true); } } } public static void noWire(int i, int j) { if (WorldGen.numNoWire >= WorldGen.maxWire - 1) { return; } WorldGen.noWireX[WorldGen.numNoWire] = i; WorldGen.noWireY[WorldGen.numNoWire] = j; WorldGen.numNoWire++; } public static bool DeActive(int i, int j) { if (!Main.tile[i, j].active() || !Main.tileSolid[(int)Main.tile[i, j].type]) { return false; } if (Main.tile[i, j - 1].active() && (Main.tile[i, j - 1].type == 5 || Main.tile[i, j - 1].type == 21 || Main.tile[i, j - 1].type == 26 || Main.tile[i, j - 1].type == 77 || Main.tile[i, j - 1].type == 72)) { return false; } Main.tile[i, j].inActive(true); WorldGen.SquareTileFrame(i, j, false); if (Main.netMode != 1) { NetMessage.SendTileSquare(-1, i, j, 1); } return true; } public static bool ReActive(int i, int j) { Main.tile[i, j].inActive(false); WorldGen.SquareTileFrame(i, j, false); if (Main.netMode != 1) { NetMessage.SendTileSquare(-1, i, j, 1); } return true; } public static void hitWire(int i, int j, int wireType) { if (i < 2 || i >= Main.maxTilesX - 2 || j < 2 || j >= Main.maxTilesY - 2) { return; } if (WorldGen.numWire >= WorldGen.maxWire - 1) { return; } if (wireType == 1 && !Main.tile[i, j].wire()) { return; } if (wireType == 2 && !Main.tile[i, j].wire2()) { return; } if (wireType == 3 && !Main.tile[i, j].wire3()) { return; } for (int k = 0; k < WorldGen.numWire; k++) { if (WorldGen.wireX[k] == i && WorldGen.wireY[k] == j) { return; } } WorldGen.wireX[WorldGen.numWire] = i; WorldGen.wireY[WorldGen.numWire] = j; WorldGen.numWire++; int type = (int)Main.tile[i, j].type; bool flag = true; for (int l = 0; l < WorldGen.numNoWire; l++) { if (WorldGen.noWireX[l] == i && WorldGen.noWireY[l] == j) { flag = false; } } if (flag && Main.tile[i, j].actuator() && (Main.tile[i, j].type != 226 || (double)j <= Main.worldSurface || NPC.downedPlantBoss)) { if (Main.tile[i, j].inActive()) { WorldGen.ReActive(i, j); } else { WorldGen.DeActive(i, j); } } if (flag && Main.tile[i, j].active()) { if (type == 144) { WorldGen.hitSwitch(i, j); WorldGen.SquareTileFrame(i, j, true); NetMessage.SendTileSquare(-1, i, j, 1); } else { if (type == 130) { if (Main.tile[i, j - 1] == null || !Main.tile[i, j - 1].active() || Main.tile[i, j - 1].type != 21) { Main.tile[i, j].type = 131; WorldGen.SquareTileFrame(i, j, true); NetMessage.SendTileSquare(-1, i, j, 1); } } else { if (type == 131) { Main.tile[i, j].type = 130; WorldGen.SquareTileFrame(i, j, true); NetMessage.SendTileSquare(-1, i, j, 1); } else { if (type == 11) { if (WorldGen.CloseDoor(i, j, true)) { NetMessage.SendData(19, -1, -1, "", 1, (float)i, (float)j, 0f, 0); } } else { if (type == 10) { int num = 1; if (Main.rand.Next(2) == 0) { num = -1; } if (!WorldGen.OpenDoor(i, j, num)) { if (WorldGen.OpenDoor(i, j, -num)) { NetMessage.SendData(19, -1, -1, "", 0, (float)i, (float)j, (float)(-(float)num), 0); } } else { NetMessage.SendData(19, -1, -1, "", 0, (float)i, (float)j, (float)num, 0); } } else { if (type == 216) { WorldGen.LaunchRocket(i, j); WorldGen.noWire(i, j); } else { if (type == 235) { int num2 = i - (int)(Main.tile[i, j].frameX / 18); if (WorldGen.teleport[0].X == -1f) { WorldGen.teleport[0].X = (float)num2; WorldGen.teleport[0].Y = (float)j; if (Main.tile[i, j].halfBrick()) { Vector2[] expr_378_cp_0 = WorldGen.teleport; int expr_378_cp_1 = 0; expr_378_cp_0[expr_378_cp_1].Y = expr_378_cp_0[expr_378_cp_1].Y + 0.5f; } } else { if (WorldGen.teleport[0].X != (float)num2 || WorldGen.teleport[0].Y != (float)j) { WorldGen.teleport[1].X = (float)num2; WorldGen.teleport[1].Y = (float)j; if (Main.tile[i, j].halfBrick()) { Vector2[] expr_400_cp_0 = WorldGen.teleport; int expr_400_cp_1 = 1; expr_400_cp_0[expr_400_cp_1].Y = expr_400_cp_0[expr_400_cp_1].Y + 0.5f; } } } } else { if (type == 4) { if (Main.tile[i, j].frameX < 66) { Tile expr_43B = Main.tile[i, j]; expr_43B.frameX += 66; } else { Tile expr_458 = Main.tile[i, j]; expr_458.frameX -= 66; } NetMessage.SendTileSquare(-1, i, j, 1); } else { if (type == 149) { if (Main.tile[i, j].frameX < 54) { Tile expr_49E = Main.tile[i, j]; expr_49E.frameX += 54; } else { Tile expr_4BB = Main.tile[i, j]; expr_4BB.frameX -= 54; } NetMessage.SendTileSquare(-1, i, j, 1); } else { if (type == 244) { int m; for (m = (int)(Main.tile[i, j].frameX / 18); m >= 3; m -= 3) { } int n; for (n = (int)(Main.tile[i, j].frameY / 18); n >= 3; n -= 3) { } int num3 = i - m; int num4 = j - n; int num5 = 54; if (Main.tile[num3, num4].frameX >= 54) { num5 = -54; } for (int num6 = num3; num6 < num3 + 3; num6++) { for (int num7 = num4; num7 < num4 + 2; num7++) { WorldGen.noWire(num6, num7); Main.tile[num6, num7].frameX = (short)((int)Main.tile[num6, num7].frameX + num5); } } } else { if (type == 42) { int num8; for (num8 = (int)(Main.tile[i, j].frameY / 18); num8 >= 2; num8 -= 2) { } int num9 = j - num8; short num10 = 18; if (Main.tile[i, j].frameX > 0) { num10 = -18; } Tile expr_60E = Main.tile[i, num9]; expr_60E.frameX += num10; Tile expr_62C = Main.tile[i, num9 + 1]; expr_62C.frameX += num10; WorldGen.noWire(i, num9); WorldGen.noWire(i, num9 + 1); NetMessage.SendTileSquare(-1, i, j, 2); } else { if (type == 93) { int num11 = j - (int)(Main.tile[i, j].frameY / 18); short num12 = 18; if (Main.tile[i, j].frameX > 0) { num12 = -18; } Tile expr_6A4 = Main.tile[i, num11]; expr_6A4.frameX += num12; Tile expr_6C2 = Main.tile[i, num11 + 1]; expr_6C2.frameX += num12; Tile expr_6E0 = Main.tile[i, num11 + 2]; expr_6E0.frameX += num12; WorldGen.noWire(i, num11); WorldGen.noWire(i, num11 + 1); WorldGen.noWire(i, num11 + 2); NetMessage.SendTileSquare(-1, i, num11 + 1, 3); } else { if (type == 126 || type == 100 || type == 95 || type == 173) { int num13 = j - (int)(Main.tile[i, j].frameY / 18); int num14 = (int)(Main.tile[i, j].frameX / 18); if (num14 > 1) { num14 -= 2; } num14 = i - num14; short num15 = 36; if (Main.tile[num14, num13].frameX > 0) { num15 = -36; } Tile expr_7A1 = Main.tile[num14, num13]; expr_7A1.frameX += num15; Tile expr_7C0 = Main.tile[num14, num13 + 1]; expr_7C0.frameX += num15; Tile expr_7DF = Main.tile[num14 + 1, num13]; expr_7DF.frameX += num15; Tile expr_800 = Main.tile[num14 + 1, num13 + 1]; expr_800.frameX += num15; WorldGen.noWire(num14, num13); WorldGen.noWire(num14, num13 + 1); WorldGen.noWire(num14 + 1, num13); WorldGen.noWire(num14 + 1, num13 + 1); NetMessage.SendTileSquare(-1, num14, num13, 3); } else { if (type == 34 || type == 35 || type == 36 || type == 170 || type == 171 || type == 172) { int num16 = j - (int)(Main.tile[i, j].frameY / 18); int num17 = (int)(Main.tile[i, j].frameX / 18); if (num17 > 2) { num17 -= 3; } num17 = i - num17; short num18 = 54; if (Main.tile[num17, num16].frameX > 0) { num18 = -54; } for (int num19 = num17; num19 < num17 + 3; num19++) { for (int num20 = num16; num20 < num16 + 3; num20++) { Tile expr_8EC = Main.tile[num19, num20]; expr_8EC.frameX += num18; WorldGen.noWire(num19, num20); } } NetMessage.SendTileSquare(-1, num17 + 1, num16 + 1, 3); } else { if (type == 33 || type == 174) { short num21 = 18; if (Main.tile[i, j].frameX > 0) { num21 = -18; } Tile expr_969 = Main.tile[i, j]; expr_969.frameX += num21; NetMessage.SendTileSquare(-1, i, j, 3); } else { if (type == 92) { int num22 = j - (int)(Main.tile[i, j].frameY / 18); short num23 = 18; if (Main.tile[i, j].frameX > 0) { num23 = -18; } Tile expr_9CF = Main.tile[i, num22]; expr_9CF.frameX += num23; Tile expr_9ED = Main.tile[i, num22 + 1]; expr_9ED.frameX += num23; Tile expr_A0B = Main.tile[i, num22 + 2]; expr_A0B.frameX += num23; Tile expr_A29 = Main.tile[i, num22 + 3]; expr_A29.frameX += num23; Tile expr_A47 = Main.tile[i, num22 + 4]; expr_A47.frameX += num23; Tile expr_A65 = Main.tile[i, num22 + 5]; expr_A65.frameX += num23; WorldGen.noWire(i, num22); WorldGen.noWire(i, num22 + 1); WorldGen.noWire(i, num22 + 2); WorldGen.noWire(i, num22 + 3); WorldGen.noWire(i, num22 + 4); WorldGen.noWire(i, num22 + 5); NetMessage.SendTileSquare(-1, i, num22 + 3, 7); } else { if (type == 137) { int num24 = (int)(Main.tile[i, j].frameY / 18); if (num24 == 0 && WorldGen.checkMech(i, j, 180)) { int num25 = -1; if (Main.tile[i, j].frameX != 0) { num25 = 1; } float speedX = (float)(12 * num25); int damage = 20; int type2 = 98; Vector2 vector = new Vector2((float)(i * 16 + 8), (float)(j * 16 + 7)); vector.X += (float)(10 * num25); vector.Y += 2f; Projectile.NewProjectile((float)((int)vector.X), (float)((int)vector.Y), speedX, 0f, type2, damage, 2f, Main.myPlayer, 0f, 0f); } if (num24 == 1 && WorldGen.checkMech(i, j, 180)) { int num26 = -1; if (Main.tile[i, j].frameX != 0) { num26 = 1; } float speedX2 = (float)(12 * num26); int damage2 = 40; int type3 = 184; Vector2 vector2 = new Vector2((float)(i * 16 + 8), (float)(j * 16 + 7)); vector2.X += (float)(10 * num26); vector2.Y += 2f; Projectile.NewProjectile((float)((int)vector2.X), (float)((int)vector2.Y), speedX2, 0f, type3, damage2, 2f, Main.myPlayer, 0f, 0f); } if (num24 == 2 && WorldGen.checkMech(i, j, 180)) { int num27 = -1; if (Main.tile[i, j].frameX != 0) { num27 = 1; } float speedX3 = (float)(5 * num27); int damage3 = 40; int type4 = 187; Vector2 vector3 = new Vector2((float)(i * 16 + 8), (float)(j * 16 + 7)); vector3.X += (float)(10 * num27); vector3.Y += 2f; Projectile.NewProjectile((float)((int)vector3.X), (float)((int)vector3.Y), speedX3, 0f, type4, damage3, 2f, Main.myPlayer, 0f, 0f); } if (num24 == 3 && WorldGen.checkMech(i, j, 240)) { float speedX4 = (float)Main.rand.Next(-20, 21) * 0.05f; float speedY = 4f + (float)Main.rand.Next(0, 21) * 0.05f; int damage4 = 40; int type5 = 185; Vector2 vector4 = new Vector2((float)(i * 16 + 8), (float)(j * 16 + 16)); vector4.Y += 6f; Projectile.NewProjectile((float)((int)vector4.X), (float)((int)vector4.Y), speedX4, speedY, type5, damage4, 2f, Main.myPlayer, 0f, 0f); } if (num24 == 4 && WorldGen.checkMech(i, j, 90)) { float speedX5 = 0f; float speedY2 = 8f; int damage5 = 60; int type6 = 186; Vector2 vector5 = new Vector2((float)(i * 16 + 8), (float)(j * 16 + 16)); vector5.Y += 10f; Projectile.NewProjectile((float)((int)vector5.X), (float)((int)vector5.Y), speedX5, speedY2, type6, damage5, 2f, Main.myPlayer, 0f, 0f); } } else { if (type == 139) { WorldGen.SwitchMB(i, j); } else { if (type == 207) { WorldGen.SwitchFountain(i, j); } else { if (type == 141) { WorldGen.KillTile(i, j, false, false, true); NetMessage.SendTileSquare(-1, i, j, 1); Projectile.NewProjectile((float)(i * 16 + 8), (float)(j * 16 + 8), 0f, 0f, 108, 250, 10f, Main.myPlayer, 0f, 0f); } else { if (type == 210) { WorldGen.ExplodeMine(i, j); } else { if (type == 142 || type == 143) { int num28 = j - (int)(Main.tile[i, j].frameY / 18); int num29 = (int)(Main.tile[i, j].frameX / 18); if (num29 > 1) { num29 -= 2; } num29 = i - num29; WorldGen.noWire(num29, num28); WorldGen.noWire(num29, num28 + 1); WorldGen.noWire(num29 + 1, num28); WorldGen.noWire(num29 + 1, num28 + 1); if (type == 142) { for (int num30 = 0; num30 < 4; num30++) { if (WorldGen.numInPump >= WorldGen.maxPump - 1) { break; } int num31; int num32; if (num30 == 0) { num31 = num29; num32 = num28 + 1; } else { if (num30 == 1) { num31 = num29 + 1; num32 = num28 + 1; } else { if (num30 == 2) { num31 = num29; num32 = num28; } else { num31 = num29 + 1; num32 = num28; } } } WorldGen.inPumpX[WorldGen.numInPump] = num31; WorldGen.inPumpY[WorldGen.numInPump] = num32; WorldGen.numInPump++; } } else { for (int num33 = 0; num33 < 4; num33++) { if (WorldGen.numOutPump >= WorldGen.maxPump - 1) { break; } int num34; int num35; if (num33 == 0) { num34 = num29; num35 = num28 + 1; } else { if (num33 == 1) { num34 = num29 + 1; num35 = num28 + 1; } else { if (num33 == 2) { num34 = num29; num35 = num28; } else { num34 = num29 + 1; num35 = num28; } } } WorldGen.outPumpX[WorldGen.numOutPump] = num34; WorldGen.outPumpY[WorldGen.numOutPump] = num35; WorldGen.numOutPump++; } } } else { if (type == 105) { int num36 = j - (int)(Main.tile[i, j].frameY / 18); int num37 = (int)(Main.tile[i, j].frameX / 18); int num38 = 0; while (num37 >= 2) { num37 -= 2; num38++; } num37 = i - num37; WorldGen.noWire(num37, num36); WorldGen.noWire(num37, num36 + 1); WorldGen.noWire(num37, num36 + 2); WorldGen.noWire(num37 + 1, num36); WorldGen.noWire(num37 + 1, num36 + 1); WorldGen.noWire(num37 + 1, num36 + 2); int num39 = num37 * 16 + 16; int num40 = (num36 + 3) * 16; int num41 = -1; if (num38 == 4) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 1)) { num41 = NPC.NewNPC(num39, num40 - 12, 1, 0); } } else { if (num38 == 7) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 49)) { num41 = NPC.NewNPC(num39 - 4, num40 - 6, 49, 0); } } else { if (num38 == 8) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 55)) { num41 = NPC.NewNPC(num39, num40 - 12, 55, 0); } } else { if (num38 == 9) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 46)) { num41 = NPC.NewNPC(num39, num40 - 12, 46, 0); } } else { if (num38 == 10) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 21)) { num41 = NPC.NewNPC(num39, num40, 21, 0); } } else { if (num38 == 18) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 67)) { num41 = NPC.NewNPC(num39, num40 - 12, 67, 0); } } else { if (num38 == 23) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 63)) { num41 = NPC.NewNPC(num39, num40 - 12, 63, 0); } } else { if (num38 == 27) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 85)) { num41 = NPC.NewNPC(num39 - 9, num40, 85, 0); } } else { if (num38 == 28) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 74)) { num41 = NPC.NewNPC(num39, num40 - 12, 74, 0); } } else { if (num38 == 42) { if (WorldGen.checkMech(i, j, 30) && NPC.MechSpawn((float)num39, (float)num40, 58)) { num41 = NPC.NewNPC(num39, num40 - 12, 58, 0); } } else { if (num38 == 37) { if (WorldGen.checkMech(i, j, 600) && Item.MechSpawn((float)num39, (float)num40, 58)) { Item.NewItem(num39, num40 - 16, 0, 0, 58, 1, false, 0, false); } } else { if (num38 == 2) { if (WorldGen.checkMech(i, j, 600) && Item.MechSpawn((float)num39, (float)num40, 184)) { Item.NewItem(num39, num40 - 16, 0, 0, 184, 1, false, 0, false); } } else { if (num38 == 17) { if (WorldGen.checkMech(i, j, 600) && Item.MechSpawn((float)num39, (float)num40, 166)) { Item.NewItem(num39, num40 - 20, 0, 0, 166, 1, false, 0, false); } } else { if (num38 == 40) { if (WorldGen.checkMech(i, j, 300)) { int[] array = new int[10]; int num42 = 0; for (int num43 = 0; num43 < 200; num43++) { if (Main.npc[num43].active && (Main.npc[num43].type == 17 || Main.npc[num43].type == 19 || Main.npc[num43].type == 22 || Main.npc[num43].type == 38 || Main.npc[num43].type == 54 || Main.npc[num43].type == 107 || Main.npc[num43].type == 108 || Main.npc[num43].type == 142 || Main.npc[num43].type == 160 || Main.npc[num43].type == 207 || Main.npc[num43].type == 209 || Main.npc[num43].type == 227 || Main.npc[num43].type == 228 || Main.npc[num43].type == 229)) { array[num42] = num43; num42++; if (num42 >= 9) { break; } } } if (num42 > 0) { int num44 = array[Main.rand.Next(num42)]; Main.npc[num44].position.X = (float)(num39 - Main.npc[num44].width / 2); Main.npc[num44].position.Y = (float)(num40 - Main.npc[num44].height - 1); NetMessage.SendData(23, -1, -1, "", num44, 0f, 0f, 0f, 0); } } } else { if (num38 == 41 && WorldGen.checkMech(i, j, 300)) { int[] array2 = new int[10]; int num45 = 0; for (int num46 = 0; num46 < 200; num46++) { if (Main.npc[num46].active && (Main.npc[num46].type == 18 || Main.npc[num46].type == 20 || Main.npc[num46].type == 124 || Main.npc[num46].type == 178 || Main.npc[num46].type == 208)) { array2[num45] = num46; num45++; if (num45 >= 9) { break; } } } if (num45 > 0) { int num47 = array2[Main.rand.Next(num45)]; Main.npc[num47].position.X = (float)(num39 - Main.npc[num47].width / 2); Main.npc[num47].position.Y = (float)(num40 - Main.npc[num47].height - 1); NetMessage.SendData(23, -1, -1, "", num47, 0f, 0f, 0f, 0); } } } } } } } } } } } } } } } } if (num41 >= 0) { Main.npc[num41].value = 0f; Main.npc[num41].npcSlots = 0f; } } } } } } } } } } } } } } } } } } } } } } } } } WorldGen.hitWire(i - 1, j, wireType); WorldGen.hitWire(i + 1, j, wireType); WorldGen.hitWire(i, j - 1, wireType); WorldGen.hitWire(i, j + 1, wireType); } public static void KillWall(int i, int j, bool fail = false) { if (i >= 0 && j >= 0 && i < Main.maxTilesX && j < Main.maxTilesY) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].wall > 0) { if (Main.tile[i, j].wall == 21) { Main.PlaySound(13, i * 16, j * 16, 1); } else { if (Main.tile[i, j].wall >= 63 && Main.tile[i, j].wall <= 70) { Main.PlaySound(6, i * 16, j * 16, 1); } else { Main.PlaySound(0, i * 16, j * 16, 1); } } int num = 10; if (fail) { num = 3; } for (int k = 0; k < num; k++) { int type = 0; if (Main.tile[i, j].wall == 1 || Main.tile[i, j].wall == 5 || Main.tile[i, j].wall == 6 || Main.tile[i, j].wall == 7 || Main.tile[i, j].wall == 107 || Main.tile[i, j].wall == 8 || Main.tile[i, j].wall == 9 || (Main.tile[i, j].wall >= 48 && Main.tile[i, j].wall <= 53) || (Main.tile[i, j].wall >= 54 && Main.tile[i, j].wall <= 58)) { type = 1; } if (Main.tile[i, j].wall >= 94 && Main.tile[i, j].wall <= 105) { type = 1; } if (Main.tile[i, j].wall == 3) { if (WorldGen.genRand.Next(2) == 0) { type = 14; } else { type = 1; } } if (Main.tile[i, j].wall == 35) { type = 37; } if (Main.tile[i, j].wall == 4 || Main.tile[i, j].wall == 106) { type = 7; } if (Main.tile[i, j].wall == 12) { type = 9; } if (Main.tile[i, j].wall == 10) { type = 10; } if (Main.tile[i, j].wall == 11) { type = 11; } if (Main.tile[i, j].wall == 21) { type = 13; } if (Main.tile[i, j].wall == 34) { type = 32; } if (Main.tile[i, j].wall == 22 || Main.tile[i, j].wall == 28) { type = 51; } if (Main.tile[i, j].wall == 23) { type = 38; } if (Main.tile[i, j].wall == 24) { type = 36; } if (Main.tile[i, j].wall == 25) { type = 48; } if (Main.tile[i, j].wall == 26 || Main.tile[i, j].wall == 30) { type = 49; } if (Main.tile[i, j].wall == 29 || Main.tile[i, j].wall == 32) { type = 50; } if (Main.tile[i, j].wall == 31) { type = 51; } if (Main.tile[i, j].wall == 14 || Main.tile[i, j].wall == 20) { type = 109; } if (Main.tile[i, j].wall >= 88 && Main.tile[i, j].wall <= 93) { type = (int)(86 + Main.tile[i, j].wall - 88); if (Main.tile[i, j].wall == 93) { type = WorldGen.genRand.Next(88, 94); } } if (Main.tile[i, j].wall == 33) { type = 14; } if (Main.tile[i, j].wall == 41) { type = 77; } if (Main.tile[i, j].wall == 42) { type = 78; } if (Main.tile[i, j].wall == 43) { type = 78; } if (Main.tile[i, j].wall == 43) { type = 78; } if (Main.tile[i, j].wall == 36) { type = 26; } if (Main.tile[i, j].wall == 37) { type = 32; } if (Main.tile[i, j].wall == 38) { type = 2; } if (Main.tile[i, j].wall == 39) { type = 1; } if (Main.tile[i, j].wall == 40) { type = 51; } if (Main.tile[i, j].wall == 45) { type = 81; } if (Main.tile[i, j].wall == 46) { type = 83; } if (Main.tile[i, j].wall == 47) { type = 84; } if (Main.tile[i, j].wall == 85) { type = 126; } if (Main.tile[i, j].wall == 59) { type = 0; } if (Main.tile[i, j].wall == 60) { type = 1; } if (Main.tile[i, j].wall == 61) { type = 0; } if (Main.tile[i, j].wall == 62) { type = 0; } if (Main.tile[i, j].wall == 63) { type = 3; } if (Main.tile[i, j].wall == 65) { type = 3; } if (Main.tile[i, j].wall == 66) { type = 3; } if (Main.tile[i, j].wall == 68) { type = 3; } if (Main.tile[i, j].wall == 64) { type = 40; } if (Main.tile[i, j].wall == 67) { type = 40; } if (Main.tile[i, j].wall == 84) { type = 80; } if (Main.tile[i, j].wall == 71) { type = 80; } if (Main.tile[i, j].wall == 71) { type = 80; } if (Main.tile[i, j].wall == 109) { type = 144; } if (Main.tile[i, j].wall == 110) { type = 145; } if (Main.tile[i, j].wall == 111) { type = 146; } if (Main.tile[i, j].wall == 86 || Main.tile[i, j].wall == 108) { type = 147; } if (Main.tile[i, j].wall == 87) { type = 148; } if (Main.tile[i, j].wall == 83) { type = 117; if (WorldGen.genRand.Next(2) == 0) { type = 1; } } if (Main.tile[i, j].wall == 81) { type = 123; } if (Main.tile[i, j].wall == 72) { type = 40; } if (Main.tile[i, j].wall == 73) { type = 16; } if (Main.tile[i, j].wall == 74 || Main.tile[i, j].wall == 80) { type = 26; } if (Main.tile[i, j].wall == 75) { type = 26; } if (Main.tile[i, j].wall == 76) { type = 4; } if (Main.tile[i, j].wall == 77 || Main.tile[i, j].wall == 81) { type = 5; } if (Main.tile[i, j].wall == 78) { type = 7; } if (Main.tile[i, j].wall == 79) { type = 37; } if (Main.tile[i, j].wall == 82) { type = 36; } if (Main.tile[i, j].wall == 69) { if (WorldGen.genRand.Next(2) == 0) { type = 14; } else { type = 17; } } if (Main.tile[i, j].wall == 70) { type = 47; } if (Main.tile[i, j].wall == 27) { if (WorldGen.genRand.Next(2) == 0) { type = 7; } else { type = 1; } } if (Main.tile[i, j].wall == 44) { int num2 = 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[num2].noGravity = true; } else { if (Main.tile[i, j].wall == 76) { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, type, 0f, 0f, 75, new Color(0, 80, 255, 100), 0.75f); } else { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, type, 0f, 0f, 0, default(Color), 1f); } } } if (fail) { WorldGen.SquareWallFrame(i, j, true); return; } int num3 = 0; if (Main.tile[i, j].wall == 1) { num3 = 26; } if (Main.tile[i, j].wall == 4) { num3 = 93; } if (Main.tile[i, j].wall == 5) { num3 = 130; } if (Main.tile[i, j].wall == 6) { num3 = 132; } if (Main.tile[i, j].wall == 7) { num3 = 135; } if (Main.tile[i, j].wall == 8) { num3 = 138; } if (Main.tile[i, j].wall == 9) { num3 = 140; } if (Main.tile[i, j].wall == 10) { num3 = 142; } if (Main.tile[i, j].wall == 11) { num3 = 144; } if (Main.tile[i, j].wall == 12) { num3 = 146; } if (Main.tile[i, j].wall == 14) { num3 = 330; } if (Main.tile[i, j].wall == 16) { num3 = 30; } if (Main.tile[i, j].wall == 17) { num3 = 135; } if (Main.tile[i, j].wall == 18) { num3 = 138; } if (Main.tile[i, j].wall == 19) { num3 = 140; } if (Main.tile[i, j].wall == 20) { num3 = 330; } if (Main.tile[i, j].wall == 21) { num3 = 392; } if (Main.tile[i, j].wall == 86 || Main.tile[i, j].wall == 108) { num3 = 1126; } if (Main.tile[i, j].wall == 22) { num3 = 417; } if (Main.tile[i, j].wall == 23) { num3 = 418; } if (Main.tile[i, j].wall == 24) { num3 = 419; } if (Main.tile[i, j].wall == 25) { num3 = 420; } if (Main.tile[i, j].wall == 26) { num3 = 421; } if (Main.tile[i, j].wall == 29) { num3 = 587; } if (Main.tile[i, j].wall == 30) { num3 = 592; } if (Main.tile[i, j].wall == 31) { num3 = 595; } if (Main.tile[i, j].wall == 32) { num3 = 605; } if (Main.tile[i, j].wall == 33) { num3 = 606; } if (Main.tile[i, j].wall == 34) { num3 = 608; } if (Main.tile[i, j].wall == 35) { num3 = 610; } if (Main.tile[i, j].wall == 36) { num3 = 615; } if (Main.tile[i, j].wall == 37) { num3 = 616; } if (Main.tile[i, j].wall == 38) { num3 = 617; } if (Main.tile[i, j].wall == 39) { num3 = 618; } if (Main.tile[i, j].wall == 41) { num3 = 622; } if (Main.tile[i, j].wall == 42) { num3 = 623; } if (Main.tile[i, j].wall == 43) { num3 = 624; } if (Main.tile[i, j].wall == 44) { num3 = 663; } if (Main.tile[i, j].wall == 45) { num3 = 720; } if (Main.tile[i, j].wall == 46) { num3 = 721; } if (Main.tile[i, j].wall == 47) { num3 = 722; } if (Main.tile[i, j].wall == 66) { num3 = 745; } if (Main.tile[i, j].wall == 67) { num3 = 746; } if (Main.tile[i, j].wall == 68) { num3 = 747; } if (Main.tile[i, j].wall == 84) { num3 = 884; } if (Main.tile[i, j].wall == 72) { num3 = 750; } if (Main.tile[i, j].wall == 73) { num3 = 752; } if (Main.tile[i, j].wall == 74) { num3 = 764; } if (Main.tile[i, j].wall == 85) { num3 = 927; } if (Main.tile[i, j].wall == 75) { num3 = 768; } if (Main.tile[i, j].wall == 76) { num3 = 769; } if (Main.tile[i, j].wall == 82) { num3 = 825; } if (Main.tile[i, j].wall == 27) { num3 = 479; } if (Main.tile[i, j].wall == 106) { num3 = 1447; } if (Main.tile[i, j].wall == 107) { num3 = 1448; } if (Main.tile[i, j].wall == 109) { num3 = 1590; } if (Main.tile[i, j].wall == 110) { num3 = 1592; } if (Main.tile[i, j].wall == 111) { num3 = 1594; } if (Main.tile[i, j].wall == 78) { num3 = 1723; } if (Main.tile[i, j].wall == 87 || Main.tile[i, j].wall == 112) { num3 = 1102; } if (Main.tile[i, j].wall == 94 || Main.tile[i, j].wall == 100) { num3 = 1378; } if (Main.tile[i, j].wall == 95 || Main.tile[i, j].wall == 101) { num3 = 1379; } if (Main.tile[i, j].wall == 96 || Main.tile[i, j].wall == 102) { num3 = 1380; } if (Main.tile[i, j].wall == 97 || Main.tile[i, j].wall == 103) { num3 = 1381; } if (Main.tile[i, j].wall == 98 || Main.tile[i, j].wall == 104) { num3 = 1382; } if (Main.tile[i, j].wall == 99 || Main.tile[i, j].wall == 105) { num3 = 1383; } if (Main.tile[i, j].wall >= 88 && Main.tile[i, j].wall <= 93) { num3 = 1267 + (int)Main.tile[i, j].wall - 88; } if (num3 > 0) { Item.NewItem(i * 16, j * 16, 16, 16, num3, 1, false, 0, false); } Main.tile[i, j].wall = 0; Main.tile[i, j].wallColor(0); WorldGen.SquareWallFrame(i, j, true); if (Main.tile[i, j].type == 240 || Main.tile[i, j].type == 241 || Main.tile[i, j].type == 242 || Main.tile[i, j].type == 245 || Main.tile[i, j].type == 246 || Main.tile[i, j].type == 4) { WorldGen.TileFrame(i, j, false, false); } } } } public static void LaunchRocket(int x, int y) { int i = (int)Main.tile[x, y].frameY; int num = 0; while (i >= 40) { i -= 40; num++; } if (i == 18) { y--; } Vector2 vector = new Vector2((float)(x * 16 + 8), (float)(y * 16 + 4)); int type = 167 + num; int damage = 150; int num2 = 7; Projectile.NewProjectile(vector.X, vector.Y + 2f, 0f, -8f, type, damage, (float)num2, Main.myPlayer, 0f, 0f); Main.tile[x, y].active(false); Main.tile[x, y + 1].active(false); NetMessage.SendTileSquare(-1, x - 1, y, 3); } 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) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].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 && Main.tile[i, j].type != 5) || (Main.tile[i, j - 1].type == 21 && Main.tile[i, j].type != 21) || (Main.tile[i, j - 1].type == 26 && Main.tile[i, j].type != 26) || (Main.tile[i, j - 1].type == 72 && Main.tile[i, j].type != 72) || (Main.tile[i, j - 1].type == 12 && Main.tile[i, j].type != 12)) && (Main.tile[i, j - 1].type != 5 || ((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; } if (Main.tile[i, j].type == 10 && Main.tile[i, j].frameY >= 594 && Main.tile[i, j].frameY <= 646) { fail = true; } if (!effectOnly && !WorldGen.stopDrops) { if (Main.tile[i, j].type == 127) { Main.PlaySound(2, i * 16, j * 16, 27); } else { if (Main.tile[i, j].type == 147 || Main.tile[i, j].type == 224) { Main.PlaySound(2, i * 16, j * 16, WorldGen.genRand.Next(48, 50)); } else { if (Main.tile[i, j].type == 161 || Main.tile[i, j].type == 163 || Main.tile[i, j].type == 164 || Main.tile[i, j].type == 200) { Main.PlaySound(2, i * 16, j * 16, 50); } else { if (Main.tile[i, j].type == 3 || Main.tile[i, j].type == 110) { Main.PlaySound(6, i * 16, j * 16, 1); if (Main.tile[i, j].frameX == 144) { Item.NewItem(i * 16, j * 16, 16, 16, 5, 1, false, 0, false); } } else { if (Main.tile[i, j].type == 24) { Main.PlaySound(6, i * 16, j * 16, 1); if (Main.tile[i, j].frameX == 144) { Item.NewItem(i * 16, j * 16, 16, 16, 60, 1, false, 0, false); } } else { if (Main.tileAlch[(int)Main.tile[i, j].type] || Main.tile[i, j].type == 32 || Main.tile[i, j].type == 51 || Main.tile[i, j].type == 52 || Main.tile[i, j].type == 61 || Main.tile[i, j].type == 62 || Main.tile[i, j].type == 69 || Main.tile[i, j].type == 71 || Main.tile[i, j].type == 73 || Main.tile[i, j].type == 74 || Main.tile[i, j].type == 113 || Main.tile[i, j].type == 115 || Main.tile[i, j].type == 184 || Main.tile[i, j].type == 192 || Main.tile[i, j].type == 205 || Main.tile[i, j].type == 233) { Main.PlaySound(6, i * 16, j * 16, 1); } else { if (Main.tile[i, j].type == 201) { Main.PlaySound(6, i * 16, j * 16, 1); } else { if (Main.tile[i, j].type == 1 || Main.tile[i, j].type == 6 || Main.tile[i, j].type == 7 || Main.tile[i, j].type == 8 || Main.tile[i, j].type == 9 || Main.tile[i, j].type == 22 || Main.tile[i, j].type == 140 || Main.tile[i, j].type == 25 || Main.tile[i, j].type == 37 || Main.tile[i, j].type == 38 || Main.tile[i, j].type == 39 || Main.tile[i, j].type == 41 || Main.tile[i, j].type == 43 || Main.tile[i, j].type == 44 || Main.tile[i, j].type == 45 || Main.tile[i, j].type == 46 || Main.tile[i, j].type == 47 || Main.tile[i, j].type == 48 || Main.tile[i, j].type == 56 || Main.tile[i, j].type == 58 || Main.tile[i, j].type == 63 || Main.tile[i, j].type == 64 || Main.tile[i, j].type == 65 || Main.tile[i, j].type == 66 || Main.tile[i, j].type == 67 || Main.tile[i, j].type == 68 || Main.tile[i, j].type == 75 || Main.tile[i, j].type == 76 || Main.tile[i, j].type == 107 || Main.tile[i, j].type == 108 || Main.tile[i, j].type == 111 || Main.tile[i, j].type == 117 || Main.tile[i, j].type == 118 || Main.tile[i, j].type == 119 || Main.tile[i, j].type == 120 || Main.tile[i, j].type == 121 || Main.tile[i, j].type == 122 || Main.tile[i, j].type == 150 || Main.tile[i, j].type == 151 || Main.tile[i, j].type == 152 || Main.tile[i, j].type == 153 || Main.tile[i, j].type == 154 || Main.tile[i, j].type == 155 || Main.tile[i, j].type == 156 || Main.tile[i, j].type == 160 || Main.tile[i, j].type == 161 || Main.tile[i, j].type == 166 || Main.tile[i, j].type == 167 || Main.tile[i, j].type == 168 || Main.tile[i, j].type == 169 || Main.tile[i, j].type == 175 || Main.tile[i, j].type == 176 || Main.tile[i, j].type == 177 || Main.tile[i, j].type == 203 || Main.tile[i, j].type == 202 || Main.tile[i, j].type == 204 || Main.tile[i, j].type == 206 || Main.tile[i, j].type == 211 || Main.tile[i, j].type == 221 || Main.tile[i, j].type == 222 || Main.tile[i, j].type == 223 || Main.tile[i, j].type == 226 || Main.tile[i, j].type == 248 || Main.tile[i, j].type == 249 || Main.tile[i, j].type == 250) { Main.PlaySound(21, i * 16, j * 16, 1); } else { if (Main.tile[i, j].type == 231) { Main.PlaySound(4, i * 16, j * 16, 1); } else { if (Main.tile[i, j].type == 26 && Main.tile[i, j].frameX >= 54) { Main.PlaySound(4, i * 16, j * 16, 1); } else { if (Main.tile[i, j].type != 138) { Main.PlaySound(0, i * 16, j * 16, 1); } } } } } } } } } } } if ((Main.tile[i, j].type == 162 || Main.tile[i, j].type == 129 || (Main.tile[i, j].type == 165 && Main.tile[i, j].frameX < 54)) && !fail) { Main.PlaySound(2, i * 16, j * 16, 27); } } int num = 10; if (Main.tile[i, j].type == 231) { num = 6; } if (Main.tile[i, j].type == 128) { int num2 = i; int k = (int)Main.tile[i, j].frameX; int l; for (l = (int)Main.tile[i, j].frameX; l >= 100; l -= 100) { } while (l >= 36) { l -= 36; } if (l == 18) { k = (int)Main.tile[i - 1, j].frameX; num2--; } if (k >= 100) { int num3 = 0; while (k >= 100) { k -= 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); } if (num4 == 1) { Item.NewItem(i * 16, j * 16, 16, 16, Item.bodyType[num3], 1, false, 0, false); } if (num4 == 2) { Item.NewItem(i * 16, j * 16, 16, 16, Item.legType[num3], 1, false, 0, false); } for (k = (int)Main.tile[num2, j].frameX; k >= 100; k -= 100) { } Main.tile[num2, j].frameX = (short)k; } } if (fail) { num = 3; } if (Main.tile[i, j].type == 138) { num = 0; } for (int m = 0; m < num; m++) { int num5 = 0; if (Main.tile[i, j].type == 216) { num5 = -1; } if (Main.tile[i, j].type == 0) { num5 = 0; } if (Main.tile[i, j].type == 192) { num5 = 3; } if (Main.tile[i, j].type == 208) { num5 = 126; } if (Main.tile[i, j].type == 16) { num5 = 1; if (Main.tile[i, j].frameX >= 36) { num5 = 82; } } if (Main.tile[i, j].type == 1 || Main.tile[i, j].type == 17 || Main.tile[i, j].type == 38 || Main.tile[i, j].type == 39 || Main.tile[i, j].type == 41 || Main.tile[i, j].type == 43 || Main.tile[i, j].type == 44 || Main.tile[i, j].type == 48 || Main.tileStone[(int)Main.tile[i, j].type] || Main.tile[i, j].type == 85 || Main.tile[i, j].type == 90 || Main.tile[i, j].type == 92 || Main.tile[i, j].type == 96 || Main.tile[i, j].type == 97 || Main.tile[i, j].type == 99 || Main.tile[i, j].type == 117 || Main.tile[i, j].type == 130 || Main.tile[i, j].type == 131 || Main.tile[i, j].type == 132 || Main.tile[i, j].type == 135 || Main.tile[i, j].type == 135 || Main.tile[i, j].type == 142 || Main.tile[i, j].type == 143 || Main.tile[i, j].type == 144 || Main.tile[i, j].type == 210 || Main.tile[i, j].type == 207 || Main.tile[i, j].type == 235 || Main.tile[i, j].type == 247) { num5 = 1; } if (Main.tile[i, j].type == 95 || Main.tile[i, j].type == 98 || Main.tile[i, j].type == 100 || Main.tile[i, j].type == 174 || Main.tile[i, j].type == 173) { num5 = 6; } if (Main.tile[i, j].type == 30 || Main.tile[i, j].type == 86 || Main.tile[i, j].type == 89 || Main.tile[i, j].type == 93 || Main.tile[i, j].type == 94 || Main.tile[i, j].type == 104 || Main.tile[i, j].type == 106 || Main.tile[i, j].type == 114 || Main.tile[i, j].type == 124 || Main.tile[i, j].type == 128 || Main.tile[i, j].type == 139) { num5 = 7; } if (Main.tile[i, j].type == 10 || Main.tile[i, j].type == 11) { num5 = -1; } if (Main.tile[i, j].type == 240) { int num6 = (int)(Main.tile[i, j].frameX / 54); num5 = 7; if (num6 == 16 || num6 == 17) { num5 = 26; } } if (Main.tile[i, j].type == 241) { num5 = 1; } if (Main.tile[i, j].type == 242) { num5 = 7; } if (Main.tile[i, j].type == 101) { int num7 = (int)(Main.tile[i, j].frameX / 54); if (num7 == 0) { num5 = 7; } else { if (num7 == 4) { num5 = 109; } else { if (num7 == 5) { num5 = 126; } else { num5 = 1; } } } } if (Main.tile[i, j].type == 19) { int num8 = (int)(Main.tile[i, j].frameY / 18); if (num8 == 0 || num8 == 9 || num8 == 10 || num8 == 11 || num8 == 12) { num5 = 7; } else { if (num8 == 1) { num5 = 77; } else { if (num8 == 2) { num5 = 78; } else { if (num8 == 3) { num5 = 79; } else { if (num8 == 4) { num5 = 26; } else { if (num8 == 5) { num5 = 126; } else { if (num8 == 13) { num5 = 109; } else { if (num8 == 14) { num5 = 13; } else { num5 = 1; } } } } } } } } } if (Main.tile[i, j].type == 79) { int num9 = (int)(Main.tile[i, j].frameY / 36); if (num9 == 0) { num5 = 7; } else { if (num9 == 1) { num5 = 77; } else { if (num9 == 2) { num5 = 78; } else { if (num9 == 3) { num5 = 79; } else { if (num9 == 4) { num5 = 126; } else { if (num9 == 8) { num5 = 109; } else { if (num9 >= 9) { num5 = -1; } else { num5 = 1; } } } } } } } } if (Main.tile[i, j].type == 18) { int num10 = (int)(Main.tile[i, j].frameX / 36); if (num10 == 0) { num5 = 7; } else { if (num10 == 1) { num5 = 77; } else { if (num10 == 2) { num5 = 78; } else { if (num10 == 3) { num5 = 79; } else { if (num10 == 4) { num5 = 26; } else { if (num10 == 5) { num5 = 40; } else { if (num10 == 6) { num5 = 5; } else { if (num10 == 7) { num5 = 26; } else { if (num10 == 8) { num5 = 4; } else { if (num10 == 9) { num5 = 126; } else { if (num10 == 10) { num5 = 148; } else { if (num10 == 11 || num10 == 12 || num10 == 13) { num5 = 1; } else { if (num10 == 14) { num5 = 109; } else { if (num10 == 15) { num5 = 126; } } } } } } } } } } } } } } } if (Main.tile[i, j].type == 14 || Main.tile[i, j].type == 87 || Main.tile[i, j].type == 88) { int num11 = (int)(Main.tile[i, j].frameX / 54); if (num11 == 0) { num5 = 7; } else { if (num11 == 1) { num5 = 77; } else { if (num11 == 2) { num5 = 78; } else { if (num11 == 3) { num5 = 79; } } } } if (Main.tile[i, j].type == 14 && num11 >= 15) { num5 = -1; } if (Main.tile[i, j].type == 14 && num11 == 9) { num5 = 148; } if (Main.tile[i, j].type == 14 && num11 == 8) { num5 = 126; } if (Main.tile[i, j].type != 14 && num11 == 4) { num5 = 126; } if (Main.tile[i, j].type == 14 && num11 == 4) { num5 = 26; } if (Main.tile[i, j].type == 14 && num11 == 5) { num5 = 5; } if (Main.tile[i, j].type == 14 && num11 == 6) { num5 = 7; } if (Main.tile[i, j].type == 14 && num11 == 7) { num5 = 116; } if (Main.tile[i, j].type == 14 && (num11 == 10 || num11 == 11 || num11 == 12)) { num5 = 1; } if (Main.tile[i, j].type == 14 && num11 == 13) { num5 = 109; } if (Main.tile[i, j].type == 14 && num11 == 14) { num5 = 126; } } if (Main.tile[i, j].type == 178) { int num12 = (int)(Main.tile[i, j].frameX / 18); num5 = 86 + num12; if (num12 == 6) { num5 = 138; } } if (Main.tile[i, j].type == 186) { if (Main.tile[i, j].frameX <= 360) { num5 = 26; } else { if (Main.tile[i, j].frameX <= 846) { num5 = 1; } else { if (Main.tile[i, j].frameX <= 954) { num5 = 9; } else { if (Main.tile[i, j].frameX <= 1062) { num5 = 11; } else { if (Main.tile[i, j].frameX <= 1170) { num5 = 10; } else { if (Main.tile[i, j].frameX <= 1332) { num5 = 0; } else { if (Main.tile[i, j].frameX <= 1386) { num5 = 10; } else { num5 = 80; } } } } } } } } if (Main.tile[i, j].type == 187) { if (Main.tile[i, j].frameX <= 144) { num5 = 1; } else { if (Main.tile[i, j].frameX <= 306) { num5 = 38; } else { if (Main.tile[i, j].frameX <= 468) { num5 = 36; } else { if (Main.tile[i, j].frameX <= 738) { num5 = 30; } else { if (Main.tile[i, j].frameX <= 970) { num5 = 1; } else { if (Main.tile[i, j].frameX <= 1132) { num5 = 148; } else { if (Main.tile[i, j].frameX <= 1132) { num5 = 155; } else { if (Main.tile[i, j].frameX <= 1348) { num5 = 1; } else { if (Main.tile[i, j].frameX <= 1564) { num5 = 0; } } } } } } } } } } if (Main.tile[i, j].type == 105) { num5 = 1; if (Main.tile[i, j].frameX >= 1548 && Main.tile[i, j].frameX <= 1654) { num5 = 148; } } if (Main.tile[i, j].type == 239) { int num13 = (int)(Main.tile[i, j].frameX / 18); if (num13 == 0) { num5 = 9; } if (num13 == 1) { num5 = 81; } if (num13 == 2) { num5 = 8; } if (num13 == 3) { num5 = 82; } if (num13 == 4) { num5 = 11; } if (num13 == 5) { num5 = 83; } if (num13 == 6) { num5 = 10; } if (num13 == 7) { num5 = 84; } if (num13 == 8) { num5 = 14; } if (num13 == 9) { num5 = 23; } if (num13 == 10) { num5 = 25; } if (num13 == 11) { num5 = 48; } if (num13 == 12) { num5 = 144; } if (num13 == 13) { num5 = 49; } if (num13 == 14) { num5 = 145; } if (num13 == 15) { num5 = 50; } if (num13 == 16) { num5 = 146; } if (num13 == 17) { num5 = 128; } if (num13 == 18) { num5 = 84; } if (num13 == 19) { num5 = 117; } if (num13 == 20) { num5 = 26; } } if (Main.tile[i, j].type == 185) { if (Main.tile[i, j].frameY == 18) { int num14 = (int)(Main.tile[i, j].frameX / 36); if (num14 < 6) { num5 = 1; } else { if (num14 < 16) { num5 = 26; } else { if (num14 == 16) { num5 = 9; } else { if (num14 == 17) { num5 = 11; } else { if (num14 == 18) { num5 = 10; } else { if (num14 == 19) { num5 = 86; } else { if (num14 == 20) { num5 = 87; } else { if (num14 == 21) { num5 = 88; } else { if (num14 == 22) { num5 = 89; } else { if (num14 == 23) { num5 = 90; } else { if (num14 == 24) { num5 = 91; } else { if (num14 < 31) { num5 = 80; } else { if (num14 < 33) { num5 = 7; } else { if (num14 < 34) { num5 = 8; } else { if (num14 < 39) { num5 = 30; } else { if (num14 < 42) { num5 = 1; } } } } } } } } } } } } } } } } } else { int num15 = (int)(Main.tile[i, j].frameX / 18); if (num15 < 6) { num5 = 1; } else { if (num15 < 12) { num5 = 0; } else { if (num15 < 27) { num5 = 26; } else { if (num15 < 32) { num5 = 1; } else { if (num15 < 35) { num5 = 0; } else { if (num15 < 46) { num5 = 80; } else { if (num15 < 52) { num5 = 30; } } } } } } } } } if (Main.tile[i, j].type == 184) { int num16 = (int)(Main.tile[i, j].frameX / 22); num5 = 93 + num16; } if (Main.tile[i, j].type == 237) { num5 = 148; } if (Main.tile[i, j].type == 157) { num5 = 77; } if (Main.tile[i, j].type == 158 || Main.tile[i, j].type == 232) { num5 = 78; } if (Main.tile[i, j].type == 159) { num5 = 78; } if (Main.tile[i, j].type == 15) { if (Main.tile[i, j].frameY >= 720) { num5 = -1; } else { if (Main.tile[i, j].frameY >= 680) { num5 = 126; } else { if (Main.tile[i, j].frameY >= 640) { num5 = 109; } else { if (Main.tile[i, j].frameY >= 520) { num5 = 1; } else { if (Main.tile[i, j].frameY >= 480) { num5 = 148; } else { if (Main.tile[i, j].frameY >= 440) { num5 = 126; } else { if (Main.tile[i, j].frameY >= 400) { num5 = 116; } else { if (Main.tile[i, j].frameY >= 360) { num5 = 26; } else { if (Main.tile[i, j].frameY >= 320) { num5 = 5; } else { if (Main.tile[i, j].frameY >= 280) { num5 = 26; } else { if (Main.tile[i, j].frameY >= 240) { num5 = 40; } else { if (Main.tile[i, j].frameY >= 200) { num5 = 7; } else { if (Main.tile[i, j].frameY >= 160) { num5 = 79; } else { if (Main.tile[i, j].frameY >= 120) { num5 = 78; } else { if (Main.tile[i, j].frameY >= 80) { num5 = 77; } else { if (Main.tile[i, j].frameY >= 40) { num5 = 1; } else { num5 = 7; } } } } } } } } } } } } } } } } } if (Main.tile[i, j].type == 191) { num5 = 7; } if (Main.tile[i, j].type == 5) { num5 = 7; if (i > 5 && i < Main.maxTilesX - 5) { int num17 = i; int num18 = j; if (Main.tile[i, j].frameX == 66 && Main.tile[i, j].frameY <= 45) { num17++; } if (Main.tile[i, j].frameX == 88 && Main.tile[i, j].frameY >= 66 && Main.tile[i, j].frameY <= 110) { num17--; } if (Main.tile[i, j].frameX == 22 && Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176) { num17--; } if (Main.tile[i, j].frameX == 44 && Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176) { num17++; } if (Main.tile[i, j].frameX == 44 && Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176) { num17++; } if (Main.tile[i, j].frameX == 44 && Main.tile[i, j].frameY >= 198) { num17++; } if (Main.tile[i, j].frameX == 66 && Main.tile[i, j].frameY >= 198) { num17--; } while (Main.tile[num17, num18] != null && (!Main.tile[num17, num18].active() || !Main.tileSolid[(int)Main.tile[num17, num18].type])) { num18++; } if (Main.tile[num17, num18] != null) { if (Main.tile[num17, num18].active() && Main.tile[num17, num18].type == 23) { num5 = 77; } if (Main.tile[num17, num18].active() && Main.tile[num17, num18].type == 60) { num5 = 78; } if (Main.tile[num17, num18].active() && Main.tile[num17, num18].type == 70) { num5 = 26; } if (Main.tile[num17, num18].active() && Main.tile[num17, num18].type == 109) { num5 = 79; } if (Main.tile[num17, num18].active() && Main.tile[num17, num18].type == 199) { num5 = 121; } if (Main.tile[num17, num18].active() && Main.tile[num17, num18].type == 147) { num5 = 122; } } } } if (Main.tile[i, j].type == 137) { num5 = 1; int num19 = (int)(Main.tile[i, j].frameY / 18); if (num19 > 0) { num5 = 148; } } if (Main.tile[i, j].type == 212) { num5 = -1; } if (Main.tile[i, j].type == 213) { num5 = 129; } if (Main.tile[i, j].type == 214) { num5 = 1; } if (Main.tile[i, j].type == 215) { num5 = 6; } if (Main.tile[i, j].type == 21) { if (Main.tile[i, j].frameX >= 612) { num5 = 11; } else { if (Main.tile[i, j].frameX >= 576) { num5 = 148; } else { if (Main.tile[i, j].frameX >= 540) { num5 = 26; } else { if (Main.tile[i, j].frameX >= 504) { num5 = 126; } else { if (Main.tile[i, j].frameX >= 468) { num5 = 116; } else { if (Main.tile[i, j].frameX >= 432) { num5 = 7; } else { if (Main.tile[i, j].frameX >= 396) { num5 = 11; } else { if (Main.tile[i, j].frameX >= 360) { num5 = 10; } else { if (Main.tile[i, j].frameX >= 324) { num5 = 79; } else { if (Main.tile[i, j].frameX >= 288) { num5 = 78; } else { if (Main.tile[i, j].frameX >= 252) { num5 = 77; } else { if (Main.tile[i, j].frameX >= 216) { num5 = 1; } else { if (Main.tile[i, j].frameX >= 180) { num5 = 7; } else { if (Main.tile[i, j].frameX >= 108) { num5 = 37; } else { if (Main.tile[i, j].frameX >= 36) { num5 = 10; } else { num5 = 7; } } } } } } } } } } } } } } } } if (Main.tile[i, j].type == 2) { if (WorldGen.genRand.Next(2) == 0) { num5 = 0; } else { num5 = 2; } } if (Main.tile[i, j].type == 2) { if (WorldGen.genRand.Next(2) == 0) { num5 = 0; } else { num5 = 5; } } if (Main.tileMoss[(int)Main.tile[i, j].type]) { num5 = (int)(Main.tile[i, j].type - 179 + 93); } if (Main.tile[i, j].type == 127) { num5 = 67; } if (Main.tile[i, j].type == 91) { num5 = -1; } if (Main.tile[i, j].type == 198) { num5 = 109; } if (Main.tile[i, j].type == 26) { if (Main.tile[i, j].frameX >= 54) { num5 = 5; } else { num5 = 8; } } if (Main.tile[i, j].type == 6) { num5 = 8; } if (Main.tile[i, j].type == 7 || Main.tile[i, j].type == 34 || Main.tile[i, j].type == 47) { num5 = 9; } if (Main.tile[i, j].type == 8 || Main.tile[i, j].type == 36 || Main.tile[i, j].type == 45 || Main.tile[i, j].type == 102) { num5 = 10; } if (Main.tile[i, j].type == 9 || Main.tile[i, j].type == 35 || Main.tile[i, j].type == 42 || Main.tile[i, j].type == 46 || Main.tile[i, j].type == 126 || Main.tile[i, j].type == 136) { num5 = 11; } if (Main.tile[i, j].type == 166 || Main.tile[i, j].type == 170 || Main.tile[i, j].type == 175) { num5 = 81; } if (Main.tile[i, j].type == 167) { num5 = 82; } if (Main.tile[i, j].type == 168 || Main.tile[i, j].type == 171 || Main.tile[i, j].type == 176) { num5 = 83; } if (Main.tile[i, j].type == 169 || Main.tile[i, j].type == 172 || Main.tile[i, j].type == 177) { num5 = 84; } if (Main.tile[i, j].type == 199) { num5 = 117; } if (Main.tile[i, j].type == 205) { num5 = 125; } if (Main.tile[i, j].type == 201) { num5 = 125; } if (Main.tile[i, j].type == 211) { num5 = 128; } if (Main.tile[i, j].type == 227) { int num20 = (int)(Main.tile[i, j].frameX / 34); if (num20 == 0 || num20 == 1) { num5 = 26; } else { if (num20 == 3) { num5 = 3; } else { if (num20 == 2 || num20 == 4 || num20 == 5 || num20 == 6) { num5 = 40; } else { if (num20 == 7) { num5 = 117; } } } } } if (Main.tile[i, j].type == 204) { num5 = 117; if (WorldGen.genRand.Next(2) == 0) { num5 = 1; } } if (Main.tile[i, j].type == 203) { num5 = 117; } if (Main.tile[i, j].type == 243) { if (Main.rand.Next(2) == 0) { num5 = 7; } else { num5 = 13; } } if (Main.tile[i, j].type == 244) { if (Main.rand.Next(2) == 0) { num5 = 1; } else { num5 = 13; } } if (Main.tile[i, j].type == 189) { num5 = 16; } if (Main.tile[i, j].type == 12) { num5 = 12; } if (Main.tile[i, j].type == 3 || Main.tile[i, j].type == 73) { num5 = 3; } if (Main.tile[i, j].type == 13 || Main.tile[i, j].type == 54) { num5 = 13; } if (Main.tile[i, j].type == 22 || Main.tile[i, j].type == 140) { num5 = 14; } if (Main.tile[i, j].type == 78) { num5 = 22; } if (Main.tile[i, j].type == 28) { num5 = 22; if (Main.tile[i, j].frameY >= 72 && Main.tile[i, j].frameY <= 90) { num5 = 1; } if (Main.tile[i, j].frameY >= 144 && Main.tile[i, j].frameY <= 234) { num5 = 48; } if (Main.tile[i, j].frameY >= 252 && Main.tile[i, j].frameY <= 358) { num5 = 85; } if (Main.tile[i, j].frameY >= 360 && Main.tile[i, j].frameY <= 466) { num5 = 26; } if (Main.tile[i, j].frameY >= 468 && Main.tile[i, j].frameY <= 574) { num5 = 36; } if (Main.tile[i, j].frameY >= 576 && Main.tile[i, j].frameY <= 790) { num5 = 18; } if (Main.tile[i, j].frameY >= 792 && Main.tile[i, j].frameY <= 898) { num5 = 5; } if (Main.tile[i, j].frameY >= 900 && Main.tile[i, j].frameY <= 1006) { num5 = 0; } if (Main.tile[i, j].frameY >= 1008 && Main.tile[i, j].frameY <= 1114) { num5 = 148; } } if (Main.tile[i, j].type == 163) { num5 = 118; } if (Main.tile[i, j].type == 164) { num5 = 119; } if (Main.tile[i, j].type == 200) { num5 = 120; } if (Main.tile[i, j].type == 221 || Main.tile[i, j].type == 248) { num5 = 144; } if (Main.tile[i, j].type == 222 || Main.tile[i, j].type == 249) { num5 = 145; } if (Main.tile[i, j].type == 223 || Main.tile[i, j].type == 250) { num5 = 146; } if (Main.tile[i, j].type == 224) { num5 = 149; } if (Main.tile[i, j].type == 225) { num5 = 147; } if (Main.tile[i, j].type == 229) { num5 = 153; } if (Main.tile[i, j].type == 231) { num5 = 153; if (Main.rand.Next(3) == 0) { num5 = 26; } } if (Main.tile[i, j].type == 226) { num5 = 148; } if (Main.tile[i, j].type == 29) { num5 = 23; } if (Main.tile[i, j].type == 40 || Main.tile[i, j].type == 103) { num5 = 28; } if (Main.tile[i, j].type == 49) { num5 = 29; } if (Main.tile[i, j].type == 50) { num5 = 22; } if (Main.tile[i, j].type == 51) { num5 = 30; } if (Main.tile[i, j].type == 52) { num5 = 3; } if (Main.tile[i, j].type == 53 || Main.tile[i, j].type == 81 || Main.tile[i, j].type == 151 || Main.tile[i, j].type == 202) { num5 = 32; } if (Main.tile[i, j].type == 56 || Main.tile[i, j].type == 152) { num5 = 37; } if (Main.tile[i, j].type == 75) { num5 = 109; } if (Main.tile[i, j].type == 57 || Main.tile[i, j].type == 119 || Main.tile[i, j].type == 141 || Main.tile[i, j].type == 234) { num5 = 36; } if (Main.tile[i, j].type == 59 || Main.tile[i, j].type == 120) { num5 = 38; } if (Main.tile[i, j].type == 61 || Main.tile[i, j].type == 62 || Main.tile[i, j].type == 74 || Main.tile[i, j].type == 80 || Main.tile[i, j].type == 188 || Main.tile[i, j].type == 233 || Main.tile[i, j].type == 236) { num5 = 40; } if (Main.tile[i, j].type == 238) { if (WorldGen.genRand.Next(3) == 0) { num5 = 167; } else { num5 = 166; } } if (Main.tile[i, j].type == 69) { num5 = 7; } if (Main.tile[i, j].type == 71 || Main.tile[i, j].type == 72 || Main.tile[i, j].type == 190) { num5 = 26; } if (Main.tile[i, j].type == 70) { num5 = 17; } if (Main.tile[i, j].type == 112) { num5 = 14; } if (Main.tile[i, j].type == 123) { num5 = 53; } if (Main.tile[i, j].type == 161) { num5 = 80; } if (Main.tile[i, j].type == 206) { num5 = 80; } if (Main.tile[i, j].type == 162) { num5 = 80; } if (Main.tile[i, j].type == 165) { if (Main.tile[i, j].frameX < 54) { num5 = 80; } else { if (Main.tile[i, j].frameX >= 162) { num5 = 147; } else { if (Main.tile[i, j].frameX >= 108) { num5 = 30; } else { num5 = 1; } } } } if (Main.tile[i, j].type == 193) { num5 = 4; } if (Main.tile[i, j].type == 194) { num5 = 26; } if (Main.tile[i, j].type == 195) { num5 = 5; } if (Main.tile[i, j].type == 196) { num5 = 108; } if (Main.tile[i, j].type == 197) { num5 = 4; } if (Main.tile[i, j].type == 153) { num5 = 26; } if (Main.tile[i, j].type == 154) { num5 = 32; } if (Main.tile[i, j].type == 155) { num5 = 2; } if (Main.tile[i, j].type == 156) { num5 = 1; } if (Main.tile[i, j].type == 116 || Main.tile[i, j].type == 118 || Main.tile[i, j].type == 147 || Main.tile[i, j].type == 148) { num5 = 51; } if (Main.tile[i, j].type == 109) { if (WorldGen.genRand.Next(2) == 0) { num5 = 0; } else { num5 = 47; } } if (Main.tile[i, j].type == 110 || Main.tile[i, j].type == 113 || Main.tile[i, j].type == 115) { num5 = 47; } if (Main.tile[i, j].type == 107 || Main.tile[i, j].type == 121) { num5 = 48; } if (Main.tile[i, j].type == 108 || Main.tile[i, j].type == 122 || Main.tile[i, j].type == 146) { num5 = 49; } if (Main.tile[i, j].type == 111 || Main.tile[i, j].type == 145 || Main.tile[i, j].type == 150) { num5 = 50; } if (Main.tile[i, j].type == 133) { num5 = 50; if (Main.tile[i, j].frameX >= 54) { num5 = 146; } } if (Main.tile[i, j].type == 134) { num5 = 49; if (Main.tile[i, j].frameX >= 36) { num5 = 145; } } if (Main.tile[i, j].type == 149) { num5 = 49; } if (Main.tileAlch[(int)Main.tile[i, j].type]) { int num21 = (int)(Main.tile[i, j].frameX / 18); if (num21 == 0) { num5 = 3; } if (num21 == 1) { num5 = 3; } if (num21 == 2) { num5 = 7; } if (num21 == 3) { num5 = 17; } if (num21 == 4) { num5 = 3; } if (num21 == 5) { num5 = 6; } } if (Main.tile[i, j].type == 61) { if (WorldGen.genRand.Next(2) == 0) { num5 = 38; } else { num5 = 39; } } if (Main.tile[i, j].type == 58 || Main.tile[i, j].type == 76 || Main.tile[i, j].type == 77) { if (WorldGen.genRand.Next(2) == 0) { num5 = 6; } else { num5 = 25; } } if (Main.tile[i, j].type == 37) { if (WorldGen.genRand.Next(2) == 0) { num5 = 6; } else { num5 = 23; } } if (Main.tile[i, j].type == 32) { if (WorldGen.genRand.Next(2) == 0) { num5 = 14; } else { num5 = 24; } } if (Main.tile[i, j].type == 23 || Main.tile[i, j].type == 24) { if (WorldGen.genRand.Next(2) == 0) { num5 = 14; } else { num5 = 17; } } if (Main.tile[i, j].type == 25 || Main.tile[i, j].type == 31) { if (Main.tile[i, j].type == 31 && Main.tile[i, j].frameX >= 36) { num5 = 5; } else { if (WorldGen.genRand.Next(2) == 0) { num5 = 14; } else { num5 = 1; } } } if (Main.tile[i, j].type == 20) { if (WorldGen.genRand.Next(2) == 0) { num5 = 7; } else { num5 = 2; } } if (Main.tile[i, j].type == 27) { if (WorldGen.genRand.Next(2) == 0) { num5 = 3; } else { num5 = 19; } } if (Main.tile[i, j].type == 129) { if (Main.tile[i, j].frameX == 0 || Main.tile[i, j].frameX == 54 || Main.tile[i, j].frameX == 108) { num5 = 68; } else { if (Main.tile[i, j].frameX == 18 || Main.tile[i, j].frameX == 72 || Main.tile[i, j].frameX == 126) { num5 = 69; } else { num5 = 70; } } } if (Main.tile[i, j].type == 4) { int num22 = (int)(Main.tile[i, j].frameY / 22); if (num22 == 0) { num5 = 6; } else { if (num22 == 8) { num5 = 75; } else { if (num22 == 9) { num5 = 135; } else { if (num22 == 10) { num5 = 158; } else { if (num22 == 11) { num5 = 169; } else { num5 = 58 + num22; } } } } } } if ((Main.tile[i, j].type == 34 || Main.tile[i, j].type == 35 || Main.tile[i, j].type == 36 || Main.tile[i, j].type == 42) && Main.rand.Next(2) == 0) { num5 = 6; } if (num5 >= 0) { if (Main.tile[i, j].type == 160) { int num23 = 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[num23].noGravity = true; } else { if (Main.tile[i, j].type == 178) { int num24 = Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num5, 0f, 0f, 75, default(Color), 0.75f); Main.dust[num24].noLight = true; } else { if (Main.tile[i, j].type == 193 || (Main.tile[i, j].type == 18 && num5 == 4)) { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num5, 0f, 0f, 75, new Color(0, 80, 255, 100), 0.75f); } else { if (Main.tile[i, j].type == 197) { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num5, 0f, 0f, 75, new Color(97, 200, 255, 100), 0.75f); } else { if (Main.tile[i, j].type == 185 && num5 >= 86 && num5 <= 91) { int num25 = Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num5, 0f, 0f, 75, default(Color), 0.75f); Main.dust[num25].noLight = true; } else { Dust.NewDust(new Vector2((float)(i * 16), (float)(j * 16)), 16, 16, num5, 0f, 0f, 0, default(Color), 1f); } } } } } } } if (effectOnly) { return; } if (fail) { if (Main.tile[i, j].type == 2 || Main.tile[i, j].type == 23 || Main.tile[i, j].type == 109 || Main.tile[i, j].type == 199) { Main.tile[i, j].type = 0; } if (Main.tile[i, j].type == 60 || Main.tile[i, j].type == 70) { Main.tile[i, j].type = 59; } if (Main.tileMoss[(int)Main.tile[i, j].type]) { Main.tile[i, j].type = 1; } WorldGen.SquareTileFrame(i, j, true); return; } if (Main.tile[i, j].type == 21 && Main.netMode != 1) { int n = (int)(Main.tile[i, j].frameX / 18); int y = j - (int)(Main.tile[i, j].frameY / 18); while (n > 1) { n -= 2; } n = i - n; if (!Chest.DestroyChest(n, y)) { return; } } if (Main.tile[i, j].type == 51 && Main.tile[i, j].wall == 62 && WorldGen.genRand.Next(4) != 0) { noItem = true; } if (!noItem && !WorldGen.stopDrops && Main.netMode != 1) { int num26 = 0; if (Main.tile[i, j].type == 0 || Main.tile[i, j].type == 2 || Main.tile[i, j].type == 109) { num26 = 2; } else { if (Main.tile[i, j].type == 1) { num26 = 3; } else { if (Main.tile[i, j].type == 3 || Main.tile[i, j].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))) { num26 = 283; } } else { if (Main.tile[i, j].type == 227) { int num27 = (int)(Main.tile[i, j].frameX / 34); num26 = 1107 + num27; } else { if (Main.tile[i, j].type == 4) { int num28 = (int)(Main.tile[i, j].frameY / 22); if (num28 == 0) { num26 = 8; } else { if (num28 == 8) { num26 = 523; } else { if (num28 == 9) { num26 = 974; } else { if (num28 == 10) { num26 = 1245; } else { if (num28 == 11) { num26 = 1333; } else { num26 = 426 + num28; } } } } } } else { if (Main.tile[i, j].type == 239) { int num29 = (int)(Main.tile[i, j].frameX / 18); if (num29 == 0) { num26 = 20; } if (num29 == 1) { num26 = 703; } if (num29 == 2) { num26 = 22; } if (num29 == 3) { num26 = 704; } if (num29 == 4) { num26 = 21; } if (num29 == 5) { num26 = 705; } if (num29 == 6) { num26 = 19; } if (num29 == 7) { num26 = 706; } if (num29 == 8) { num26 = 57; } if (num29 == 9) { num26 = 117; } if (num29 == 10) { num26 = 175; } if (num29 == 11) { num26 = 381; } if (num29 == 12) { num26 = 1184; } if (num29 == 13) { num26 = 382; } if (num29 == 14) { num26 = 1191; } if (num29 == 15) { num26 = 391; } if (num29 == 16) { num26 = 1198; } if (num29 == 17) { num26 = 1006; } if (num29 == 18) { num26 = 1225; } if (num29 == 19) { num26 = 1257; } if (num29 == 20) { num26 = 1552; } } else { if (Main.tile[i, j].type == 5) { if (Main.tile[i, j].frameX >= 22 && Main.tile[i, j].frameY >= 198) { if (Main.netMode != 1) { if (WorldGen.genRand.Next(2) == 0) { int num30 = j; while (Main.tile[i, num30] != null && (!Main.tile[i, num30].active() || !Main.tileSolid[(int)Main.tile[i, num30].type] || Main.tileSolidTop[(int)Main.tile[i, num30].type])) { num30++; } if (Main.tile[i, num30] != null) { if (Main.tile[i, num30].type == 2 || Main.tile[i, num30].type == 109 || Main.tile[i, num30].type == 147) { num26 = 27; } else { num26 = 9; } } } else { num26 = 9; } } } else { num26 = 9; } if (num26 == 9) { int num31 = 3; int num32 = i; int num33 = j; if (Main.tile[i, j].frameX == 66 && Main.tile[i, j].frameY <= 45) { num32++; } if (Main.tile[i, j].frameX == 88 && Main.tile[i, j].frameY >= 66 && Main.tile[i, j].frameY <= 110) { num32--; } if (Main.tile[i, j].frameX == 22 && Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176) { num32--; } if (Main.tile[i, j].frameX == 44 && Main.tile[i, j].frameY >= 132 && Main.tile[i, j].frameY <= 176) { num32++; } if (Main.tile[i, j].frameX == 44 && Main.tile[i, j].frameY >= 198) { num32++; } if (Main.tile[i, j].frameX == 66 && Main.tile[i, j].frameY >= 198) { num32--; } while (!Main.tile[num32, num33].active() || !Main.tileSolid[(int)Main.tile[num32, num33].type]) { num33++; } if (Main.tile[num32, num33].active() && Main.tile[num32, num33].type == 23) { num31 = 0; } if (Main.tile[num32, num33].active() && Main.tile[num32, num33].type == 60) { num31 = 1; } if (Main.tile[num32, num33].active() && Main.tile[num32, num33].type == 109) { num31 = 2; } if (Main.tile[num32, num33].active() && Main.tile[num32, num33].type == 199) { num26 = 911; } else { if (Main.tile[num32, num33].active() && Main.tile[num32, num33].type == 70) { num26 = 183; } else { if (num31 != 3) { num26 = num31 + 619; } } } } } else { if (Main.tile[i, j].type == 214) { num26 = 85; } else { if (Main.tile[i, j].type == 213) { num26 = 965; } else { if (Main.tile[i, j].type == 211) { num26 = 947; } else { if (Main.tile[i, j].type == 6) { num26 = 11; } else { if (Main.tile[i, j].type == 7) { num26 = 12; } else { if (Main.tile[i, j].type == 8) { num26 = 13; } else { if (Main.tile[i, j].type == 9) { num26 = 14; } else { if (Main.tile[i, j].type == 202) { num26 = 824; } else { if (Main.tile[i, j].type == 234) { num26 = 1246; } else { if (Main.tile[i, j].type == 226) { num26 = 1101; } else { if (Main.tile[i, j].type == 224) { num26 = 1103; } else { if (Main.tile[i, j].type == 229) { num26 = 1125; } else { if (Main.tile[i, j].type == 230) { num26 = 1127; } else { if (Main.tile[i, j].type == 225) { if (WorldGen.genRand.Next(3) == 0) { Main.tile[i, j].honey(true); Main.tile[i, j].liquid = 255; } else { num26 = 1124; if (Main.netMode != 1 && WorldGen.genRand.Next(2) == 0) { int num34 = 1; if (WorldGen.genRand.Next(3) == 0) { num34 = 2; } for (int num35 = 0; num35 < num34; num35++) { int type = WorldGen.genRand.Next(210, 212); int num36 = NPC.NewNPC(i * 16 + 8, j * 16 + 15, type, 1); Main.npc[num36].velocity.X = (float)WorldGen.genRand.Next(-200, 201) * 0.002f; Main.npc[num36].velocity.Y = (float)WorldGen.genRand.Next(-200, 201) * 0.002f; Main.npc[num36].netUpdate = true; } } } } else { if (Main.tile[i, j].type == 221) { num26 = 1104; } else { if (Main.tile[i, j].type == 222) { num26 = 1105; } else { if (Main.tile[i, j].type == 223) { num26 = 1106; } else { if (Main.tile[i, j].type == 248) { num26 = 1589; } else { if (Main.tile[i, j].type == 249) { num26 = 1591; } else { if (Main.tile[i, j].type == 250) { num26 = 1593; } else { if (Main.tile[i, j].type == 191) { num26 = 9; } else { if (Main.tile[i, j].type == 203) { num26 = 836; } else { if (Main.tile[i, j].type == 204) { num26 = 880; } else { if (Main.tile[i, j].type == 166) { num26 = 699; } else { if (Main.tile[i, j].type == 167) { num26 = 700; } else { if (Main.tile[i, j].type == 168) { num26 = 701; } else { if (Main.tile[i, j].type == 169) { num26 = 702; } else { if (Main.tile[i, j].type == 123) { num26 = 424; } else { if (Main.tile[i, j].type == 124) { num26 = 480; } else { if (Main.tile[i, j].type == 157) { num26 = 619; } else { if (Main.tile[i, j].type == 158) { num26 = 620; } else { if (Main.tile[i, j].type == 159) { num26 = 621; } else { if (Main.tile[i, j].type == 161) { num26 = 664; } else { if (Main.tile[i, j].type == 206) { num26 = 883; } else { if (Main.tile[i, j].type == 232) { num26 = 1150; } else { if (Main.tile[i, j].type == 198) { num26 = 775; } else { if (Main.tile[i, j].type == 189) { num26 = 751; } else { if (Main.tile[i, j].type == 195) { num26 = 763; } else { if (Main.tile[i, j].type == 194) { num26 = 766; } else { if (Main.tile[i, j].type == 193) { num26 = 762; } else { if (Main.tile[i, j].type == 196) { num26 = 765; } else { if (Main.tile[i, j].type == 197) { num26 = 767; } else { if (Main.tile[i, j].type == 178) { int num37 = (int)(Main.tile[i, j].frameX / 18); if (num37 == 0) { num26 = 181; } else { if (num37 == 1) { num26 = 180; } else { if (num37 == 2) { num26 = 177; } else { if (num37 == 3) { num26 = 179; } else { if (num37 == 4) { num26 = 178; } else { if (num37 == 5) { num26 = 182; } else { if (num37 == 6) { num26 = 999; } } } } } } } } else { if (Main.tile[i, j].type == 149) { if (Main.tile[i, j].frameX == 0 || Main.tile[i, j].frameX == 54) { num26 = 596; } else { if (Main.tile[i, j].frameX == 18 || Main.tile[i, j].frameX == 72) { num26 = 597; } else { if (Main.tile[i, j].frameX == 36 || Main.tile[i, j].frameX == 90) { num26 = 598; } } } } else { if (Main.tile[i, j].type == 13) { Main.PlaySound(13, i * 16, j * 16, 1); if (Main.tile[i, j].frameX == 18) { num26 = 28; } else { if (Main.tile[i, j].frameX == 36) { num26 = 110; } else { if (Main.tile[i, j].frameX == 54) { num26 = 350; } else { if (Main.tile[i, j].frameX == 72) { num26 = 351; } else { num26 = 31; } } } } } else { if (Main.tile[i, j].type == 19) { int num38 = (int)(Main.tile[i, j].frameY / 18); if (num38 == 0) { num26 = 94; } else { if (num38 == 1) { num26 = 631; } else { if (num38 == 2) { num26 = 632; } else { if (num38 == 3) { num26 = 633; } else { if (num38 == 4) { num26 = 634; } else { if (num38 == 5) { num26 = 913; } else { if (num38 == 6) { num26 = 1384; } else { if (num38 == 7) { num26 = 1385; } else { if (num38 == 8) { num26 = 1386; } else { if (num38 == 9) { num26 = 1387; } else { if (num38 == 10) { num26 = 1388; } else { if (num38 == 11) { num26 = 1389; } else { if (num38 == 12) { num26 = 1418; } else { if (num38 == 13) { num26 = 1457; } else { if (num38 == 14) { num26 = 1702; } } } } } } } } } } } } } } } } else { if (Main.tile[i, j].type == 22) { num26 = 56; } else { if (Main.tile[i, j].type == 140) { num26 = 577; } else { if (Main.tile[i, j].type == 23) { num26 = 2; } else { if (Main.tile[i, j].type == 25) { num26 = 61; } else { if (Main.tile[i, j].type == 30) { num26 = 9; } else { if (Main.tile[i, j].type == 191) { num26 = 9; } else { if (Main.tile[i, j].type == 208) { num26 = 911; } else { if (Main.tile[i, j].type == 33) { int num39 = (int)(Main.tile[i, j].frameY / 22); num26 = 105; if (num39 == 1) { num26 = 1405; } else { if (num39 == 2) { num26 = 1406; } else { if (num39 == 3) { num26 = 1407; } } } } else { if (Main.tile[i, j].type == 174) { num26 = 713; } else { if (Main.tile[i, j].type == 37) { num26 = 116; } else { if (Main.tile[i, j].type == 38) { num26 = 129; } else { if (Main.tile[i, j].type == 39) { num26 = 131; } else { if (Main.tile[i, j].type == 40) { num26 = 133; } else { if (Main.tile[i, j].type == 41) { num26 = 134; } else { if (Main.tile[i, j].type == 43) { num26 = 137; } else { if (Main.tile[i, j].type == 44) { num26 = 139; } else { if (Main.tile[i, j].type == 45) { num26 = 141; } else { if (Main.tile[i, j].type == 46) { num26 = 143; } else { if (Main.tile[i, j].type == 47) { num26 = 145; } else { if (Main.tile[i, j].type == 48) { num26 = 147; } else { if (Main.tile[i, j].type == 49) { num26 = 148; } else { if (Main.tile[i, j].type == 51) { num26 = 150; } else { if (Main.tile[i, j].type == 53) { num26 = 169; } else { if (Main.tile[i, j].type == 151) { num26 = 607; } else { if (Main.tile[i, j].type == 152) { num26 = 609; } else { if (Main.tile[i, j].type == 54) { num26 = 170; Main.PlaySound(13, i * 16, j * 16, 1); } else { if (Main.tile[i, j].type == 56) { num26 = 173; } else { if (Main.tile[i, j].type == 57) { num26 = 172; } else { if (Main.tile[i, j].type == 58) { num26 = 174; } else { if (Main.tile[i, j].type == 60) { num26 = 176; } else { if (Main.tile[i, j].type == 70) { num26 = 176; } else { if (Main.tile[i, j].type == 75) { num26 = 192; } else { if (Main.tile[i, j].type == 76) { num26 = 214; } else { if (Main.tile[i, j].type == 78) { num26 = 222; } else { if (Main.tile[i, j].type == 81) { num26 = 275; } else { if (Main.tile[i, j].type == 80) { num26 = 276; } else { if (Main.tile[i, j].type == 188) { num26 = 276; } else { if (Main.tile[i, j].type == 107) { num26 = 364; } else { if (Main.tile[i, j].type == 108) { num26 = 365; } else { if (Main.tile[i, j].type == 111) { num26 = 366; } else { if (Main.tile[i, j].type == 150) { num26 = 604; } else { if (Main.tile[i, j].type == 112) { num26 = 370; } else { if (Main.tile[i, j].type == 116) { num26 = 408; } else { if (Main.tile[i, j].type == 117) { num26 = 409; } else { if (Main.tile[i, j].type == 129) { num26 = 502; } else { if (Main.tile[i, j].type == 118) { num26 = 412; } else { if (Main.tile[i, j].type == 119) { num26 = 413; } else { if (Main.tile[i, j].type == 120) { num26 = 414; } else { if (Main.tile[i, j].type == 121) { num26 = 415; } else { if (Main.tile[i, j].type == 122) { num26 = 416; } else { if (Main.tile[i, j].type == 136) { num26 = 538; } else { if (Main.tile[i, j].type == 137) { int num40 = (int)(Main.tile[i, j].frameY / 18); if (num40 == 0) { num26 = 539; } if (num40 == 1) { num26 = 1146; } if (num40 == 2) { num26 = 1147; } if (num40 == 3) { num26 = 1148; } if (num40 == 4) { num26 = 1149; } } else { if (Main.tile[i, j].type == 141) { num26 = 580; } else { if (Main.tile[i, j].type == 145) { num26 = 586; } else { if (Main.tile[i, j].type == 146) { num26 = 591; } else { if (Main.tile[i, j].type == 147) { num26 = 593; } else { if (Main.tile[i, j].type == 148) { num26 = 594; } else { if (Main.tile[i, j].type == 153) { num26 = 611; } else { if (Main.tile[i, j].type == 154) { num26 = 612; } else { if (Main.tile[i, j].type == 155) { num26 = 613; } else { if (Main.tile[i, j].type == 156) { num26 = 614; } else { if (Main.tile[i, j].type == 160) { num26 = 662; } else { if (Main.tile[i, j].type == 175) { num26 = 717; } else { if (Main.tile[i, j].type == 176) { num26 = 718; } else { if (Main.tile[i, j].type == 177) { num26 = 719; } else { if (Main.tile[i, j].type == 163) { num26 = 833; } else { if (Main.tile[i, j].type == 164) { num26 = 834; } else { if (Main.tile[i, j].type == 200) { num26 = 835; } else { if (Main.tile[i, j].type == 210) { num26 = 937; } else { if (Main.tile[i, j].type == 135) { int num41 = (int)(Main.tile[i, j].frameY / 18); if (num41 == 0) { num26 = 529; } if (num41 == 1) { num26 = 541; } if (num41 == 2) { num26 = 542; } if (num41 == 3) { num26 = 543; } if (num41 == 4) { num26 = 852; } if (num41 == 5) { num26 = 853; } if (num41 == 6) { num26 = 1151; } } else { if (Main.tile[i, j].type == 144) { if (Main.tile[i, j].frameX == 0) { num26 = 583; } if (Main.tile[i, j].frameX == 18) { num26 = 584; } if (Main.tile[i, j].frameX == 36) { num26 = 585; } } else { if (Main.tile[i, j].type == 130) { num26 = 511; } else { if (Main.tile[i, j].type == 131) { num26 = 512; } else { if (Main.tile[i, j].type == 61 || Main.tile[i, j].type == 74) { if (Main.tile[i, j].frameX == 144 && Main.tile[i, j].type == 61) { Item.NewItem(i * 16, j * 16, 16, 16, 331, WorldGen.genRand.Next(2, 4), false, 0, false); } else { if (Main.tile[i, j].frameX == 162 && Main.tile[i, j].type == 61) { num26 = 223; } else { if (Main.tile[i, j].frameX >= 108 && Main.tile[i, j].frameX <= 126 && Main.tile[i, j].type == 61 && WorldGen.genRand.Next(20) == 0) { num26 = 208; } else { if (WorldGen.genRand.Next(100) == 0) { num26 = 195; } } } } } else { if (Main.tile[i, j].type == 59 || Main.tile[i, j].type == 60) { num26 = 176; } else { if (Main.tile[i, j].type == 190) { num26 = 183; } else { if (Main.tile[i, j].type == 71 || Main.tile[i, j].type == 72) { if (WorldGen.genRand.Next(50) == 0) { num26 = 194; } else { if (WorldGen.genRand.Next(2) == 0) { num26 = 183; } } } else { if (Main.tile[i, j].type >= 63 && Main.tile[i, j].type <= 68) { num26 = (int)(Main.tile[i, j].type - 63 + 177); } else { if (Main.tile[i, j].type == 50) { if (Main.tile[i, j].frameX == 90) { num26 = 165; } else { num26 = 149; } } else { if (Main.tileAlch[(int)Main.tile[i, j].type] && Main.tile[i, j].type > 82) { int num42 = (int)(Main.tile[i, j].frameX / 18); bool flag = false; if (Main.tile[i, j].type == 84) { flag = true; } if (num42 == 0 && Main.dayTime) { flag = true; } if (num42 == 1 && !Main.dayTime) { flag = true; } if (num42 == 3 && Main.bloodMoon) { flag = true; } num26 = 313 + num42; if (flag) { Item.NewItem(i * 16, j * 16, 16, 16, 307 + num42, WorldGen.genRand.Next(1, 4), false, 0, false); } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } if (num26 > 0) { Item.NewItem(i * 16, j * 16, 16, 16, num26, 1, false, -1, false); } } Main.tile[i, j].active(false); Main.tile[i, j].halfBrick(false); Main.tile[i, j].frameX = -1; Main.tile[i, j].frameY = -1; Main.tile[i, j].color(0); Main.tile[i, j].frameNumber(0); if (Main.tile[i, j].type == 58 && j > Main.maxTilesY - 200) { Main.tile[i, j].lava(true); Main.tile[i, j].liquid = 128; } Main.tile[i, j].type = 0; Main.tile[i, j].inActive(false); WorldGen.SquareTileFrame(i, j, true); } } } public static bool PlayerLOS(int x, int y) { Rectangle rectangle = new Rectangle(x * 16, y * 16, 16, 16); for (int i = 0; i < 255; i++) { if (Main.player[i].active) { Rectangle value = new Rectangle((int)((double)Main.player[i].position.X + (double)Main.player[i].width * 0.5 - (double)NPC.sWidth * 0.6), (int)((double)Main.player[i].position.Y + (double)Main.player[i].height * 0.5 - (double)NPC.sHeight * 0.6), (int)((double)NPC.sWidth * 1.2), (int)((double)NPC.sHeight * 1.2)); if (rectangle.Intersects(value)) { return true; } } } return false; } public static bool Chlorophyte(int i, int j) { int num = 25; int num2 = 150; int num3 = 30; int num4 = 80; int num5 = 0; for (int k = i - num3; k < i + num3; k++) { for (int l = j - num3; l < j + num3; l++) { if (k < Main.maxTilesX - 10 && k > 10 && Main.tile[k, l].active() && Main.tile[k, l].type == 211) { num5++; } } } if (num5 > num) { return false; } num5 = 0; for (int m = i - num4; m < i + num4; m++) { for (int n = j - num4; n < j + num4; n++) { if (m < Main.maxTilesX - 10 && m > 10 && Main.tile[m, n].active() && Main.tile[m, n].type == 211) { num5++; } } } return num5 <= num2; } public static void hardUpdateWorld(int i, int j) { if (Main.hardMode) { if (Main.tile[i, j].inActive()) { return; } int type = (int)Main.tile[i, j].type; if ((type == 117 || type == 164) && (double)j > Main.rockLayer && Main.rand.Next(110) == 0) { int num = WorldGen.genRand.Next(4); int num2 = 0; int num3 = 0; if (num == 0) { num2 = -1; } else { if (num == 1) { num2 = 1; } else { if (num == 0) { num3 = -1; } else { num3 = 1; } } } if (!Main.tile[i + num2, j + num3].active()) { int num4 = 0; int num5 = 6; for (int k = i - num5; k <= i + num5; k++) { for (int l = j - num5; l <= j + num5; l++) { if (Main.tile[k, l].active() && Main.tile[k, l].type == 129) { num4++; } } } if (num4 < 2) { WorldGen.PlaceTile(i + num2, j + num3, 129, true, false, -1, 0); NetMessage.SendTileSquare(-1, i + num2, j + num3, 1); } } } if ((double)j > (Main.worldSurface + Main.rockLayer) / 2.0) { if (type == 60 && WorldGen.genRand.Next(300) == 0) { int num6 = i + WorldGen.genRand.Next(-10, 11); int num7 = j + WorldGen.genRand.Next(-10, 11); if (Main.tile[num6, num7].active() && Main.tile[num6, num7].type == 59 && (!Main.tile[num6, num7 - 1].active() || (Main.tile[num6, num7 - 1].type != 5 && Main.tile[num6, num7 - 1].type != 236 && Main.tile[num6, num7 - 1].type != 238)) && WorldGen.Chlorophyte(num6, num7)) { Main.tile[num6, num7].type = 211; WorldGen.SquareTileFrame(num6, num7, true); } } if (type == 211) { int num8 = i; int num9 = j; int num10 = WorldGen.genRand.Next(4); if (num10 == 0) { num8++; } if (num10 == 1) { num8--; } if (num10 == 2) { num9++; } if (num10 == 3) { num9--; } if (Main.tile[num8, num9].active() && (Main.tile[num8, num9].type == 59 || Main.tile[num8, num9].type == 60) && WorldGen.Chlorophyte(num8, num9)) { Main.tile[num8, num9].type = 211; WorldGen.SquareTileFrame(num8, num9, true); } } } if (NPC.downedPlantBoss && WorldGen.genRand.Next(3) != 0) { return; } if (type == 23 || type == 25 || type == 32 || type == 112 || type == 153 || type == 163) { bool flag = true; while (flag) { flag = false; int num11 = i + WorldGen.genRand.Next(-3, 4); int num12 = j + WorldGen.genRand.Next(-3, 4); if (Main.tile[num11, num12 - 1].type != 27) { if (Main.tile[num11, num12].type == 2) { if (WorldGen.genRand.Next(2) == 0) { flag = true; } Main.tile[num11, num12].type = 23; WorldGen.SquareTileFrame(num11, num12, true); NetMessage.SendTileSquare(-1, num11, num12, 1); } else { if (Main.tile[num11, num12].type == 1 || Main.tileMoss[(int)Main.tile[num11, num12].type]) { if (WorldGen.genRand.Next(2) == 0) { flag = true; } Main.tile[num11, num12].type = 25; WorldGen.SquareTileFrame(num11, num12, true); NetMessage.SendTileSquare(-1, num11, num12, 1); } else { if (Main.tile[num11, num12].type == 53) { if (WorldGen.genRand.Next(2) == 0) { flag = true; } Main.tile[num11, num12].type = 112; WorldGen.SquareTileFrame(num11, num12, true); NetMessage.SendTileSquare(-1, num11, num12, 1); } else { if (Main.tile[num11, num12].type == 59) { if (WorldGen.genRand.Next(2) == 0) { flag = true; } Main.tile[num11, num12].type = 0; WorldGen.SquareTileFrame(num11, num12, true); NetMessage.SendTileSquare(-1, num11, num12, 1); } else { if (Main.tile[num11, num12].type == 60) { if (WorldGen.genRand.Next(2) == 0) { flag = true; } Main.tile[num11, num12].type = 23; WorldGen.SquareTileFrame(num11, num12, true); NetMessage.SendTileSquare(-1, num11, num12, 1); } else { if (Main.tile[num11, num12].type == 69) { if (WorldGen.genRand.Next(2) == 0) { flag = true; } Main.tile[num11, num12].type = 32; WorldGen.SquareTileFrame(num11, num12, true); NetMessage.SendTileSquare(-1, num11, num12, 1); } else { if (Main.tile[num11, num12].type == 161) { if (WorldGen.genRand.Next(2) == 0) { flag = true; } Main.tile[num11, num12].type = 163; WorldGen.SquareTileFrame(num11, num12, true); NetMessage.SendTileSquare(-1, num11, num12, 1); } } } } } } } } } } if (type == 199 || type == 200 || type == 201 || type == 203 || type == 205 || type == 234) { bool flag2 = true; while (flag2) { flag2 = false; int num13 = i + WorldGen.genRand.Next(-3, 4); int num14 = j + WorldGen.genRand.Next(-3, 4); if (Main.tile[num13, num14 - 1].type != 27) { if (Main.tile[num13, num14].type == 2) { if (WorldGen.genRand.Next(2) == 0) { flag2 = true; } Main.tile[num13, num14].type = 199; WorldGen.SquareTileFrame(num13, num14, true); NetMessage.SendTileSquare(-1, num13, num14, 1); } else { if (Main.tile[num13, num14].type == 1 || Main.tileMoss[(int)Main.tile[num13, num14].type]) { if (WorldGen.genRand.Next(2) == 0) { flag2 = true; } Main.tile[num13, num14].type = 203; WorldGen.SquareTileFrame(num13, num14, true); NetMessage.SendTileSquare(-1, num13, num14, 1); } else { if (Main.tile[num13, num14].type == 53) { if (WorldGen.genRand.Next(2) == 0) { flag2 = true; } Main.tile[num13, num14].type = 234; WorldGen.SquareTileFrame(num13, num14, true); NetMessage.SendTileSquare(-1, num13, num14, 1); } else { if (Main.tile[num13, num14].type == 59) { if (WorldGen.genRand.Next(2) == 0) { flag2 = true; } Main.tile[num13, num14].type = 0; WorldGen.SquareTileFrame(num13, num14, true); NetMessage.SendTileSquare(-1, num13, num14, 1); } else { if (Main.tile[num13, num14].type == 60) { if (WorldGen.genRand.Next(2) == 0) { flag2 = true; } Main.tile[num13, num14].type = 199; WorldGen.SquareTileFrame(num13, num14, true); NetMessage.SendTileSquare(-1, num13, num14, 1); } else { if (Main.tile[num13, num14].type == 69) { if (WorldGen.genRand.Next(2) == 0) { flag2 = true; } WorldGen.KillTile(num13, num14, false, false, false); WorldGen.SquareTileFrame(num13, num14, true); NetMessage.SendTileSquare(-1, num13, num14, 1); } else { if (Main.tile[num13, num14].type == 161) { if (WorldGen.genRand.Next(2) == 0) { flag2 = true; } Main.tile[num13, num14].type = 200; WorldGen.SquareTileFrame(num13, num14, true); NetMessage.SendTileSquare(-1, num13, num14, 1); } } } } } } } } } } if (type == 109 || type == 110 || type == 113 || type == 115 || type == 116 || type == 117 || type == 164) { bool flag3 = true; while (flag3) { flag3 = false; int num15 = i + WorldGen.genRand.Next(-3, 4); int num16 = j + WorldGen.genRand.Next(-3, 4); if (Main.tile[num15, num16].type == 2) { if (WorldGen.genRand.Next(2) == 0) { flag3 = true; } Main.tile[num15, num16].type = 109; WorldGen.SquareTileFrame(num15, num16, true); NetMessage.SendTileSquare(-1, num15, num16, 1); } else { if (Main.tile[num15, num16].type == 1 || Main.tileMoss[(int)Main.tile[num15, num16].type]) { if (WorldGen.genRand.Next(2) == 0) { flag3 = true; } Main.tile[num15, num16].type = 117; WorldGen.SquareTileFrame(num15, num16, true); NetMessage.SendTileSquare(-1, num15, num16, 1); } else { if (Main.tile[num15, num16].type == 53) { if (WorldGen.genRand.Next(2) == 0) { flag3 = true; } Main.tile[num15, num16].type = 116; WorldGen.SquareTileFrame(num15, num16, true); NetMessage.SendTileSquare(-1, num15, num16, 1); } else { if (Main.tile[num15, num16].type == 161) { if (WorldGen.genRand.Next(2) == 0) { flag3 = true; } Main.tile[num15, num16].type = 164; WorldGen.SquareTileFrame(num15, num16, true); NetMessage.SendTileSquare(-1, num15, num16, 1); } } } } } } } } public static bool SolidTile(int i, int j) { try { if (Main.tile[i, j] == null) { bool result = true; return result; } if (Main.tile[i, j].active() && Main.tileSolid[(int)Main.tile[i, j].type] && !Main.tileSolidTop[(int)Main.tile[i, j].type] && !Main.tile[i, j].halfBrick() && Main.tile[i, j].slope() == 0 && !Main.tile[i, j].inActive()) { bool result = true; return result; } } catch { } return false; } public static bool SolidTile2(int i, int j) { try { if (Main.tile[i, j] == null) { bool result = true; return result; } if (Main.tile[i, j].active() && Main.tileSolid[(int)Main.tile[i, j].type] && Main.tile[i, j].slope() == 0 && !Main.tile[i, j].halfBrick() && !Main.tile[i, j].inActive()) { bool result = true; return result; } } catch { } return false; } public static bool SolidTileNotDoor(int i, int j) { try { if (Main.tile[i, j] == null) { bool result = true; return result; } if (Main.tile[i, j].active() && Main.tileSolid[(int)Main.tile[i, j].type] && Main.tile[i, j].slope() == 0 && Main.tile[i, j].type != 10 && !Main.tile[i, j].halfBrick() && !Main.tile[i, j].inActive()) { bool result = true; return result; } } catch { } return false; } public static Vector2 Hive(int i, int j) { double num = (double)WorldGen.genRand.Next(12, 21); double num2 = num; float num3 = (float)WorldGen.genRand.Next(10, 21); Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.2f; value2.Y = (float)WorldGen.genRand.Next(-10, 11) * 0.2f; while (num > 0.0 && num3 > 0f) { num = num2 * (double)(1f + (float)WorldGen.genRand.Next(-20, 20) * 0.01f); num3 -= 1f; int num4 = (int)((double)value.X - num); int num5 = (int)((double)value.X + num); int num6 = (int)((double)value.Y - num); int num7 = (int)((double)value.Y + num); if (num4 < 1) { num4 = 1; } if (num5 > Main.maxTilesX - 1) { num5 = Main.maxTilesX - 1; } if (num6 < 1) { num6 = 1; } if (num7 > Main.maxTilesY - 1) { num7 = Main.maxTilesY - 1; } for (int k = num4; k < num5; k++) { for (int l = num6; l < num7; l++) { float num8 = Math.Abs((float)k - value.X); float num9 = Math.Abs((float)l - value.Y); double num10 = Math.Sqrt((double)(num8 * num8 + num9 * num9)); if (num10 < num2 * 0.4 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.005)) { if (WorldGen.genRand.Next(3) == 0) { Main.tile[k, l].liquid = 255; } Main.tile[k, l].honey(true); Main.tile[k, l].wall = 86; Main.tile[k, l].active(false); Main.tile[k, l].halfBrick(false); Main.tile[k, l].slope(0); WorldGen.SquareWallFrame(k, l, true); } else { if (num10 < num2 * 0.75 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.005)) { Main.tile[k, l].liquid = 0; if (Main.tile[k, l].wall != 86) { Main.tile[k, l].active(true); Main.tile[k, l].halfBrick(false); Main.tile[k, l].slope(0); Main.tile[k, l].type = 225; } } } if (num10 < num2 * 0.6 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.005)) { Main.tile[k, l].wall = 86; } WorldGen.SquareWallFrame(k, l, true); WorldGen.SquareTileFrame(k, l, true); } } value += value2; num3 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; } return new Vector2(value.X, value.Y); } public static void MineHouse(int i, int j) { if (i < 50 || i > Main.maxTilesX - 50 || j < 50 || j > Main.maxTilesY - 50) { return; } int num = WorldGen.genRand.Next(6, 12); int num2 = WorldGen.genRand.Next(3, 6); int num3 = WorldGen.genRand.Next(15, 30); int num4 = WorldGen.genRand.Next(15, 30); if (WorldGen.SolidTile(i, j)) { return; } if (Main.tile[i, j].wall > 0) { return; } int num5 = j - num; int num6 = j + num2; for (int k = 0; k < 2; k++) { bool flag = true; int num7 = i; int num8 = j; int num9 = -1; int num10 = num3; if (k == 1) { num9 = 1; num10 = num4; num7++; } while (flag) { if (num8 - num < num5) { num5 = num8 - num; } if (num8 + num2 > num6) { num6 = num8 + num2; } for (int l = 0; l < 2; l++) { int num11 = num8; bool flag2 = true; int num12 = num; int num13 = -1; if (l == 1) { num11++; num12 = num2; num13 = 1; } while (flag2) { if (num7 != i && Main.tile[num7 - num9, num11].wall != 27 && (WorldGen.SolidTile(num7 - num9, num11) || !Main.tile[num7 - num9, num11].active() || Main.tile[num7 - num9, num11].halfBrick() || Main.tile[num7 - num9, num11].slope() != 0)) { Main.tile[num7 - num9, num11].active(true); Main.tile[num7 - num9, num11].type = 30; } if (WorldGen.SolidTile(num7 - 1, num11) || Main.tile[num7 - 1, num11].halfBrick() || Main.tile[num7 - 1, num11].slope() != 0) { Main.tile[num7 - 1, num11].type = 30; } if (WorldGen.SolidTile(num7 + 1, num11) || Main.tile[num7 + 1, num11].halfBrick() || Main.tile[num7 + 1, num11].slope() != 0) { Main.tile[num7 + 1, num11].type = 30; } if (WorldGen.SolidTile(num7, num11) || Main.tile[num7, num11].halfBrick() || Main.tile[num7, num11].slope() != 0) { int num14 = 0; if (WorldGen.SolidTile(num7 - 1, num11)) { num14++; } if (WorldGen.SolidTile(num7 + 1, num11)) { num14++; } if (WorldGen.SolidTile(num7, num11 - 1)) { num14++; } if (WorldGen.SolidTile(num7, num11 + 1)) { num14++; } if (num14 < 2) { Main.tile[num7, num11].active(false); } else { flag2 = false; Main.tile[num7, num11].type = 30; } } else { Main.tile[num7, num11].wall = 27; Main.tile[num7, num11].liquid = 0; Main.tile[num7, num11].lava(false); } num11 += num13; num12--; if (num12 <= 0) { if (!Main.tile[num7, num11].active()) { Main.tile[num7, num11].active(true); Main.tile[num7, num11].type = 30; } flag2 = false; } } } num10--; num7 += num9; if (WorldGen.SolidTile(num7, num8)) { int num15 = 0; int num16 = 0; int num17 = num8; bool flag3 = true; while (flag3) { num17--; num15++; if (WorldGen.SolidTile(num7 - num9, num17)) { num15 = 999; flag3 = false; } else { if (!WorldGen.SolidTile(num7, num17)) { flag3 = false; } } } num17 = num8; flag3 = true; while (flag3) { num17++; num16++; if (WorldGen.SolidTile(num7 - num9, num17)) { num16 = 999; flag3 = false; } else { if (!WorldGen.SolidTile(num7, num17)) { flag3 = false; } } } if (num16 <= num15) { if (num16 > num2) { num10 = 0; } else { num8 += num16 + 1; } } else { if (num15 > num) { num10 = 0; } else { num8 -= num15 + 1; } } } if (num10 <= 0) { flag = false; } } } int num18 = i - num3 - 1; int num19 = i + num4 + 2; int num20 = num5 - 1; int num21 = num6 + 2; for (int m = num18; m < num19; m++) { for (int n = num20; n < num21; n++) { if (Main.tile[m, n].wall == 27 && !Main.tile[m, n].active()) { if (Main.tile[m - 1, n].wall != 27 && m < i && !WorldGen.SolidTile(m - 1, n)) { WorldGen.PlaceTile(m, n, 30, true, false, -1, 0); Main.tile[m, n].wall = 0; } if (Main.tile[m + 1, n].wall != 27 && m > i && !WorldGen.SolidTile(m + 1, n)) { WorldGen.PlaceTile(m, n, 30, true, false, -1, 0); Main.tile[m, n].wall = 0; } for (int num22 = m - 1; num22 <= m + 1; num22++) { for (int num23 = n - 1; num23 <= n + 1; num23++) { if (WorldGen.SolidTile(num22, num23)) { Main.tile[num22, num23].type = 30; } } } } if (Main.tile[m, n].type == 30 && Main.tile[m - 1, n].wall == 27 && Main.tile[m + 1, n].wall == 27 && (Main.tile[m, n - 1].wall == 27 || Main.tile[m, n - 1].active()) && (Main.tile[m, n + 1].wall == 27 || Main.tile[m, n + 1].active())) { Main.tile[m, n].active(false); Main.tile[m, n].wall = 27; } } } for (int num24 = num18; num24 < num19; num24++) { for (int num25 = num20; num25 < num21; num25++) { if (Main.tile[num24, num25].type == 30) { if (Main.tile[num24 - 1, num25].wall == 27 && Main.tile[num24 + 1, num25].wall == 27 && !Main.tile[num24 - 1, num25].active() && !Main.tile[num24 + 1, num25].active()) { Main.tile[num24, num25].active(false); Main.tile[num24, num25].wall = 27; } if (Main.tile[num24, num25 - 1].type != 21 && Main.tile[num24 - 1, num25].wall == 27 && Main.tile[num24 + 1, num25].type == 30 && Main.tile[num24 + 2, num25].wall == 27 && !Main.tile[num24 - 1, num25].active() && !Main.tile[num24 + 2, num25].active()) { Main.tile[num24, num25].active(false); Main.tile[num24, num25].wall = 27; Main.tile[num24 + 1, num25].active(false); Main.tile[num24 + 1, num25].wall = 27; } if (Main.tile[num24, num25 - 1].wall == 27 && Main.tile[num24, num25 + 1].wall == 27 && !Main.tile[num24, num25 - 1].active() && !Main.tile[num24, num25 + 1].active()) { Main.tile[num24, num25].active(false); Main.tile[num24, num25].wall = 27; } } } } for (int num26 = num18; num26 < num19; num26++) { for (int num27 = num21; num27 > num20; num27--) { bool flag4 = false; if (Main.tile[num26, num27].active() && Main.tile[num26, num27].type == 30) { int num28 = -1; for (int num29 = 0; num29 < 2; num29++) { if (!WorldGen.SolidTile(num26 + num28, num27) && Main.tile[num26 + num28, num27].wall == 0) { int num30 = 0; int num31 = num27; int num32 = num27; while (Main.tile[num26, num31].active() && Main.tile[num26, num31].type == 30 && !WorldGen.SolidTile(num26 + num28, num31) && Main.tile[num26 + num28, num31].wall == 0) { num31--; num30++; } num31++; int num33 = num31 + 1; if (num30 > 4) { if (WorldGen.genRand.Next(2) == 0) { num31 = num32 - 1; bool flag5 = true; for (int num34 = num26 - 2; num34 <= num26 + 2; num34++) { for (int num35 = num31 - 2; num35 <= num31; num35++) { if (num34 != num26 && Main.tile[num34, num35].active()) { flag5 = false; } } } if (flag5) { Main.tile[num26, num31].active(false); Main.tile[num26, num31 - 1].active(false); Main.tile[num26, num31 - 2].active(false); WorldGen.PlaceTile(num26, num31, 10, true, false, -1, 0); flag4 = true; } } if (!flag4) { for (int num36 = num33; num36 < num32; num36++) { Main.tile[num26, num36].type = 124; } } } } num28 = 1; } } if (flag4) { break; } } } int num37 = WorldGen.genRand.Next(1, 2); if (WorldGen.genRand.Next(4) == 0) { num37 = 0; } if (WorldGen.genRand.Next(6) == 0) { num37++; } if (WorldGen.genRand.Next(10) == 0) { num37++; } for (int num38 = 0; num38 < num37; num38++) { int num39 = 0; int num40 = WorldGen.genRand.Next(num18, num19); int num41 = WorldGen.genRand.Next(num20, num21); while (!Main.wallHouse[(int)Main.tile[num40, num41].wall] || Main.tile[num40, num41].active()) { num39++; if (num39 > 1000) { break; } num40 = WorldGen.genRand.Next(num18, num19); num41 = WorldGen.genRand.Next(num20, num21); } if (num39 > 1000) { break; } int num43; int num44; int num45; int num46; for (int num42 = 0; num42 < 2; num42++) { num43 = num40; num44 = num40; while (!Main.tile[num43, num41].active() && Main.wallHouse[(int)Main.tile[num43, num41].wall]) { num43--; } num43++; while (!Main.tile[num44, num41].active() && Main.wallHouse[(int)Main.tile[num44, num41].wall]) { num44++; } num44--; i = (num43 + num44) / 2; num45 = num41; num46 = num41; while (!Main.tile[num40, num45].active() && Main.wallHouse[(int)Main.tile[num40, num45].wall]) { num45--; } num45++; while (!Main.tile[num40, num46].active() && Main.wallHouse[(int)Main.tile[num40, num46].wall]) { num46++; } num46--; num41 = (num45 + num46) / 2; } num43 = num40; num44 = num40; while (!Main.tile[num43, num41].active() && !Main.tile[num43, num41 - 1].active() && !Main.tile[num43, num41 + 1].active()) { num43--; } num43++; while (!Main.tile[num44, num41].active() && !Main.tile[num44, num41 - 1].active() && !Main.tile[num44, num41 + 1].active()) { num44++; } num44--; num45 = num41; num46 = num41; while (!Main.tile[num40, num45].active() && !Main.tile[num40 - 1, num45].active() && !Main.tile[num40 + 1, num45].active()) { num45--; } num45++; while (!Main.tile[num40, num46].active() && !Main.tile[num40 - 1, num46].active() && !Main.tile[num40 + 1, num46].active()) { num46++; } num46--; num40 = (num43 + num44) / 2; num41 = (num45 + num46) / 2; int num47 = num44 - num43; int num48 = num46 - num45; if (num47 > 7 && num48 > 5) { int num49 = 0; if (WorldGen.nearPicture2(i, num41)) { num49 = -1; } if (num49 == 0) { Vector2 vector = WorldGen.randHousePicture(); int type = (int)vector.X; int style = (int)vector.Y; if (!WorldGen.nearPicture(num40, num41)) { WorldGen.PlaceTile(num40, num41, type, true, false, -1, style); } } } } for (int num50 = num18; num50 < num19; num50++) { bool flag6 = true; for (int num51 = num20; num51 < num21; num51++) { for (int num52 = num50 - 3; num52 <= num50 + 3; num52++) { if (Main.tile[num52, num51].active() && (!WorldGen.SolidTile(num52, num51) || Main.tile[num52, num51].type == 10)) { flag6 = false; } } } if (flag6) { for (int num53 = num20; num53 < num21; num53++) { if (Main.tile[num50, num53].wall == 27 && !Main.tile[num50, num53].active()) { WorldGen.PlaceTile(num50, num53, 124, true, false, -1, 0); } } } num50 += WorldGen.genRand.Next(4); } for (int num54 = 0; num54 < 4; num54++) { int num55 = WorldGen.genRand.Next(num18 + 2, num19 - 1); int num56 = WorldGen.genRand.Next(num20 + 2, num21 - 1); while (Main.tile[num55, num56].wall != 27) { num55 = WorldGen.genRand.Next(num18 + 2, num19 - 1); num56 = WorldGen.genRand.Next(num20 + 2, num21 - 1); } while (Main.tile[num55, num56].active()) { num56--; } while (!Main.tile[num55, num56].active()) { num56++; } num56--; if (Main.tile[num55, num56].wall == 27) { if (WorldGen.genRand.Next(3) == 0) { int num57 = WorldGen.genRand.Next(9); if (num57 == 0) { num57 = 14; } if (num57 == 1) { num57 = 16; } if (num57 == 2) { num57 = 18; } if (num57 == 3) { num57 = 86; } if (num57 == 4) { num57 = 87; } if (num57 == 5) { num57 = 94; } if (num57 == 6) { num57 = 101; } if (num57 == 7) { num57 = 104; } if (num57 == 8) { num57 = 106; } WorldGen.PlaceTile(num55, num56, num57, true, false, -1, 0); } else { int style2 = WorldGen.genRand.Next(2, 43); WorldGen.PlaceTile(num55, num56, 105, true, true, -1, style2); } } } for (int num58 = 0; num58 < 40; num58++) { int num59 = WorldGen.genRand.Next(num18 + 2, num19 - 1); int num60 = WorldGen.genRand.Next(num20 + 2, num21 - 1); while (Main.tile[num59, num60].wall != 27) { num59 = WorldGen.genRand.Next(num18 + 2, num19 - 1); num60 = WorldGen.genRand.Next(num20 + 2, num21 - 1); } while (Main.tile[num59, num60].active()) { num60--; } while (!Main.tile[num59, num60].active()) { num60++; } num60--; if (Main.tile[num59, num60].wall == 27 && WorldGen.genRand.Next(2) == 0) { int style3 = WorldGen.genRand.Next(22, 26); WorldGen.PlaceTile(num59, num60, 186, true, false, -1, style3); } } for (int num61 = 0; num61 < 20; num61++) { int num62 = WorldGen.genRand.Next(num18 + 2, num19 - 1); int num63 = WorldGen.genRand.Next(num20 + 2, num21 - 1); while (Main.tile[num62, num63].wall != 27) { num62 = WorldGen.genRand.Next(num18 + 2, num19 - 1); num63 = WorldGen.genRand.Next(num20 + 2, num21 - 1); } while (Main.tile[num62, num63].active()) { num63--; } while (!Main.tile[num62, num63].active()) { num63++; } num63--; if (Main.tile[num62, num63].wall == 27 && WorldGen.genRand.Next(2) == 0) { int x = WorldGen.genRand.Next(31, 34); WorldGen.PlaceSmallPile(num62, num63, x, 1, 185); } } for (int num64 = 0; num64 < 15; num64++) { int num65 = WorldGen.genRand.Next(num18 + 2, num19 - 1); int num66 = WorldGen.genRand.Next(num20 + 2, num21 - 1); while (Main.tile[num65, num66].wall != 27) { num65 = WorldGen.genRand.Next(num18 + 2, num19 - 1); num66 = WorldGen.genRand.Next(num20 + 2, num21 - 1); } while (Main.tile[num65, num66].active()) { num66--; } while (num66 > 0 && !Main.tile[num65, num66 - 1].active()) { num66--; } if (Main.tile[num65, num66].wall == 27) { int style4 = 0; int num67 = WorldGen.genRand.Next(10); int num68; if (num67 < 9) { num68 = -1; } else { num67 = WorldGen.genRand.Next(6); if (num67 == 0) { num68 = 34; } else { if (num67 == 1) { num68 = 35; } else { if (num67 == 2) { num68 = 36; } else { if (num67 == 3) { num68 = 170; } else { if (num67 == 4) { num68 = 171; } else { num68 = 172; } } } } } } if (num68 > 0) { WorldGen.PlaceTile(num65, num66, num68, true, false, -1, style4); if ((int)Main.tile[num65, num66].type == num68) { if (num68 == 4) { Tile expr_151D = Main.tile[num65, num66]; expr_151D.frameX += 54; } else { int num69 = num65; int num70 = num66; num66 = num70 - (int)(Main.tile[num69, num70].frameY / 18); num65 = (int)(Main.tile[num69, num70].frameX / 18); if (num65 > 2) { num65 -= 3; } num65 = num69 - num65; short num71 = 54; if (Main.tile[num65, num66].frameX > 0) { num71 = -54; } for (int num72 = num65; num72 < num65 + 3; num72++) { for (int num73 = num66; num73 < num66 + 3; num73++) { Tile expr_15B6 = Main.tile[num72, num73]; expr_15B6.frameX += num71; } } } } } } } } public static void CountTiles(int X) { if (X == 0) { WorldGen.totalEvil = WorldGen.totalEvil2; WorldGen.totalSolid = WorldGen.totalSolid2; WorldGen.totalGood = WorldGen.totalGood2; float num = (float)WorldGen.totalGood / (float)WorldGen.totalSolid; num = (float)Math.Round((double)(num * 100f)); float num2 = (float)WorldGen.totalEvil / (float)WorldGen.totalSolid; num2 = (float)Math.Round((double)(num2 * 100f)); WorldGen.tGood = (byte)num; WorldGen.tEvil = (byte)num2; if (Main.netMode == 2) { NetMessage.SendData(57, -1, -1, "", 0, 0f, 0f, 0f, 0); } WorldGen.totalEvil2 = 0; WorldGen.totalSolid2 = 0; WorldGen.totalGood2 = 0; } for (int i = 0; i < Main.maxTilesY; i++) { int num3 = 1; if ((double)i <= Main.worldSurface) { num3 *= 5; } if (WorldGen.SolidTile(X, i)) { if (Main.tile[X, i].type == 109 || Main.tile[X, i].type == 116 || Main.tile[X, i].type == 117 || Main.tile[X, i].type == 164) { WorldGen.totalGood2 += num3; } else { if (Main.tile[X, i].type == 23 || Main.tile[X, i].type == 25 || Main.tile[X, i].type == 112 || Main.tile[X, i].type == 163) { WorldGen.totalEvil2 += num3; } else { if (Main.tile[X, i].type == 199 || Main.tile[X, i].type == 200 || Main.tile[X, i].type == 203 || Main.tile[X, i].type == 234) { WorldGen.totalEvil2 += num3; } } } WorldGen.totalSolid2 += num3; } } } public static void plantDye(int i, int j) { if (Main.tile[i, j].active()) { if (i < 80 || i > Main.maxTilesX - 80 || j < 80 || j > Main.maxTilesY - 80) { return; } int num = 75; if ((double)j < Main.worldSurface) { if (Main.tile[i, j - 1].active() && Main.tile[i, j - 1].type != 3 && Main.tile[i, j - 1].type != 51 && Main.tile[i, j - 1].type != 61 && Main.tile[i, j - 1].type != 73 && Main.tile[i, j - 1].type != 74 && Main.tile[i, j - 1].type != 184) { return; } for (int k = i - num; k < i + num; k++) { for (int l = j - num; l < j + num; l++) { if (Main.tile[k, l].active() && Main.tile[k, l].type == 227) { return; } } } if (Main.tile[i, j].type == 2 || Main.tile[i, j].type == 109) { if (Main.rand.Next(4) == 0) { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 4); return; } WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 3); return; } else { if (Main.tile[i, j].type == 60) { if (Main.rand.Next(2) == 0) { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 2); return; } WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 4); return; } else { if (Main.tile[i, j].type == 53 && Main.tile[i, j - 1].liquid == 255 && Main.tile[i, j - 2].liquid == 255) { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 2); return; } if (Main.tile[i, j].type != 80 || Main.tile[i - 1, j - 1].active() || Main.tile[i + 1, j - 1].active()) { return; } try { bool flag = true; for (int m = i - 5; m <= i + 5; m++) { for (int n = j - 5; n <= j + 15; n++) { if (Main.tile[m, n].active() && (Main.tile[m, n].type == 112 || Main.tile[m, n].type == 234)) { flag = false; } } } if (flag) { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 6); } return; } catch { return; } } } } if (j < Main.maxTilesY - 200) { if (!Main.tile[i, j - 1].active() || Main.tile[i, j - 1].type == 3 || Main.tile[i, j - 1].type == 51 || Main.tile[i, j - 1].type == 61 || Main.tile[i, j - 1].type == 73 || Main.tile[i, j - 1].type == 74 || Main.tile[i, j - 1].type == 184) { for (int num2 = i - num; num2 < i + num; num2++) { for (int num3 = j - num; num3 < j + num; num3++) { if (Main.tile[num2, num3].active() && Main.tile[num2, num3].type == 227) { return; } } } if (Main.tile[i, j].type == 60) { if (Main.rand.Next(2) == 0) { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 2); } else { if (Main.rand.Next(2) == 0) { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 0); } else { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 1); } } } else { if (Main.tile[i, j].type == 0 || Main.tile[i, j].type == 1 || Main.tile[i, j].type == 59) { if (Main.rand.Next(2) == 0) { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 0); } else { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 1); } } else { if (Main.tile[i, j - 1].liquid == 255 && Main.tile[i, j - 2].liquid == 255) { WorldGen.PlaceTile(i, j - 1, 227, true, false, -1, 5); } } } } if (!Main.tile[i, j + 1].active()) { for (int num4 = i - num; num4 < i + num; num4++) { for (int num5 = j - num; num5 < j + num; num5++) { if (Main.tile[num4, num5].active() && Main.tile[num4, num5].type == 227) { return; } } } if (Main.tile[i, j].type == 0) { WorldGen.PlaceTile(i, j + 1, 227, true, false, -1, 7); } } } } } public static void UpdateWorld() { WorldGen.UpdateMech(); WorldGen.totalD++; if (WorldGen.totalD >= 10) { WorldGen.totalD = 0; WorldGen.CountTiles(WorldGen.totalX); WorldGen.totalX++; if (WorldGen.totalX >= Main.maxTilesX) { WorldGen.totalX = 0; } } Liquid.skipCount++; if (Liquid.skipCount > 1) { Liquid.UpdateLiquid(); Liquid.skipCount = 0; } float num = 3E-05f * (float)Main.worldRate; float num2 = 1.5E-05f * (float)Main.worldRate; bool flag = false; WorldGen.spawnDelay++; if (Main.invasionType > 0 || Main.eclipse) { WorldGen.spawnDelay = 0; } if (WorldGen.spawnDelay >= 20) { flag = true; WorldGen.spawnDelay = 0; if (WorldGen.spawnNPC != 37) { for (int i = 0; i < 200; i++) { if (Main.npc[i].active && Main.npc[i].homeless && Main.npc[i].townNPC) { WorldGen.spawnNPC = Main.npc[i].type; break; } } } } int num3 = 0; while ((float)num3 < (float)(Main.maxTilesX * Main.maxTilesY) * num) { int num4 = WorldGen.genRand.Next(10, Main.maxTilesX - 10); int num5 = WorldGen.genRand.Next(10, (int)Main.worldSurface - 1); int num6 = num4 - 1; int num7 = num4 + 2; int num8 = num5 - 1; int num9 = num5 + 2; if (num6 < 10) { num6 = 10; } if (num7 > Main.maxTilesX - 10) { num7 = Main.maxTilesX - 10; } if (num8 < 10) { num8 = 10; } if (num9 > Main.maxTilesY - 10) { num9 = Main.maxTilesY - 10; } if (Main.tile[num4, num5] != null) { if (Main.tileAlch[(int)Main.tile[num4, num5].type]) { WorldGen.GrowAlch(num4, num5); } if (Main.tile[num4, num5].liquid > 32) { if (Main.tile[num4, num5].active() && (Main.tile[num4, num5].type == 3 || Main.tile[num4, num5].type == 20 || Main.tile[num4, num5].type == 24 || Main.tile[num4, num5].type == 27 || Main.tile[num4, num5].type == 73)) { WorldGen.KillTile(num4, num5, false, false, false); if (Main.netMode == 2) { NetMessage.SendData(17, -1, -1, "", 0, (float)num4, (float)num5, 0f, 0); } } } else { if (Main.tile[num4, num5].nactive()) { WorldGen.hardUpdateWorld(num4, num5); if (Main.rand.Next(2000) == 0) { WorldGen.plantDye(num4, num5); } if (Main.tile[num4, num5].type == 80) { if (WorldGen.genRand.Next(15) == 0) { WorldGen.GrowCactus(num4, num5); } } else { if (Main.tile[num4, num5].type == 53) { if (!Main.tile[num4, num8].active()) { if (num4 < 250 || num4 > Main.maxTilesX - 250) { if (WorldGen.genRand.Next(500) == 0 && Main.tile[num4, num8].liquid == 255 && Main.tile[num4, num8 - 1].liquid == 255 && Main.tile[num4, num8 - 2].liquid == 255 && Main.tile[num4, num8 - 3].liquid == 255 && Main.tile[num4, num8 - 4].liquid == 255) { WorldGen.PlaceTile(num4, num8, 81, true, false, -1, 0); if (Main.netMode == 2 && Main.tile[num4, num8].active()) { NetMessage.SendTileSquare(-1, num4, num8, 1); } } } else { if (num4 > 400 && num4 < Main.maxTilesX - 400 && WorldGen.genRand.Next(300) == 0) { WorldGen.GrowCactus(num4, num5); } } } } else { if (Main.tile[num4, num5].type == 116 || Main.tile[num4, num5].type == 112 || Main.tile[num4, num5].type == 234) { if (!Main.tile[num4, num8].active() && num4 > 400 && num4 < Main.maxTilesX - 400 && WorldGen.genRand.Next(300) == 0) { WorldGen.GrowCactus(num4, num5); } } else { if (Main.tile[num4, num5].type == 147 || Main.tile[num4, num5].type == 161 || Main.tile[num4, num5].type == 163 || Main.tile[num4, num5].type == 164 || Main.tile[num4, num5].type == 200) { if (Main.rand.Next(10) == 0 && !Main.tile[num4, num5 + 1].active() && !Main.tile[num4, num5 + 2].active()) { int num10 = num4 - 3; int num11 = num4 + 4; int num12 = 0; for (int j = num10; j < num11; j++) { if (Main.tile[j, num5].type == 165 && Main.tile[j, num5].active()) { num12++; } if (Main.tile[j, num5 + 1].type == 165 && Main.tile[j, num5 + 1].active()) { num12++; } if (Main.tile[j, num5 + 2].type == 165 && Main.tile[j, num5 + 2].active()) { num12++; } if (Main.tile[j, num5 + 3].type == 165 && Main.tile[j, num5 + 3].active()) { num12++; } } if (num12 < 2) { WorldGen.PlaceTight(num4, num5 + 1, 165, false); WorldGen.SquareTileFrame(num4, num5 + 1, true); if (Main.netMode == 2 && Main.tile[num4, num5 + 1].active()) { NetMessage.SendTileSquare(-1, num4, num5 + 1, 3); } } } } else { if (Main.tile[num4, num5].type == 78) { if (!Main.tile[num4, num8].active()) { WorldGen.PlaceTile(num4, num8, 3, true, false, -1, 0); if (Main.netMode == 2 && Main.tile[num4, num8].active()) { NetMessage.SendTileSquare(-1, num4, num8, 1); } } } else { if (Main.tile[num4, num5].type == 2 || Main.tile[num4, num5].type == 23 || Main.tile[num4, num5].type == 32 || Main.tile[num4, num5].type == 109 || Main.tile[num4, num5].type == 199) { int num13 = (int)Main.tile[num4, num5].type; if (!Main.tile[num4, num8].active() && WorldGen.genRand.Next(12) == 0 && num13 == 2) { WorldGen.PlaceTile(num4, num8, 3, true, false, -1, 0); if (Main.tile[num4, num8].active()) { Main.tile[num4, num8].color(Main.tile[num4, num5].color()); } if (Main.netMode == 2 && Main.tile[num4, num8].active()) { NetMessage.SendTileSquare(-1, num4, num8, 1); } } if (!Main.tile[num4, num8].active() && WorldGen.genRand.Next(10) == 0 && num13 == 23) { WorldGen.PlaceTile(num4, num8, 24, true, false, -1, 0); if (Main.tile[num4, num8].active()) { Main.tile[num4, num8].color(Main.tile[num4, num5].color()); } if (Main.netMode == 2 && Main.tile[num4, num8].active()) { NetMessage.SendTileSquare(-1, num4, num8, 1); } } if (!Main.tile[num4, num8].active() && WorldGen.genRand.Next(10) == 0 && num13 == 109) { WorldGen.PlaceTile(num4, num8, 110, true, false, -1, 0); if (Main.tile[num4, num8].active()) { Main.tile[num4, num8].color(Main.tile[num4, num5].color()); } if (Main.netMode == 2 && Main.tile[num4, num8].active()) { NetMessage.SendTileSquare(-1, num4, num8, 1); } } if (!Main.tile[num4, num8].active() && WorldGen.genRand.Next(10) == 0 && num13 == 199) { WorldGen.PlaceTile(num4, num8, 201, true, false, -1, 0); if (Main.tile[num4, num8].active()) { Main.tile[num4, num8].color(Main.tile[num4, num5].color()); } if (Main.netMode == 2 && Main.tile[num4, num8].active()) { NetMessage.SendTileSquare(-1, num4, num8, 1); } } bool flag2 = false; for (int k = num6; k < num7; k++) { for (int l = num8; l < num9; l++) { if ((num4 != k || num5 != l) && Main.tile[k, l].active()) { if (num13 == 32) { num13 = 23; } if (Main.tile[k, l].type == 0 || (num13 == 23 && Main.tile[k, l].type == 2) || (num13 == 199 && Main.tile[k, l].type == 2) || (num13 == 23 && Main.tile[k, l].type == 109)) { WorldGen.SpreadGrass(k, l, 0, num13, false, Main.tile[num4, num5].color()); if (num13 == 23) { WorldGen.SpreadGrass(k, l, 2, num13, false, Main.tile[num4, num5].color()); } if (num13 == 23) { WorldGen.SpreadGrass(k, l, 109, num13, false, Main.tile[num4, num5].color()); } if (num13 == 199) { WorldGen.SpreadGrass(k, l, 2, num13, false, Main.tile[num4, num5].color()); } if (num13 == 199) { WorldGen.SpreadGrass(k, l, 109, num13, false, Main.tile[num4, num5].color()); } if ((int)Main.tile[k, l].type == num13) { WorldGen.SquareTileFrame(k, l, true); flag2 = true; } } if (Main.tile[k, l].type == 0 || (num13 == 109 && Main.tile[k, l].type == 2) || (num13 == 109 && Main.tile[k, l].type == 23) || (num13 == 109 && Main.tile[k, l].type == 199)) { WorldGen.SpreadGrass(k, l, 0, num13, false, Main.tile[num4, num5].color()); if (num13 == 109) { WorldGen.SpreadGrass(k, l, 2, num13, false, Main.tile[num4, num5].color()); } if (num13 == 109) { WorldGen.SpreadGrass(k, l, 23, num13, false, Main.tile[num4, num5].color()); } if (num13 == 109) { WorldGen.SpreadGrass(k, l, 199, num13, false, Main.tile[num4, num5].color()); } if ((int)Main.tile[k, l].type == num13) { WorldGen.SquareTileFrame(k, l, true); flag2 = true; } } } } } if (Main.netMode == 2 && flag2) { NetMessage.SendTileSquare(-1, num4, num5, 3); } } else { if (Main.tile[num4, num5].type == 20 && WorldGen.genRand.Next(20) == 0 && !WorldGen.PlayerLOS(num4, num5)) { WorldGen.GrowTree(num4, num5); } } } } } } } if (Main.tile[num4, num5].type == 3 && WorldGen.genRand.Next(20) == 0 && Main.tile[num4, num5].frameX != 144) { if ((Main.tile[num4, num5].frameX < 144 && Main.rand.Next(10) == 0) || (Main.tile[num4, num5 + 1].type == 78 && Main.rand.Next(2) == 0)) { Main.tile[num4, num5].frameX = (short)(198 + WorldGen.genRand.Next(10) * 18); } Main.tile[num4, num5].type = 73; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num4, num5, 3); } } if (Main.tile[num4, num5].type == 110 && WorldGen.genRand.Next(20) == 0 && Main.tile[num4, num5].frameX < 144) { Main.tile[num4, num5].type = 113; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num4, num5, 3); } } if (Main.tile[num4, num5].type == 32 && WorldGen.genRand.Next(3) == 0) { int num14 = num4; int num15 = num5; int num16 = 0; if (Main.tile[num14 + 1, num15].active() && Main.tile[num14 + 1, num15].type == 32) { num16++; } if (Main.tile[num14 - 1, num15].active() && Main.tile[num14 - 1, num15].type == 32) { num16++; } if (Main.tile[num14, num15 + 1].active() && Main.tile[num14, num15 + 1].type == 32) { num16++; } if (Main.tile[num14, num15 - 1].active() && Main.tile[num14, num15 - 1].type == 32) { num16++; } if (num16 < 3 || Main.tile[num4, num5].type == 23) { int num17 = WorldGen.genRand.Next(4); if (num17 == 0) { num15--; } else { if (num17 == 1) { num15++; } else { if (num17 == 2) { num14--; } else { if (num17 == 3) { num14++; } } } } if (!Main.tile[num14, num15].active()) { num16 = 0; if (Main.tile[num14 + 1, num15].active() && Main.tile[num14 + 1, num15].type == 32) { num16++; } if (Main.tile[num14 - 1, num15].active() && Main.tile[num14 - 1, num15].type == 32) { num16++; } if (Main.tile[num14, num15 + 1].active() && Main.tile[num14, num15 + 1].type == 32) { num16++; } if (Main.tile[num14, num15 - 1].active() && Main.tile[num14, num15 - 1].type == 32) { num16++; } if (num16 < 2) { int num18 = 7; int num19 = num14 - num18; int num20 = num14 + num18; int num21 = num15 - num18; int num22 = num15 + num18; bool flag3 = false; for (int m = num19; m < num20; m++) { for (int n = num21; n < num22; n++) { if (Math.Abs(m - num14) * 2 + Math.Abs(n - num15) < 9 && Main.tile[m, n].active() && Main.tile[m, n].type == 23 && Main.tile[m, n - 1].active() && Main.tile[m, n - 1].type == 32 && Main.tile[m, n - 1].liquid == 0) { flag3 = true; break; } } } if (flag3) { Main.tile[num14, num15].type = 32; Main.tile[num14, num15].active(true); WorldGen.SquareTileFrame(num14, num15, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num14, num15, 3); } } } } } } } else { if (flag && WorldGen.spawnNPC > 0) { if (Main.tile[num4, num5].wall == 34) { if (Main.rand.Next(4) == 0) { WorldGen.SpawnNPC(num4, num5); } } else { WorldGen.SpawnNPC(num4, num5); } } } } int num23 = 10; if (Main.tile[num4, num5].wall == 81 || Main.tile[num4, num5].wall == 83 || (Main.tile[num4, num5].type == 199 && Main.tile[num4, num5].active())) { int num24 = num4 + WorldGen.genRand.Next(-2, 3); int num25 = num5 + WorldGen.genRand.Next(-2, 3); if (Main.tile[num24, num25].wall >= 63 && Main.tile[num24, num25].wall <= 68) { bool flag4 = false; for (int num26 = num4 - num23; num26 < num4 + num23; num26++) { for (int num27 = num5 - num23; num27 < num5 + num23; num27++) { if (Main.tile[num4, num5].active()) { int type = (int)Main.tile[num4, num5].type; if (type == 199 || type == 200 || type == 201 || type == 203 || type == 205 || type == 234) { flag4 = true; break; } } } } if (flag4) { Main.tile[num24, num25].wall = 81; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num24, num25, 3); } } } } if (Main.tile[num4, num5].wall == 69 || Main.tile[num4, num5].wall == 3 || (Main.tile[num4, num5].type == 23 && Main.tile[num4, num5].active())) { int num28 = num4 + WorldGen.genRand.Next(-2, 3); int num29 = num5 + WorldGen.genRand.Next(-2, 3); if (Main.tile[num28, num29].wall >= 63 && Main.tile[num28, num29].wall <= 68) { bool flag5 = false; for (int num30 = num4 - num23; num30 < num4 + num23; num30++) { for (int num31 = num5 - num23; num31 < num5 + num23; num31++) { if (Main.tile[num4, num5].active()) { int type2 = (int)Main.tile[num4, num5].type; if (type2 == 22 || type2 == 23 || type2 == 24 || type2 == 25 || type2 == 32 || type2 == 112 || type2 == 163) { flag5 = true; break; } } } } if (flag5) { Main.tile[num28, num29].wall = 69; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num28, num29, 3); } } } } if (Main.tile[num4, num5].wall == 70 || (Main.tile[num4, num5].type == 109 && Main.tile[num4, num5].active())) { int num32 = num4 + WorldGen.genRand.Next(-2, 3); int num33 = num5 + WorldGen.genRand.Next(-2, 3); if (Main.tile[num32, num33].wall == 63 || Main.tile[num32, num33].wall == 65 || Main.tile[num32, num33].wall == 66 || Main.tile[num32, num33].wall == 68) { bool flag6 = false; for (int num34 = num4 - num23; num34 < num4 + num23; num34++) { for (int num35 = num5 - num23; num35 < num5 + num23; num35++) { if (Main.tile[num4, num5].active()) { int type3 = (int)Main.tile[num4, num5].type; if (type3 == 109 || type3 == 110 || type3 == 113 || type3 == 115 || type3 == 116 || type3 == 117 || type3 == 164) { flag6 = true; break; } } } } if (flag6) { Main.tile[num32, num33].wall = 70; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num32, num33, 3); } } } } if (Main.tile[num4, num5].active()) { if ((Main.tile[num4, num5].type == 2 || Main.tile[num4, num5].type == 52 || (Main.tile[num4, num5].type == 192 && WorldGen.genRand.Next(10) == 0)) && WorldGen.genRand.Next(40) == 0 && !Main.tile[num4, num5 + 1].active() && !Main.tile[num4, num5 + 1].lava()) { bool flag7 = false; for (int num36 = num5; num36 > num5 - 10; num36--) { if (Main.tile[num4, num36].active() && Main.tile[num4, num36].type == 2) { flag7 = true; break; } } if (flag7) { int num37 = num4; int num38 = num5 + 1; Main.tile[num37, num38].type = 52; Main.tile[num37, num38].active(true); Main.tile[num37, num38].color(Main.tile[num4, num5].color()); WorldGen.SquareTileFrame(num37, num38, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num37, num38, 3); } } } if (Main.tile[num4, num5].type == 70) { int type4 = (int)Main.tile[num4, num5].type; if (!Main.tile[num4, num8].active() && WorldGen.genRand.Next(10) == 0) { WorldGen.PlaceTile(num4, num8, 71, true, false, -1, 0); if (Main.tile[num4, num8].active()) { Main.tile[num4, num8].color(Main.tile[num4, num5].color()); } if (Main.netMode == 2 && Main.tile[num4, num8].active()) { NetMessage.SendTileSquare(-1, num4, num8, 1); } } if (WorldGen.genRand.Next(100) == 0 && !WorldGen.PlayerLOS(num4, num5)) { WorldGen.GrowTree(num4, num5); } bool flag8 = false; for (int num39 = num6; num39 < num7; num39++) { for (int num40 = num8; num40 < num9; num40++) { if ((num4 != num39 || num5 != num40) && Main.tile[num39, num40].active() && Main.tile[num39, num40].type == 59) { WorldGen.SpreadGrass(num39, num40, 59, type4, false, Main.tile[num4, num5].color()); if ((int)Main.tile[num39, num40].type == type4) { WorldGen.SquareTileFrame(num39, num40, true); flag8 = true; } } } } if (Main.netMode == 2 && flag8) { NetMessage.SendTileSquare(-1, num4, num5, 3); } } if (Main.tile[num4, num5].type == 60) { int type5 = (int)Main.tile[num4, num5].type; if (!Main.tile[num4, num8].active() && WorldGen.genRand.Next(7) == 0) { WorldGen.PlaceTile(num4, num8, 61, true, false, -1, 0); if (Main.tile[num4, num8].active()) { Main.tile[num4, num8].color(Main.tile[num4, num5].color()); } if (Main.netMode == 2 && Main.tile[num4, num8].active()) { NetMessage.SendTileSquare(-1, num4, num8, 1); } } else { if (WorldGen.genRand.Next(500) == 0 && (!Main.tile[num4, num8].active() || Main.tile[num4, num8].type == 61 || Main.tile[num4, num8].type == 74 || Main.tile[num4, num8].type == 69)) { if (!WorldGen.PlayerLOS(num4, num5)) { WorldGen.GrowTree(num4, num5); } } else { if (WorldGen.genRand.Next(25) == 0 && Main.tile[num4, num8].liquid == 0) { WorldGen.PlaceJunglePlant(num4, num8, 233, WorldGen.genRand.Next(8), 0); if (Main.tile[num4, num8].type == 233) { if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num4, num8, 4); } else { WorldGen.PlaceJunglePlant(num4, num8, 233, WorldGen.genRand.Next(12), 1); if (Main.tile[num4, num8].type == 233 && Main.netMode == 2) { NetMessage.SendTileSquare(-1, num4, num8, 3); } } } } } } bool flag9 = false; for (int num41 = num6; num41 < num7; num41++) { for (int num42 = num8; num42 < num9; num42++) { if ((num4 != num41 || num5 != num42) && Main.tile[num41, num42].active() && Main.tile[num41, num42].type == 59) { WorldGen.SpreadGrass(num41, num42, 59, type5, false, Main.tile[num4, num5].color()); if ((int)Main.tile[num41, num42].type == type5) { WorldGen.SquareTileFrame(num41, num42, true); flag9 = true; } } } } if (Main.netMode == 2 && flag9) { NetMessage.SendTileSquare(-1, num4, num5, 3); } } if (Main.tile[num4, num5].type == 61 && WorldGen.genRand.Next(3) == 0 && Main.tile[num4, num5].frameX < 144) { if (Main.rand.Next(4) == 0) { Main.tile[num4, num5].frameX = (short)(162 + WorldGen.genRand.Next(8) * 18); } Main.tile[num4, num5].type = 74; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num4, num5, 3); } } if ((Main.tile[num4, num5].type == 60 || Main.tile[num4, num5].type == 62) && WorldGen.genRand.Next(15) == 0 && !Main.tile[num4, num5 + 1].active() && !Main.tile[num4, num5 + 1].lava()) { bool flag10 = false; for (int num43 = num5; num43 > num5 - 10; num43--) { if (Main.tile[num4, num43].active() && Main.tile[num4, num43].type == 60) { flag10 = true; break; } } if (flag10) { int num44 = num4; int num45 = num5 + 1; Main.tile[num44, num45].type = 62; Main.tile[num44, num45].active(true); WorldGen.SquareTileFrame(num44, num45, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num44, num45, 3); } } } if ((Main.tile[num4, num5].type == 109 || Main.tile[num4, num5].type == 115) && WorldGen.genRand.Next(15) == 0 && !Main.tile[num4, num5 + 1].active() && !Main.tile[num4, num5 + 1].lava()) { bool flag11 = false; for (int num46 = num5; num46 > num5 - 10; num46--) { if (Main.tile[num4, num46].active() && Main.tile[num4, num46].type == 109) { flag11 = true; break; } } if (flag11) { int num47 = num4; int num48 = num5 + 1; Main.tile[num47, num48].type = 115; Main.tile[num47, num48].active(true); WorldGen.SquareTileFrame(num47, num48, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num47, num48, 3); } } } if ((Main.tile[num4, num5].type == 199 || Main.tile[num4, num5].type == 205) && WorldGen.genRand.Next(15) == 0 && !Main.tile[num4, num5 + 1].active() && !Main.tile[num4, num5 + 1].lava()) { bool flag12 = false; for (int num49 = num5; num49 > num5 - 10; num49--) { if (Main.tile[num4, num49].active() && Main.tile[num4, num49].type == 199) { flag12 = true; break; } } if (flag12) { int num50 = num4; int num51 = num5 + 1; Main.tile[num50, num51].type = 205; Main.tile[num50, num51].active(true); WorldGen.SquareTileFrame(num50, num51, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num50, num51, 3); } } } } } num3++; } int num52 = 0; while ((float)num52 < (float)(Main.maxTilesX * Main.maxTilesY) * num2) { int num53 = WorldGen.genRand.Next(10, Main.maxTilesX - 10); int num54 = WorldGen.genRand.Next((int)Main.worldSurface - 1, Main.maxTilesY - 20); int num55 = num53 - 1; int num56 = num53 + 2; int num57 = num54 - 1; int num58 = num54 + 2; if (num55 < 10) { num55 = 10; } if (num56 > Main.maxTilesX - 10) { num56 = Main.maxTilesX - 10; } if (num57 < 10) { num57 = 10; } if (num58 > Main.maxTilesY - 10) { num58 = Main.maxTilesY - 10; } if (Main.tile[num53, num54] != null) { if (Main.tileAlch[(int)Main.tile[num53, num54].type]) { WorldGen.GrowAlch(num53, num54); } if (Main.tile[num53, num54].liquid <= 32) { if (Main.tile[num53, num54].nactive()) { WorldGen.hardUpdateWorld(num53, num54); if (Main.rand.Next(2000) == 0) { WorldGen.plantDye(num53, num54); } if (Main.tile[num53, num54].type == 23 && !Main.tile[num53, num57].active() && WorldGen.genRand.Next(1) == 0) { WorldGen.PlaceTile(num53, num57, 24, true, false, -1, 0); if (Main.netMode == 2 && Main.tile[num53, num57].active()) { NetMessage.SendTileSquare(-1, num53, num57, 1); } } if (Main.tile[num53, num54].type == 32 && WorldGen.genRand.Next(3) == 0) { int num59 = num53; int num60 = num54; int num61 = 0; if (Main.tile[num59 + 1, num60].active() && Main.tile[num59 + 1, num60].type == 32) { num61++; } if (Main.tile[num59 - 1, num60].active() && Main.tile[num59 - 1, num60].type == 32) { num61++; } if (Main.tile[num59, num60 + 1].active() && Main.tile[num59, num60 + 1].type == 32) { num61++; } if (Main.tile[num59, num60 - 1].active() && Main.tile[num59, num60 - 1].type == 32) { num61++; } if (num61 < 3 || Main.tile[num53, num54].type == 23) { int num62 = WorldGen.genRand.Next(4); if (num62 == 0) { num60--; } else { if (num62 == 1) { num60++; } else { if (num62 == 2) { num59--; } else { if (num62 == 3) { num59++; } } } } if (!Main.tile[num59, num60].active()) { num61 = 0; if (Main.tile[num59 + 1, num60].active() && Main.tile[num59 + 1, num60].type == 32) { num61++; } if (Main.tile[num59 - 1, num60].active() && Main.tile[num59 - 1, num60].type == 32) { num61++; } if (Main.tile[num59, num60 + 1].active() && Main.tile[num59, num60 + 1].type == 32) { num61++; } if (Main.tile[num59, num60 - 1].active() && Main.tile[num59, num60 - 1].type == 32) { num61++; } if (num61 < 2) { int num63 = 7; int num64 = num59 - num63; int num65 = num59 + num63; int num66 = num60 - num63; int num67 = num60 + num63; bool flag13 = false; for (int num68 = num64; num68 < num65; num68++) { for (int num69 = num66; num69 < num67; num69++) { if (Math.Abs(num68 - num59) * 2 + Math.Abs(num69 - num60) < 9 && Main.tile[num68, num69].active() && Main.tile[num68, num69].type == 23 && Main.tile[num68, num69 - 1].active() && Main.tile[num68, num69 - 1].type == 32 && Main.tile[num68, num69 - 1].liquid == 0) { flag13 = true; break; } } } if (flag13) { Main.tile[num59, num60].type = 32; Main.tile[num59, num60].active(true); WorldGen.SquareTileFrame(num59, num60, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num59, num60, 3); } } } } } } if (Main.tile[num53, num54].type == 199) { int type6 = (int)Main.tile[num53, num54].type; bool flag14 = false; for (int num70 = num55; num70 < num56; num70++) { for (int num71 = num57; num71 < num58; num71++) { if ((num53 != num70 || num54 != num71) && Main.tile[num70, num71].active() && Main.tile[num70, num71].type == 0) { WorldGen.SpreadGrass(num70, num71, 0, type6, false, Main.tile[num53, num54].color()); if ((int)Main.tile[num70, num71].type == type6) { WorldGen.SquareTileFrame(num70, num71, true); flag14 = true; } } } } if (Main.netMode == 2 && flag14) { NetMessage.SendTileSquare(-1, num53, num54, 3); } } if (Main.tile[num53, num54].type == 60) { int type7 = (int)Main.tile[num53, num54].type; if (!Main.tile[num53, num57].active() && WorldGen.genRand.Next(10) == 0) { WorldGen.PlaceTile(num53, num57, 61, true, false, -1, 0); if (Main.netMode == 2 && Main.tile[num53, num57].active()) { NetMessage.SendTileSquare(-1, num53, num57, 1); } } else { if (WorldGen.genRand.Next(25) == 0 && Main.tile[num53, num57].liquid == 0) { if (Main.hardMode && NPC.downedMechBossAny && WorldGen.genRand.Next(60) == 0) { bool flag15 = true; int num72 = 150; for (int num73 = num53 - num72; num73 < num53 + num72; num73 += 2) { for (int num74 = num54 - num72; num74 < num54 + num72; num74 += 2) { if (num73 > 1 && num73 < Main.maxTilesX - 2 && num74 > 1 && num74 < Main.maxTilesY - 2 && Main.tile[num73, num74].active() && Main.tile[num73, num74].type == 238) { flag15 = false; break; } } } if (flag15) { WorldGen.PlaceJunglePlant(num53, num57, 238, 0, 0); WorldGen.SquareTileFrame(num53, num57, true); WorldGen.SquareTileFrame(num53 + 1, num57 + 1, true); if (Main.tile[num53, num57].type == 238 && Main.netMode == 2) { NetMessage.SendTileSquare(-1, num53, num57, 4); } } } if (Main.hardMode && WorldGen.genRand.Next(40) == 0) { bool flag16 = true; int num75 = 80; for (int num76 = num53 - num75; num76 < num53 + num75; num76 += 2) { for (int num77 = num54 - num75; num77 < num54 + num75; num77 += 2) { if (num76 > 1 && num76 < Main.maxTilesX - 2 && num77 > 1 && num77 < Main.maxTilesY - 2 && Main.tile[num76, num77].active() && Main.tile[num76, num77].type == 236) { flag16 = false; break; } } } if (flag16) { WorldGen.PlaceJunglePlant(num53, num57, 236, WorldGen.genRand.Next(3), 0); WorldGen.SquareTileFrame(num53, num57, true); WorldGen.SquareTileFrame(num53 + 1, num57 + 1, true); if (Main.tile[num53, num57].type == 236 && Main.netMode == 2) { NetMessage.SendTileSquare(-1, num53, num57, 4); } } } else { WorldGen.PlaceJunglePlant(num53, num57, 233, WorldGen.genRand.Next(8), 0); if (Main.tile[num53, num57].type == 233) { if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num53, num57, 4); } else { WorldGen.PlaceJunglePlant(num53, num57, 233, WorldGen.genRand.Next(12), 1); if (Main.tile[num53, num57].type == 233 && Main.netMode == 2) { NetMessage.SendTileSquare(-1, num53, num57, 3); } } } } } } bool flag17 = false; for (int num78 = num55; num78 < num56; num78++) { for (int num79 = num57; num79 < num58; num79++) { if ((num53 != num78 || num54 != num79) && Main.tile[num78, num79].active() && Main.tile[num78, num79].type == 59) { WorldGen.SpreadGrass(num78, num79, 59, type7, false, Main.tile[num53, num54].color()); if ((int)Main.tile[num78, num79].type == type7) { WorldGen.SquareTileFrame(num78, num79, true); flag17 = true; } } } } if (Main.netMode == 2 && flag17) { NetMessage.SendTileSquare(-1, num53, num54, 3); } } if (Main.tile[num53, num54].type == 61 && WorldGen.genRand.Next(3) == 0 && Main.tile[num53, num54].frameX < 144) { if (Main.rand.Next(4) == 0) { Main.tile[num53, num54].frameX = (short)(162 + WorldGen.genRand.Next(8) * 18); } Main.tile[num53, num54].type = 74; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num53, num54, 3); } } if ((Main.tile[num53, num54].type == 60 || Main.tile[num53, num54].type == 62) && WorldGen.genRand.Next(5) == 0 && !Main.tile[num53, num54 + 1].active() && !Main.tile[num53, num54 + 1].lava()) { bool flag18 = false; for (int num80 = num54; num80 > num54 - 10; num80--) { if (Main.tile[num53, num80].active() && Main.tile[num53, num80].type == 60) { flag18 = true; break; } } if (flag18) { int num81 = num53; int num82 = num54 + 1; Main.tile[num81, num82].type = 62; Main.tile[num81, num82].active(true); WorldGen.SquareTileFrame(num81, num82, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num81, num82, 3); } } } if (Main.tile[num53, num54].type == 69 && WorldGen.genRand.Next(3) == 0) { int num83 = num53; int num84 = num54; int num85 = 0; if (Main.tile[num83 + 1, num84].active() && Main.tile[num83 + 1, num84].type == 69) { num85++; } if (Main.tile[num83 - 1, num84].active() && Main.tile[num83 - 1, num84].type == 69) { num85++; } if (Main.tile[num83, num84 + 1].active() && Main.tile[num83, num84 + 1].type == 69) { num85++; } if (Main.tile[num83, num84 - 1].active() && Main.tile[num83, num84 - 1].type == 69) { num85++; } if (num85 < 3 || Main.tile[num53, num54].type == 60) { int num86 = WorldGen.genRand.Next(4); if (num86 == 0) { num84--; } else { if (num86 == 1) { num84++; } else { if (num86 == 2) { num83--; } else { if (num86 == 3) { num83++; } } } } if (!Main.tile[num83, num84].active()) { num85 = 0; if (Main.tile[num83 + 1, num84].active() && Main.tile[num83 + 1, num84].type == 69) { num85++; } if (Main.tile[num83 - 1, num84].active() && Main.tile[num83 - 1, num84].type == 69) { num85++; } if (Main.tile[num83, num84 + 1].active() && Main.tile[num83, num84 + 1].type == 69) { num85++; } if (Main.tile[num83, num84 - 1].active() && Main.tile[num83, num84 - 1].type == 69) { num85++; } if (num85 < 2) { int num87 = 7; int num88 = num83 - num87; int num89 = num83 + num87; int num90 = num84 - num87; int num91 = num84 + num87; bool flag19 = false; for (int num92 = num88; num92 < num89; num92++) { for (int num93 = num90; num93 < num91; num93++) { if (Math.Abs(num92 - num83) * 2 + Math.Abs(num93 - num84) < 9 && Main.tile[num92, num93].active() && Main.tile[num92, num93].type == 60 && Main.tile[num92, num93 - 1].active() && Main.tile[num92, num93 - 1].type == 69 && Main.tile[num92, num93 - 1].liquid == 0) { flag19 = true; break; } } } if (flag19) { Main.tile[num83, num84].type = 69; Main.tile[num83, num84].active(true); WorldGen.SquareTileFrame(num83, num84, true); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num83, num84, 3); } } } } } } else { if (Main.tile[num53, num54].type == 147 || Main.tile[num53, num54].type == 161 || Main.tile[num53, num54].type == 163 || Main.tile[num53, num54].type == 164 || Main.tile[num53, num54].type == 200) { if (Main.rand.Next(10) == 0 && !Main.tile[num53, num54 + 1].active() && !Main.tile[num53, num54 + 2].active()) { int num94 = num53 - 3; int num95 = num53 + 4; int num96 = 0; for (int num97 = num94; num97 < num95; num97++) { if (Main.tile[num97, num54].type == 165 && Main.tile[num97, num54].active()) { num96++; } if (Main.tile[num97, num54 + 1].type == 165 && Main.tile[num97, num54 + 1].active()) { num96++; } if (Main.tile[num97, num54 + 2].type == 165 && Main.tile[num97, num54 + 2].active()) { num96++; } if (Main.tile[num97, num54 + 3].type == 165 && Main.tile[num97, num54 + 3].active()) { num96++; } } if (num96 < 2) { WorldGen.PlaceTight(num53, num54 + 1, 165, false); WorldGen.SquareTileFrame(num53, num54 + 1, true); if (Main.netMode == 2 && Main.tile[num53, num54 + 1].active()) { NetMessage.SendTileSquare(-1, num53, num54 + 1, 3); } } } } else { if (Main.tileMoss[(int)Main.tile[num53, num54].type]) { int type8 = (int)Main.tile[num53, num54].type; bool flag20 = false; for (int num98 = num55; num98 < num56; num98++) { for (int num99 = num57; num99 < num58; num99++) { if ((num53 != num98 || num54 != num99) && Main.tile[num98, num99].active() && Main.tile[num98, num99].type == 1) { WorldGen.SpreadGrass(num98, num99, 1, type8, false, Main.tile[num53, num54].color()); if ((int)Main.tile[num98, num99].type == type8) { WorldGen.SquareTileFrame(num98, num99, true); flag20 = true; } } } } if (Main.netMode == 2 && flag20) { NetMessage.SendTileSquare(-1, num53, num54, 3); } if (WorldGen.genRand.Next(6) == 0) { int num100 = num53; int num101 = num54; int num102 = WorldGen.genRand.Next(4); if (num102 == 0) { num100--; } else { if (num102 == 1) { num100++; } else { if (num102 == 2) { num101--; } else { num101++; } } } if (!Main.tile[num100, num101].active()) { WorldGen.PlaceTile(num100, num101, 184, true, false, -1, 0); if (Main.netMode == 2 && Main.tile[num100, num101].active()) { NetMessage.SendTileSquare(-1, num100, num101, 1); } } } } } } if (Main.tile[num53, num54].type == 70) { int type9 = (int)Main.tile[num53, num54].type; if (!Main.tile[num53, num57].active() && WorldGen.genRand.Next(10) == 0) { WorldGen.PlaceTile(num53, num57, 71, true, false, -1, 0); if (Main.netMode == 2 && Main.tile[num53, num57].active()) { NetMessage.SendTileSquare(-1, num53, num57, 1); } } if (WorldGen.genRand.Next(200) == 0 && !WorldGen.PlayerLOS(num53, num54)) { WorldGen.GrowShroom(num53, num54); } bool flag21 = false; for (int num103 = num55; num103 < num56; num103++) { for (int num104 = num57; num104 < num58; num104++) { if ((num53 != num103 || num54 != num104) && Main.tile[num103, num104].active() && Main.tile[num103, num104].type == 59) { WorldGen.SpreadGrass(num103, num104, 59, type9, false, Main.tile[num53, num54].color()); if ((int)Main.tile[num103, num104].type == type9) { WorldGen.SquareTileFrame(num103, num104, true); flag21 = true; } } } } if (Main.netMode == 2 && flag21) { NetMessage.SendTileSquare(-1, num53, num54, 3); } } } else { if (Main.tile[num53, num54].wall == 62 && Main.tile[num53, num54].liquid == 0 && WorldGen.genRand.Next(10) == 0) { int num105 = WorldGen.genRand.Next(2, 4); int num106 = num53 - num105; int num107 = num53 + num105; int num108 = num54 - num105; int num109 = num54 + num105; bool flag22 = false; for (int num110 = num106; num110 <= num107; num110++) { for (int num111 = num108; num111 <= num109; num111++) { if (WorldGen.SolidTile(num110, num111)) { flag22 = true; break; } } } if (flag22 && !Main.tile[num53, num54].active()) { WorldGen.PlaceTile(num53, num54, 51, true, false, -1, 0); WorldGen.TileFrame(num53, num54, true, false); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num53, num54, 3); } } } if (flag && WorldGen.spawnNPC > 0) { if (Main.tile[num53, num54].wall == 34) { if (Main.rand.Next(4) == 0) { WorldGen.SpawnNPC(num53, num54); } } else { WorldGen.SpawnNPC(num53, num54); } } } } int num112 = 10; if (Main.tile[num53, num54].wall == 81 || Main.tile[num53, num54].wall == 83 || (Main.tile[num53, num54].type == 199 && Main.tile[num53, num54].active())) { int num113 = num53 + WorldGen.genRand.Next(-2, 3); int num114 = num54 + WorldGen.genRand.Next(-2, 3); if (Main.tile[num113, num114].wall >= 63 && Main.tile[num113, num114].wall <= 68) { bool flag23 = false; for (int num115 = num53 - num112; num115 < num53 + num112; num115++) { for (int num116 = num54 - num112; num116 < num54 + num112; num116++) { if (Main.tile[num53, num54].active()) { int type10 = (int)Main.tile[num53, num54].type; if (type10 == 199 || type10 == 200 || type10 == 201 || type10 == 203 || type10 == 205 || type10 == 234) { flag23 = true; break; } } } } if (flag23) { Main.tile[num113, num114].wall = 81; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num113, num114, 3); } } } } if (Main.tile[num53, num54].wall == 69 || Main.tile[num53, num54].wall == 3 || (Main.tile[num53, num54].type == 23 && Main.tile[num53, num54].active())) { int num117 = num53 + WorldGen.genRand.Next(-2, 3); int num118 = num54 + WorldGen.genRand.Next(-2, 3); if (Main.tile[num117, num118].wall >= 63 && Main.tile[num117, num118].wall <= 68) { bool flag24 = false; for (int num119 = num53 - num112; num119 < num53 + num112; num119++) { for (int num120 = num54 - num112; num120 < num54 + num112; num120++) { if (Main.tile[num53, num54].active()) { int type11 = (int)Main.tile[num53, num54].type; if (type11 == 22 || type11 == 23 || type11 == 24 || type11 == 25 || type11 == 32 || type11 == 112 || type11 == 163) { flag24 = true; break; } } } } if (flag24) { Main.tile[num117, num118].wall = 69; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num117, num118, 3); } } } } if (Main.tile[num53, num54].wall == 70 || (Main.tile[num53, num54].type == 109 && Main.tile[num53, num54].active())) { int num121 = num53 + WorldGen.genRand.Next(-2, 3); int num122 = num54 + WorldGen.genRand.Next(-2, 3); if (Main.tile[num121, num122].wall == 63 || Main.tile[num121, num122].wall == 65 || Main.tile[num121, num122].wall == 66 || Main.tile[num121, num122].wall == 68) { bool flag25 = false; for (int num123 = num53 - num112; num123 < num53 + num112; num123++) { for (int num124 = num54 - num112; num124 < num54 + num112; num124++) { if (Main.tile[num53, num54].active()) { int type12 = (int)Main.tile[num53, num54].type; if (type12 == 109 || type12 == 110 || type12 == 113 || type12 == 115 || type12 == 116 || type12 == 117 || type12 == 164) { flag25 = true; break; } } } } if (flag25) { Main.tile[num121, num122].wall = 70; if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, num121, num122, 3); } } } } } num52++; } if (Main.rand.Next(100) == 0) { WorldGen.PlantAlch(); } if (!Main.dayTime) { float num125 = (float)(Main.maxTilesX / 4200); if ((float)Main.rand.Next(8000) < 10f * num125) { int num126 = 12; int num127 = Main.rand.Next(Main.maxTilesX - 50) + 100; num127 *= 16; int num128 = Main.rand.Next((int)((double)Main.maxTilesY * 0.05)); num128 *= 16; Vector2 vector = new Vector2((float)num127, (float)num128); float num129 = (float)Main.rand.Next(-100, 101); float num130 = (float)(Main.rand.Next(200) + 100); float num131 = (float)Math.Sqrt((double)(num129 * num129 + num130 * num130)); num131 = (float)num126 / num131; num129 *= num131; num130 *= num131; Projectile.NewProjectile(vector.X, vector.Y, num129, num130, 12, 1000, 10f, Main.myPlayer, 0f, 0f); } } } public static void PlaceWall(int i, int j, int type, bool mute = false) { if (i <= 1 || j <= 1 || i >= Main.maxTilesX - 2 || j >= Main.maxTilesY - 2) { return; } if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j].wall == 0) { Main.tile[i, j].wall = (byte)type; WorldGen.SquareWallFrame(i, j, true); if (!mute) { Main.PlaySound(0, i * 16, j * 16, 1); } } } public static void AddPlants() { for (int i = 0; i < Main.maxTilesX; i++) { for (int j = 1; j < Main.maxTilesY; j++) { if (Main.tile[i, j].type == 2 && Main.tile[i, j].nactive()) { if (!Main.tile[i, j - 1].active()) { WorldGen.PlaceTile(i, j - 1, 3, true, false, -1, 0); } } else { if (Main.tile[i, j].type == 23 && Main.tile[i, j].nactive()) { if (!Main.tile[i, j - 1].active()) { WorldGen.PlaceTile(i, j - 1, 24, true, false, -1, 0); } } else { if (Main.tile[i, j].type == 199 && Main.tile[i, j].nactive() && !Main.tile[i, j - 1].active()) { WorldGen.PlaceTile(i, j - 1, 201, true, false, -1, 0); } } } } } } public static void SpreadGrass(int i, int j, int dirt = 0, int grass = 2, bool repeat = true, byte color = 0) { try { if ((int)Main.tile[i, j].type == dirt && Main.tile[i, j].active() && ((double)j < Main.worldSurface || dirt != 0)) { int num = i - 1; int num2 = i + 2; int num3 = j - 1; int num4 = j + 2; if (num < 0) { num = 0; } if (num2 > Main.maxTilesX) { num2 = Main.maxTilesX; } if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesY) { num4 = Main.maxTilesY; } bool flag = true; for (int k = num; k < num2; k++) { for (int l = num3; l < num4; l++) { if (!Main.tile[k, l].active() || !Main.tileSolid[(int)Main.tile[k, l].type]) { flag = false; } if (Main.tile[k, l].lava() && Main.tile[k, l].liquid > 0) { flag = true; break; } } } if (!flag) { if (grass != 23 || Main.tile[i, j - 1].type != 27) { Main.tile[i, j].type = (byte)grass; Main.tile[i, j].color(color); for (int m = num; m < num2; m++) { for (int n = num3; n < num4; n++) { if (Main.tile[m, n].active() && (int)Main.tile[m, n].type == dirt) { try { if (repeat && WorldGen.grassSpread < 1000) { WorldGen.grassSpread++; WorldGen.SpreadGrass(m, n, dirt, grass, true, 0); WorldGen.grassSpread--; } } catch { } } } } } } } } catch { } } public static void ChasmRunnerSideways(int i, int j, int direction, int steps) { float num = (float)steps; Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(10, 21) * 0.1f * (float)direction; value2.Y = (float)WorldGen.genRand.Next(-10, 10) * 0.01f; double num2 = (double)(WorldGen.genRand.Next(5) + 7); while (num2 > 0.0) { if (num > 0f) { num2 += (double)WorldGen.genRand.Next(3); num2 -= (double)WorldGen.genRand.Next(3); if (num2 < 7.0) { num2 = 7.0; } if (num2 > 20.0) { num2 = 20.0; } if (num == 1f && num2 < 10.0) { num2 = 10.0; } } else { num2 -= (double)WorldGen.genRand.Next(4); } if ((double)value.Y > Main.rockLayer && num > 0f) { num = 0f; } num -= 1f; int num3 = (int)((double)value.X - num2 * 0.5); int num4 = (int)((double)value.X + num2 * 0.5); int num5 = (int)((double)value.Y - num2 * 0.5); int num6 = (int)((double)value.Y + num2 * 0.5); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX - 1) { num4 = Main.maxTilesX - 1; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } for (int k = num3; k < num4; k++) { for (int l = num5; l < num6; l++) { if ((double)(Math.Abs((float)k - value.X) + Math.Abs((float)l - value.Y)) < num2 * 0.5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015) && Main.tile[k, l].type != 31 && Main.tile[k, l].type != 22) { Main.tile[k, l].active(false); } } } value += value2; value2.Y += (float)WorldGen.genRand.Next(-10, 10) * 0.1f; if (value.Y < (float)(j - 20)) { value2.Y += (float)WorldGen.genRand.Next(20) * 0.01f; } if (value.Y > (float)(j + 20)) { value2.Y -= (float)WorldGen.genRand.Next(20) * 0.01f; } if ((double)value2.Y < -0.5) { value2.Y = -0.5f; } if ((double)value2.Y > 0.5) { value2.Y = 0.5f; } value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.01f; if (direction == -1) { if ((double)value2.X > -0.5) { value2.X = -0.5f; } if (value2.X < -2f) { value2.X = -2f; } } else { if (direction == 1) { if ((double)value2.X < 0.5) { value2.X = 0.5f; } if (value2.X > 2f) { value2.X = 2f; } } } num3 = (int)((double)value.X - num2 * 1.1); num4 = (int)((double)value.X + num2 * 1.1); num5 = (int)((double)value.Y - num2 * 1.1); num6 = (int)((double)value.Y + num2 * 1.1); if (num3 < 1) { num3 = 1; } if (num4 > Main.maxTilesX - 1) { num4 = Main.maxTilesX - 1; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } for (int m = num3; m < num4; m++) { for (int n = num5; n < num6; n++) { if ((double)(Math.Abs((float)m - value.X) + Math.Abs((float)n - value.Y)) < num2 * 1.1 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015) && Main.tile[m, n].wall != 3) { if (Main.tile[m, n].type != 25 && n > j + WorldGen.genRand.Next(3, 20)) { Main.tile[m, n].active(true); } Main.tile[m, n].active(true); if (Main.tile[m, n].type != 31 && Main.tile[m, n].type != 22) { Main.tile[m, n].type = 25; } if (Main.tile[m, n].wall == 2) { Main.tile[m, n].wall = 0; } } } } for (int num7 = num3; num7 < num4; num7++) { for (int num8 = num5; num8 < num6; num8++) { if ((double)(Math.Abs((float)num7 - value.X) + Math.Abs((float)num8 - value.Y)) < num2 * 1.1 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015) && Main.tile[num7, num8].wall != 3) { if (Main.tile[num7, num8].type != 31 && Main.tile[num7, num8].type != 22) { Main.tile[num7, num8].type = 25; } Main.tile[num7, num8].active(true); WorldGen.PlaceWall(num7, num8, 3, true); } } } } if (WorldGen.genRand.Next(3) == 0) { int num9 = (int)value.X; int num10 = (int)value.Y; while (!Main.tile[num9, num10].active()) { num10++; } WorldGen.TileRunner(num9, num10, (double)WorldGen.genRand.Next(2, 6), WorldGen.genRand.Next(3, 7), 22, false, 0f, 0f, false, true); } } public static void CrimStart(int i, int j) { int crimDir = 1; WorldGen.heartCount = 0; WorldGen.crimson = true; int num = j; if ((double)num > Main.worldSurface) { num = (int)Main.worldSurface; } while (!WorldGen.SolidTile(i, num)) { num++; } int num2 = num; Vector2 vector = new Vector2((float)i, (float)num); Vector2 value = new Vector2((float)WorldGen.genRand.Next(-20, 21) * 0.1f, (float)WorldGen.genRand.Next(20, 201) * 0.01f); if (value.X < 0f) { crimDir = -1; } float num3 = (float)WorldGen.genRand.Next(15, 26); bool flag = true; int num4 = 0; while (flag) { num3 += (float)Main.rand.Next(-50, 51) * 0.01f; if (num3 < 15f) { num3 = 15f; } if (num3 > 25f) { num3 = 25f; } int num5 = (int)(vector.X - num3 / 2f); while ((float)num5 < vector.X + num3 / 2f) { int num6 = (int)(vector.Y - num3 / 2f); while ((float)num6 < vector.Y + num3 / 2f) { if (num6 > num2) { if ((double)(Math.Abs((float)num5 - vector.X) + Math.Abs((float)num6 - vector.Y)) < (double)num3 * 0.3) { Main.tile[num5, num6].active(false); Main.tile[num5, num6].wall = 83; } else { if ((double)(Math.Abs((float)num5 - vector.X) + Math.Abs((float)num6 - vector.Y)) < (double)num3 * 0.8 && Main.tile[num5, num6].wall != 83) { Main.tile[num5, num6].active(true); Main.tile[num5, num6].type = 203; if ((double)(Math.Abs((float)num5 - vector.X) + Math.Abs((float)num6 - vector.Y)) < (double)num3 * 0.6) { Main.tile[num5, num6].wall = 83; } } } } else { if ((double)(Math.Abs((float)num5 - vector.X) + Math.Abs((float)num6 - vector.Y)) < (double)num3 * 0.3 && Main.tile[num5, num6].active()) { Main.tile[num5, num6].active(false); Main.tile[num5, num6].wall = 83; } } num6++; } num5++; } if (vector.X > (float)(i + 50)) { num4 = -100; } if (vector.X < (float)(i - 50)) { num4 = 100; } if (num4 < 0) { value.X -= (float)WorldGen.genRand.Next(20, 51) * 0.01f; } else { if (num4 > 0) { value.X += (float)WorldGen.genRand.Next(20, 51) * 0.01f; } else { value.X += (float)WorldGen.genRand.Next(-50, 51) * 0.01f; } } value.Y += (float)WorldGen.genRand.Next(-50, 51) * 0.01f; if ((double)value.Y < 0.25) { value.Y = 0.25f; } if (value.Y > 2f) { value.Y = 2f; } if (value.X < -2f) { value.X = -2f; } if (value.X > 2f) { value.X = 2f; } vector += value; if ((double)vector.Y > Main.worldSurface + 100.0) { flag = false; } } num3 = (float)WorldGen.genRand.Next(40, 55); for (int k = 0; k < 50; k++) { int num7 = (int)vector.X + WorldGen.genRand.Next(-20, 21); int num8 = (int)vector.Y + WorldGen.genRand.Next(-20, 21); int num9 = (int)((float)num7 - num3 / 2f); while ((float)num9 < (float)num7 + num3 / 2f) { int num10 = (int)((float)num8 - num3 / 2f); while ((float)num10 < (float)num8 + num3 / 2f) { float num11 = (float)Math.Abs(num9 - num7); float num12 = (float)Math.Abs(num10 - num8); float num13 = 1f + (float)WorldGen.genRand.Next(-20, 21) * 0.01f; float num14 = 1f + (float)WorldGen.genRand.Next(-20, 21) * 0.01f; num11 *= num13; num12 *= num14; double num15 = Math.Sqrt((double)(num11 * num11 + num12 * num12)); if (num15 < (double)num3 * 0.25) { Main.tile[num9, num10].active(false); Main.tile[num9, num10].wall = 83; } else { if (num15 < (double)num3 * 0.4 && Main.tile[num9, num10].wall != 83) { Main.tile[num9, num10].active(true); Main.tile[num9, num10].type = 203; if (num15 < (double)num3 * 0.35) { Main.tile[num9, num10].wall = 83; } } } num10++; } num9++; } } int num16 = WorldGen.genRand.Next(5, 9); Vector2[] array = new Vector2[num16]; for (int l = 0; l < num16; l++) { int num17 = (int)vector.X; int num18 = (int)vector.Y; int num19 = 0; bool flag2 = true; Vector2 vector2 = new Vector2((float)WorldGen.genRand.Next(-20, 21) * 0.15f, (float)WorldGen.genRand.Next(0, 21) * 0.15f); while (flag2) { vector2 = new Vector2((float)WorldGen.genRand.Next(-20, 21) * 0.15f, (float)WorldGen.genRand.Next(0, 21) * 0.15f); while ((double)(Math.Abs(vector2.X) + Math.Abs(vector2.Y)) < 1.5) { vector2 = new Vector2((float)WorldGen.genRand.Next(-20, 21) * 0.15f, (float)WorldGen.genRand.Next(0, 21) * 0.15f); } flag2 = false; for (int m = 0; m < l; m++) { if ((double)value.X > (double)array[m].X - 0.75 && (double)value.X < (double)array[m].X + 0.75 && (double)value.Y > (double)array[m].Y - 0.75 && (double)value.Y < (double)array[m].Y + 0.75) { flag2 = true; num19++; break; } } if (num19 > 10000) { break; } } array[l] = vector2; WorldGen.CrimVein(new Vector2((float)num17, (float)num18), vector2); } for (int n = 0; n < WorldGen.heartCount; n++) { num3 = (float)WorldGen.genRand.Next(16, 21); int num20 = (int)WorldGen.heartPos[n].X; int num21 = (int)WorldGen.heartPos[n].Y; int num22 = (int)((float)num20 - num3 / 2f); while ((float)num22 < (float)num20 + num3 / 2f) { int num23 = (int)((float)num21 - num3 / 2f); while ((float)num23 < (float)num21 + num3 / 2f) { float num24 = (float)Math.Abs(num22 - num20); float num25 = (float)Math.Abs(num23 - num21); double num26 = Math.Sqrt((double)(num24 * num24 + num25 * num25)); if (num26 < (double)num3 * 0.4) { Main.tile[num22, num23].active(true); Main.tile[num22, num23].type = 203; Main.tile[num22, num23].wall = 83; } num23++; } num22++; } } for (int num27 = 0; num27 < WorldGen.heartCount; num27++) { num3 = (float)WorldGen.genRand.Next(10, 14); int num28 = (int)WorldGen.heartPos[num27].X; int num29 = (int)WorldGen.heartPos[num27].Y; int num30 = (int)((float)num28 - num3 / 2f); while ((float)num30 < (float)num28 + num3 / 2f) { int num31 = (int)((float)num29 - num3 / 2f); while ((float)num31 < (float)num29 + num3 / 2f) { float num32 = (float)Math.Abs(num30 - num28); float num33 = (float)Math.Abs(num31 - num29); double num34 = Math.Sqrt((double)(num32 * num32 + num33 * num33)); if (num34 < (double)num3 * 0.3) { Main.tile[num30, num31].active(false); Main.tile[num30, num31].wall = 83; } num31++; } num30++; } } for (int num35 = 0; num35 < WorldGen.heartCount; num35++) { WorldGen.AddShadowOrb((int)WorldGen.heartPos[num35].X, (int)WorldGen.heartPos[num35].Y); } int num36 = Main.maxTilesX; int num37 = 0; vector.X = (float)i; vector.Y = (float)num2; num3 = (float)WorldGen.genRand.Next(25, 35); float num38 = (float)WorldGen.genRand.Next(0, 6); for (int num39 = 0; num39 < 50; num39++) { if (num38 > 0f) { float num40 = (float)WorldGen.genRand.Next(10, 30) * 0.01f; num38 -= num40; vector.Y -= num40; } int num41 = (int)vector.X + WorldGen.genRand.Next(-2, 3); int num42 = (int)vector.Y + WorldGen.genRand.Next(-2, 3); int num43 = (int)((float)num41 - num3 / 2f); while ((float)num43 < (float)num41 + num3 / 2f) { int num44 = (int)((float)num42 - num3 / 2f); while ((float)num44 < (float)num42 + num3 / 2f) { float num45 = (float)Math.Abs(num43 - num41); float num46 = (float)Math.Abs(num44 - num42); float num47 = 1f + (float)WorldGen.genRand.Next(-20, 21) * 0.005f; float num48 = 1f + (float)WorldGen.genRand.Next(-20, 21) * 0.005f; num45 *= num47; num46 *= num48; double num49 = Math.Sqrt((double)(num45 * num45 + num46 * num46)); if (num49 < (double)num3 * 0.2 * ((double)WorldGen.genRand.Next(90, 111) * 0.01)) { Main.tile[num43, num44].active(false); Main.tile[num43, num44].wall = 83; } else { if (num49 < (double)num3 * 0.45) { if (num43 < num36) { num36 = num43; } if (num43 > num37) { num37 = num43; } if (Main.tile[num43, num44].wall != 83) { Main.tile[num43, num44].active(true); Main.tile[num43, num44].type = 203; if (num49 < (double)num3 * 0.35) { Main.tile[num43, num44].wall = 83; } } } } num44++; } num43++; } } for (int num50 = num36; num50 <= num37; num50++) { int num51 = num2; while ((Main.tile[num50, num51].type == 203 && Main.tile[num50, num51].active()) || Main.tile[num50, num51].wall == 83) { num51++; } int num52 = WorldGen.genRand.Next(15, 20); while (!Main.tile[num50, num51].active() && num52 > 0 && Main.tile[num50, num51].wall != 83) { num52--; Main.tile[num50, num51].type = 203; Main.tile[num50, num51].active(true); num51++; } } WorldGen.CrimEnt(vector, crimDir); } public static void CrimEnt(Vector2 position, int crimDir) { float num = 0f; float num2 = (float)WorldGen.genRand.Next(6, 11); bool flag = true; Vector2 value = new Vector2(2f, (float)WorldGen.genRand.Next(-20, 0) * 0.01f); value.X *= (float)(-(float)crimDir); while (flag) { num += 1f; if (num >= 20f) { flag = false; } num2 += (float)Main.rand.Next(-10, 11) * 0.02f; if (num2 < 6f) { num2 = 6f; } if (num2 > 10f) { num2 = 10f; } int num3 = (int)(position.X - num2 / 2f); while ((float)num3 < position.X + num2 / 2f) { int num4 = (int)(position.Y - num2 / 2f); while ((float)num4 < position.Y + num2 / 2f) { float num5 = Math.Abs((float)num3 - position.X); float num6 = Math.Abs((float)num4 - position.Y); double num7 = Math.Sqrt((double)(num5 * num5 + num6 * num6)); if (num7 < (double)num2 * 0.5 && Main.tile[num3, num4].active() && Main.tile[num3, num4].type == 203) { Main.tile[num3, num4].active(false); flag = true; num = 0f; } num4++; } num3++; } position += value; } } public static void CrimVein(Vector2 position, Vector2 velocity) { float num = (float)WorldGen.genRand.Next(15, 26); bool flag = true; Vector2 vector = velocity; Vector2 vector2 = position; int num2 = WorldGen.genRand.Next(100, 150); if (velocity.Y < 0f) { num2 -= 25; } while (flag) { num += (float)Main.rand.Next(-50, 51) * 0.02f; if (num < 15f) { num = 15f; } if (num > 25f) { num = 25f; } int num3 = (int)(position.X - num / 2f); while ((float)num3 < position.X + num / 2f) { int num4 = (int)(position.Y - num / 2f); while ((float)num4 < position.Y + num / 2f) { float num5 = Math.Abs((float)num3 - position.X); float num6 = Math.Abs((float)num4 - position.Y); double num7 = Math.Sqrt((double)(num5 * num5 + num6 * num6)); if (num7 < (double)num * 0.2) { Main.tile[num3, num4].active(false); Main.tile[num3, num4].wall = 83; } else { if (num7 < (double)num * 0.5 && Main.tile[num3, num4].wall != 83) { Main.tile[num3, num4].active(true); Main.tile[num3, num4].type = 203; if (num7 < (double)num * 0.4) { Main.tile[num3, num4].wall = 83; } } } num4++; } num3++; } velocity.X += (float)WorldGen.genRand.Next(-50, 51) * 0.05f; velocity.Y += (float)WorldGen.genRand.Next(-50, 51) * 0.05f; if ((double)velocity.Y < (double)vector.Y - 0.75) { velocity.Y = vector.Y - 0.75f; } if ((double)velocity.Y > (double)vector.Y + 0.75) { velocity.Y = vector.Y + 0.75f; } if ((double)velocity.X < (double)vector.X - 0.75) { velocity.X = vector.X - 0.75f; } if ((double)velocity.X > (double)vector.X + 0.75) { velocity.X = vector.X + 0.75f; } position += velocity; if (Math.Abs(position.X - vector2.X) + Math.Abs(position.Y - vector2.Y) > (float)num2) { flag = false; } } WorldGen.heartPos[WorldGen.heartCount] = position; WorldGen.heartCount++; } public static void ChasmRunner(int i, int j, int steps, bool makeOrb = false) { bool flag = false; bool flag2 = false; bool flag3 = false; if (!makeOrb) { flag2 = true; } float num = (float)steps; Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(11) * 0.2f + 0.5f; int num2 = 5; double num3 = (double)(WorldGen.genRand.Next(5) + 7); while (num3 > 0.0) { if (num > 0f) { num3 += (double)WorldGen.genRand.Next(3); num3 -= (double)WorldGen.genRand.Next(3); if (num3 < 7.0) { num3 = 7.0; } if (num3 > 20.0) { num3 = 20.0; } if (num == 1f && num3 < 10.0) { num3 = 10.0; } } else { if ((double)value.Y > Main.worldSurface + 45.0) { num3 -= (double)WorldGen.genRand.Next(4); } } if ((double)value.Y > Main.rockLayer && num > 0f) { num = 0f; } num -= 1f; if (!flag && (double)value.Y > Main.worldSurface + 20.0) { flag = true; WorldGen.ChasmRunnerSideways((int)value.X, (int)value.Y, -1, WorldGen.genRand.Next(20, 40)); WorldGen.ChasmRunnerSideways((int)value.X, (int)value.Y, 1, WorldGen.genRand.Next(20, 40)); } int num4; int num5; int num6; int num7; if (num > (float)num2) { num4 = (int)((double)value.X - num3 * 0.5); num5 = (int)((double)value.X + num3 * 0.5); num6 = (int)((double)value.Y - num3 * 0.5); num7 = (int)((double)value.Y + num3 * 0.5); if (num4 < 0) { num4 = 0; } if (num5 > Main.maxTilesX - 1) { num5 = Main.maxTilesX - 1; } if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesY) { num7 = Main.maxTilesY; } for (int k = num4; k < num5; k++) { for (int l = num6; l < num7; l++) { if ((double)(Math.Abs((float)k - value.X) + Math.Abs((float)l - value.Y)) < num3 * 0.5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015) && Main.tile[k, l].type != 31 && Main.tile[k, l].type != 22) { Main.tile[k, l].active(false); } } } } if (num <= 2f && (double)value.Y < Main.worldSurface + 45.0) { num = 2f; } if (num <= 0f) { if (!flag2) { flag2 = true; WorldGen.AddShadowOrb((int)value.X, (int)value.Y); } else { if (!flag3) { flag3 = false; bool flag4 = false; int num8 = 0; while (!flag4) { int num9 = WorldGen.genRand.Next((int)value.X - 25, (int)value.X + 25); int num10 = WorldGen.genRand.Next((int)value.Y - 50, (int)value.Y); if (num9 < 5) { num9 = 5; } if (num9 > Main.maxTilesX - 5) { num9 = Main.maxTilesX - 5; } if (num10 < 5) { num10 = 5; } if (num10 > Main.maxTilesY - 5) { num10 = Main.maxTilesY - 5; } if ((double)num10 > Main.worldSurface) { WorldGen.Place3x2(num9, num10, 26, 0); if (Main.tile[num9, num10].type == 26) { flag4 = true; } else { num8++; if (num8 >= 10000) { flag4 = true; } } } else { flag4 = true; } } } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.01f; if ((double)value2.X > 0.3) { value2.X = 0.3f; } if ((double)value2.X < -0.3) { value2.X = -0.3f; } num4 = (int)((double)value.X - num3 * 1.1); num5 = (int)((double)value.X + num3 * 1.1); num6 = (int)((double)value.Y - num3 * 1.1); num7 = (int)((double)value.Y + num3 * 1.1); if (num4 < 1) { num4 = 1; } if (num5 > Main.maxTilesX - 1) { num5 = Main.maxTilesX - 1; } if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesY) { num7 = Main.maxTilesY; } for (int m = num4; m < num5; m++) { for (int n = num6; n < num7; n++) { if ((double)(Math.Abs((float)m - value.X) + Math.Abs((float)n - value.Y)) < num3 * 1.1 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015)) { if (Main.tile[m, n].type != 25 && n > j + WorldGen.genRand.Next(3, 20)) { Main.tile[m, n].active(true); } if (steps <= num2) { Main.tile[m, n].active(true); } if (Main.tile[m, n].type != 31) { Main.tile[m, n].type = 25; } } } } for (int num11 = num4; num11 < num5; num11++) { for (int num12 = num6; num12 < num7; num12++) { if ((double)(Math.Abs((float)num11 - value.X) + Math.Abs((float)num12 - value.Y)) < num3 * 1.1 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015)) { if (Main.tile[num11, num12].type != 31) { Main.tile[num11, num12].type = 25; } if (steps <= num2) { Main.tile[num11, num12].active(true); } if (num12 > j + WorldGen.genRand.Next(3, 20)) { Main.tile[num11, num12].wall = 3; } } } } } } public static void JungleRunner(int i, int j) { double num = (double)WorldGen.genRand.Next(5, 11); Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(10, 20) * 0.1f; int num2 = 0; bool flag = true; while (flag) { if ((double)value.Y < Main.worldSurface) { int num3 = (int)value.X; int num4 = (int)value.Y; if (num4 < 5) { num4 = 5; } if (Main.tile[num3, num4].wall == 0 && !Main.tile[num3, num4].active() && Main.tile[num3, num4 - 3].wall == 0 && !Main.tile[num3, num4 - 3].active() && Main.tile[num3, num4 - 1].wall == 0 && !Main.tile[num3, num4 - 1].active() && Main.tile[num3, num4 - 4].wall == 0 && !Main.tile[num3, num4 - 4].active() && Main.tile[num3, num4 - 2].wall == 0 && !Main.tile[num3, num4 - 2].active() && Main.tile[num3, num4 - 5].wall == 0 && !Main.tile[num3, num4 - 5].active()) { flag = false; } } WorldGen.JungleX = (int)value.X; num += (double)((float)WorldGen.genRand.Next(-20, 21) * 0.1f); if (num < 5.0) { num = 5.0; } if (num > 10.0) { num = 10.0; } int num5 = (int)((double)value.X - num * 0.5); int num6 = (int)((double)value.X + num * 0.5); int num7 = (int)((double)value.Y - num * 0.5); int num8 = (int)((double)value.Y + num * 0.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; } for (int k = num5; k < num6; k++) { for (int l = num7; l < num8; l++) { if ((double)(Math.Abs((float)k - value.X) + Math.Abs((float)l - value.Y)) < num * 0.5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015)) { WorldGen.KillTile(k, l, false, false, false); } } } num2++; if (num2 > 10 && WorldGen.genRand.Next(50) < num2) { num2 = 0; int num9 = -2; if (WorldGen.genRand.Next(2) == 0) { num9 = 2; } WorldGen.TileRunner((int)value.X, (int)value.Y, (double)WorldGen.genRand.Next(3, 20), WorldGen.genRand.Next(10, 100), -1, false, (float)num9, 0f, false, true); } value += value2; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.01f; if (value2.Y > 0f) { value2.Y = 0f; } if (value2.Y < -2f) { value2.Y = -2f; } value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.1f; if (value.X < (float)(i - 200)) { value2.X += (float)WorldGen.genRand.Next(5, 21) * 0.1f; } if (value.X > (float)(i + 200)) { value2.X -= (float)WorldGen.genRand.Next(5, 21) * 0.1f; } if ((double)value2.X > 1.5) { value2.X = 1.5f; } if ((double)value2.X < -1.5) { value2.X = -1.5f; } } } public static void GERunner(int i, int j, float speedX = 0f, float speedY = 0f, bool good = true) { int num = WorldGen.genRand.Next(200, 250); float num2 = (float)(Main.maxTilesX / 4200); num = (int)((float)num * num2); double num3 = (double)num; Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; if (speedX != 0f || speedY != 0f) { value2.X = speedX; value2.Y = speedY; } bool flag = true; while (flag) { int num4 = (int)((double)value.X - num3 * 0.5); int num5 = (int)((double)value.X + num3 * 0.5); int num6 = (int)((double)value.Y - num3 * 0.5); int num7 = (int)((double)value.Y + num3 * 0.5); if (num4 < 0) { num4 = 0; } if (num5 > Main.maxTilesX) { num5 = Main.maxTilesX; } if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesY) { num7 = Main.maxTilesY; } for (int k = num4; k < num5; k++) { for (int l = num6; l < num7; l++) { if ((double)(Math.Abs((float)k - value.X) + Math.Abs((float)l - value.Y)) < (double)num * 0.5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015)) { if (good) { if (Main.tile[k, l].wall == 63 || Main.tile[k, l].wall == 65 || Main.tile[k, l].wall == 66 || Main.tile[k, l].wall == 68 || Main.tile[k, l].wall == 69 || Main.tile[k, l].wall == 81) { Main.tile[k, l].wall = 70; } if (Main.tile[k, l].wall == 3 || Main.tile[k, l].wall == 83) { Main.tile[k, l].wall = 28; } if (Main.tile[k, l].type == 2) { Main.tile[k, l].type = 109; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 1) { Main.tile[k, l].type = 117; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 53 || Main.tile[k, l].type == 123) { Main.tile[k, l].type = 116; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 23 || Main.tile[k, l].type == 199) { Main.tile[k, l].type = 109; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 25 || Main.tile[k, l].type == 203) { Main.tile[k, l].type = 117; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 112 || Main.tile[k, l].type == 234) { Main.tile[k, l].type = 116; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 161 || Main.tile[k, l].type == 163 || Main.tile[k, l].type == 200) { Main.tile[k, l].type = 164; WorldGen.SquareTileFrame(k, l, true); } } } } } } } } else { if (WorldGen.crimson) { if (Main.tile[k, l].wall == 63 || Main.tile[k, l].wall == 65 || Main.tile[k, l].wall == 66 || Main.tile[k, l].wall == 68) { Main.tile[k, l].wall = 81; } if (Main.tile[k, l].type == 2) { Main.tile[k, l].type = 199; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 1) { Main.tile[k, l].type = 203; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 53 || Main.tile[k, l].type == 123) { Main.tile[k, l].type = 234; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 109) { Main.tile[k, l].type = 199; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 117) { Main.tile[k, l].type = 203; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 116) { Main.tile[k, l].type = 234; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 161 || Main.tile[k, l].type == 164) { Main.tile[k, l].type = 200; WorldGen.SquareTileFrame(k, l, true); } } } } } } } } else { if (Main.tile[k, l].wall == 63 || Main.tile[k, l].wall == 65 || Main.tile[k, l].wall == 66 || Main.tile[k, l].wall == 68) { Main.tile[k, l].wall = 69; } if (Main.tile[k, l].type == 2) { Main.tile[k, l].type = 23; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 1) { Main.tile[k, l].type = 25; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 53 || Main.tile[k, l].type == 123) { Main.tile[k, l].type = 112; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 109) { Main.tile[k, l].type = 23; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 117) { Main.tile[k, l].type = 25; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 116) { Main.tile[k, l].type = 112; WorldGen.SquareTileFrame(k, l, true); } else { if (Main.tile[k, l].type == 161 || Main.tile[k, l].type == 164) { Main.tile[k, l].type = 163; WorldGen.SquareTileFrame(k, l, true); } } } } } } } } } } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.X > speedX + 1f) { value2.X = speedX + 1f; } if (value2.X < speedX - 1f) { value2.X = speedX - 1f; } if (value.X < (float)(-(float)num) || value.Y < (float)(-(float)num) || value.X > (float)(Main.maxTilesX + num) || value.Y > (float)(Main.maxTilesX + num)) { flag = false; } } } public static void TileRunner(int i, int j, double strength, int steps, int type, bool addTile = false, float speedX = 0f, float speedY = 0f, bool noYChange = false, bool overRide = true) { double num = strength; float num2 = (float)steps; Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; if (speedX != 0f || speedY != 0f) { value2.X = speedX; value2.Y = speedY; } while (num > 0.0 && num2 > 0f) { if (value.Y < 0f && num2 > 0f && type == 59) { num2 = 0f; } num = strength * (double)(num2 / (float)steps); num2 -= 1f; int num3 = (int)((double)value.X - num * 0.5); int num4 = (int)((double)value.X + num * 0.5); int num5 = (int)((double)value.Y - num * 0.5); int num6 = (int)((double)value.Y + num * 0.5); if (num3 < 1) { num3 = 1; } if (num4 > Main.maxTilesX - 1) { num4 = Main.maxTilesX - 1; } if (num5 < 1) { num5 = 1; } if (num6 > Main.maxTilesY - 1) { num6 = Main.maxTilesY - 1; } for (int k = num3; k < num4; k++) { for (int l = num5; l < num6; l++) { if ((double)(Math.Abs((float)k - value.X) + Math.Abs((float)l - value.Y)) < strength * 0.5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015)) { if (WorldGen.mudWall && (double)l > Main.worldSurface && Main.tile[k, l - 1].wall != 2 && l < Main.maxTilesY - 210 - WorldGen.genRand.Next(3)) { if (l > WorldGen.lavaLine - WorldGen.genRand.Next(0, 4) - 50) { if (Main.tile[k, l - 1].wall != 64 && Main.tile[k, l + 1].wall != 64 && Main.tile[k - 1, l].wall != 64 && Main.tile[k, l + 1].wall != 64) { WorldGen.PlaceWall(k, l, 15, true); } } else { if (Main.tile[k, l - 1].wall != 15 && Main.tile[k, l + 1].wall != 15 && Main.tile[k - 1, l].wall != 15 && Main.tile[k, l + 1].wall != 15) { WorldGen.PlaceWall(k, l, 64, true); } } } if (type < 0) { if (type == -2 && Main.tile[k, l].active() && (l < WorldGen.waterLine || l > WorldGen.lavaLine)) { Main.tile[k, l].liquid = 255; if (l > WorldGen.lavaLine) { Main.tile[k, l].lava(true); } } Main.tile[k, l].active(false); } else { if ((overRide || !Main.tile[k, l].active()) && (type != 40 || Main.tile[k, l].type != 53) && (!Main.tileStone[type] || Main.tile[k, l].type == 1) && Main.tile[k, l].type != 189 && Main.tile[k, l].type != 196 && Main.tile[k, l].type != 45 && Main.tile[k, l].type != 147 && Main.tile[k, l].type != 190 && (Main.tile[k, l].type != 1 || type != 59 || (double)l >= Main.worldSurface + (double)WorldGen.genRand.Next(-50, 50))) { if (Main.tile[k, l].type != 53 || (double)l >= Main.worldSurface) { Main.tile[k, l].type = (byte)type; } else { if (type == 59) { Main.tile[k, l].type = (byte)type; } } } if (addTile) { Main.tile[k, l].active(true); Main.tile[k, l].liquid = 0; Main.tile[k, l].lava(false); } if (noYChange && (double)l < Main.worldSurface && type != 59) { Main.tile[k, l].wall = 2; } if (type == 59 && l > WorldGen.waterLine && Main.tile[k, l].liquid > 0) { Main.tile[k, l].lava(false); Main.tile[k, l].liquid = 0; } } } } } value += value2; if (num > 50.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 100.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 150.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 200.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 250.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 300.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 400.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 500.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 600.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 700.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 800.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (num > 900.0) { value += value2; num2 -= 1f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; } } } } } } } } } } } } value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.X > 1f) { value2.X = 1f; } if (value2.X < -1f) { value2.X = -1f; } if (!noYChange) { value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.Y > 1f) { value2.Y = 1f; } if (value2.Y < -1f) { value2.Y = -1f; } } else { if (type != 59 && num < 3.0) { if (value2.Y > 1f) { value2.Y = 1f; } if (value2.Y < -1f) { value2.Y = -1f; } } } if (type == 59 && !noYChange) { if ((double)value2.Y > 0.5) { value2.Y = 0.5f; } if ((double)value2.Y < -0.5) { value2.Y = -0.5f; } if ((double)value.Y < Main.rockLayer + 100.0) { value2.Y = 1f; } if (value.Y > (float)(Main.maxTilesY - 300)) { value2.Y = -1f; } } } } public static void DirtyRockRunner(int i, int j) { double num = (double)WorldGen.genRand.Next(2, 6); float num2 = (float)WorldGen.genRand.Next(5, 50); float num3 = num2; Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; while (num > 0.0 && num3 > 0f) { double num4 = num * (double)(num3 / num2); num3 -= 1f; int num5 = (int)((double)value.X - num4 * 0.5); int num6 = (int)((double)value.X + num4 * 0.5); int num7 = (int)((double)value.Y - num4 * 0.5); int num8 = (int)((double)value.Y + num4 * 0.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; } for (int k = num5; k < num6; k++) { for (int l = num7; l < num8; l++) { if ((double)(Math.Abs((float)k - value.X) + Math.Abs((float)l - value.Y)) < num * 0.5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015) && Main.tile[k, l].wall == 2) { Main.tile[k, l].wall = 59; } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.X > 1f) { value2.X = 1f; } if (value2.X < -1f) { value2.X = -1f; } value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.Y > 1f) { value2.Y = 1f; } if (value2.Y < -1f) { value2.Y = -1f; } } } public static void MudWallRunner(int i, int j) { double num = (double)WorldGen.genRand.Next(8, 21); float num2 = (float)WorldGen.genRand.Next(8, 33); float num3 = num2; Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; while (num > 0.0 && num3 > 0f) { double num4 = num * (double)(num3 / num2); num3 -= 1f; int num5 = (int)((double)value.X - num4 * 0.5); int num6 = (int)((double)value.X + num4 * 0.5); int num7 = (int)((double)value.Y - num4 * 0.5); int num8 = (int)((double)value.Y + num4 * 0.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; } for (int k = num5; k < num6; k++) { for (int l = num7; l < num8; l++) { if ((double)(Math.Abs((float)k - value.X) + Math.Abs((float)l - value.Y)) < num * 0.5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.015) && (double)l > Main.worldSurface) { Main.tile[k, l].wall = 0; } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.X > 1f) { value2.X = 1f; } if (value2.X < -1f) { value2.X = -1f; } value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.Y > 1f) { value2.Y = 1f; } if (value2.Y < -1f) { value2.Y = -1f; } } } public static void CloudIsland(int i, int j) { double num = (double)WorldGen.genRand.Next(100, 150); float num2 = (float)WorldGen.genRand.Next(20, 30); int num3 = i; int num4 = i; int num5 = i; int num6 = j; Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-20, 21) * 0.2f; while (value2.X > -2f && value2.X < 2f) { value2.X = (float)WorldGen.genRand.Next(-20, 21) * 0.2f; } value2.Y = (float)WorldGen.genRand.Next(-20, -10) * 0.02f; while (num > 0.0 && num2 > 0f) { num -= (double)WorldGen.genRand.Next(4); num2 -= 1f; int num7 = (int)((double)value.X - num * 0.5); int num8 = (int)((double)value.X + num * 0.5); int num9 = (int)((double)value.Y - num * 0.5); int num10 = (int)((double)value.Y + num * 0.5); if (num7 < 0) { num7 = 0; } if (num8 > Main.maxTilesX) { num8 = Main.maxTilesX; } if (num9 < 0) { num9 = 0; } if (num10 > Main.maxTilesY) { num10 = Main.maxTilesY; } double num11 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; float num12 = value.Y + 1f; for (int k = num7; k < num8; k++) { if (WorldGen.genRand.Next(2) == 0) { num12 += (float)WorldGen.genRand.Next(-1, 2); } if (num12 < value.Y) { num12 = value.Y; } if (num12 > value.Y + 2f) { num12 = value.Y + 2f; } for (int l = num9; l < num10; l++) { if ((float)l > num12) { float num13 = Math.Abs((float)k - value.X); float num14 = Math.Abs((float)l - value.Y) * 3f; double num15 = Math.Sqrt((double)(num13 * num13 + num14 * num14)); if (num15 < num11 * 0.4) { if (k < num3) { num3 = k; } if (k > num4) { num4 = k; } if (l < num5) { num5 = l; } if (l > num6) { num6 = l; } Main.tile[k, l].active(true); Main.tile[k, l].type = 189; WorldGen.SquareTileFrame(k, l, true); } } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-20, 21) * 0.05f; if (value2.X > 1f) { value2.X = 1f; } if (value2.X < -1f) { value2.X = -1f; } if ((double)value2.Y > 0.2) { value2.Y = -0.2f; } if ((double)value2.Y < -0.2) { value2.Y = -0.2f; } } int m = num3; int num17; for (m += WorldGen.genRand.Next(5); m < num4; m += WorldGen.genRand.Next(num17, (int)((double)num17 * 1.5))) { int num16 = num6; while (!Main.tile[m, num16].active()) { num16--; } num16 += WorldGen.genRand.Next(-3, 4); num17 = WorldGen.genRand.Next(4, 8); int num18 = 189; if (WorldGen.genRand.Next(4) == 0) { num18 = 196; } for (int n = m - num17; n <= m + num17; n++) { for (int num19 = num16 - num17; num19 <= num16 + num17; num19++) { if (num19 > num5) { float num20 = (float)Math.Abs(n - m); float num21 = (float)(Math.Abs(num19 - num16) * 2); double num22 = Math.Sqrt((double)(num20 * num20 + num21 * num21)); if (num22 < (double)(num17 + WorldGen.genRand.Next(2))) { Main.tile[n, num19].active(true); Main.tile[n, num19].type = (byte)num18; WorldGen.SquareTileFrame(n, num19, true); } } } } } num = (double)WorldGen.genRand.Next(80, 95); num2 = (float)WorldGen.genRand.Next(10, 15); value.X = (float)i; value.Y = (float)num5; value2.X = (float)WorldGen.genRand.Next(-20, 21) * 0.2f; while (value2.X > -2f && value2.X < 2f) { value2.X = (float)WorldGen.genRand.Next(-20, 21) * 0.2f; } value2.Y = (float)WorldGen.genRand.Next(-20, -10) * 0.02f; while (num > 0.0 && num2 > 0f) { num -= (double)WorldGen.genRand.Next(4); num2 -= 1f; int num7 = (int)((double)value.X - num * 0.5); int num8 = (int)((double)value.X + num * 0.5); int num9 = num5 - 1; int num10 = (int)((double)value.Y + num * 0.5); if (num7 < 0) { num7 = 0; } if (num8 > Main.maxTilesX) { num8 = Main.maxTilesX; } if (num9 < 0) { num9 = 0; } if (num10 > Main.maxTilesY) { num10 = Main.maxTilesY; } double num11 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; float num23 = value.Y + 1f; for (int num24 = num7; num24 < num8; num24++) { if (WorldGen.genRand.Next(2) == 0) { num23 += (float)WorldGen.genRand.Next(-1, 2); } if (num23 < value.Y) { num23 = value.Y; } if (num23 > value.Y + 2f) { num23 = value.Y + 2f; } for (int num25 = num9; num25 < num10; num25++) { if ((float)num25 > num23) { float num26 = Math.Abs((float)num24 - value.X); float num27 = Math.Abs((float)num25 - value.Y) * 3f; double num28 = Math.Sqrt((double)(num26 * num26 + num27 * num27)); if (num28 < num11 * 0.4 && Main.tile[num24, num25].type == 189) { Main.tile[num24, num25].type = 0; WorldGen.SquareTileFrame(num24, num25, true); } } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-20, 21) * 0.05f; if (value2.X > 1f) { value2.X = 1f; } if (value2.X < -1f) { value2.X = -1f; } if ((double)value2.Y > 0.2) { value2.Y = -0.2f; } if ((double)value2.Y < -0.2) { value2.Y = -0.2f; } } int num29 = num3; num29 += WorldGen.genRand.Next(5); while (num29 < num4) { int num30 = num6; while ((!Main.tile[num29, num30].active() || Main.tile[num29, num30].type != 0) && num29 < num4) { num30--; if (num30 < num5) { num30 = num6; num29 += WorldGen.genRand.Next(1, 4); } } if (num29 < num4) { num30 += WorldGen.genRand.Next(0, 4); int num31 = WorldGen.genRand.Next(2, 5); int num32 = 189; for (int num33 = num29 - num31; num33 <= num29 + num31; num33++) { for (int num34 = num30 - num31; num34 <= num30 + num31; num34++) { if (num34 > num5) { float num35 = (float)Math.Abs(num33 - num29); float num36 = (float)(Math.Abs(num34 - num30) * 2); double num37 = Math.Sqrt((double)(num35 * num35 + num36 * num36)); if (num37 < (double)num31) { Main.tile[num33, num34].type = (byte)num32; WorldGen.SquareTileFrame(num33, num34, true); } } } } num29 += WorldGen.genRand.Next(num31, (int)((double)num31 * 1.5)); } } for (int num38 = num3 - 20; num38 <= num4 + 20; num38++) { for (int num39 = num5 - 20; num39 <= num6 + 20; num39++) { bool flag = true; for (int num40 = num38 - 1; num40 <= num38 + 1; num40++) { for (int num41 = num39 - 1; num41 <= num39 + 1; num41++) { if (!Main.tile[num40, num41].active()) { flag = false; } } } if (flag) { Main.tile[num38, num39].wall = 73; WorldGen.SquareWallFrame(num38, num39, true); } } } for (int num42 = num3; num42 <= num4; num42++) { int num43 = num5 - 10; while (!Main.tile[num42, num43 + 1].active()) { num43++; } if (num43 < num6 && Main.tile[num42, num43 + 1].type == 189) { if (WorldGen.genRand.Next(10) == 0) { int num44 = WorldGen.genRand.Next(1, 3); for (int num45 = num42 - num44; num45 <= num42 + num44; num45++) { if (Main.tile[num45, num43].type == 189) { Main.tile[num45, num43].active(false); Main.tile[num45, num43].liquid = 255; Main.tile[num45, num43].lava(false); WorldGen.SquareTileFrame(num42, num43, true); } if (Main.tile[num45, num43 + 1].type == 189) { Main.tile[num45, num43 + 1].active(false); Main.tile[num45, num43 + 1].liquid = 255; Main.tile[num45, num43 + 1].lava(false); WorldGen.SquareTileFrame(num42, num43 + 1, true); } if (num45 > num42 - num44 && num45 < num42 + 2 && Main.tile[num45, num43 + 2].type == 189) { Main.tile[num45, num43 + 2].active(false); Main.tile[num45, num43 + 2].liquid = 255; Main.tile[num45, num43 + 2].lava(false); WorldGen.SquareTileFrame(num42, num43 + 2, true); } } } if (WorldGen.genRand.Next(5) == 0) { Main.tile[num42, num43].liquid = 255; } Main.tile[num42, num43].lava(false); WorldGen.SquareTileFrame(num42, num43, true); } } int num46 = WorldGen.genRand.Next(4); for (int num47 = 0; num47 <= num46; num47++) { int num48 = WorldGen.genRand.Next(num3 - 5, num4 + 5); int num49 = num5 - WorldGen.genRand.Next(20, 40); int num50 = WorldGen.genRand.Next(4, 8); int num51 = 189; if (WorldGen.genRand.Next(2) == 0) { num51 = 196; } for (int num52 = num48 - num50; num52 <= num48 + num50; num52++) { for (int num53 = num49 - num50; num53 <= num49 + num50; num53++) { float num54 = (float)Math.Abs(num52 - num48); float num55 = (float)(Math.Abs(num53 - num49) * 2); double num56 = Math.Sqrt((double)(num54 * num54 + num55 * num55)); if (num56 < (double)(num50 + WorldGen.genRand.Next(-1, 2))) { Main.tile[num52, num53].active(true); Main.tile[num52, num53].type = (byte)num51; WorldGen.SquareTileFrame(num52, num53, true); } } } for (int num57 = num48 - num50 + 2; num57 <= num48 + num50 - 2; num57++) { int num58 = num49 - num50; while (!Main.tile[num57, num58].active()) { num58++; } Main.tile[num57, num58].active(false); Main.tile[num57, num58].liquid = 255; WorldGen.SquareTileFrame(num57, num58, true); } } } public static void FloatingIsland(int i, int j) { double num = (double)WorldGen.genRand.Next(80, 120); float num2 = (float)WorldGen.genRand.Next(20, 25); Vector2 value; value.X = (float)i; value.Y = (float)j; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-20, 21) * 0.2f; while (value2.X > -2f && value2.X < 2f) { value2.X = (float)WorldGen.genRand.Next(-20, 21) * 0.2f; } value2.Y = (float)WorldGen.genRand.Next(-20, -10) * 0.02f; while (num > 0.0 && num2 > 0f) { num -= (double)WorldGen.genRand.Next(4); num2 -= 1f; int num3 = (int)((double)value.X - num * 0.5); int num4 = (int)((double)value.X + num * 0.5); int num5 = (int)((double)value.Y - num * 0.5); int num6 = (int)((double)value.Y + num * 0.5); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX) { num4 = Main.maxTilesX; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } double num7 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; float num8 = value.Y + 1f; for (int k = num3; k < num4; k++) { if (WorldGen.genRand.Next(2) == 0) { num8 += (float)WorldGen.genRand.Next(-1, 2); } if (num8 < value.Y) { num8 = value.Y; } if (num8 > value.Y + 2f) { num8 = value.Y + 2f; } for (int l = num5; l < num6; l++) { if ((float)l > num8) { float num9 = Math.Abs((float)k - value.X); float num10 = Math.Abs((float)l - value.Y) * 2f; double num11 = Math.Sqrt((double)(num9 * num9 + num10 * num10)); if (num11 < num7 * 0.4) { Main.tile[k, l].active(true); if (Main.tile[k, l].type == 59) { Main.tile[k, l].type = 0; } } } } } num3 = (int)((double)value.X - num * 0.4); num4 = (int)((double)value.X + num * 0.4); num5 = (int)((double)value.Y - num * 0.4); num6 = (int)((double)value.Y + num * 0.4); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX) { num4 = Main.maxTilesX; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } num7 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; for (int m = num3; m < num4; m++) { for (int n = num5; n < num6; n++) { if ((float)n > value.Y + 2f) { float num12 = Math.Abs((float)m - value.X); float num13 = Math.Abs((float)n - value.Y) * 2f; double num14 = Math.Sqrt((double)(num12 * num12 + num13 * num13)); if (num14 < num7 * 0.4) { Main.tile[m, n].wall = 2; } } } } value += value2; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.X > 1f) { value2.X = 1f; } if (value2.X < -1f) { value2.X = -1f; } if ((double)value2.Y > 0.2) { value2.Y = -0.2f; } if ((double)value2.Y < -0.2) { value2.Y = -0.2f; } } } public static void Caverer(int X, int Y) { int num = WorldGen.genRand.Next(2); if (num == 0) { int num2 = WorldGen.genRand.Next(7, 9); float num3 = (float)WorldGen.genRand.Next(100) * 0.01f; float num4 = 1f - num3; if (WorldGen.genRand.Next(2) == 0) { num3 = -num3; } if (WorldGen.genRand.Next(2) == 0) { num4 = -num4; } Vector2 vector = new Vector2((float)X, (float)Y); for (int i = 0; i < num2; i++) { vector = WorldGen.digTunnel(vector.X, vector.Y, num3, num4, WorldGen.genRand.Next(6, 20), WorldGen.genRand.Next(4, 9), false); num3 += (float)WorldGen.genRand.Next(-20, 21) * 0.1f; num4 += (float)WorldGen.genRand.Next(-20, 21) * 0.1f; if ((double)num3 < -1.5) { num3 = -1.5f; } if ((double)num3 > 1.5) { num3 = 1.5f; } if ((double)num4 < -1.5) { num4 = -1.5f; } if ((double)num4 > 1.5) { num4 = 1.5f; } float num5 = (float)WorldGen.genRand.Next(100) * 0.01f; float num6 = 1f - num5; if (WorldGen.genRand.Next(2) == 0) { num5 = -num5; } if (WorldGen.genRand.Next(2) == 0) { num6 = -num6; } Vector2 vector2 = WorldGen.digTunnel(vector.X, vector.Y, num5, num6, WorldGen.genRand.Next(30, 50), WorldGen.genRand.Next(3, 6), false); WorldGen.TileRunner((int)vector2.X, (int)vector2.Y, (double)WorldGen.genRand.Next(10, 20), WorldGen.genRand.Next(5, 10), -1, false, 0f, 0f, false, true); } return; } if (num == 1) { int num7 = WorldGen.genRand.Next(15, 30); float num8 = (float)WorldGen.genRand.Next(100) * 0.01f; float num9 = 1f - num8; if (WorldGen.genRand.Next(2) == 0) { num8 = -num8; } if (WorldGen.genRand.Next(2) == 0) { num9 = -num9; } Vector2 vector3 = new Vector2((float)X, (float)Y); for (int j = 0; j < num7; j++) { vector3 = WorldGen.digTunnel(vector3.X, vector3.Y, num8, num9, WorldGen.genRand.Next(5, 15), WorldGen.genRand.Next(2, 6), true); num8 += (float)WorldGen.genRand.Next(-20, 21) * 0.1f; num9 += (float)WorldGen.genRand.Next(-20, 21) * 0.1f; if ((double)num8 < -1.5) { num8 = -1.5f; } if ((double)num8 > 1.5) { num8 = 1.5f; } if ((double)num9 < -1.5) { num9 = -1.5f; } if ((double)num9 > 1.5) { num9 = 1.5f; } } } } public static Vector2 digTunnel(float X, float Y, float xDir, float yDir, int Steps, int Size, bool Wet = false) { float num = X; float num2 = Y; try { float num3 = 0f; float num4 = 0f; float num5 = (float)Size; for (int i = 0; i < Steps; i++) { int num6 = (int)(num - num5); while ((float)num6 <= num + num5) { int num7 = (int)(num2 - num5); while ((float)num7 <= num2 + num5) { if ((double)(Math.Abs((float)num6 - num) + Math.Abs((float)num7 - num2)) < (double)num5 * (1.0 + (double)WorldGen.genRand.Next(-10, 11) * 0.005)) { Main.tile[num6, num7].active(false); if (Wet) { Main.tile[num6, num7].liquid = 255; } } num7++; } num6++; } num5 += (float)WorldGen.genRand.Next(-50, 51) * 0.03f; if ((double)num5 < (double)Size * 0.6) { num5 = (float)Size * 0.6f; } if (num5 > (float)(Size * 2)) { num5 = (float)Size * 2f; } num3 += (float)WorldGen.genRand.Next(-20, 21) * 0.01f; num4 += (float)WorldGen.genRand.Next(-20, 21) * 0.01f; if (num3 < -1f) { num3 = -1f; } if (num3 > 1f) { num3 = 1f; } if (num4 < -1f) { num4 = -1f; } if (num4 > 1f) { num4 = 1f; } num += (xDir + num3) * 0.6f; num2 += (yDir + num4) * 0.6f; } } catch { } return new Vector2(num, num2); } public static void IslandHouse(int i, int j) { byte type = 202; byte wall = 82; Vector2 vector = new Vector2((float)i, (float)j); int num = 1; if (WorldGen.genRand.Next(2) == 0) { num = -1; } int num2 = WorldGen.genRand.Next(7, 12); int num3 = WorldGen.genRand.Next(5, 7); vector.X = (float)(i + (num2 + 2) * num); for (int k = j - 15; k < j + 30; k++) { if (Main.tile[(int)vector.X, k].active()) { vector.Y = (float)(k - 1); break; } } vector.X = (float)i; int num4 = (int)(vector.X - (float)num2 - 1f); int num5 = (int)(vector.X + (float)num2 + 1f); int num6 = (int)(vector.Y - (float)num3 - 1f); int num7 = (int)(vector.Y + 2f); if (num4 < 0) { num4 = 0; } if (num5 > Main.maxTilesX) { num5 = Main.maxTilesX; } if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesY) { num7 = Main.maxTilesY; } for (int l = num4; l <= num5; l++) { for (int m = num6 - 1; m < num7 + 1; m++) { if (m != num6 - 1 || (l != num4 && l != num5)) { Main.tile[l, m].active(true); Main.tile[l, m].liquid = 0; Main.tile[l, m].type = type; Main.tile[l, m].wall = 0; Main.tile[l, m].halfBrick(false); Main.tile[l, m].slope(0); } } } num4 = (int)(vector.X - (float)num2); num5 = (int)(vector.X + (float)num2); num6 = (int)(vector.Y - (float)num3); num7 = (int)(vector.Y + 1f); if (num4 < 0) { num4 = 0; } if (num5 > Main.maxTilesX) { num5 = Main.maxTilesX; } if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesY) { num7 = Main.maxTilesY; } for (int n = num4; n <= num5; n++) { for (int num8 = num6; num8 < num7; num8++) { if ((num8 != num6 || (n != num4 && n != num5)) && Main.tile[n, num8].wall == 0) { Main.tile[n, num8].active(false); Main.tile[n, num8].wall = wall; } } } int num9 = i + (num2 + 1) * num; int num10 = (int)vector.Y; for (int num11 = num9 - 2; num11 <= num9 + 2; num11++) { Main.tile[num11, num10].active(false); Main.tile[num11, num10 - 1].active(false); Main.tile[num11, num10 - 2].active(false); } WorldGen.PlaceTile(num9, num10, 10, true, false, -1, 9); num9 = i + (num2 + 1) * -num - num; for (int num12 = num6; num12 <= num7 + 1; num12++) { Main.tile[num9, num12].active(true); Main.tile[num9, num12].liquid = 0; Main.tile[num9, num12].type = type; Main.tile[num9, num12].wall = 0; Main.tile[num9, num12].halfBrick(false); Main.tile[num9, num12].slope(0); } int contain = 0; int num13 = WorldGen.houseCount; if (num13 > 2) { num13 = WorldGen.genRand.Next(3); } if (num13 == 0) { contain = 159; } else { if (num13 == 1) { contain = 65; } else { if (num13 == 2) { contain = 158; } } } WorldGen.AddBuriedChest(i, num10 - 3, contain, false, 13); WorldGen.houseCount++; int num14 = i - num2 / 2 + 1; int num15 = i + num2 / 2 - 1; int num16 = 1; if (num2 > 10) { num16 = 2; } int num17 = (num6 + num7) / 2 - 1; for (int num18 = num14 - num16; num18 <= num14 + num16; num18++) { for (int num19 = num17 - 1; num19 <= num17 + 1; num19++) { Main.tile[num18, num19].wall = 21; } } for (int num20 = num15 - num16; num20 <= num15 + num16; num20++) { for (int num21 = num17 - 1; num21 <= num17 + 1; num21++) { Main.tile[num20, num21].wall = 21; } } int num22 = i + (num2 / 2 + 1) * -num; WorldGen.PlaceTile(num22, num7 - 1, 14, true, false, -1, 7); WorldGen.PlaceTile(num22 - 2, num7 - 1, 15, true, false, 0, 10); Tile expr_51A = Main.tile[num22 - 2, num7 - 1]; expr_51A.frameX += 18; Tile expr_53B = Main.tile[num22 - 2, num7 - 2]; expr_53B.frameX += 18; WorldGen.PlaceTile(num22 + 2, num7 - 1, 15, true, false, 0, 10); int i2 = num4 + 1; int j2 = num6; WorldGen.PlaceTile(i2, j2, 91, true, false, -1, WorldGen.genRand.Next(7, 10)); i2 = num5 - 1; j2 = num6; WorldGen.PlaceTile(i2, j2, 91, true, false, -1, WorldGen.genRand.Next(7, 10)); if (num > 0) { i2 = num4; j2 = num6 + 1; } else { i2 = num5; j2 = num6 + 1; } WorldGen.PlaceTile(i2, j2, 91, true, false, -1, WorldGen.genRand.Next(7, 10)); } public static void Mountinater(int i, int j) { double num = (double)WorldGen.genRand.Next(80, 120); float num2 = (float)WorldGen.genRand.Next(40, 55); Vector2 value; value.X = (float)i; value.Y = (float)j + num2 / 2f; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(-20, -10) * 0.1f; while (num > 0.0 && num2 > 0f) { num -= (double)WorldGen.genRand.Next(4); num2 -= 1f; int num3 = (int)((double)value.X - num * 0.5); int num4 = (int)((double)value.X + num * 0.5); int num5 = (int)((double)value.Y - num * 0.5); int num6 = (int)((double)value.Y + num * 0.5); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX) { num4 = Main.maxTilesX; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } double num7 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; for (int k = num3; k < num4; k++) { for (int l = num5; l < num6; l++) { float num8 = Math.Abs((float)k - value.X); float num9 = Math.Abs((float)l - value.Y); double num10 = Math.Sqrt((double)(num8 * num8 + num9 * num9)); if (num10 < num7 * 0.4 && !Main.tile[k, l].active()) { Main.tile[k, l].active(true); Main.tile[k, l].type = 0; } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if ((double)value2.X > 0.5) { value2.X = 0.5f; } if ((double)value2.X < -0.5) { value2.X = -0.5f; } if ((double)value2.Y > -0.5) { value2.Y = -0.5f; } if ((double)value2.Y < -1.5) { value2.Y = -1.5f; } } } public static void MakeWateryIceThing(int i, int j) { if (Main.tile[i, j].liquid > 0 && !Main.tile[i, j].active() && !Main.tile[i, j].lava()) { int num = j; while (!Main.tile[i, num].active() && Main.tile[i, num].liquid > 0) { num++; if (num > Main.maxTilesY - 50) { return; } } if (Main.tile[i, num].type == 147 || Main.tile[i, num].type == 161) { num--; while (Main.tile[i, num].liquid > 0) { num--; if (num < 10) { return; } } if (Main.tile[i, num].active()) { return; } num++; if (Main.tile[i, num].active()) { return; } int num2 = i; while (!Main.tile[num2, num].active() && Main.tile[num2, num].liquid > 0 && Main.tile[num2, num - 1].liquid == 0 && !Main.tile[num2, num - 1].active() && !Main.tile[num2 - 1, num].halfBrick()) { WorldGen.PlaceTile(num2, num, 162, true, false, -1, 0); num2--; } num2 = i + 1; while (!Main.tile[num2, num].active() && Main.tile[num2, num].liquid > 0 && Main.tile[num2, num - 1].liquid == 0 && !Main.tile[num2, num - 1].active() && !Main.tile[num2 + 1, num].halfBrick()) { WorldGen.PlaceTile(num2, num, 162, true, false, -1, 0); num2++; } } } } public static void Lakinater(int i, int j) { double num = (double)WorldGen.genRand.Next(25, 50); double num2 = num; float num3 = (float)WorldGen.genRand.Next(30, 80); if (WorldGen.genRand.Next(5) == 0) { num *= 1.5; num2 *= 1.5; num3 *= 1.2f; } Vector2 value; value.X = (float)i; value.Y = (float)j - num3 * 0.3f; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(-20, -10) * 0.1f; while (num > 0.0 && num3 > 0f) { if ((double)value.Y + num2 * 0.5 > Main.worldSurface) { num3 = 0f; } num -= (double)WorldGen.genRand.Next(3); num3 -= 1f; int num4 = (int)((double)value.X - num * 0.5); int num5 = (int)((double)value.X + num * 0.5); int num6 = (int)((double)value.Y - num * 0.5); int num7 = (int)((double)value.Y + num * 0.5); if (num4 < 0) { num4 = 0; } if (num5 > Main.maxTilesX) { num5 = Main.maxTilesX; } if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesY) { num7 = Main.maxTilesY; } num2 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; for (int k = num4; k < num5; k++) { for (int l = num6; l < num7; l++) { float num8 = Math.Abs((float)k - value.X); float num9 = Math.Abs((float)l - value.Y); double num10 = Math.Sqrt((double)(num8 * num8 + num9 * num9)); if (num10 < num2 * 0.4) { if (Main.tile[k, l].active()) { Main.tile[k, l].liquid = 255; } Main.tile[k, l].active(false); } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if ((double)value2.X > 0.5) { value2.X = 0.5f; } if ((double)value2.X < -0.5) { value2.X = -0.5f; } if ((double)value2.Y > 1.5) { value2.Y = 1.5f; } if ((double)value2.Y < 0.5) { value2.Y = 0.5f; } } } public static void ShroomPatch(int i, int j) { double num = (double)WorldGen.genRand.Next(40, 70); double num2 = num; float num3 = (float)WorldGen.genRand.Next(20, 30); if (WorldGen.genRand.Next(5) == 0) { num *= 1.5; num2 *= 1.5; num3 *= 1.2f; } Vector2 value; value.X = (float)i; value.Y = (float)j - num3 * 0.3f; Vector2 value2; value2.X = (float)WorldGen.genRand.Next(-10, 11) * 0.1f; value2.Y = (float)WorldGen.genRand.Next(-20, -10) * 0.1f; while (num > 0.0 && num3 > 0f) { num -= (double)WorldGen.genRand.Next(3); num3 -= 1f; int num4 = (int)((double)value.X - num * 0.5); int num5 = (int)((double)value.X + num * 0.5); int num6 = (int)((double)value.Y - num * 0.5); int num7 = (int)((double)value.Y + num * 0.5); if (num4 < 0) { num4 = 0; } if (num5 > Main.maxTilesX) { num5 = Main.maxTilesX; } if (num6 < 0) { num6 = 0; } if (num7 > Main.maxTilesY) { num7 = Main.maxTilesY; } num2 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; for (int k = num4; k < num5; k++) { for (int l = num6; l < num7; l++) { float num8 = Math.Abs((float)k - value.X); float num9 = Math.Abs(((float)l - value.Y) * 2.3f); double num10 = Math.Sqrt((double)(num8 * num8 + num9 * num9)); if (num10 < num2 * 0.4) { if ((double)l < (double)value.Y + num2 * 0.02) { if (Main.tile[k, l].type != 59) { Main.tile[k, l].active(false); } } else { Main.tile[k, l].type = 59; } Main.tile[k, l].liquid = 0; Main.tile[k, l].lava(false); } } } value += value2; value.X += value2.X; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.Y -= (float)WorldGen.genRand.Next(11) * 0.05f; if ((double)value2.X > -0.5 && (double)value2.X < 0.5) { if (value2.X < 0f) { value2.X = -0.5f; } else { value2.X = 0.5f; } } if (value2.X > 2f) { value2.X = 1f; } if (value2.X < -2f) { value2.X = -1f; } if (value2.Y > 1f) { value2.Y = 1f; } if (value2.Y < -1f) { value2.Y = -1f; } for (int m = 0; m < 2; m++) { int num11 = (int)value.X + WorldGen.genRand.Next(-20, 20); int num12 = (int)value.Y + WorldGen.genRand.Next(0, 20); while (!Main.tile[num11, num12].active() && Main.tile[num11, num12].type != 59) { num11 = (int)value.X + WorldGen.genRand.Next(-20, 20); num12 = (int)value.Y + WorldGen.genRand.Next(0, 20); } int num13 = WorldGen.genRand.Next(7, 10); int num14 = WorldGen.genRand.Next(7, 10); WorldGen.TileRunner(num11, num12, (double)num13, num14, 59, false, 0f, 2f, true, true); if (WorldGen.genRand.Next(3) == 0) { WorldGen.TileRunner(num11, num12, (double)(num13 - 3), num14 - 3, -1, false, 0f, 2f, true, true); } } } } public static void Cavinator(int i, int j, int steps) { double num = (double)WorldGen.genRand.Next(7, 15); int num2 = 1; if (WorldGen.genRand.Next(2) == 0) { num2 = -1; } Vector2 value; value.X = (float)i; value.Y = (float)j; int k = WorldGen.genRand.Next(20, 40); Vector2 value2; value2.Y = (float)WorldGen.genRand.Next(10, 20) * 0.01f; value2.X = (float)num2; while (k > 0) { k--; int num3 = (int)((double)value.X - num * 0.5); int num4 = (int)((double)value.X + num * 0.5); int num5 = (int)((double)value.Y - num * 0.5); int num6 = (int)((double)value.Y + num * 0.5); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX) { num4 = Main.maxTilesX; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } double num7 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; for (int l = num3; l < num4; l++) { for (int m = num5; m < num6; m++) { float num8 = Math.Abs((float)l - value.X); float num9 = Math.Abs((float)m - value.Y); double num10 = Math.Sqrt((double)(num8 * num8 + num9 * num9)); if (num10 < num7 * 0.4) { Main.tile[l, m].active(false); } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.X > (float)num2 + 0.5f) { value2.X = (float)num2 + 0.5f; } if (value2.X < (float)num2 - 0.5f) { value2.X = (float)num2 - 0.5f; } if (value2.Y > 2f) { value2.Y = 2f; } if (value2.Y < 0f) { value2.Y = 0f; } } if (steps > 0 && (double)((int)value.Y) < Main.rockLayer + 50.0) { WorldGen.Cavinator((int)value.X, (int)value.Y, steps - 1); } } public static void CaveOpenater(int i, int j) { double num = (double)WorldGen.genRand.Next(7, 12); int num2 = 1; if (WorldGen.genRand.Next(2) == 0) { num2 = -1; } Vector2 value; value.X = (float)i; value.Y = (float)j; int k = 100; Vector2 value2; value2.Y = 0f; value2.X = (float)num2; while (k > 0) { if (Main.tile[(int)value.X, (int)value.Y].wall == 0) { k = 0; } k--; int num3 = (int)((double)value.X - num * 0.5); int num4 = (int)((double)value.X + num * 0.5); int num5 = (int)((double)value.Y - num * 0.5); int num6 = (int)((double)value.Y + num * 0.5); if (num3 < 0) { num3 = 0; } if (num4 > Main.maxTilesX) { num4 = Main.maxTilesX; } if (num5 < 0) { num5 = 0; } if (num6 > Main.maxTilesY) { num6 = Main.maxTilesY; } double num7 = num * (double)WorldGen.genRand.Next(80, 120) * 0.01; for (int l = num3; l < num4; l++) { for (int m = num5; m < num6; m++) { float num8 = Math.Abs((float)l - value.X); float num9 = Math.Abs((float)m - value.Y); double num10 = Math.Sqrt((double)(num8 * num8 + num9 * num9)); if (num10 < num7 * 0.4) { Main.tile[l, m].active(false); } } } value += value2; value2.X += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; value2.Y += (float)WorldGen.genRand.Next(-10, 11) * 0.05f; if (value2.X > (float)num2 + 0.5f) { value2.X = (float)num2 + 0.5f; } if (value2.X < (float)num2 - 0.5f) { value2.X = (float)num2 - 0.5f; } if (value2.Y > 0f) { value2.Y = 0f; } if ((double)value2.Y < -0.5) { value2.Y = -0.5f; } } } public static void DiamondTileFrame(int i, int j) { WorldGen.TileFrame(i - 1, j, false, false); WorldGen.TileFrame(i, j - 1, false, false); WorldGen.TileFrame(i, j + 1, false, false); WorldGen.TileFrame(i + 1, j, false, false); } public static void SquareTileFrame(int i, int j, bool resetFrame = true) { WorldGen.TileFrame(i - 1, j - 1, false, false); WorldGen.TileFrame(i - 1, j, false, false); WorldGen.TileFrame(i - 1, j + 1, false, false); WorldGen.TileFrame(i, j - 1, false, false); WorldGen.TileFrame(i, j, resetFrame, false); WorldGen.TileFrame(i, j + 1, false, false); WorldGen.TileFrame(i + 1, j - 1, false, false); WorldGen.TileFrame(i + 1, j, false, false); WorldGen.TileFrame(i + 1, j + 1, false, false); } public static void SquareWallFrame(int i, int j, bool resetFrame = true) { WorldGen.WallFrame(i - 1, j - 1, false); WorldGen.WallFrame(i - 1, j, false); WorldGen.WallFrame(i - 1, j + 1, false); WorldGen.WallFrame(i, j - 1, false); WorldGen.WallFrame(i, j, resetFrame); WorldGen.WallFrame(i, j + 1, false); WorldGen.WallFrame(i + 1, j - 1, false); WorldGen.WallFrame(i + 1, j, false); WorldGen.WallFrame(i + 1, j + 1, false); } public static void SectionTileFrame(int startX, int startY, int endX, int endY) { Main.mapTime = Main.mapTimeMax + 10; WorldGen.noMapUpdate = true; int num = startX * 200; int num2 = (endX + 1) * 200; int num3 = startY * 150; int num4 = (endY + 1) * 150; if (num < 1) { num = 1; } if (num3 < 1) { num3 = 1; } if (num > Main.maxTilesX - 2) { num = Main.maxTilesX - 2; } if (num3 > Main.maxTilesY - 2) { num3 = Main.maxTilesY - 2; } for (int i = num - 1; i < num2 + 1; i++) { for (int j = num3 - 1; j < num4 + 1; j++) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } WorldGen.TileFrame(i, j, true, true); WorldGen.WallFrame(i, j, true); } } WorldGen.noMapUpdate = false; } public static void RangeFrame(int startX, int startY, int endX, int endY) { int num = endX + 1; int num2 = endY + 1; for (int i = startX - 1; i < num + 1; i++) { for (int j = startY - 1; j < num2 + 1; j++) { WorldGen.TileFrame(i, j, false, false); WorldGen.WallFrame(i, j, false); } } } public static void WaterCheck() { Liquid.numLiquid = 0; LiquidBuffer.numLiquidBuffer = 0; for (int i = 1; i < Main.maxTilesX - 1; i++) { for (int j = Main.maxTilesY - 2; j > 0; j--) { Main.tile[i, j].checkingLiquid(false); if (Main.tile[i, j].liquid > 0 && Main.tile[i, j].active() && Main.tileSolid[(int)Main.tile[i, j].type] && !Main.tileSolidTop[(int)Main.tile[i, j].type]) { Main.tile[i, j].liquid = 0; } else { if (Main.tile[i, j].liquid > 0) { if (Main.tile[i, j].active()) { if (Main.tileWaterDeath[(int)Main.tile[i, j].type] && (Main.tile[i, j].type != 4 || (Main.tile[i, j].frameY != 176 && Main.tile[i, j].frameY != 242))) { WorldGen.KillTile(i, j, false, false, false); } if (Main.tile[i, j].lava() && Main.tileLavaDeath[(int)Main.tile[i, j].type] && (Main.tile[i, j].type != 19 || Main.tile[i, j].frameY != 234) && (Main.tile[i, j].type != 11 || Main.tile[i, j].frameY < 1026 || Main.tile[i, j].frameY > 1078) && (Main.tile[i, j].type != 15 || Main.tile[i, j].frameY < 640 || Main.tile[i, j].frameY > 678) && (Main.tile[i, j].type != 14 || Main.tile[i, j].frameX < 702 || Main.tile[i, j].frameX > 754) && (Main.tile[i, j].type != 18 || Main.tile[i, j].frameX < 504 || Main.tile[i, j].frameX > 538) && (Main.tile[i, j].type != 105 || Main.tile[i, j].frameX < 1764 || Main.tile[i, j].frameX > 1798) && (Main.tile[i, j].type != 101 || Main.tile[i, j].frameX < 216 || Main.tile[i, j].frameX > 268)) { WorldGen.KillTile(i, j, false, false, false); } } if ((!Main.tile[i, j + 1].nactive() || !Main.tileSolid[(int)Main.tile[i, j + 1].type] || Main.tileSolidTop[(int)Main.tile[i, j + 1].type]) && Main.tile[i, j + 1].liquid < 255) { if (Main.tile[i, j + 1].liquid > 250) { Main.tile[i, j + 1].liquid = 255; } else { Liquid.AddWater(i, j); } } if ((!Main.tile[i - 1, j].nactive() || !Main.tileSolid[(int)Main.tile[i - 1, j].type] || Main.tileSolidTop[(int)Main.tile[i - 1, j].type]) && Main.tile[i - 1, j].liquid != Main.tile[i, j].liquid) { Liquid.AddWater(i, j); } else { if ((!Main.tile[i + 1, j].nactive() || !Main.tileSolid[(int)Main.tile[i + 1, j].type] || Main.tileSolidTop[(int)Main.tile[i + 1, j].type]) && Main.tile[i + 1, j].liquid != Main.tile[i, j].liquid) { Liquid.AddWater(i, j); } } if (Main.tile[i, j].lava()) { if (Main.tile[i - 1, j].liquid > 0 && !Main.tile[i - 1, j].lava()) { Liquid.AddWater(i, j); } else { if (Main.tile[i + 1, j].liquid > 0 && !Main.tile[i + 1, j].lava()) { Liquid.AddWater(i, j); } else { if (Main.tile[i, j - 1].liquid > 0 && !Main.tile[i, j - 1].lava()) { Liquid.AddWater(i, j); } else { if (Main.tile[i, j + 1].liquid > 0 && !Main.tile[i, j + 1].lava()) { Liquid.AddWater(i, j); } } } } } } } } } } public static void EveryTileFrame() { WorldGen.noLiquidCheck = true; WorldGen.noTileActions = true; for (int i = 0; i < Main.maxTilesX; i++) { float num = (float)i / (float)Main.maxTilesX; Main.statusText = string.Concat(new object[] { Lang.gen[55], " ", (int)(num * 100f + 1f), "%" }); for (int j = 0; j < Main.maxTilesY; j++) { if (Main.tile[i, j].active()) { WorldGen.TileFrame(i, j, true, false); } if (Main.tile[i, j].wall > 0) { WorldGen.WallFrame(i, j, true); } } } WorldGen.noLiquidCheck = false; WorldGen.noTileActions = false; } public static void PlantCheck(int i, int j) { int num = -1; int num2 = (int)Main.tile[i, j].type; int arg_19_0 = i - 1; int arg_23_0 = i + 1; int arg_22_0 = Main.maxTilesX; int arg_29_0 = j - 1; if (j + 1 >= Main.maxTilesY) { num = num2; } if (i - 1 >= 0 && Main.tile[i - 1, j] != null && Main.tile[i - 1, j].nactive()) { byte arg_74_0 = Main.tile[i - 1, j].type; } if (i + 1 < Main.maxTilesX && Main.tile[i + 1, j] != null && Main.tile[i + 1, j].nactive()) { byte arg_B7_0 = Main.tile[i + 1, j].type; } if (j - 1 >= 0 && Main.tile[i, j - 1] != null && Main.tile[i, j - 1].nactive()) { byte arg_F6_0 = Main.tile[i, j - 1].type; } if (j + 1 < Main.maxTilesY && Main.tile[i, j + 1] != null && Main.tile[i, j + 1].nactive() && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].slope() == 0) { num = (int)Main.tile[i, j + 1].type; } if (i - 1 >= 0 && j - 1 >= 0 && Main.tile[i - 1, j - 1] != null && Main.tile[i - 1, j - 1].nactive()) { byte arg_1AE_0 = Main.tile[i - 1, j - 1].type; } if (i + 1 < Main.maxTilesX && j - 1 >= 0 && Main.tile[i + 1, j - 1] != null && Main.tile[i + 1, j - 1].nactive()) { byte arg_1FD_0 = Main.tile[i + 1, j - 1].type; } if (i - 1 >= 0 && j + 1 < Main.maxTilesY && Main.tile[i - 1, j + 1] != null && Main.tile[i - 1, j + 1].nactive()) { byte arg_24C_0 = Main.tile[i - 1, j + 1].type; } if (i + 1 < Main.maxTilesX && j + 1 < Main.maxTilesY && Main.tile[i + 1, j + 1] != null && Main.tile[i + 1, j + 1].nactive()) { byte arg_29F_0 = Main.tile[i + 1, j + 1].type; } if ((num2 == 3 && num != 2 && num != 78) || (num2 == 24 && num != 23) || (num2 == 61 && num != 60) || (num2 == 71 && num != 70) || (num2 == 73 && num != 2 && num != 78) || (num2 == 74 && num != 60) || (num2 == 110 && num != 109) || (num2 == 113 && num != 109) || (num2 == 201 && num != 199)) { if ((num2 == 3 || num2 == 73) && num != 2 && Main.tile[i, j].frameX >= 162) { Main.tile[i, j].frameX = 126; } if (num2 == 74 && num != 60 && Main.tile[i, j].frameX >= 162) { Main.tile[i, j].frameX = 126; } if (num == 23) { num2 = 24; if (Main.tile[i, j].frameX >= 162) { Main.tile[i, j].frameX = 126; } } else { if (num == 2) { if (num2 == 113) { num2 = 73; } else { num2 = 3; } } else { if (num == 109) { if (num2 == 73) { num2 = 113; } else { num2 = 110; } } else { if (num == 199) { num2 = 201; } else { if (num == 70) { num2 = 71; while (Main.tile[i, j].frameX > 72) { Tile expr_3FE = Main.tile[i, j]; expr_3FE.frameX -= 72; } } } } } } if (num2 != (int)Main.tile[i, j].type) { Main.tile[i, j].type = (byte)num2; return; } WorldGen.KillTile(i, j, false, false, false); } } public static void WallFrame(int i, int j, bool resetFrame = false) { if (i < 0 || j < 0 || i >= Main.maxTilesX || j >= Main.maxTilesY || Main.tile[i, j] == null) { return; } if (Main.netMode != 2 && Main.mapEnabled && !WorldGen.noMapUpdate && !WorldGen.gen && Main.map[i, j] != null && Main.map[i, j].light > 0) { Main.map[i, j].setTile(i, j, Main.map[i, j].light); if (Main.map[i, j].changed()) { if (Map.numUpdateTile < Map.maxUpdateTile - 1) { Map.updateTileX[Map.numUpdateTile] = (short)i; Map.updateTileY[Map.numUpdateTile] = (short)j; Map.numUpdateTile++; } else { Main.mapUnfinished = true; } } } if (Main.tile[i, j].wall == 0) { Main.tile[i, j].wallColor(0); return; } int num = -1; int num2 = -1; int num3 = -1; int num4 = -1; int num5 = -1; int num6 = -1; int num7 = -1; int num8 = -1; int wall = (int)Main.tile[i, j].wall; if (wall == 0) { return; } Main.tile[i, j].wallFrameX(); Main.tile[i, j].wallFrameY(); Rectangle rectangle; rectangle.X = -1; rectangle.Y = -1; if (i - 1 < 0) { num = wall; num4 = wall; num6 = wall; } if (i + 1 >= Main.maxTilesX) { num3 = wall; num5 = wall; num8 = wall; } if (j - 1 < 0) { num = wall; num2 = wall; num3 = wall; } if (j + 1 >= Main.maxTilesY) { num6 = wall; num7 = wall; num8 = wall; } if (i - 1 >= 0 && Main.tile[i - 1, j] != null) { num4 = (int)Main.tile[i - 1, j].wall; } if (i + 1 < Main.maxTilesX && Main.tile[i + 1, j] != null) { num5 = (int)Main.tile[i + 1, j].wall; } if (j - 1 >= 0 && Main.tile[i, j - 1] != null) { num2 = (int)Main.tile[i, j - 1].wall; } if (j + 1 < Main.maxTilesY && Main.tile[i, j + 1] != null) { num7 = (int)Main.tile[i, j + 1].wall; } if (i - 1 >= 0 && j - 1 >= 0 && Main.tile[i - 1, j - 1] != null) { num = (int)Main.tile[i - 1, j - 1].wall; } if (i + 1 < Main.maxTilesX && j - 1 >= 0 && Main.tile[i + 1, j - 1] != null) { num3 = (int)Main.tile[i + 1, j - 1].wall; } if (i - 1 >= 0 && j + 1 < Main.maxTilesY && Main.tile[i - 1, j + 1] != null) { num6 = (int)Main.tile[i - 1, j + 1].wall; } if (i + 1 < Main.maxTilesX && j + 1 < Main.maxTilesY && Main.tile[i + 1, j + 1] != null) { num8 = (int)Main.tile[i + 1, j + 1].wall; } if (num7 > 0) { num7 = wall; } if (num6 > 0) { } if (num8 > 0) { } if (num2 > 0) { num2 = wall; } if (num > 0) { } if (num3 > 0) { } if (num4 > 0) { num4 = wall; } if (num5 > 0) { num5 = wall; } int num9; if (resetFrame) { num9 = WorldGen.genRand.Next(0, 3); Main.tile[i, j].wallFrameNumber((byte)num9); } else { num9 = (int)Main.tile[i, j].wallFrameNumber(); } if (rectangle.X < 0 || rectangle.Y < 0) { if (num2 == wall && num7 == wall && (num4 == wall & num5 == wall)) { if (i % 3 == 1 && j % 3 == 1) { if (num9 == 0) { rectangle.X = 108; rectangle.Y = 18; } if (num9 == 1) { rectangle.X = 126; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 144; rectangle.Y = 18; } } else { if (i % 3 == 0 && j % 3 == 0) { if (num9 == 0) { rectangle.X = 108; rectangle.Y = 36; } if (num9 == 1) { rectangle.X = 126; rectangle.Y = 36; } if (num9 == 2) { rectangle.X = 144; rectangle.Y = 36; } } else { if (i % 3 == 2 && j % 3 == 1) { if (num9 == 0) { rectangle.X = 180; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 180; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 180; rectangle.Y = 36; } } else { if (i % 3 == 1 && j % 3 == 2) { if (num9 == 0) { rectangle.X = 198; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 198; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 198; rectangle.Y = 36; } } else { if (num9 == 0) { rectangle.X = 18; rectangle.Y = 18; } if (num9 == 1) { rectangle.X = 36; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 54; rectangle.Y = 18; } } } } } } else { if (num2 != wall && num7 == wall && (num4 == wall & num5 == wall)) { if (num9 == 0) { rectangle.X = 18; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 36; rectangle.Y = 0; } if (num9 == 2) { rectangle.X = 54; rectangle.Y = 0; } } else { if (num2 == wall && num7 != wall && (num4 == wall & num5 == wall)) { if (num9 == 0) { rectangle.X = 18; rectangle.Y = 36; } if (num9 == 1) { rectangle.X = 36; rectangle.Y = 36; } if (num9 == 2) { rectangle.X = 54; rectangle.Y = 36; } } else { if (num2 == wall && num7 == wall && (num4 != wall & num5 == wall)) { if (num9 == 0) { rectangle.X = 0; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 0; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 0; rectangle.Y = 36; } } else { if (num2 == wall && num7 == wall && (num4 == wall & num5 != wall)) { if (num9 == 0) { rectangle.X = 72; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 72; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 72; rectangle.Y = 36; } } else { if (num2 != wall && num7 == wall && (num4 != wall & num5 == wall)) { if (num9 == 0) { rectangle.X = 0; rectangle.Y = 54; } if (num9 == 1) { rectangle.X = 36; rectangle.Y = 54; } if (num9 == 2) { rectangle.X = 72; rectangle.Y = 54; } } else { if (num2 != wall && num7 == wall && (num4 == wall & num5 != wall)) { if (num9 == 0) { rectangle.X = 18; rectangle.Y = 54; } if (num9 == 1) { rectangle.X = 54; rectangle.Y = 54; } if (num9 == 2) { rectangle.X = 90; rectangle.Y = 54; } } else { if (num2 == wall && num7 != wall && (num4 != wall & num5 == wall)) { if (num9 == 0) { rectangle.X = 0; rectangle.Y = 72; } if (num9 == 1) { rectangle.X = 36; rectangle.Y = 72; } if (num9 == 2) { rectangle.X = 72; rectangle.Y = 72; } } else { if (num2 == wall && num7 != wall && (num4 == wall & num5 != wall)) { if (num9 == 0) { rectangle.X = 18; rectangle.Y = 72; } if (num9 == 1) { rectangle.X = 54; rectangle.Y = 72; } if (num9 == 2) { rectangle.X = 90; rectangle.Y = 72; } } else { if (num2 == wall && num7 == wall && (num4 != wall & num5 != wall)) { if (num9 == 0) { rectangle.X = 90; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 90; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 90; rectangle.Y = 36; } } else { if (num2 != wall && num7 != wall && (num4 == wall & num5 == wall)) { if (num9 == 0) { rectangle.X = 108; rectangle.Y = 72; } if (num9 == 1) { rectangle.X = 126; rectangle.Y = 72; } if (num9 == 2) { rectangle.X = 144; rectangle.Y = 72; } } else { if (num2 != wall && num7 == wall && (num4 != wall & num5 != wall)) { if (num9 == 0) { rectangle.X = 108; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 126; rectangle.Y = 0; } if (num9 == 2) { rectangle.X = 144; rectangle.Y = 0; } } else { if (num2 == wall && num7 != wall && (num4 != wall & num5 != wall)) { if (num9 == 0) { rectangle.X = 108; rectangle.Y = 54; } if (num9 == 1) { rectangle.X = 126; rectangle.Y = 54; } if (num9 == 2) { rectangle.X = 144; rectangle.Y = 54; } } else { if (num2 != wall && num7 != wall && (num4 != wall & num5 == wall)) { if (num9 == 0) { rectangle.X = 162; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 162; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 162; rectangle.Y = 36; } } else { if (num2 != wall && num7 != wall && (num4 == wall & num5 != wall)) { if (num9 == 0) { rectangle.X = 216; rectangle.Y = 0; } if (num9 == 1) { rectangle.X = 216; rectangle.Y = 18; } if (num9 == 2) { rectangle.X = 216; rectangle.Y = 36; } } else { if (num2 != wall && num7 != wall && (num4 != wall & num5 != wall)) { if (num9 == 0) { rectangle.X = 162; rectangle.Y = 54; } if (num9 == 1) { rectangle.X = 180; rectangle.Y = 54; } if (num9 == 2) { rectangle.X = 198; rectangle.Y = 54; } } } } } } } } } } } } } } } } } } if (rectangle.X <= -1 || rectangle.Y <= -1) { if (num9 <= 0) { rectangle.X = 18; rectangle.Y = 18; } if (num9 == 1) { rectangle.X = 36; rectangle.Y = 18; } if (num9 >= 2) { rectangle.X = 54; rectangle.Y = 18; } } Main.tile[i, j].wallFrameX((int)((byte)rectangle.X)); Main.tile[i, j].wallFrameY((int)((byte)rectangle.Y)); } public static bool CheckPound(int i, int j) { if (Main.tile[i, j] == null) { Main.tile[i, j] = new Tile(); } if (Main.tile[i, j - 1] == null) { Main.tile[i, j - 1] = new Tile(); } if (Main.tile[i, j + 1] == null) { Main.tile[i, j + 1] = new Tile(); } if (Main.tile[i, j].type == 48) { return false; } if (Main.tile[i, j].type == 137) { return false; } if (Main.tile[i, j].type == 138) { return false; } if (Main.tile[i, j].type == 232) { return false; } if (WorldGen.gen) { if (Main.tile[i, j].type == 190) { return false; } if (Main.tile[i, j].type == 30) { return false; } } return (!Main.tile[i, j - 1].active() || (Main.tile[i, j - 1].type != 5 && Main.tile[i, j - 1].type != 26 && Main.tile[i, j - 1].type != 21 && Main.tile[i, j - 1].type != 77 && Main.tile[i, j - 1].type != 237)) && Main.tile[i, j].type != 10; } public static bool SlopeTile(int i, int j, int slope = 0) { if (!WorldGen.CheckPound(i, j)) { return false; } Main.tile[i, j].halfBrick(false); Main.tile[i, j].slope((byte)slope); if (!WorldGen.gen) { WorldGen.KillTile(i, j, true, true, false); Main.PlaySound(0, i * 16, j * 16, 1); WorldGen.SquareTileFrame(i, j, true); if (Main.tile[i, j].slope() == 0) { Rectangle rectangle = new Rectangle(i * 16, j * 16, 16, 16); for (int k = 0; k < 255; k++) { if (Main.player[k].active && !Main.player[k].dead && rectangle.Intersects(new Rectangle((int)Main.player[k].position.X, (int)Main.player[k].position.Y, Main.player[k].width, Main.player[k].height))) { Main.player[k].gfxOffY += Main.player[k].position.Y + (float)Main.player[k].height - (float)rectangle.Y; Main.player[k].position.Y = (float)(rectangle.Y - Main.player[k].height); } } } } return true; } public static bool PoundTile(int i, int j) { if (!WorldGen.CheckPound(i, j)) { return false; } if (!Main.tile[i, j].halfBrick()) { Main.tile[i, j].halfBrick(true); } else { Main.tile[i, j].halfBrick(false); } if (!WorldGen.gen) { WorldGen.KillTile(i, j, true, true, false); Main.PlaySound(0, i * 16, j * 16, 1); WorldGen.SquareTileFrame(i, j, true); if (!Main.tile[i, j].halfBrick()) { Rectangle rectangle = new Rectangle(i * 16, j * 16, 16, 16); for (int k = 0; k < 255; k++) { if (Main.player[k].active && !Main.player[k].dead && rectangle.Intersects(new Rectangle((int)Main.player[k].position.X, (int)Main.player[k].position.Y, Main.player[k].width, Main.player[k].height))) { Main.player[k].gfxOffY += Main.player[k].position.Y + (float)Main.player[k].height - (float)rectangle.Y; Main.player[k].position.Y = (float)(rectangle.Y - Main.player[k].height); } } } } return true; } public static void TileFrame(int i, int j, bool resetFrame = false, bool noBreak = false) { bool flag = false; try { if (i > 5 && j > 5 && i < Main.maxTilesX - 5 && j < Main.maxTilesY - 5 && Main.tile[i, j] != null) { if (Main.netMode != 2 && Main.mapEnabled && !WorldGen.noMapUpdate && !WorldGen.gen && Main.map[i, j] != null && Main.map[i, j].light > 0) { Main.map[i, j].setTile(i, j, Main.map[i, j].light); if (Main.map[i, j].changed()) { flag = true; if (Map.numUpdateTile < Map.maxUpdateTile - 1) { Map.updateTileX[Map.numUpdateTile] = (short)i; Map.updateTileY[Map.numUpdateTile] = (short)j; Map.numUpdateTile++; } else { Main.mapUnfinished = true; } } } if (!Main.tile[i, j].active()) { Main.tile[i, j].halfBrick(false); Main.tile[i, j].color(0); Main.tile[i, j].slope(0); } if (Main.tile[i, j].liquid > 0 && Main.netMode != 1 && !WorldGen.noLiquidCheck) { Liquid.AddWater(i, j); } if (Main.tile[i, j].active()) { if (noBreak && Main.tileFrameImportant[(int)Main.tile[i, j].type] && Main.tile[i, j].type != 4) { return; } int num = (int)Main.tile[i, j].type; if (Main.tileStone[num]) { num = 1; } int frameX = (int)Main.tile[i, j].frameX; int frameY = (int)Main.tile[i, j].frameY; Rectangle rectangle = new Rectangle(-1, -1, 0, 0); if (Main.tileFrameImportant[(int)Main.tile[i, j].type]) { if (num == 4) { short num2 = 0; if (Main.tile[i, j].frameX >= 66) { num2 = 66; } int num3 = -1; int num4 = -1; int num5 = -1; int num6 = -1; int num7 = -1; int num8 = -1; int num9 = -1; if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].nactive()) { byte arg_294_0 = Main.tile[i, j - 1].type; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].nactive() && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].slope() == 0) { num3 = (int)Main.tile[i, j + 1].type; } if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].nactive()) { num4 = (int)Main.tile[i - 1, j].type; } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].nactive()) { num5 = (int)Main.tile[i + 1, j].type; } if (Main.tile[i - 1, j + 1] != null && Main.tile[i - 1, j + 1].nactive()) { num6 = (int)Main.tile[i - 1, j + 1].type; } if (Main.tile[i + 1, j + 1] != null && Main.tile[i + 1, j + 1].nactive()) { num7 = (int)Main.tile[i + 1, j + 1].type; } if (Main.tile[i - 1, j - 1] != null && Main.tile[i - 1, j - 1].nactive()) { num8 = (int)Main.tile[i - 1, j - 1].type; } if (Main.tile[i + 1, j - 1] != null && Main.tile[i + 1, j - 1].nactive()) { num9 = (int)Main.tile[i + 1, j - 1].type; } if (num3 >= 0 && Main.tileSolid[num3] && !Main.tileNoAttach[num3]) { Main.tile[i, j].frameX = num2; } else { if ((num4 >= 0 && Main.tileSolid[num4] && !Main.tileNoAttach[num4]) || num4 == 124 || (num4 == 5 && num8 == 5 && num6 == 5)) { Main.tile[i, j].frameX = (short)(22 + num2); } else { if ((num5 >= 0 && Main.tileSolid[num5] && !Main.tileNoAttach[num5]) || num5 == 124 || (num5 == 5 && num9 == 5 && num7 == 5)) { Main.tile[i, j].frameX = (short)(44 + num2); } else { if (Main.tile[i, j].wall > 0) { Main.tile[i, j].frameX = num2; } else { WorldGen.KillTile(i, j, false, false, false); } } } } return; } if (num == 136) { int num10 = -1; int num11 = -1; int num12 = -1; if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].nactive()) { byte arg_5B2_0 = Main.tile[i, j - 1].type; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].nactive() && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].slope() == 0) { num10 = (int)Main.tile[i, j + 1].type; } if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].nactive()) { num11 = (int)Main.tile[i - 1, j].type; } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].nactive()) { num12 = (int)Main.tile[i + 1, j].type; } if (num10 >= 0 && Main.tileSolid[num10] && !Main.tileNoAttach[num10]) { Main.tile[i, j].frameX = 0; } else { if ((num11 >= 0 && Main.tileSolid[num11] && !Main.tileNoAttach[num11]) || num11 == 124 || num11 == 5) { Main.tile[i, j].frameX = 18; } else { if ((num12 >= 0 && Main.tileSolid[num12] && !Main.tileNoAttach[num12]) || num12 == 124 || num12 == 5) { Main.tile[i, j].frameX = 36; } else { WorldGen.KillTile(i, j, false, false, false); } } } return; } if (num == 129 || num == 149) { int num13 = -1; int num14 = -1; int num15 = -1; int num16 = -1; if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].nactive()) { num14 = (int)Main.tile[i, j - 1].type; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].nactive() && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].slope() == 0) { num13 = (int)Main.tile[i, j + 1].type; } if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].nactive()) { num15 = (int)Main.tile[i - 1, j].type; } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].nactive()) { num16 = (int)Main.tile[i + 1, j].type; } if (num13 >= 0 && Main.tileSolid[num13] && !Main.tileSolidTop[num13]) { Main.tile[i, j].frameY = 0; } else { if (num15 >= 0 && Main.tileSolid[num15] && !Main.tileSolidTop[num15]) { Main.tile[i, j].frameY = 54; } else { if (num16 >= 0 && Main.tileSolid[num16] && !Main.tileSolidTop[num16]) { Main.tile[i, j].frameY = 36; } else { if (num14 >= 0 && Main.tileSolid[num14] && !Main.tileSolidTop[num14]) { Main.tile[i, j].frameY = 18; } else { WorldGen.KillTile(i, j, false, false, false); } } } } } else { if (num == 178) { int num17 = -1; int num18 = -1; int num19 = -1; int num20 = -1; if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].active()) { num18 = (int)Main.tile[i, j - 1].type; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].active() && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].slope() == 0) { num17 = (int)Main.tile[i, j + 1].type; } if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].active()) { num19 = (int)Main.tile[i - 1, j].type; } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].active()) { num20 = (int)Main.tile[i + 1, j].type; } short num21 = (short)(WorldGen.genRand.Next(3) * 18); if (num17 >= 0 && Main.tileSolid[num17] && !Main.tileSolidTop[num17]) { if (Main.tile[i, j].frameY < 0 || Main.tile[i, j].frameY > 36) { Main.tile[i, j].frameY = num21; } } else { if (num19 >= 0 && Main.tileSolid[num19] && !Main.tileSolidTop[num19]) { if (Main.tile[i, j].frameY < 108 || Main.tile[i, j].frameY > 54) { Main.tile[i, j].frameY = (short)(108 + num21); } } else { if (num20 >= 0 && Main.tileSolid[num20] && !Main.tileSolidTop[num20]) { if (Main.tile[i, j].frameY < 162 || Main.tile[i, j].frameY > 198) { Main.tile[i, j].frameY = (short)(162 + num21); } } else { if (num18 >= 0 && Main.tileSolid[num18] && !Main.tileSolidTop[num18]) { if (Main.tile[i, j].frameY < 54 || Main.tile[i, j].frameY > 90) { Main.tile[i, j].frameY = (short)(54 + num21); } } else { WorldGen.KillTile(i, j, false, false, false); } } } } } else { if (num == 184) { int num22 = -1; int num23 = -1; int num24 = -1; int num25 = -1; if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].active()) { num23 = (int)Main.tile[i, j - 1].type; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].active() && !Main.tile[i, j + 1].halfBrick() && Main.tile[i, j + 1].slope() == 0) { num22 = (int)Main.tile[i, j + 1].type; } if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].active()) { num24 = (int)Main.tile[i - 1, j].type; } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].active()) { num25 = (int)Main.tile[i + 1, j].type; } short num26 = (short)(WorldGen.genRand.Next(3) * 18); if (num22 >= 0 && Main.tileMoss[num22]) { Main.tile[i, j].frameX = (short)(22 * (num22 - 179)); if (Main.tile[i, j].frameY < 0 || Main.tile[i, j].frameY > 36) { Main.tile[i, j].frameY = num26; } } else { if (num23 >= 0 && Main.tileMoss[num23]) { Main.tile[i, j].frameX = (short)(22 * (num23 - 179)); if (Main.tile[i, j].frameY < 54 || Main.tile[i, j].frameY > 90) { Main.tile[i, j].frameY = (short)(54 + num26); } } else { if (num24 >= 0 && Main.tileMoss[num24]) { Main.tile[i, j].frameX = (short)(22 * (num24 - 179)); if (Main.tile[i, j].frameY < 108 || Main.tile[i, j].frameY > 54) { Main.tile[i, j].frameY = (short)(108 + num26); } } else { if (num25 >= 0 && Main.tileMoss[num25]) { Main.tile[i, j].frameX = (short)(22 * (num25 - 179)); if (Main.tile[i, j].frameY < 162 || Main.tile[i, j].frameY > 198) { Main.tile[i, j].frameY = (short)(162 + num26); } } else { WorldGen.KillTile(i, j, false, false, false); } } } } } else { if (num == 3 || num == 24 || num == 61 || num == 71 || num == 73 || num == 74 || num == 110 || num == 113 || num == 201) { WorldGen.PlantCheck(i, j); } else { if (num == 227) { WorldGen.CheckDye(i, j); } else { if (num == 12 || num == 31) { WorldGen.CheckOrb(i, j, num); } else { if (num == 165) { WorldGen.CheckTight(i, j); } else { if (num == 235) { WorldGen.Check3x1(i, j, num); } else { if (num == 185) { WorldGen.CheckPile(i, j); } else { if (num == 10) { if (!WorldGen.destroyObject) { bool flag2 = false; int k = (int)Main.tile[i, j].frameY; int num27 = 0; while (k >= 54) { k -= 54; num27++; } int num28 = j - k / 18; if (Main.tile[i, num28 - 1] == null) { Main.tile[i, num28 - 1] = new Tile(); } if (Main.tile[i, num28 + 3] == null) { Main.tile[i, num28 + 3] = new Tile(); } if (Main.tile[i, num28 + 2] == null) { Main.tile[i, num28 + 2] = new Tile(); } if (Main.tile[i, num28 + 1] == null) { Main.tile[i, num28 + 1] = new Tile(); } if (Main.tile[i, num28] == null) { Main.tile[i, num28] = new Tile(); } if (!Main.tile[i, num28 - 1].active() || !Main.tileSolid[(int)Main.tile[i, num28 - 1].type]) { flag2 = true; } if (!WorldGen.SolidTile(i, num28 + 3)) { flag2 = true; } if (!Main.tile[i, num28].active() || (int)Main.tile[i, num28].type != num) { flag2 = true; } if (!Main.tile[i, num28 + 1].active() || (int)Main.tile[i, num28 + 1].type != num) { flag2 = true; } if (!Main.tile[i, num28 + 2].active() || (int)Main.tile[i, num28 + 2].type != num) { flag2 = true; } if (flag2) { WorldGen.destroyObject = true; WorldGen.KillTile(i, num28, false, false, false); WorldGen.KillTile(i, num28 + 1, false, false, false); WorldGen.KillTile(i, num28 + 2, false, false, false); if (num27 == 0) { Item.NewItem(i * 16, j * 16, 16, 16, 25, 1, false, 0, false); } else { if (num27 == 9) { Item.NewItem(i * 16, j * 16, 16, 16, 837, 1, false, 0, false); } else { if (num27 == 10) { Item.NewItem(i * 16, j * 16, 16, 16, 912, 1, false, 0, false); } else { if (num27 == 12) { Item.NewItem(i * 16, j * 16, 16, 16, 1137, 1, false, 0, false); } else { if (num27 == 13) { Item.NewItem(i * 16, j * 16, 16, 16, 1138, 1, false, 0, false); } else { if (num27 == 14) { Item.NewItem(i * 16, j * 16, 16, 16, 1139, 1, false, 0, false); } else { if (num27 == 15) { Item.NewItem(i * 16, j * 16, 16, 16, 1140, 1, false, 0, false); } else { if (num27 == 16) { Item.NewItem(i * 16, j * 16, 16, 16, 1411, 1, false, 0, false); } else { if (num27 == 17) { Item.NewItem(i * 16, j * 16, 16, 16, 1412, 1, false, 0, false); } else { if (num27 == 18) { Item.NewItem(i * 16, j * 16, 16, 16, 1413, 1, false, 0, false); } else { if (num27 == 19) { Item.NewItem(i * 16, j * 16, 16, 16, 1458, 1, false, 0, false); } else { if (num27 >= 20 && num27 <= 23) { Item.NewItem(i * 16, j * 16, 16, 16, 1709 + num27 - 20, 1, false, 0, false); } else { if (num27 >= 4 && num27 <= 8) { Item.NewItem(i * 16, j * 16, 16, 16, 812 + num27, 1, false, 0, false); } else { if (num27 != 11) { Item.NewItem(i * 16, j * 16, 16, 16, 649 + num27, 1, false, 0, false); } } } } } } } } } } } } } } } WorldGen.destroyObject = false; } } else { if (num == 11) { if (!WorldGen.destroyObject) { int num29 = 0; int num30 = i; int frameX2 = (int)Main.tile[i, j].frameX; int l = (int)Main.tile[i, j].frameY; int num31 = 0; while (l >= 54) { l -= 54; num31++; } int num32 = j - l / 18; bool flag3 = false; if (frameX2 == 0) { num30 = i; num29 = 1; } else { if (frameX2 == 18) { num30 = i - 1; num29 = 1; } else { if (frameX2 == 36) { num30 = i + 1; num29 = -1; } else { if (frameX2 == 54) { num30 = i; num29 = -1; } } } } if (Main.tile[num30, num32 + 3] == null) { Main.tile[num30, num32 + 3] = new Tile(); } if (Main.tile[num30, num32 - 1] == null) { Main.tile[num30, num32 - 1] = new Tile(); } if (!Main.tile[num30, num32 - 1].active() || !Main.tileSolid[(int)Main.tile[num30, num32 - 1].type] || !WorldGen.SolidTile(num30, num32 + 3)) { flag3 = true; WorldGen.destroyObject = true; if (num31 == 0) { Item.NewItem(i * 16, j * 16, 16, 16, 25, 1, false, 0, false); } else { if (num31 == 9) { Item.NewItem(i * 16, j * 16, 16, 16, 837, 1, false, 0, false); } else { if (num31 == 10) { Item.NewItem(i * 16, j * 16, 16, 16, 912, 1, false, 0, false); } else { if (num31 == 11 || num31 == 12) { Item.NewItem(i * 16, j * 16, 16, 16, 1137, 1, false, 0, false); } else { if (num31 == 13) { Item.NewItem(i * 16, j * 16, 16, 16, 1138, 1, false, 0, false); } else { if (num31 == 14) { Item.NewItem(i * 16, j * 16, 16, 16, 1139, 1, false, 0, false); } else { if (num31 == 15) { Item.NewItem(i * 16, j * 16, 16, 16, 1140, 1, false, 0, false); } else { if (num31 == 16) { Item.NewItem(i * 16, j * 16, 16, 16, 1411, 1, false, 0, false); } else { if (num31 == 17) { Item.NewItem(i * 16, j * 16, 16, 16, 1412, 1, false, 0, false); } else { if (num31 == 18) { Item.NewItem(i * 16, j * 16, 16, 16, 1413, 1, false, 0, false); } else { if (num31 == 19) { Item.NewItem(i * 16, j * 16, 16, 16, 1458, 1, false, 0, false); } else { if (num31 >= 20 && num31 <= 23) { Item.NewItem(i * 16, j * 16, 16, 16, 1709 + num31 - 20, 1, false, 0, false); } else { if (num31 >= 4 && num31 <= 8) { Item.NewItem(i * 16, j * 16, 16, 16, 812 + num31, 1, false, 0, false); } else { Item.NewItem(i * 16, j * 16, 16, 16, 649 + num31, 1, false, 0, false); } } } } } } } } } } } } } } int num33 = num30; if (num29 == -1) { num33 = num30 - 1; } for (int m = num33; m < num33 + 2; m++) { for (int n = num32; n < num32 + 3; n++) { if (!flag3 && (Main.tile[m, n].type != 11 || !Main.tile[m, n].active())) { WorldGen.destroyObject = true; if (num31 == 0) { Item.NewItem(i * 16, j * 16, 16, 16, 25, 1, false, 0, false); } else { if (num31 == 9) { Item.NewItem(i * 16, j * 16, 16, 16, 837, 1, false, 0, false); } else { if (num31 == 10) { Item.NewItem(i * 16, j * 16, 16, 16, 912, 1, false, 0, false); } else { if (num31 == 11 || num31 == 12) { Item.NewItem(i * 16, j * 16, 16, 16, 1137, 1, false, 0, false); } else { if (num31 == 13) { Item.NewItem(i * 16, j * 16, 16, 16, 1138, 1, false, 0, false); } else { if (num31 == 14) { Item.NewItem(i * 16, j * 16, 16, 16, 1139, 1, false, 0, false); } else { if (num31 == 15) { Item.NewItem(i * 16, j * 16, 16, 16, 1140, 1, false, 0, false); } else { if (num31 == 16) { Item.NewItem(i * 16, j * 16, 16, 16, 1411, 1, false, 0, false); } else { if (num31 == 17) { Item.NewItem(i * 16, j * 16, 16, 16, 1412, 1, false, 0, false); } else { if (num31 == 18) { Item.NewItem(i * 16, j * 16, 16, 16, 1413, 1, false, 0, false); } else { if (num31 == 19) { Item.NewItem(i * 16, j * 16, 16, 16, 1458, 1, false, 0, false); } else { if (num31 >= 20 && num31 <= 23) { Item.NewItem(i * 16, j * 16, 16, 16, 1709 + num31 - 20, 1, false, 0, false); } else { if (num31 >= 4 && num31 <= 8) { Item.NewItem(i * 16, j * 16, 16, 16, 812 + num31, 1, false, 0, false); } else { Item.NewItem(i * 16, j * 16, 16, 16, 649 + num31, 1, false, 0, false); } } } } } } } } } } } } } flag3 = true; m = num33; n = num32; } if (flag3) { WorldGen.KillTile(m, n, false, false, false); } } } WorldGen.destroyObject = false; } } else { if (num == 19) { int num34 = -1; int num35 = -1; if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].active()) { if (Main.tileStone[(int)Main.tile[i - 1, j].type]) { num35 = 1; } else { num35 = (int)Main.tile[i - 1, j].type; } } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].active()) { if (Main.tileStone[(int)Main.tile[i + 1, j].type]) { num34 = 1; } else { num34 = (int)Main.tile[i + 1, j].type; } } if (num34 >= 0 && !Main.tileSolid[num34]) { num34 = -1; } if (num35 >= 0 && !Main.tileSolid[num35]) { num35 = -1; } if (num35 == num && Main.tile[i - 1, j].halfBrick() != Main.tile[i, j].halfBrick()) { num35 = -1; } if (num34 == num && Main.tile[i + 1, j].halfBrick() != Main.tile[i, j].halfBrick()) { num34 = -1; } if (num35 != -1 && num35 != num && Main.tile[i, j].halfBrick()) { num35 = -1; } if (num34 != -1 && num34 != num && Main.tile[i, j].halfBrick()) { num34 = -1; } if (num35 == num && num34 == num) { rectangle.X = 0; } else { if (num35 == num && num34 == -1) { rectangle.X = 18; } else { if (num35 == -1 && num34 == num) { rectangle.X = 36; } else { if (num35 != num && num34 == num) { rectangle.X = 54; } else { if (num35 == num && num34 != num) { rectangle.X = 72; } else { if (num35 != num && num35 != -1 && num34 == -1) { rectangle.X = 108; } else { if (num35 == -1 && num34 != num && num34 != -1) { rectangle.X = 126; } else { rectangle.X = 90; } } } } } } } Main.tile[i, j].frameX = (short)rectangle.X; } else { if (num == 233 || num == 236 || num == 238) { WorldGen.CheckJunglePlant(i, j, num); } else { if (num == 240) { WorldGen.Check3x3Wall(i, j); } else { if (num == 245) { WorldGen.Check2x3Wall(i, j); } else { if (num == 246) { WorldGen.Check3x2Wall(i, j); } else { if (num == 241) { WorldGen.Check4x3Wall(i, j); } else { if (num == 242) { WorldGen.Check6x4Wall(i, j); } else { if (num == 34 || num == 35 || num == 36 || num == 106 || num == 170 || num == 171 || num == 172 || num == 212 || num == 219 || num == 220 || num == 228 || num == 231 || num == 243 || num == 247) { WorldGen.Check3x3(i, j, (int)((byte)num)); } else { if (num == 15 || num == 20 || num == 216) { WorldGen.Check1x2(i, j, (byte)num); } else { if (num == 14 || num == 17 || num == 26 || num == 77 || num == 86 || num == 87 || num == 88 || num == 89 || num == 114 || num == 133 || num == 186 || num == 187 || num == 215 || num == 217 || num == 218 || num == 237 || num == 244) { WorldGen.Check3x2(i, j, (int)((byte)num)); } else { if (num == 135 || num == 144 || num == 141 || num == 210 || num == 239) { WorldGen.Check1x1(i, j, num); } else { if (num == 16 || num == 18 || num == 29 || num == 103 || num == 134) { WorldGen.Check2x1(i, j, (byte)num); } else { if (num == 13 || num == 33 || num == 50 || num == 78 || num == 174) { WorldGen.CheckOnTable1x1(i, j, (int)((byte)num)); } else { if (num == 21) { WorldGen.CheckChest(i, j, (int)((byte)num)); } else { if (num == 128) { WorldGen.CheckMan(i, j); } else { if (num == 27) { WorldGen.CheckSunflower(i, j, 27); } else { if (num == 28) { WorldGen.CheckPot(i, j, 28); } else { if (num == 132 || num == 138 || num == 142 || num == 143) { WorldGen.Check2x2(i, j, num); } else { if (num == 91) { WorldGen.CheckBanner(i, j, (byte)num); } else { if (num == 139) { WorldGen.CheckMB(i, j, (int)((byte)num)); } else { if (num == 92 || num == 93) { WorldGen.Check1xX(i, j, (byte)num); } else { if (num == 104 || num == 105 || num == 207) { WorldGen.Check2xX(i, j, (byte)num); } else { if (num == 101 || num == 102) { WorldGen.Check3x4(i, j, (int)((byte)num)); } else { if (num == 42) { WorldGen.Check1x2Top(i, j, (byte)num); } else { if (num == 55 || num == 85) { WorldGen.CheckSign(i, j, num); } else { if (num == 209) { WorldGen.CheckCannon(i, j, num); } else { if (num == 79 || num == 90) { WorldGen.Check4x2(i, j, num); } else { if (num == 85 || num == 94 || num == 95 || num == 96 || num == 97 || num == 98 || num == 99 || num == 100 || num == 125 || num == 126 || num == 173) { WorldGen.Check2x2(i, j, num); } else { if (num == 81) { int num36 = -1; int num37 = -1; int num38 = -1; int num39 = -1; if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].active()) { num37 = (int)Main.tile[i, j - 1].type; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].active()) { num36 = (int)Main.tile[i, j + 1].type; } if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].active()) { num38 = (int)Main.tile[i - 1, j].type; } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].active()) { num39 = (int)Main.tile[i + 1, j].type; } if (num38 != -1 || num37 != -1 || num39 != -1) { WorldGen.KillTile(i, j, false, false, false); } else { if (num36 < 0 || !Main.tileSolid[num36] || Main.tile[i, j + 1].halfBrick() || Main.tile[i, j + 1].slope() != 0) { WorldGen.KillTile(i, j, false, false, false); } } } else { if (Main.tileAlch[num]) { WorldGen.CheckAlch(i, j); } else { if (num == 72) { int num40 = -1; int num41 = -1; if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].active()) { num41 = (int)Main.tile[i, j - 1].type; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].active()) { num40 = (int)Main.tile[i, j + 1].type; } if (num40 != num && num40 != 70) { WorldGen.KillTile(i, j, false, false, false); } else { if (num41 != num && Main.tile[i, j].frameX == 0) { Main.tile[i, j].frameNumber((byte)WorldGen.genRand.Next(3)); if (Main.tile[i, j].frameNumber() == 0) { Main.tile[i, j].frameX = 18; Main.tile[i, j].frameY = 0; } if (Main.tile[i, j].frameNumber() == 1) { Main.tile[i, j].frameX = 18; Main.tile[i, j].frameY = 18; } if (Main.tile[i, j].frameNumber() == 2) { Main.tile[i, j].frameX = 18; Main.tile[i, j].frameY = 36; } } } } else { if (num == 5) { WorldGen.CheckTree(i, j); } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } return; } else { int num42 = -1; int num43 = -1; int num44 = -1; int num45 = -1; int num46 = -1; int num47 = -1; int num48 = -1; int num49 = -1; if (Main.tile[i - 1, j] != null && Main.tile[i - 1, j].active()) { if (Main.tileStone[(int)Main.tile[i - 1, j].type]) { num45 = 1; } else { num45 = (int)Main.tile[i - 1, j].type; } if (Main.tile[i - 1, j].slope() == 1) { num45 = -1; } } if (Main.tile[i + 1, j] != null && Main.tile[i + 1, j].active()) { if (Main.tileStone[(int)Main.tile[i + 1, j].type]) { num46 = 1; } else { num46 = (int)Main.tile[i + 1, j].type; } if (Main.tile[i + 1, j].slope() == 2) { num46 = -1; } } if (Main.tile[i, j - 1] != null && Main.tile[i, j - 1].active()) { if (Main.tileStone[(int)Main.tile[i, j - 1].type]) { num43 = 1; } else { num43 = (int)Main.tile[i, j - 1].type; } } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].active()) { if (Main.tileStone[(int)Main.tile[i, j + 1].type]) { num48 = 1; } else { num48 = (int)Main.tile[i, j + 1].type; } if (Main.tile[i, j + 1].slope() == 1 || Main.tile[i, j + 1].slope() == 2) { num48 = -1; } } if (Main.tile[i - 1, j - 1] != null && Main.tile[i - 1, j - 1].active()) { if (Main.tileStone[(int)Main.tile[i - 1, j - 1].type]) { num42 = 1; } else { num42 = (int)Main.tile[i - 1, j - 1].type; } } if (Main.tile[i + 1, j - 1] != null && Main.tile[i + 1, j - 1].active()) { if (Main.tileStone[(int)Main.tile[i + 1, j - 1].type]) { num44 = 1; } else { num44 = (int)Main.tile[i + 1, j - 1].type; } } if (Main.tile[i - 1, j + 1] != null && Main.tile[i - 1, j + 1].active()) { if (Main.tileStone[(int)Main.tile[i - 1, j + 1].type]) { num47 = 1; } else { num47 = (int)Main.tile[i - 1, j + 1].type; } } if (Main.tile[i + 1, j + 1] != null && Main.tile[i + 1, j + 1].active()) { if (Main.tileStone[(int)Main.tile[i + 1, j + 1].type]) { num49 = 1; } else { num49 = (int)Main.tile[i + 1, j + 1].type; } } if (Main.tile[i, j].slope() == 2) { num43 = -1; num45 = -1; } if (Main.tile[i, j].slope() == 1) { num43 = -1; num46 = -1; } if (num == 147) { if (num43 > -1 && Main.tileBrick[num43] && num43 != 161 && num43 != 163 && num43 != 164 && num43 != 200 && num43 != 200 && num43 != 224) { num43 = num; } if (num48 > -1 && Main.tileBrick[num48] && num48 != 161 && num48 != 163 && num48 != 164 && num48 != 200 && num48 != 224) { num48 = num; } if (num45 > -1 && Main.tileBrick[num45] && num45 != 161 && num45 != 163 && num45 != 164 && num45 != 200 && num45 != 224) { num45 = num; } if (num46 > -1 && Main.tileBrick[num46] && num46 != 161 && num46 != 163 && num46 != 164 && num46 != 200 && num46 != 224) { num46 = num; } if (num42 > -1 && Main.tileBrick[num42] && num42 != 161 && num42 != 163 && num42 != 164 && num42 != 200 && num42 != 224) { num42 = num; } if (num44 > -1 && Main.tileBrick[num44] && num44 != 161 && num44 != 163 && num44 != 164 && num44 != 200 && num44 != 224) { num44 = num; } if (num47 > -1 && Main.tileBrick[num47] && num47 != 161 && num47 != 163 && num47 != 164 && num47 != 200 && num47 != 224) { num47 = num; } if (num49 > -1 && Main.tileBrick[num49] && num49 != 161 && num49 != 163 && num49 != 164 && num49 != 200 && num49 != 224) { num49 = num; } } else { if (num == 161 || num == 163 || num == 164 || num == 200) { if (num43 > -1 && Main.tileBrick[num43] && num43 != 147) { num43 = num; } if (num48 > -1 && Main.tileBrick[num48] && num48 != 147) { num48 = num; } if (num45 > -1 && Main.tileBrick[num45] && num45 != 147) { num45 = num; } if (num46 > -1 && Main.tileBrick[num46] && num46 != 147) { num46 = num; } if (num42 > -1 && Main.tileBrick[num42] && num42 != 147) { num42 = num; } if (num44 > -1 && Main.tileBrick[num44] && num44 != 147) { num44 = num; } if (num47 > -1 && Main.tileBrick[num47] && num47 != 147) { num47 = num; } if (num49 > -1 && Main.tileBrick[num49] && num49 != 147) { num49 = num; } } else { if (Main.tileBrick[num]) { if (num == 60 || num == 70) { if (num43 > -1 && num43 != 59 && Main.tileBrick[num43]) { num43 = num; } if (num48 > -1 && num48 != 59 && Main.tileBrick[num48]) { num48 = num; } if (num45 > -1 && num45 != 59 && Main.tileBrick[num45]) { num45 = num; } if (num46 > -1 && num46 != 59 && Main.tileBrick[num46]) { num46 = num; } if (num42 > -1 && num42 != 59 && Main.tileBrick[num42]) { num42 = num; } if (num44 > -1 && num44 != 59 && Main.tileBrick[num44]) { num44 = num; } if (num47 > -1 && num47 != 59 && Main.tileBrick[num47]) { num47 = num; } if (num49 > -1 && num49 != 59 && Main.tileBrick[num49]) { num49 = num; } } else { if (num43 > -1 && Main.tileBrick[num43]) { num43 = num; } if (num48 > -1 && Main.tileBrick[num48]) { num48 = num; } if (num45 > -1 && Main.tileBrick[num45]) { num45 = num; } if (num46 > -1 && Main.tileBrick[num46]) { num46 = num; } if (num42 > -1 && Main.tileBrick[num42]) { num42 = num; } if (num44 > -1 && Main.tileBrick[num44]) { num44 = num; } if (num47 > -1 && Main.tileBrick[num47]) { num47 = num; } if (num49 > -1 && Main.tileBrick[num49]) { num49 = num; } } } } } if ((num == 1 || Main.tileMoss[num]) && num48 == 165) { if (Main.tile[i, j + 1].frameY == 72) { num48 = 1; } else { if (Main.tile[i, j + 1].frameY == 0) { num48 = 1; } } } if ((num == 1 || Main.tileMoss[num]) && num43 == 165) { if (Main.tile[i, j - 1].frameY == 90) { num43 = 1; } else { if (Main.tile[i, j - 1].frameY == 54) { num43 = 1; } } } if (num == 225) { if (num48 == 165) { num48 = num; } if (num43 == 165) { num43 = num; } } if (num == 25 && num48 == 165 && Main.tile[i, j + 1].frameY < 36) { num48 = 25; } if (num == 25 && num43 == 165 && Main.tile[i, j - 1].frameY >= 36) { num43 = 25; } if (num == 117 && num48 == 165 && Main.tile[i, j + 1].frameY < 36) { num48 = 117; } if (num == 117 && num43 == 165 && Main.tile[i, j - 1].frameY >= 36) { num43 = 117; } if (num == 200 && num48 == 165) { num48 = 200; } if (num == 161 && num48 == 165) { num48 = 161; } if (num == 163 && num48 == 165) { num48 = 163; } if (num == 164 && num48 == 165) { num48 = 164; } if (Main.tile[i, j].slope() != 0 && num48 > -1) { num48 = num; } if (num43 > -1 && Main.tile[i, j - 1].slope() != 0) { num43 = num; } if (num == 124) { if (num43 > -1 && Main.tileSolid[num43]) { num43 = num; } if (num48 > -1 && Main.tileSolid[num48]) { num48 = num; } } if (num43 > -1 && Main.tile[i, j - 1].halfBrick()) { num43 = num; } if (num45 > -1 && Main.tile[i - 1, j].halfBrick()) { if (Main.tile[i, j].halfBrick()) { num45 = num; } else { if ((int)Main.tile[i - 1, j].type != num) { num45 = -1; } } } if (num46 > -1 && Main.tile[i + 1, j].halfBrick()) { if (Main.tile[i, j].halfBrick()) { num46 = num; } else { if ((int)Main.tile[i + 1, j].type != num) { num46 = -1; } } } if (Main.tile[i, j].halfBrick()) { if (num45 != num) { num45 = -1; } if (num46 != num) { num46 = -1; } num43 = -1; } if (Main.tile[i, j + 1] != null && Main.tile[i, j + 1].halfBrick()) { num48 = -1; } if (!Main.tileSolid[num]) { if (num == 49) { WorldGen.CheckOnTable1x1(i, j, (int)((byte)num)); return; } if (num == 80) { WorldGen.CactusFrame(i, j); return; } } WorldGen.mergeUp = false; WorldGen.mergeDown = false; WorldGen.mergeLeft = false; WorldGen.mergeRight = false; int num50; if (resetFrame) { num50 = WorldGen.genRand.Next(0, 3); Main.tile[i, j].frameNumber((byte)num50); } else { num50 = (int)Main.tile[i, j].frameNumber(); } if (num == 0) { if (num43 >= 0 && Main.tileMergeDirt[num43]) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } else { if (num43 == 147) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } } if (num48 >= 0 && Main.tileMergeDirt[num48]) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } else { if (num48 == 147) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } } if (num45 >= 0 && Main.tileMergeDirt[num45]) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } else { if (num45 == 147) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } } if (num46 >= 0 && Main.tileMergeDirt[num46]) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } else { if (num46 == 147) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } } if (num43 == 2 || num43 == 23 || num43 == 109 || num43 == 199) { num43 = num; } if (num48 == 2 || num48 == 23 || num48 == 109 || num48 == 199) { num48 = num; } if (num45 == 2 || num45 == 23 || num45 == 109 || num45 == 199) { num45 = num; } if (num46 == 2 || num46 == 23 || num46 == 109 || num46 == 199) { num46 = num; } if (num42 >= 0 && Main.tileMergeDirt[num42]) { num42 = num; } else { if (num42 == 2 || num42 == 23 || num42 == 109 || num42 == 199) { num42 = num; } } if (num44 >= 0 && Main.tileMergeDirt[num44]) { num44 = num; } else { if (num44 == 2 || num44 == 23 || num44 == 109 || num44 == 199) { num44 = num; } } if (num47 >= 0 && Main.tileMergeDirt[num47]) { num47 = num; } else { if (num47 == 2 || num47 == 23 || num47 == 109 || num47 == 199) { num47 = num; } } if (num49 >= 0 && Main.tileMergeDirt[num49]) { num49 = num; } else { if (num49 == 2 || num49 == 23 || num49 == 109 || num49 == 199) { num49 = num; } } double arg_313B_0 = Main.rockLayer; if (num43 == 59) { num43 = -2; } if (num48 == 59) { num48 = -2; } if (num45 == 59) { num45 = -2; } if (num46 == 59) { num46 = -2; } if (num42 == 59) { num42 = -2; } if (num44 == 59) { num44 = -2; } if (num47 == 59) { num47 = -2; } if (num49 == 59) { num49 = -2; } if (num43 == 191) { num43 = num; } if (num48 == 191) { num48 = num; } if (num45 == 191) { num45 = num; } if (num46 == 191) { num46 = num; } if (num42 == 191) { num42 = num; } if (num44 == 191) { num44 = num; } if (num47 == 191) { num47 = num; } if (num49 == 191) { num49 = num; } } else { if (num == 213) { if (num43 >= 0 && Main.tileSolid[num43] && !Main.tileSolidTop[num43]) { num43 = num; } if (num48 >= 0 && Main.tileSolid[num48]) { num48 = num; } if (num43 != num) { if (num45 >= 0 && Main.tileSolid[num45]) { num45 = num; } if (num46 >= 0 && Main.tileSolid[num46]) { num46 = num; } } } if (Main.tileMergeDirt[num]) { if (num43 == 0) { num43 = -2; } if (num48 == 0) { num48 = -2; } if (num45 == 0) { num45 = -2; } if (num46 == 0) { num46 = -2; } if (num42 == 0) { num42 = -2; } if (num44 == 0) { num44 = -2; } if (num47 == 0) { num47 = -2; } if (num49 == 0) { num49 = -2; } if (num == 1) { if ((double)j > Main.rockLayer) { if (num43 == 59) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } if (num48 == 59) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } if (num45 == 59) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } if (num46 == 59) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } if (num42 == 59) { num42 = num; } if (num44 == 59) { num44 = num; } if (num47 == 59) { num47 = num; } if (num49 == 59) { num49 = num; } } if (num43 == 57) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } if (num48 == 57) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } if (num45 == 57) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } if (num46 == 57) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } if (num42 == 57) { num42 = num; } if (num44 == 57) { num44 = num; } if (num47 == 57) { num47 = num; } if (num49 == 57) { num49 = num; } } } else { if (num == 58 || num == 76 || num == 75) { if (num43 == 57) { num43 = -2; } if (num48 == 57) { num48 = -2; } if (num45 == 57) { num45 = -2; } if (num46 == 57) { num46 = -2; } if (num42 == 57) { num42 = -2; } if (num44 == 57) { num44 = -2; } if (num47 == 57) { num47 = -2; } if (num49 == 57) { num49 = -2; } } else { if (num == 211) { if (num43 == 60) { num43 = 59; } if (num48 == 60) { num48 = 59; } if (num45 == 60) { num45 = 59; } if (num46 == 60) { num46 = 59; } if (num43 == 59) { num43 = -2; } if (num48 == 59) { num48 = -2; } if (num45 == 59) { num45 = -2; } if (num46 == 59) { num46 = -2; } if (num42 == 59) { num42 = -2; } if (num44 == 59) { num44 = -2; } if (num47 == 59) { num47 = -2; } if (num49 == 59) { num49 = -2; } } else { if (num == 225 || num == 226) { if (num43 == 59) { num43 = -2; } if (num48 == 59) { num48 = -2; } if (num45 == 59) { num45 = -2; } if (num46 == 59) { num46 = -2; } if (num42 == 59) { num42 = -2; } if (num44 == 59) { num44 = -2; } if (num47 == 59) { num47 = -2; } if (num49 == 59) { num49 = -2; } } else { if (num == 59) { if ((double)j > Main.rockLayer) { if (num43 == 1) { num43 = -2; } if (num48 == 1) { num48 = -2; } if (num45 == 1) { num45 = -2; } if (num46 == 1) { num46 = -2; } if (num42 == 1) { num42 = -2; } if (num44 == 1) { num44 = -2; } if (num47 == 1) { num47 = -2; } if (num49 == 1) { num49 = -2; } } if (num43 == 60) { num43 = num; } if (num48 == 60) { num48 = num; } if (num45 == 60) { num45 = num; } if (num46 == 60) { num46 = num; } if (num42 == 60) { num42 = num; } if (num44 == 60) { num44 = num; } if (num47 == 60) { num47 = num; } if (num49 == 60) { num49 = num; } if (num43 == 70) { num43 = num; } if (num48 == 70) { num48 = num; } if (num45 == 70) { num45 = num; } if (num46 == 70) { num46 = num; } if (num42 == 70) { num42 = num; } if (num44 == 70) { num44 = num; } if (num47 == 70) { num47 = num; } if (num49 == 70) { num49 = num; } if (num43 == 211 || num43 == 226 || num43 == 225) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } if (num48 == 211 || num48 == 226 || num48 == 225) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } if (num45 == 211 || num45 == 226 || num45 == 225) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } if (num46 == 211 || num46 == 226 || num46 == 225) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } if (num42 == 211 || num42 == 225 || num42 == 226) { num42 = num; } if (num44 == 211 || num44 == 225 || num44 == 226) { num44 = num; } if (num47 == 211 || num47 == 225 || num47 == 226) { num47 = num; } if (num49 == 211 || num49 == 225 || num49 == 226) { num49 = num; } if ((double)j < Main.rockLayer) { if (num43 == 0) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } if (num48 == 0) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } if (num45 == 0) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } if (num46 == 0) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } if (num42 == 0) { num42 = num; } if (num44 == 0) { num44 = num; } if (num47 == 0) { num47 = num; } if (num49 == 0) { num49 = num; } } else { if (num43 == 0) { num43 = num; } if (num45 == 0) { num45 = num; } if (num46 == 0) { num46 = num; } if (num48 == 0) { num48 = num; } } } else { if (num == 57) { if (num43 == 1) { num43 = -2; } if (num48 == 1) { num48 = -2; } if (num45 == 1) { num45 = -2; } if (num46 == 1) { num46 = -2; } if (num42 == 1) { num42 = -2; } if (num44 == 1) { num44 = -2; } if (num47 == 1) { num47 = -2; } if (num49 == 1) { num49 = -2; } if (num43 == 58 || num43 == 76 || num43 == 75) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } if (num48 == 58 || num48 == 76 || num48 == 75) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } if (num45 == 58 || num45 == 76 || num45 == 75) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } if (num46 == 58 || num46 == 76 || num46 == 75) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } if (num42 == 58 || num42 == 76 || num42 == 75) { num42 = num; } if (num44 == 58 || num44 == 76 || num44 == 75) { num44 = num; } if (num47 == 58 || num47 == 76 || num47 == 75) { num47 = num; } if (num49 == 58 || num49 == 76 || num49 == 75) { num49 = num; } } else { if (num == 189) { if (num43 == 196) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } if (num48 == 196) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } if (num45 == 196) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } if (num46 == 196) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } if (num42 == 196) { num42 = num; } if (num44 == 196) { num44 = num; } if (num47 == 196) { num47 = num; } if (num49 == 196) { num49 = num; } } else { if (num == 196) { if (num43 == 189) { num43 = -2; } if (num48 == 189) { num48 = -2; } if (num45 == 189) { num45 = -2; } if (num46 == 189) { num46 = -2; } if (num42 == 189) { num42 = -2; } if (num44 == 189) { num44 = -2; } if (num47 == 189) { num47 = -2; } if (num49 == 189) { num49 = -2; } } else { if (num == 147) { if (num43 == 0) { num43 = -2; } if (num48 == 0) { num48 = -2; } if (num45 == 0) { num45 = -2; } if (num46 == 0) { num46 = -2; } if (num42 == 0) { num42 = -2; } if (num44 == 0) { num44 = -2; } if (num47 == 0) { num47 = -2; } if (num49 == 0) { num49 = -2; } if (num43 == 161 || num43 == 163 || num43 == 164 || num43 == 200 || num43 == 224) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } if (num48 == 161 || num48 == 163 || num48 == 164 || num48 == 200 || num48 == 224) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } if (num45 == 161 || num45 == 163 || num45 == 164 || num45 == 200 || num45 == 224) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } if (num46 == 161 || num46 == 163 || num46 == 164 || num46 == 200 || num46 == 224) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } if (num42 == 161 || num42 == 163 || num42 == 164 || num42 == 200 || num42 == 224) { num42 = num; } if (num44 == 161 || num44 == 163 || num44 == 164 || num44 == 200 || num44 == 224) { num44 = num; } if (num47 == 161 || num47 == 163 || num47 == 164 || num47 == 200 || num47 == 224) { num47 = num; } if (num49 == 161 || num49 == 163 || num49 == 164 || num49 == 200 || num49 == 224) { num49 = num; } } else { if (num == 161 || num == 163 || num == 164 || num == 200 || num == 224) { if (num43 == 147) { num43 = -2; } if (num48 == 147) { num48 = -2; } if (num45 == 147) { num45 = -2; } if (num46 == 147) { num46 = -2; } if (num42 == 147) { num42 = -2; } if (num44 == 147) { num44 = -2; } if (num47 == 147) { num47 = -2; } if (num49 == 147) { num49 = -2; } } else { if (num == 32) { if (num48 == 23) { num48 = num; } } else { if (num == 69) { if (num48 == 60) { num48 = num; } } else { if (num == 51) { if (num43 > -1 && !Main.tileNoAttach[num43]) { num43 = num; } if (num48 > -1 && !Main.tileNoAttach[num48]) { num48 = num; } if (num45 > -1 && !Main.tileNoAttach[num45]) { num45 = num; } if (num46 > -1 && !Main.tileNoAttach[num46]) { num46 = num; } if (num42 > -1 && !Main.tileNoAttach[num42]) { num42 = num; } if (num44 > -1 && !Main.tileNoAttach[num44]) { num44 = num; } if (num47 > -1 && !Main.tileNoAttach[num47]) { num47 = num; } if (num49 > -1 && !Main.tileNoAttach[num49]) { num49 = num; } } else { if (num == 192) { if (num43 == 191) { WorldGen.TileFrame(i, j - 1, false, false); if (WorldGen.mergeDown) { num43 = num; } } if (num48 == 191) { WorldGen.TileFrame(i, j + 1, false, false); if (WorldGen.mergeUp) { num48 = num; } } if (num45 == 191) { WorldGen.TileFrame(i - 1, j, false, false); if (WorldGen.mergeRight) { num45 = num; } } if (num46 == 191) { WorldGen.TileFrame(i + 1, j, false, false); if (WorldGen.mergeLeft) { num46 = num; } } if (num42 == 191) { num42 = num; } if (num44 == 191) { num44 = num; } if (num47 == 191) { num47 = num; } if (num49 == 191) { num49 = num; } } else { if (num == 191) { if (num43 == 192) { num43 = -2; } if (num48 == 192) { num48 = -2; } if (num45 == 192) { num45 = -2; } if (num46 == 192) { num46 = -2; } if (num42 == 192) { num42 = -2; } if (num44 == 192) { num44 = -2; } if (num47 == 192) { num47 = -2; } if (num49 == 192) { num49 = -2; } if (num43 == 0) { num43 = num; } if (num48 == 0) { num48 = num; } if (num45 == 0) { num45 = num; } if (num46 == 0) { num46 = num; } if (num42 == 0) { num42 = num; } if (num44 == 0) { num44 = num; } if (num47 == 0) { num47 = num; } if (num49 == 0) { num49 = num; } } else { if (num == 60) { if (num43 == 211) { num43 = 59; } if (num48 == 211) { num48 = 59; } if (num45 == 211) { num45 = 59; } if (num46 == 211) { num46 = 59; } } } } } } } } } } } } } } } } } } if (Main.tileStone[num] || num == 1) { if (num43 > -1 && Main.tileMoss[num43]) { num43 = num; } if (num48 > -1 && Main.tileMoss[num48]) { num48 = num; } if (num45 > -1 && Main.tileMoss[num45]) { num45 = num; } if (num46 > -1 && Main.tileMoss[num46]) { num46 = num; } if (num42 > -1 && Main.tileMoss[num42]) { num42 = num; } if (num44 > -1 && Main.tileMoss[num44]) { num44 = num; } if (num47 > -1 && Main.tileMoss[num47]) { num47 = num; } if (num49 > -1 && Main.tileMoss[num49]) { num49 = num; } } bool flag4 = false; if (num43 == -2 && Main.tile[i, j].color() != Main.tile[i, j - 1].color()) { num43 = num; WorldGen.mergeUp = true; } if (num48 == -2 && Main.tile[i, j].color() != Main.tile[i, j + 1].color()) { num48 = num; WorldGen.mergeDown = true; } if (num45 == -2 && Main.tile[i, j].color() != Main.tile[i - 1, j].color()) { num45 = num; WorldGen.mergeLeft = true; } if (num46 == -2 && Main.tile[i, j].color() != Main.tile[i + 1, j].color()) { num46 = num; WorldGen.mergeRight = true; } if (num == 2 || num == 23 || num == 60 || num == 70 || num == 109 || num == 199 || Main.tileMoss[num]) { flag4 = true; if (num43 > -1 && !Main.tileSolid[num43] && num43 != num) { num43 = -1; } if (num48 > -1 && !Main.tileSolid[num48] && num48 != num) { num48 = -1; } if (num45 > -1 && !Main.tileSolid[num45] && num45 != num) { num45 = -1; } if (num46 > -1 && !Main.tileSolid[num46] && num46 != num) { num46 = -1; } if (num42 > -1 && !Main.tileSolid[num42] && num42 != num) { num42 = -1; } if (num44 > -1 && !Main.tileSolid[num44] && num44 != num) { num44 = -1; } if (num47 > -1 && !Main.tileSolid[num47] && num47 != num) { num47 = -1; } if (num49 > -1 && !Main.tileSolid[num49] && num49 != num) { num49 = -1; } int num51 = 0; if (num == 60 || num == 70) { num51 = 59; } else { if (Main.tileMoss[num]) { num51 = 1; } else { if (num == 2) { if (num43 == 23) { num43 = num51; } if (num48 == 23) { num48 = num51; } if (num45 == 23) { num45 = num51; } if (num46 == 23) { num46 = num51; } if (num42 == 23) { num42 = num51; } if (num44 == 23) { num44 = num51; } if (num47 == 23) { num47 = num51; } if (num49 == 23) { num49 = num51; } } else { if (num == 23) { if (num43 == 2) { num43 = num51; } if (num48 == 2) { num48 = num51; } if (num45 == 2) { num45 = num51; } if (num46 == 2) { num46 = num51; } if (num42 == 2) { num42 = num51; } if (num44 == 2) { num44 = num51; } if (num47 == 2) { num47 = num51; } if (num49 == 2) { num49 = num51; } } } } } if (num43 != num && num43 != num51 && (num48 == num || num48 == num51)) { if (num45 == num51 && num46 == num) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 198; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 198; } else { rectangle.X = 36; rectangle.Y = 198; } } } else { if (num45 == num && num46 == num51) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 198; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 198; } else { rectangle.X = 90; rectangle.Y = 198; } } } } } else { if (num48 != num && num48 != num51 && (num43 == num || num43 == num51)) { if (num45 == num51 && num46 == num) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 216; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 216; } else { rectangle.X = 36; rectangle.Y = 216; } } } else { if (num45 == num && num46 == num51) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 216; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 216; } else { rectangle.X = 90; rectangle.Y = 216; } } } } } else { if (num45 != num && num45 != num51 && (num46 == num || num46 == num51)) { if (num43 == num51 && num48 == num) { if (num50 == 0) { rectangle.X = 72; rectangle.Y = 144; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 162; } else { rectangle.X = 72; rectangle.Y = 180; } } } else { if (num48 == num && num46 == num43) { if (num50 == 0) { rectangle.X = 72; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 108; } else { rectangle.X = 72; rectangle.Y = 126; } } } } } else { if (num46 != num && num46 != num51 && (num45 == num || num45 == num51)) { if (num43 == num51 && num48 == num) { if (num50 == 0) { rectangle.X = 90; rectangle.Y = 144; } else { if (num50 == 1) { rectangle.X = 90; rectangle.Y = 162; } else { rectangle.X = 90; rectangle.Y = 180; } } } else { if (num48 == num && num46 == num43) { if (num50 == 0) { rectangle.X = 90; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 90; rectangle.Y = 108; } else { rectangle.X = 90; rectangle.Y = 126; } } } } } else { if (num43 == num && num48 == num && num45 == num && num46 == num) { if (num42 != num && num44 != num && num47 != num && num49 != num) { if (num49 == num51) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 324; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 324; } else { rectangle.X = 144; rectangle.Y = 324; } } } else { if (num44 == num51) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 342; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 342; } else { rectangle.X = 144; rectangle.Y = 342; } } } else { if (num47 == num51) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 360; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 360; } else { rectangle.X = 144; rectangle.Y = 360; } } } else { if (num42 == num51) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 378; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 378; } else { rectangle.X = 144; rectangle.Y = 378; } } } else { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 234; } else { if (num50 == 1) { rectangle.X = 198; rectangle.Y = 234; } else { rectangle.X = 252; rectangle.Y = 234; } } } } } } } else { if (num42 != num && num49 != num) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 306; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 306; } else { rectangle.X = 72; rectangle.Y = 306; } } } else { if (num44 != num && num47 != num) { if (num50 == 0) { rectangle.X = 90; rectangle.Y = 306; } else { if (num50 == 1) { rectangle.X = 108; rectangle.Y = 306; } else { rectangle.X = 126; rectangle.Y = 306; } } } else { if (num42 != num && num44 == num && num47 == num && num49 == num) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 144; } else { rectangle.X = 54; rectangle.Y = 180; } } } else { if (num42 == num && num44 != num && num47 == num && num49 == num) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 144; } else { rectangle.X = 36; rectangle.Y = 180; } } } else { if (num42 == num && num44 == num && num47 != num && num49 == num) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 126; } else { rectangle.X = 54; rectangle.Y = 162; } } } else { if (num42 == num && num44 == num && num47 == num && num49 != num) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 126; } else { rectangle.X = 36; rectangle.Y = 162; } } } } } } } } } } else { if (num43 == num && num48 == num51 && num45 == num && num46 == num && num42 == -1 && num44 == -1) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 18; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 18; } else { rectangle.X = 144; rectangle.Y = 18; } } } else { if (num43 == num51 && num48 == num && num45 == num && num46 == num && num47 == -1 && num49 == -1) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 36; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 36; } else { rectangle.X = 144; rectangle.Y = 36; } } } else { if (num43 == num && num48 == num && num45 == num51 && num46 == num && num44 == -1 && num49 == -1) { if (num50 == 0) { rectangle.X = 198; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 198; rectangle.Y = 18; } else { rectangle.X = 198; rectangle.Y = 36; } } } else { if (num43 == num && num48 == num && num45 == num && num46 == num51 && num42 == -1 && num47 == -1) { if (num50 == 0) { rectangle.X = 180; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 180; rectangle.Y = 18; } else { rectangle.X = 180; rectangle.Y = 36; } } } else { if (num43 == num && num48 == num51 && num45 == num && num46 == num) { if (num44 != -1) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 144; } else { rectangle.X = 54; rectangle.Y = 180; } } } else { if (num42 != -1) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 144; } else { rectangle.X = 36; rectangle.Y = 180; } } } } } else { if (num43 == num51 && num48 == num && num45 == num && num46 == num) { if (num49 != -1) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 126; } else { rectangle.X = 54; rectangle.Y = 162; } } } else { if (num47 != -1) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 126; } else { rectangle.X = 36; rectangle.Y = 162; } } } } } else { if (num43 == num && num48 == num && num45 == num && num46 == num51) { if (num42 != -1) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 126; } else { rectangle.X = 54; rectangle.Y = 162; } } } else { if (num47 != -1) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 144; } else { rectangle.X = 54; rectangle.Y = 180; } } } } } else { if (num43 == num && num48 == num && num45 == num51 && num46 == num) { if (num44 != -1) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 126; } else { rectangle.X = 36; rectangle.Y = 162; } } } else { if (num49 != -1) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 144; } else { rectangle.X = 36; rectangle.Y = 180; } } } } } else { if ((num43 == num51 && num48 == num && num45 == num && num46 == num) || (num43 == num && num48 == num51 && num45 == num && num46 == num) || (num43 == num && num48 == num && num45 == num51 && num46 == num) || (num43 == num && num48 == num && num45 == num && num46 == num51)) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 18; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 18; } else { rectangle.X = 54; rectangle.Y = 18; } } } } } } } } } } } } } } } } if ((num43 == num || num43 == num51) && (num48 == num || num48 == num51) && (num45 == num || num45 == num51) && (num46 == num || num46 == num51)) { if (num42 != num && num42 != num51 && (num44 == num || num44 == num51) && (num47 == num || num47 == num51) && (num49 == num || num49 == num51)) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 144; } else { rectangle.X = 54; rectangle.Y = 180; } } } else { if (num44 != num && num44 != num51 && (num42 == num || num42 == num51) && (num47 == num || num47 == num51) && (num49 == num || num49 == num51)) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 144; } else { rectangle.X = 36; rectangle.Y = 180; } } } else { if (num47 != num && num47 != num51 && (num42 == num || num42 == num51) && (num44 == num || num44 == num51) && (num49 == num || num49 == num51)) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 126; } else { rectangle.X = 54; rectangle.Y = 162; } } } else { if (num49 != num && num49 != num51 && (num42 == num || num42 == num51) && (num47 == num || num47 == num51) && (num44 == num || num44 == num51)) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 126; } else { rectangle.X = 36; rectangle.Y = 162; } } } } } } } if (num43 != num51 && num43 != num && num48 == num && num45 != num51 && num45 != num && num46 == num && num49 != num51 && num49 != num) { if (num50 == 0) { rectangle.X = 90; rectangle.Y = 270; } else { if (num50 == 1) { rectangle.X = 108; rectangle.Y = 270; } else { rectangle.X = 126; rectangle.Y = 270; } } } else { if (num43 != num51 && num43 != num && num48 == num && num45 == num && num46 != num51 && num46 != num && num47 != num51 && num47 != num) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 270; } else { if (num50 == 1) { rectangle.X = 162; rectangle.Y = 270; } else { rectangle.X = 180; rectangle.Y = 270; } } } else { if (num48 != num51 && num48 != num && num43 == num && num45 != num51 && num45 != num && num46 == num && num44 != num51 && num44 != num) { if (num50 == 0) { rectangle.X = 90; rectangle.Y = 288; } else { if (num50 == 1) { rectangle.X = 108; rectangle.Y = 288; } else { rectangle.X = 126; rectangle.Y = 288; } } } else { if (num48 != num51 && num48 != num && num43 == num && num45 == num && num46 != num51 && num46 != num && num42 != num51 && num42 != num) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 288; } else { if (num50 == 1) { rectangle.X = 162; rectangle.Y = 288; } else { rectangle.X = 180; rectangle.Y = 288; } } } else { if (num43 != num && num43 != num51 && num48 == num && num45 == num && num46 == num && num47 != num && num47 != num51 && num49 != num && num49 != num51) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 216; } else { if (num50 == 1) { rectangle.X = 198; rectangle.Y = 216; } else { rectangle.X = 252; rectangle.Y = 216; } } } else { if (num48 != num && num48 != num51 && num43 == num && num45 == num && num46 == num && num42 != num && num42 != num51 && num44 != num && num44 != num51) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 252; } else { if (num50 == 1) { rectangle.X = 198; rectangle.Y = 252; } else { rectangle.X = 252; rectangle.Y = 252; } } } else { if (num45 != num && num45 != num51 && num48 == num && num43 == num && num46 == num && num44 != num && num44 != num51 && num49 != num && num49 != num51) { if (num50 == 0) { rectangle.X = 126; rectangle.Y = 234; } else { if (num50 == 1) { rectangle.X = 180; rectangle.Y = 234; } else { rectangle.X = 234; rectangle.Y = 234; } } } else { if (num46 != num && num46 != num51 && num48 == num && num43 == num && num45 == num && num42 != num && num42 != num51 && num47 != num && num47 != num51) { if (num50 == 0) { rectangle.X = 162; rectangle.Y = 234; } else { if (num50 == 1) { rectangle.X = 216; rectangle.Y = 234; } else { rectangle.X = 270; rectangle.Y = 234; } } } else { if (num43 != num51 && num43 != num && (num48 == num51 || num48 == num) && num45 == num51 && num46 == num51) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 270; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 270; } else { rectangle.X = 72; rectangle.Y = 270; } } } else { if (num48 != num51 && num48 != num && (num43 == num51 || num43 == num) && num45 == num51 && num46 == num51) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 288; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 288; } else { rectangle.X = 72; rectangle.Y = 288; } } } else { if (num45 != num51 && num45 != num && (num46 == num51 || num46 == num) && num43 == num51 && num48 == num51) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 270; } else { if (num50 == 1) { rectangle.X = 0; rectangle.Y = 288; } else { rectangle.X = 0; rectangle.Y = 306; } } } else { if (num46 != num51 && num46 != num && (num45 == num51 || num45 == num) && num43 == num51 && num48 == num51) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 270; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 288; } else { rectangle.X = 18; rectangle.Y = 306; } } } else { if (num43 == num && num48 == num51 && num45 == num51 && num46 == num51) { if (num50 == 0) { rectangle.X = 198; rectangle.Y = 288; } else { if (num50 == 1) { rectangle.X = 216; rectangle.Y = 288; } else { rectangle.X = 234; rectangle.Y = 288; } } } else { if (num43 == num51 && num48 == num && num45 == num51 && num46 == num51) { if (num50 == 0) { rectangle.X = 198; rectangle.Y = 270; } else { if (num50 == 1) { rectangle.X = 216; rectangle.Y = 270; } else { rectangle.X = 234; rectangle.Y = 270; } } } else { if (num43 == num51 && num48 == num51 && num45 == num && num46 == num51) { if (num50 == 0) { rectangle.X = 198; rectangle.Y = 306; } else { if (num50 == 1) { rectangle.X = 216; rectangle.Y = 306; } else { rectangle.X = 234; rectangle.Y = 306; } } } else { if (num43 == num51 && num48 == num51 && num45 == num51 && num46 == num) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 306; } else { if (num50 == 1) { rectangle.X = 162; rectangle.Y = 306; } else { rectangle.X = 180; rectangle.Y = 306; } } } } } } } } } } } } } } } } } } if (num43 != num && num43 != num51 && num48 == num && num45 == num && num46 == num) { if ((num47 == num51 || num47 == num) && num49 != num51 && num49 != num) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 324; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 324; } else { rectangle.X = 36; rectangle.Y = 324; } } } else { if ((num49 == num51 || num49 == num) && num47 != num51 && num47 != num) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 324; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 324; } else { rectangle.X = 90; rectangle.Y = 324; } } } } } else { if (num48 != num && num48 != num51 && num43 == num && num45 == num && num46 == num) { if ((num42 == num51 || num42 == num) && num44 != num51 && num44 != num) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 342; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 342; } else { rectangle.X = 36; rectangle.Y = 342; } } } else { if ((num44 == num51 || num44 == num) && num42 != num51 && num42 != num) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 342; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 342; } else { rectangle.X = 90; rectangle.Y = 342; } } } } } else { if (num45 != num && num45 != num51 && num43 == num && num48 == num && num46 == num) { if ((num44 == num51 || num44 == num) && num49 != num51 && num49 != num) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 360; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 360; } else { rectangle.X = 90; rectangle.Y = 360; } } } else { if ((num49 == num51 || num49 == num) && num44 != num51 && num44 != num) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 360; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 360; } else { rectangle.X = 36; rectangle.Y = 360; } } } } } else { if (num46 != num && num46 != num51 && num43 == num && num48 == num && num45 == num) { if ((num42 == num51 || num42 == num) && num47 != num51 && num47 != num) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 378; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 378; } else { rectangle.X = 36; rectangle.Y = 378; } } } else { if ((num47 == num51 || num47 == num) && num42 != num51 && num42 != num) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 378; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 378; } else { rectangle.X = 90; rectangle.Y = 378; } } } } } } } } if ((num43 == num || num43 == num51) && (num48 == num || num48 == num51) && (num45 == num || num45 == num51) && (num46 == num || num46 == num51) && num42 != -1 && num44 != -1 && num47 != -1 && num49 != -1) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 18; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 18; } else { rectangle.X = 54; rectangle.Y = 18; } } } if (num43 == num51) { num43 = -2; } if (num48 == num51) { num48 = -2; } if (num45 == num51) { num45 = -2; } if (num46 == num51) { num46 = -2; } if (num42 == num51) { num42 = -2; } if (num44 == num51) { num44 = -2; } if (num47 == num51) { num47 = -2; } if (num49 == num51) { num49 = -2; } } if (rectangle.X == -1 && rectangle.Y == -1 && (Main.tileMergeDirt[num] || num == 0 || num == 2 || num == 57 || num == 58 || num == 59 || num == 60 || num == 70 || num == 109 || num == 76 || num == 75 || num == 147 || num == 161 || num == 163 || num == 164 || num == 189 || num == 196 || num == 191 || num == 199 || num == 200 || num == 211 || num == 224 || num == 226 || num == 225)) { if (!flag4) { flag4 = true; if (num43 > -1 && !Main.tileSolid[num43] && num43 != num) { num43 = -1; } if (num48 > -1 && !Main.tileSolid[num48] && num48 != num) { num48 = -1; } if (num45 > -1 && !Main.tileSolid[num45] && num45 != num) { num45 = -1; } if (num46 > -1 && !Main.tileSolid[num46] && num46 != num) { num46 = -1; } if (num42 > -1 && !Main.tileSolid[num42] && num42 != num) { num42 = -1; } if (num44 > -1 && !Main.tileSolid[num44] && num44 != num) { num44 = -1; } if (num47 > -1 && !Main.tileSolid[num47] && num47 != num) { num47 = -1; } if (num49 > -1 && !Main.tileSolid[num49] && num49 != num) { num49 = -1; } } if (num43 >= 0 && num43 != num) { num43 = -1; } if (num48 >= 0 && num48 != num) { num48 = -1; } if (num45 >= 0 && num45 != num) { num45 = -1; } if (num46 >= 0 && num46 != num) { num46 = -1; } if (num43 != -1 && num48 != -1 && num45 != -1 && num46 != -1) { if (num43 == -2 && num48 == num && num45 == num && num46 == num) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 162; rectangle.Y = 108; } else { rectangle.X = 180; rectangle.Y = 108; } } WorldGen.mergeUp = true; } else { if (num43 == num && num48 == -2 && num45 == num && num46 == num) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 162; rectangle.Y = 90; } else { rectangle.X = 180; rectangle.Y = 90; } } WorldGen.mergeDown = true; } else { if (num43 == num && num48 == num && num45 == -2 && num46 == num) { if (num50 == 0) { rectangle.X = 162; rectangle.Y = 126; } else { if (num50 == 1) { rectangle.X = 162; rectangle.Y = 144; } else { rectangle.X = 162; rectangle.Y = 162; } } WorldGen.mergeLeft = true; } else { if (num43 == num && num48 == num && num45 == num && num46 == -2) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 126; } else { if (num50 == 1) { rectangle.X = 144; rectangle.Y = 144; } else { rectangle.X = 144; rectangle.Y = 162; } } WorldGen.mergeRight = true; } else { if (num43 == -2 && num48 == num && num45 == -2 && num46 == num) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 126; } else { rectangle.X = 36; rectangle.Y = 162; } } WorldGen.mergeUp = true; WorldGen.mergeLeft = true; } else { if (num43 == -2 && num48 == num && num45 == num && num46 == -2) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 126; } else { rectangle.X = 54; rectangle.Y = 162; } } WorldGen.mergeUp = true; WorldGen.mergeRight = true; } else { if (num43 == num && num48 == -2 && num45 == -2 && num46 == num) { if (num50 == 0) { rectangle.X = 36; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 144; } else { rectangle.X = 36; rectangle.Y = 180; } } WorldGen.mergeDown = true; WorldGen.mergeLeft = true; } else { if (num43 == num && num48 == -2 && num45 == num && num46 == -2) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 144; } else { rectangle.X = 54; rectangle.Y = 180; } } WorldGen.mergeDown = true; WorldGen.mergeRight = true; } else { if (num43 == num && num48 == num && num45 == -2 && num46 == -2) { if (num50 == 0) { rectangle.X = 180; rectangle.Y = 126; } else { if (num50 == 1) { rectangle.X = 180; rectangle.Y = 144; } else { rectangle.X = 180; rectangle.Y = 162; } } WorldGen.mergeLeft = true; WorldGen.mergeRight = true; } else { if (num43 == -2 && num48 == -2 && num45 == num && num46 == num) { if (num50 == 0) { rectangle.X = 144; rectangle.Y = 180; } else { if (num50 == 1) { rectangle.X = 162; rectangle.Y = 180; } else { rectangle.X = 180; rectangle.Y = 180; } } WorldGen.mergeUp = true; WorldGen.mergeDown = true; } else { if (num43 == -2 && num48 == num && num45 == -2 && num46 == -2) { if (num50 == 0) { rectangle.X = 198; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 198; rectangle.Y = 108; } else { rectangle.X = 198; rectangle.Y = 126; } } WorldGen.mergeUp = true; WorldGen.mergeLeft = true; WorldGen.mergeRight = true; } else { if (num43 == num && num48 == -2 && num45 == -2 && num46 == -2) { if (num50 == 0) { rectangle.X = 198; rectangle.Y = 144; } else { if (num50 == 1) { rectangle.X = 198; rectangle.Y = 162; } else { rectangle.X = 198; rectangle.Y = 180; } } WorldGen.mergeDown = true; WorldGen.mergeLeft = true; WorldGen.mergeRight = true; } else { if (num43 == -2 && num48 == -2 && num45 == num && num46 == -2) { if (num50 == 0) { rectangle.X = 216; rectangle.Y = 144; } else { if (num50 == 1) { rectangle.X = 216; rectangle.Y = 162; } else { rectangle.X = 216; rectangle.Y = 180; } } WorldGen.mergeUp = true; WorldGen.mergeDown = true; WorldGen.mergeRight = true; } else { if (num43 == -2 && num48 == -2 && num45 == -2 && num46 == num) { if (num50 == 0) { rectangle.X = 216; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 216; rectangle.Y = 108; } else { rectangle.X = 216; rectangle.Y = 126; } } WorldGen.mergeUp = true; WorldGen.mergeDown = true; WorldGen.mergeLeft = true; } else { if (num43 == -2 && num48 == -2 && num45 == -2 && num46 == -2) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 198; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 198; } else { rectangle.X = 144; rectangle.Y = 198; } } WorldGen.mergeUp = true; WorldGen.mergeDown = true; WorldGen.mergeLeft = true; WorldGen.mergeRight = true; } else { if (num43 == num && num48 == num && num45 == num && num46 == num) { if (num42 == -2) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 144; } else { rectangle.X = 18; rectangle.Y = 180; } } } if (num44 == -2) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 108; } else { if (num50 == 1) { rectangle.X = 0; rectangle.Y = 144; } else { rectangle.X = 0; rectangle.Y = 180; } } } if (num47 == -2) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 126; } else { rectangle.X = 18; rectangle.Y = 162; } } } if (num49 == -2) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 0; rectangle.Y = 126; } else { rectangle.X = 0; rectangle.Y = 162; } } } } } } } } } } } } } } } } } } } } else { if (num != 2 && num != 23 && num != 60 && num != 70 && num != 109 && num != 199) { if (num43 == -1 && num48 == -2 && num45 == num && num46 == num) { if (num50 == 0) { rectangle.X = 234; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 252; rectangle.Y = 0; } else { rectangle.X = 270; rectangle.Y = 0; } } WorldGen.mergeDown = true; } else { if (num43 == -2 && num48 == -1 && num45 == num && num46 == num) { if (num50 == 0) { rectangle.X = 234; rectangle.Y = 18; } else { if (num50 == 1) { rectangle.X = 252; rectangle.Y = 18; } else { rectangle.X = 270; rectangle.Y = 18; } } WorldGen.mergeUp = true; } else { if (num43 == num && num48 == num && num45 == -1 && num46 == -2) { if (num50 == 0) { rectangle.X = 234; rectangle.Y = 36; } else { if (num50 == 1) { rectangle.X = 252; rectangle.Y = 36; } else { rectangle.X = 270; rectangle.Y = 36; } } WorldGen.mergeRight = true; } else { if (num43 == num && num48 == num && num45 == -2 && num46 == -1) { if (num50 == 0) { rectangle.X = 234; rectangle.Y = 54; } else { if (num50 == 1) { rectangle.X = 252; rectangle.Y = 54; } else { rectangle.X = 270; rectangle.Y = 54; } } WorldGen.mergeLeft = true; } } } } } if (num43 != -1 && num48 != -1 && num45 == -1 && num46 == num) { if (num43 == -2 && num48 == num) { if (num50 == 0) { rectangle.X = 72; rectangle.Y = 144; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 162; } else { rectangle.X = 72; rectangle.Y = 180; } } WorldGen.mergeUp = true; } else { if (num48 == -2 && num43 == num) { if (num50 == 0) { rectangle.X = 72; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 108; } else { rectangle.X = 72; rectangle.Y = 126; } } WorldGen.mergeDown = true; } } } else { if (num43 != -1 && num48 != -1 && num45 == num && num46 == -1) { if (num43 == -2 && num48 == num) { if (num50 == 0) { rectangle.X = 90; rectangle.Y = 144; } else { if (num50 == 1) { rectangle.X = 90; rectangle.Y = 162; } else { rectangle.X = 90; rectangle.Y = 180; } } WorldGen.mergeUp = true; } else { if (num48 == -2 && num43 == num) { if (num50 == 0) { rectangle.X = 90; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 90; rectangle.Y = 108; } else { rectangle.X = 90; rectangle.Y = 126; } } WorldGen.mergeDown = true; } } } else { if (num43 == -1 && num48 == num && num45 != -1 && num46 != -1) { if (num45 == -2 && num46 == num) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 198; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 198; } else { rectangle.X = 36; rectangle.Y = 198; } } WorldGen.mergeLeft = true; } else { if (num46 == -2 && num45 == num) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 198; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 198; } else { rectangle.X = 90; rectangle.Y = 198; } } WorldGen.mergeRight = true; } } } else { if (num43 == num && num48 == -1 && num45 != -1 && num46 != -1) { if (num45 == -2 && num46 == num) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 216; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 216; } else { rectangle.X = 36; rectangle.Y = 216; } } WorldGen.mergeLeft = true; } else { if (num46 == -2 && num45 == num) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 216; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 216; } else { rectangle.X = 90; rectangle.Y = 216; } } WorldGen.mergeRight = true; } } } else { if (num43 != -1 && num48 != -1 && num45 == -1 && num46 == -1) { if (num43 == -2 && num48 == -2) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 216; } else { if (num50 == 1) { rectangle.X = 108; rectangle.Y = 234; } else { rectangle.X = 108; rectangle.Y = 252; } } WorldGen.mergeUp = true; WorldGen.mergeDown = true; } else { if (num43 == -2) { if (num50 == 0) { rectangle.X = 126; rectangle.Y = 144; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 162; } else { rectangle.X = 126; rectangle.Y = 180; } } WorldGen.mergeUp = true; } else { if (num48 == -2) { if (num50 == 0) { rectangle.X = 126; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 108; } else { rectangle.X = 126; rectangle.Y = 126; } } WorldGen.mergeDown = true; } } } } else { if (num43 == -1 && num48 == -1 && num45 != -1 && num46 != -1) { if (num45 == -2 && num46 == -2) { if (num50 == 0) { rectangle.X = 162; rectangle.Y = 198; } else { if (num50 == 1) { rectangle.X = 180; rectangle.Y = 198; } else { rectangle.X = 198; rectangle.Y = 198; } } WorldGen.mergeLeft = true; WorldGen.mergeRight = true; } else { if (num45 == -2) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 252; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 252; } else { rectangle.X = 36; rectangle.Y = 252; } } WorldGen.mergeLeft = true; } else { if (num46 == -2) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 252; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 252; } else { rectangle.X = 90; rectangle.Y = 252; } } WorldGen.mergeRight = true; } } } } else { if (num43 == -2 && num48 == -1 && num45 == -1 && num46 == -1) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 144; } else { if (num50 == 1) { rectangle.X = 108; rectangle.Y = 162; } else { rectangle.X = 108; rectangle.Y = 180; } } WorldGen.mergeUp = true; } else { if (num43 == -1 && num48 == -2 && num45 == -1 && num46 == -1) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 90; } else { if (num50 == 1) { rectangle.X = 108; rectangle.Y = 108; } else { rectangle.X = 108; rectangle.Y = 126; } } WorldGen.mergeDown = true; } else { if (num43 == -1 && num48 == -1 && num45 == -2 && num46 == -1) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 234; } else { if (num50 == 1) { rectangle.X = 18; rectangle.Y = 234; } else { rectangle.X = 36; rectangle.Y = 234; } } WorldGen.mergeLeft = true; } else { if (num43 == -1 && num48 == -1 && num45 == -1 && num46 == -2) { if (num50 == 0) { rectangle.X = 54; rectangle.Y = 234; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 234; } else { rectangle.X = 90; rectangle.Y = 234; } } WorldGen.mergeRight = true; } } } } } } } } } } } } if (rectangle.X < 0 || rectangle.Y < 0) { if (!flag4) { if (num43 > -1 && !Main.tileSolid[num43] && num43 != num) { num43 = -1; } if (num48 > -1 && !Main.tileSolid[num48] && num48 != num) { num48 = -1; } if (num45 > -1 && !Main.tileSolid[num45] && num45 != num) { num45 = -1; } if (num46 > -1 && !Main.tileSolid[num46] && num46 != num) { num46 = -1; } if (num42 > -1 && !Main.tileSolid[num42] && num42 != num) { num42 = -1; } if (num44 > -1 && !Main.tileSolid[num44] && num44 != num) { num44 = -1; } if (num47 > -1 && !Main.tileSolid[num47] && num47 != num) { num47 = -1; } if (num49 > -1 && !Main.tileSolid[num49] && num49 != num) { num49 = -1; } } if (num == 2 || num == 23 || num == 60 || num == 70 || num == 109 || num == 199 || Main.tileMoss[num]) { if (num43 == -2) { num43 = num; } if (num48 == -2) { num48 = num; } if (num45 == -2) { num45 = num; } if (num46 == -2) { num46 = num; } if (num42 == -2) { num42 = num; } if (num44 == -2) { num44 = num; } if (num47 == -2) { num47 = num; } if (num49 == -2) { num49 = num; } } if (num43 == num && num48 == num && (num45 == num & num46 == num)) { if (num42 != num && num44 != num) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 18; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 18; } else { rectangle.X = 144; rectangle.Y = 18; } } } else { if (num47 != num && num49 != num) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 36; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 36; } else { rectangle.X = 144; rectangle.Y = 36; } } } else { if (num42 != num && num47 != num) { if (num50 == 0) { rectangle.X = 180; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 180; rectangle.Y = 18; } else { rectangle.X = 180; rectangle.Y = 36; } } } else { if (num44 != num && num49 != num) { if (num50 == 0) { rectangle.X = 198; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 198; rectangle.Y = 18; } else { rectangle.X = 198; rectangle.Y = 36; } } } else { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 18; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 18; } else { rectangle.X = 54; rectangle.Y = 18; } } } } } } } else { if (num43 != num && num48 == num && (num45 == num & num46 == num)) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 0; } else { rectangle.X = 54; rectangle.Y = 0; } } } else { if (num43 == num && num48 != num && (num45 == num & num46 == num)) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 36; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 36; } else { rectangle.X = 54; rectangle.Y = 36; } } } else { if (num43 == num && num48 == num && (num45 != num & num46 == num)) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 0; rectangle.Y = 18; } else { rectangle.X = 0; rectangle.Y = 36; } } } else { if (num43 == num && num48 == num && (num45 == num & num46 != num)) { if (num50 == 0) { rectangle.X = 72; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 72; rectangle.Y = 18; } else { rectangle.X = 72; rectangle.Y = 36; } } } else { if (num43 != num && num48 == num && (num45 != num & num46 == num)) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 54; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 54; } else { rectangle.X = 72; rectangle.Y = 54; } } } else { if (num43 != num && num48 == num && (num45 == num & num46 != num)) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 54; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 54; } else { rectangle.X = 90; rectangle.Y = 54; } } } else { if (num43 == num && num48 != num && (num45 != num & num46 == num)) { if (num50 == 0) { rectangle.X = 0; rectangle.Y = 72; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 72; } else { rectangle.X = 72; rectangle.Y = 72; } } } else { if (num43 == num && num48 != num && (num45 == num & num46 != num)) { if (num50 == 0) { rectangle.X = 18; rectangle.Y = 72; } else { if (num50 == 1) { rectangle.X = 54; rectangle.Y = 72; } else { rectangle.X = 90; rectangle.Y = 72; } } } else { if (num43 == num && num48 == num && (num45 != num & num46 != num)) { if (num50 == 0) { rectangle.X = 90; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 90; rectangle.Y = 18; } else { rectangle.X = 90; rectangle.Y = 36; } } } else { if (num43 != num && num48 != num && (num45 == num & num46 == num)) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 72; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 72; } else { rectangle.X = 144; rectangle.Y = 72; } } } else { if (num43 != num && num48 == num && (num45 != num & num46 != num)) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 0; } else { rectangle.X = 144; rectangle.Y = 0; } } } else { if (num43 == num && num48 != num && (num45 != num & num46 != num)) { if (num50 == 0) { rectangle.X = 108; rectangle.Y = 54; } else { if (num50 == 1) { rectangle.X = 126; rectangle.Y = 54; } else { rectangle.X = 144; rectangle.Y = 54; } } } else { if (num43 != num && num48 != num && (num45 != num & num46 == num)) { if (num50 == 0) { rectangle.X = 162; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 162; rectangle.Y = 18; } else { rectangle.X = 162; rectangle.Y = 36; } } } else { if (num43 != num && num48 != num && (num45 == num & num46 != num)) { if (num50 == 0) { rectangle.X = 216; rectangle.Y = 0; } else { if (num50 == 1) { rectangle.X = 216; rectangle.Y = 18; } else { rectangle.X = 216; rectangle.Y = 36; } } } else { if (num43 != num && num48 != num && (num45 != num & num46 != num)) { if (num50 == 0) { rectangle.X = 162; rectangle.Y = 54; } else { if (num50 == 1) { rectangle.X = 180; rectangle.Y = 54; } else { rectangle.X = 198; rectangle.Y = 54; } } } } } } } } } } } } } } } } } } } if (rectangle.X <= -1 || rectangle.Y <= -1) { if (num50 <= 0) { rectangle.X = 18; rectangle.Y = 18; } else { if (num50 == 1) { rectangle.X = 36; rectangle.Y = 18; } } if (num50 >= 2) { rectangle.X = 54; rectangle.Y = 18; } } Main.tile[i, j].frameX = (short)rectangle.X; Main.tile[i, j].frameY = (short)rectangle.Y; if (num == 52 || num == 62 || num == 115 || num == 205) { if (Main.tile[i, j - 1] != null) { if (!Main.tile[i, j - 1].active()) { num43 = -1; } else { num43 = (int)Main.tile[i, j - 1].type; } } else { num43 = num; } if ((num == 52 || num == 205) && (num43 == 109 || num43 == 115)) { Main.tile[i, j].type = 115; WorldGen.SquareTileFrame(i, j, true); return; } if ((num == 115 || num == 205) && (num43 == 2 || num43 == 52)) { Main.tile[i, j].type = 52; WorldGen.SquareTileFrame(i, j, true); return; } if ((num == 52 || num == 115) && (num43 == 199 || num43 == 205)) { Main.tile[i, j].type = 205; WorldGen.SquareTileFrame(i, j, true); return; } if (num43 != num) { bool flag5 = false; if (num43 == -1) { flag5 = true; } if (num == 52 && num43 != 2 && num43 != 192) { flag5 = true; } if (num == 62 && num43 != 60) { flag5 = true; } if (num == 115 && num43 != 109) { flag5 = true; } if (num == 205 && num43 != 199) { flag5 = true; } if (flag5) { WorldGen.KillTile(i, j, false, false, false); } } } if (!WorldGen.noTileActions && (num == 53 || num == 112 || num == 116 || num == 123 || num == 224 || num == 234)) { if (Main.netMode == 0) { if (Main.tile[i, j + 1] != null && !Main.tile[i, j + 1].active()) { bool flag6 = true; if (Main.tile[i, j - 1].active() && Main.tile[i, j - 1].type == 21) { flag6 = false; } if (flag6) { int type = 31; if (num == 59) { type = 39; } if (num == 57) { type = 40; } if (num == 112) { type = 56; } if (num == 116) { type = 67; } if (num == 123) { type = 71; } if (num == 224) { type = 179; } if (num == 234) { type = 241; } Main.tile[i, j].active(false); int num52 = Projectile.NewProjectile((float)(i * 16 + 8), (float)(j * 16 + 8), 0f, 0.41f, type, 10, 0f, Main.myPlayer, 0f, 0f); Main.projectile[num52].ai[0] = 1f; WorldGen.SquareTileFrame(i, j, true); } } } else { if (Main.netMode == 2 && Main.tile[i, j + 1] != null && !Main.tile[i, j + 1].active()) { bool flag7 = true; if (Main.tile[i, j - 1].active() && Main.tile[i, j - 1].type == 21) { flag7 = false; } if (flag7) { int type2 = 31; if (num == 59) { type2 = 39; } if (num == 57) { type2 = 40; } if (num == 112) { type2 = 56; } if (num == 116) { type2 = 67; } if (num == 123) { type2 = 71; } if (num == 224) { type2 = 179; } if (num == 234) { type2 = 241; } Main.tile[i, j].active(false); int num53 = Projectile.NewProjectile((float)(i * 16 + 8), (float)(j * 16 + 8), 0f, 2.5f, type2, 10, 0f, Main.myPlayer, 0f, 0f); Main.projectile[num53].velocity.Y = 0.5f; Projectile expr_8165_cp_0 = Main.projectile[num53]; expr_8165_cp_0.position.Y = expr_8165_cp_0.position.Y + 2f; Main.projectile[num53].netUpdate = true; NetMessage.SendTileSquare(-1, i, j, 1); WorldGen.SquareTileFrame(i, j, true); } } } } if (rectangle.X != frameX && rectangle.Y != frameY && frameX >= 0 && frameY >= 0) { WorldGen.tileReframeCount++; if (WorldGen.tileReframeCount < 100) { bool flag8 = WorldGen.mergeUp; bool flag9 = WorldGen.mergeDown; bool flag10 = WorldGen.mergeLeft; bool flag11 = WorldGen.mergeRight; WorldGen.TileFrame(i - 1, j, false, false); WorldGen.TileFrame(i + 1, j, false, false); WorldGen.TileFrame(i, j - 1, false, false); WorldGen.TileFrame(i, j + 1, false, false); WorldGen.mergeUp = flag8; WorldGen.mergeDown = flag9; WorldGen.mergeLeft = flag10; WorldGen.mergeRight = flag11; } WorldGen.tileReframeCount--; } } } } } catch { } if (Main.netMode != 2 && Main.mapEnabled && !WorldGen.noMapUpdate && !WorldGen.gen && i > 0 && j > 0 && Main.map[i, j] != null && Main.map[i, j].light > 0) { Main.map[i, j].setTile(i, j, Main.map[i, j].light); if (Main.map[i, j].changed() && !flag) { if (Map.numUpdateTile < Map.maxUpdateTile - 1) { Map.updateTileX[Map.numUpdateTile] = (short)i; Map.updateTileY[Map.numUpdateTile] = (short)j; Map.numUpdateTile++; return; } Main.mapUnfinished = true; } } } } }