public override void PostWorldGen() { bool found = false; int y_range = 25; int x = Main.maxTilesX / 2; while (x != 0 && x != Main.maxTilesX - 1) { for (int y = (int)(Main.worldSurface) + 5; y <= (int)(Main.worldSurface) + 5 + y_range; y++) { if (Main.tile[x, y].active()) { if (WorldGen.EmptyTileCheck(x - 1, x + 1, y - 3, y - 1) && Main.tile[x, y - 1].liquid == 0) { Main.spawnTileX = x; Main.spawnTileY = y; found = true; break; } } } if (found) { break; } if (x >= Main.maxTilesX / 2) { x++; } x = Main.maxTilesX - x; } if (!found && 0 <= (int)(Main.worldSurface) + 5 && (int)(Main.worldSurface) + 5 < Main.maxTilesY) { Main.spawnTileX = Main.maxTilesX / 2; Main.spawnTileY = (int)(Main.worldSurface) + 5; for (int i = -1; i <= 1; i++) { for (int j = -3; j <= -1; j++) { if (0 <= i && i < Main.maxTilesX && 0 <= j && j < Main.maxTilesY) { Main.tile[i, j].type = 0; } } } } }
public static bool AddLunarRoots(int i, int j) { int k = j; while (k < Main.maxTilesY) { if (Main.tile[i, k].active() && Main.tileSolid[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); } if (Main.wallDungeon[Main.tile[i, num].wall]) { return(false); } Tile tile = Main.tile[i - 1, num + 1]; Tile tile2 = Main.tile[i, num + 1]; if (!tile.nactive() || !Main.tileSolid[tile.type]) { return(false); } if (!tile2.nactive() || !Main.tileSolid[tile2.type]) { return(false); } if (tile.blockType() != 0) { tile.slope(0); tile.halfBrick(false); } if (tile2.blockType() != 0) { tile2.slope(0); tile2.halfBrick(false); } Main.tile[i - 1, num - 1].active(true); Main.tile[i - 1, num - 1].type = (ushort)Tremor.instance.TileType("LunarRootTile"); 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 = (ushort)Tremor.instance.TileType("LunarRootTile"); 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 = (ushort)Tremor.instance.TileType("LunarRootTile"); 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 = (ushort)Tremor.instance.TileType("LunarRootTile"); Main.tile[i, num].frameX = 18; Main.tile[i, num].frameY = 18; return(true); } k++; } return(false); }
public static bool AddChozoStatue(int i, int j) { Mod mod = MetroidMod.Instance; int k = j; while (k < Main.maxTilesY) { int num2 = 0; ushort type = TileID.Stone; for (int l = 0; l < 3; l++) { if (Main.tile[i + l, k].active() && Main.tileSolid[(int)Main.tile[i + l, k].type]) { num2++; type = Main.tile[i + l, k].type; } } if (num2 >= 2) // && !Main.tile[i, k - 1].active() && !Main.tile[i, k - 2].active() && !Main.tile[i, k - 3].active() && !Main.tile[i + 1, k - 1].active() && !Main.tile[i + 1, k - 2].active() && !Main.tile[i + 1, k - 3].active() && !Main.tile[i + 2, k - 1].active() && !Main.tile[i + 2, k - 2].active() && !Main.tile[i + 2, k - 3].active()) { int num = k - 1; if (Main.tile[i, num - 1].lava() || Main.tile[i + 1, num - 1].lava() || Main.tile[i + 2, num - 1].lava()) { return(false); } if (!WorldGen.EmptyTileCheck(i, i + 2, num - 2, num, -1)) { return(false); } if (Main.tile[i, num].wall == WallID.LihzahrdBrickUnsafe) { return(false); } int rand = WorldGen.genRand.Next(4); // 0 & 1 = statue only, 2 = statue + brick base, 3 = statue + brick shrine if (Main.wallDungeon[(int)Main.tile[i, num].wall]) { rand = 0; } if (rand <= 1) { for (int tx = i; tx < i + 3; tx++) { Main.tile[tx, k].slope(0); Main.tile[tx, k].halfBrick(false); if (!Main.tile[tx, k].active()) { Main.tile[tx, k].active(true); Main.tile[tx, k].type = type; } } } else { if (rand == 3) { for (int wx = i - 1; wx < i + 4; wx++) { for (int wy = k - 4; wy < k; wy++) { WorldGen.KillTile(wx, wy); if (WorldGen.genRand.Next(4) > 0) { WorldGen.KillWall(wx, wy); WorldGen.PlaceWall(wx, wy, WallID.Cave4Unsafe); } } } for (int tx = i - 2; tx < i + 5; tx++) { Main.tile[tx, k].slope(0); Main.tile[tx, k].halfBrick(false); Main.tile[tx, k].active(true); Main.tile[tx, k].type = 38; Main.tile[tx, k - 5].slope(0); Main.tile[tx, k - 5].halfBrick(false); Main.tile[tx, k - 5].active(true); Main.tile[tx, k - 5].type = 38; } Main.tile[i - 2, k - 4].slope(0); Main.tile[i - 2, k - 4].halfBrick(false); Main.tile[i - 2, k - 4].active(true); Main.tile[i - 2, k - 4].type = 38; Main.tile[i + 4, k - 4].slope(0); Main.tile[i + 4, k - 4].halfBrick(false); Main.tile[i + 4, k - 4].active(true); Main.tile[i + 4, k - 4].type = 38; } for (int tx2 = i - 1; tx2 < i + 4; tx2++) { Main.tile[tx2, k].slope(0); Main.tile[tx2, k].halfBrick(false); Main.tile[tx2, k].active(true); Main.tile[tx2, k].type = 38; if (rand == 3) { Main.tile[tx2, k - 6].slope(0); Main.tile[tx2, k - 6].halfBrick(false); Main.tile[tx2, k - 6].active(true); Main.tile[tx2, k - 6].type = 38; } } } int dir = 1; if (WorldGen.genRand.Next(2) == 0) { dir = -1; } int statueX = i + 2; int statueX2 = i; if (dir == 1) { statueX = i + 1; statueX2 = i + 2; } int statueY = num; WorldGen.PlaceObject(statueX, statueY, mod.TileType("ChozoStatueNatural"), false, 0, 0, -1, -dir); WorldGen.PlaceObject(statueX2, statueY, mod.TileType("ChozoStatueArmNatural"), false, 0, 0, -1, -dir); ushort item = StatueItem(statueX2, statueY - 2); WorldGen.PlaceObject(statueX2, statueY - 2, item); return(true); } else { k++; } } return(false); }
public void GrowTree(int x, int minY, ushort treeType, int[] tilesAllowGrowth, int sapplingType = 0, int minTreeHeight = 5, int maxTreeHeight = 16) { int y = minY; while (Main.tile[x, y] == null || Main.tile[x, y].type == sapplingType) { y++; } if (Main.tile[x, y].nactive() && !Main.tile[x, y].halfBrick() && Main.tile[x, y].slope() == 0 && ((Main.tile[x - 1, y].active() && Array.Exists(tilesAllowGrowth, element => Main.tile[x - 1, y].type == element)) || (Main.tile[x + 1, y].active() && Array.Exists(tilesAllowGrowth, element => Main.tile[x + 1, y].type == element)))) { int width = 2; if (WorldGen.EmptyTileCheck(x - width, x + width, y - maxTreeHeight, y - 1, sapplingType)) { bool flag = false; bool flag2 = false; int height = WorldGen.genRand.Next(minTreeHeight, maxTreeHeight + 1); int num5; for (int j = y - height; j < y; j++) { Main.tile[x, j].frameNumber((byte)WorldGen.genRand.Next(3)); Main.tile[x, j].active(true); Main.tile[x, j].type = treeType; num5 = WorldGen.genRand.Next(3); int num6 = WorldGen.genRand.Next(10); if (j == y - 1 || j == y - height) { 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[x, j].frameX = 0; Main.tile[x, j].frameY = 66; } if (num5 == 1) { Main.tile[x, j].frameX = 0; Main.tile[x, j].frameY = 88; } if (num5 == 2) { Main.tile[x, j].frameX = 0; Main.tile[x, j].frameY = 110; } } else if (num6 == 2) { if (num5 == 0) { Main.tile[x, j].frameX = 22; Main.tile[x, j].frameY = 0; } if (num5 == 1) { Main.tile[x, j].frameX = 22; Main.tile[x, j].frameY = 22; } if (num5 == 2) { Main.tile[x, j].frameX = 22; Main.tile[x, j].frameY = 44; } } else if (num6 == 3) { if (num5 == 0) { Main.tile[x, j].frameX = 44; Main.tile[x, j].frameY = 66; } if (num5 == 1) { Main.tile[x, j].frameX = 44; Main.tile[x, j].frameY = 88; } if (num5 == 2) { Main.tile[x, j].frameX = 44; Main.tile[x, j].frameY = 110; } } else if (num6 == 4) { if (num5 == 0) { Main.tile[x, j].frameX = 22; Main.tile[x, j].frameY = 66; } if (num5 == 1) { Main.tile[x, j].frameX = 22; Main.tile[x, j].frameY = 88; } if (num5 == 2) { Main.tile[x, j].frameX = 22; Main.tile[x, j].frameY = 110; } } else if (num6 == 5) { if (num5 == 0) { Main.tile[x, j].frameX = 88; Main.tile[x, j].frameY = 0; } if (num5 == 1) { Main.tile[x, j].frameX = 88; Main.tile[x, j].frameY = 22; } if (num5 == 2) { Main.tile[x, j].frameX = 88; Main.tile[x, j].frameY = 44; } } else if (num6 == 6) { if (num5 == 0) { Main.tile[x, j].frameX = 66; Main.tile[x, j].frameY = 66; } if (num5 == 1) { Main.tile[x, j].frameX = 66; Main.tile[x, j].frameY = 88; } if (num5 == 2) { Main.tile[x, j].frameX = 66; Main.tile[x, j].frameY = 110; } } else if (num6 == 7) { if (num5 == 0) { Main.tile[x, j].frameX = 110; Main.tile[x, j].frameY = 66; } if (num5 == 1) { Main.tile[x, j].frameX = 110; Main.tile[x, j].frameY = 88; } if (num5 == 2) { Main.tile[x, j].frameX = 110; Main.tile[x, j].frameY = 110; } } else { if (num5 == 0) { Main.tile[x, j].frameX = 0; Main.tile[x, j].frameY = 0; } if (num5 == 1) { Main.tile[x, j].frameX = 0; Main.tile[x, j].frameY = 22; } if (num5 == 2) { Main.tile[x, j].frameX = 0; Main.tile[x, j].frameY = 44; } } if (num6 == 5 || num6 == 7) { Main.tile[x - 1, j].active(true); Main.tile[x - 1, j].type = 5; num5 = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (num5 == 0) { Main.tile[x - 1, j].frameX = 44; Main.tile[x - 1, j].frameY = 198; } if (num5 == 1) { Main.tile[x - 1, j].frameX = 44; Main.tile[x - 1, j].frameY = 220; } if (num5 == 2) { Main.tile[x - 1, j].frameX = 44; Main.tile[x - 1, j].frameY = 242; } } else { if (num5 == 0) { Main.tile[x - 1, j].frameX = 66; Main.tile[x - 1, j].frameY = 0; } if (num5 == 1) { Main.tile[x - 1, j].frameX = 66; Main.tile[x - 1, j].frameY = 22; } if (num5 == 2) { Main.tile[x - 1, j].frameX = 66; Main.tile[x - 1, j].frameY = 44; } } } if (num6 == 6 || num6 == 7) { Main.tile[x + 1, j].active(true); Main.tile[x + 1, j].type = 5; num5 = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (num5 == 0) { Main.tile[x + 1, j].frameX = 66; Main.tile[x + 1, j].frameY = 198; } if (num5 == 1) { Main.tile[x + 1, j].frameX = 66; Main.tile[x + 1, j].frameY = 220; } if (num5 == 2) { Main.tile[x + 1, j].frameX = 66; Main.tile[x + 1, j].frameY = 242; } } else { if (num5 == 0) { Main.tile[x + 1, j].frameX = 88; Main.tile[x + 1, j].frameY = 66; } if (num5 == 1) { Main.tile[x + 1, j].frameX = 88; Main.tile[x + 1, j].frameY = 88; } if (num5 == 2) { Main.tile[x + 1, j].frameX = 88; Main.tile[x + 1, j].frameY = 110; } } } } int num7 = WorldGen.genRand.Next(3); bool flag3 = false; bool flag4 = false; if (Main.tile[x - 1, y].nactive() && !Main.tile[x - 1, y].halfBrick() && Main.tile[x - 1, y].slope() == 0 && Array.Exists(tilesAllowGrowth, element => Main.tile[x - 1, y].type == element)) { flag3 = true; } if (Main.tile[x + 1, y].nactive() && !Main.tile[x + 1, y].halfBrick() && Main.tile[x + 1, y].slope() == 0 && Array.Exists(tilesAllowGrowth, element => Main.tile[x + 1, y].type == element)) { 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[x + 1, y - 1].active(true); Main.tile[x + 1, y - 1].type = 5; num5 = WorldGen.genRand.Next(3); if (num5 == 0) { Main.tile[x + 1, y - 1].frameX = 22; Main.tile[x + 1, y - 1].frameY = 132; } if (num5 == 1) { Main.tile[x + 1, y - 1].frameX = 22; Main.tile[x + 1, y - 1].frameY = 154; } if (num5 == 2) { Main.tile[x + 1, y - 1].frameX = 22; Main.tile[x + 1, y - 1].frameY = 176; } } if (num7 == 0 || num7 == 2) { Main.tile[x - 1, y - 1].active(true); Main.tile[x - 1, y - 1].type = 5; num5 = WorldGen.genRand.Next(3); if (num5 == 0) { Main.tile[x - 1, y - 1].frameX = 44; Main.tile[x - 1, y - 1].frameY = 132; } if (num5 == 1) { Main.tile[x - 1, y - 1].frameX = 44; Main.tile[x - 1, y - 1].frameY = 154; } if (num5 == 2) { Main.tile[x - 1, y - 1].frameX = 44; Main.tile[x - 1, y - 1].frameY = 176; } } num5 = WorldGen.genRand.Next(3); if (num7 == 0) { if (num5 == 0) { Main.tile[x, y - 1].frameX = 88; Main.tile[x, y - 1].frameY = 132; } if (num5 == 1) { Main.tile[x, y - 1].frameX = 88; Main.tile[x, y - 1].frameY = 154; } if (num5 == 2) { Main.tile[x, y - 1].frameX = 88; Main.tile[x, y - 1].frameY = 176; } } else if (num7 == 1) { if (num5 == 0) { Main.tile[x, y - 1].frameX = 0; Main.tile[x, y - 1].frameY = 132; } if (num5 == 1) { Main.tile[x, y - 1].frameX = 0; Main.tile[x, y - 1].frameY = 154; } if (num5 == 2) { Main.tile[x, y - 1].frameX = 0; Main.tile[x, y - 1].frameY = 176; } } else if (num7 == 2) { if (num5 == 0) { Main.tile[x, y - 1].frameX = 66; Main.tile[x, y - 1].frameY = 132; } if (num5 == 1) { Main.tile[x, y - 1].frameX = 66; Main.tile[x, y - 1].frameY = 154; } if (num5 == 2) { Main.tile[x, y - 1].frameX = 66; Main.tile[x, y - 1].frameY = 176; } } if (WorldGen.genRand.Next(8) != 0) { num5 = WorldGen.genRand.Next(3); if (num5 == 0) { Main.tile[x, y - height].frameX = 22; Main.tile[x, y - height].frameY = 198; } if (num5 == 1) { Main.tile[x, y - height].frameX = 22; Main.tile[x, y - height].frameY = 220; } if (num5 == 2) { Main.tile[x, y - height].frameX = 22; Main.tile[x, y - height].frameY = 242; } } else { num5 = WorldGen.genRand.Next(3); if (num5 == 0) { Main.tile[x, y - height].frameX = 0; Main.tile[x, y - height].frameY = 198; } if (num5 == 1) { Main.tile[x, y - height].frameX = 0; Main.tile[x, y - height].frameY = 220; } if (num5 == 2) { Main.tile[x, y - height].frameX = 0; Main.tile[x, y - height].frameY = 242; } } WorldGen.RangeFrame(x - 2, y - height - 1, x + 2, y + 1); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, x, (int)((double)y - (double)height * 0.5), height + 1); } } } }
public static bool GrowTree(int i, int y) { int j; for (j = y; Terraria.ModLoader.TileLoader.IsSapling(Main.tile[i, j].type); j++) { } if (Main.tile[i, j].nactive() && !Main.tile[i, j].halfBrick() && Main.tile[i, j].slope() == 0 && IsTileTypeFitForTree(Main.tile[i, j].type) && IsWallTypeFitForTree(Main.tile[i, j - 1].wall) && ((Main.tile[i - 1, j].active() && IsTileTypeFitForTree(Main.tile[i - 1, j].type)) || (Main.tile[i + 1, j].active() && IsTileTypeFitForTree(Main.tile[i + 1, j].type)))) { byte color = Main.tile[i, j].color(); int width = 2; int height = WorldGen.genRand.Next(5, 17); int extraHeight = height + 4; if (Main.tile[i, j].type == 60) { extraHeight += 5; } bool CanGrow = false; if (Main.tile[i, j].type == 70 && WorldGen.EmptyTileCheck(i - width, i + width, j - extraHeight, j - 3, 20) && WorldGen.EmptyTileCheck(i - 1, i + 1, j - 2, j - 1, 20)) { CanGrow = true; } if (WorldGen.EmptyTileCheck(i - width, i + width, j - extraHeight, j - 1, 20)) { CanGrow = true; } if (CanGrow) { bool flag2 = false; bool flag3 = false; int style; for (int k = j - height; k < j; k++) { Main.tile[i, k].frameNumber((byte)WorldGen.genRand.Next(3)); Main.tile[i, k].active(active: true); Main.tile[i, k].type = 5; Main.tile[i, k].color(color); style = WorldGen.genRand.Next(3); int style2 = WorldGen.genRand.Next(10); if (k == j - 1 || k == j - height) { style2 = 0; } while (((style2 == 5 || style2 == 7) && flag2) || ((style2 == 6 || style2 == 7) && flag3)) { style2 = WorldGen.genRand.Next(10); } flag2 = false; flag3 = false; if (style2 == 5 || style2 == 7) { flag2 = true; } if (style2 == 6 || style2 == 7) { flag3 = true; } switch (style2) { case 1: if (style == 0) { Main.tile[i, k].frameX = 0; Main.tile[i, k].frameY = 66; } if (style == 1) { Main.tile[i, k].frameX = 0; Main.tile[i, k].frameY = 88; } if (style == 2) { Main.tile[i, k].frameX = 0; Main.tile[i, k].frameY = 110; } break; case 2: if (style == 0) { Main.tile[i, k].frameX = 22; Main.tile[i, k].frameY = 0; } if (style == 1) { Main.tile[i, k].frameX = 22; Main.tile[i, k].frameY = 22; } if (style == 2) { Main.tile[i, k].frameX = 22; Main.tile[i, k].frameY = 44; } break; case 3: if (style == 0) { Main.tile[i, k].frameX = 44; Main.tile[i, k].frameY = 66; } if (style == 1) { Main.tile[i, k].frameX = 44; Main.tile[i, k].frameY = 88; } if (style == 2) { Main.tile[i, k].frameX = 44; Main.tile[i, k].frameY = 110; } break; case 4: if (style == 0) { Main.tile[i, k].frameX = 22; Main.tile[i, k].frameY = 66; } if (style == 1) { Main.tile[i, k].frameX = 22; Main.tile[i, k].frameY = 88; } if (style == 2) { Main.tile[i, k].frameX = 22; Main.tile[i, k].frameY = 110; } break; case 5: if (style == 0) { Main.tile[i, k].frameX = 88; Main.tile[i, k].frameY = 0; } if (style == 1) { Main.tile[i, k].frameX = 88; Main.tile[i, k].frameY = 22; } if (style == 2) { Main.tile[i, k].frameX = 88; Main.tile[i, k].frameY = 44; } break; case 6: if (style == 0) { Main.tile[i, k].frameX = 66; Main.tile[i, k].frameY = 66; } if (style == 1) { Main.tile[i, k].frameX = 66; Main.tile[i, k].frameY = 88; } if (style == 2) { Main.tile[i, k].frameX = 66; Main.tile[i, k].frameY = 110; } break; case 7: if (style == 0) { Main.tile[i, k].frameX = 110; Main.tile[i, k].frameY = 66; } if (style == 1) { Main.tile[i, k].frameX = 110; Main.tile[i, k].frameY = 88; } if (style == 2) { Main.tile[i, k].frameX = 110; Main.tile[i, k].frameY = 110; } break; default: if (style == 0) { Main.tile[i, k].frameX = 0; Main.tile[i, k].frameY = 0; } if (style == 1) { Main.tile[i, k].frameX = 0; Main.tile[i, k].frameY = 22; } if (style == 2) { Main.tile[i, k].frameX = 0; Main.tile[i, k].frameY = 44; } break; } if (style2 == 5 || style2 == 7) { Main.tile[i - 1, k].active(active: true); Main.tile[i - 1, k].type = 5; Main.tile[i - 1, k].color(color); style = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (style == 0) { Main.tile[i - 1, k].frameX = 44; Main.tile[i - 1, k].frameY = 198; } if (style == 1) { Main.tile[i - 1, k].frameX = 44; Main.tile[i - 1, k].frameY = 220; } if (style == 2) { Main.tile[i - 1, k].frameX = 44; Main.tile[i - 1, k].frameY = 242; } } else { if (style == 0) { Main.tile[i - 1, k].frameX = 66; Main.tile[i - 1, k].frameY = 0; } if (style == 1) { Main.tile[i - 1, k].frameX = 66; Main.tile[i - 1, k].frameY = 22; } if (style == 2) { Main.tile[i - 1, k].frameX = 66; Main.tile[i - 1, k].frameY = 44; } } } if (style2 != 6 && style2 != 7) { continue; } Main.tile[i + 1, k].active(active: true); Main.tile[i + 1, k].type = 5; Main.tile[i + 1, k].color(color); style = WorldGen.genRand.Next(3); if (WorldGen.genRand.Next(3) < 2) { if (style == 0) { Main.tile[i + 1, k].frameX = 66; Main.tile[i + 1, k].frameY = 198; } if (style == 1) { Main.tile[i + 1, k].frameX = 66; Main.tile[i + 1, k].frameY = 220; } if (style == 2) { Main.tile[i + 1, k].frameX = 66; Main.tile[i + 1, k].frameY = 242; } } else { if (style == 0) { Main.tile[i + 1, k].frameX = 88; Main.tile[i + 1, k].frameY = 66; } if (style == 1) { Main.tile[i + 1, k].frameX = 88; Main.tile[i + 1, k].frameY = 88; } if (style == 2) { Main.tile[i + 1, k].frameX = 88; Main.tile[i + 1, k].frameY = 110; } } } int num6 = WorldGen.genRand.Next(3); bool flag4 = false; bool flag5 = false; if (Main.tile[i - 1, j].nactive() && !Main.tile[i - 1, j].halfBrick() && Main.tile[i - 1, j].slope() == 0 && IsTileTypeFitForTree(Main.tile[i - 1, j].type)) { flag4 = true; } if (Main.tile[i + 1, j].nactive() && !Main.tile[i + 1, j].halfBrick() && Main.tile[i + 1, j].slope() == 0 && IsTileTypeFitForTree(Main.tile[i + 1, j].type)) { flag5 = true; } if (!flag4) { if (num6 == 0) { num6 = 2; } if (num6 == 1) { num6 = 3; } } if (!flag5) { if (num6 == 0) { num6 = 1; } if (num6 == 2) { num6 = 3; } } if (flag4 && !flag5) { num6 = 2; } if (flag5 && !flag4) { num6 = 1; } if (num6 == 0 || num6 == 1) { Main.tile[i + 1, j - 1].active(active: true); Main.tile[i + 1, j - 1].type = 5; Main.tile[i + 1, j - 1].color(color); style = WorldGen.genRand.Next(3); if (style == 0) { Main.tile[i + 1, j - 1].frameX = 22; Main.tile[i + 1, j - 1].frameY = 132; } if (style == 1) { Main.tile[i + 1, j - 1].frameX = 22; Main.tile[i + 1, j - 1].frameY = 154; } if (style == 2) { Main.tile[i + 1, j - 1].frameX = 22; Main.tile[i + 1, j - 1].frameY = 176; } } if (num6 == 0 || num6 == 2) { Main.tile[i - 1, j - 1].active(active: true); Main.tile[i - 1, j - 1].type = 5; Main.tile[i - 1, j - 1].color(color); style = WorldGen.genRand.Next(3); if (style == 0) { Main.tile[i - 1, j - 1].frameX = 44; Main.tile[i - 1, j - 1].frameY = 132; } if (style == 1) { Main.tile[i - 1, j - 1].frameX = 44; Main.tile[i - 1, j - 1].frameY = 154; } if (style == 2) { Main.tile[i - 1, j - 1].frameX = 44; Main.tile[i - 1, j - 1].frameY = 176; } } style = WorldGen.genRand.Next(3); switch (num6) { case 0: if (style == 0) { Main.tile[i, j - 1].frameX = 88; Main.tile[i, j - 1].frameY = 132; } if (style == 1) { Main.tile[i, j - 1].frameX = 88; Main.tile[i, j - 1].frameY = 154; } if (style == 2) { Main.tile[i, j - 1].frameX = 88; Main.tile[i, j - 1].frameY = 176; } break; case 1: if (style == 0) { Main.tile[i, j - 1].frameX = 0; Main.tile[i, j - 1].frameY = 132; } if (style == 1) { Main.tile[i, j - 1].frameX = 0; Main.tile[i, j - 1].frameY = 154; } if (style == 2) { Main.tile[i, j - 1].frameX = 0; Main.tile[i, j - 1].frameY = 176; } break; case 2: if (style == 0) { Main.tile[i, j - 1].frameX = 66; Main.tile[i, j - 1].frameY = 132; } if (style == 1) { Main.tile[i, j - 1].frameX = 66; Main.tile[i, j - 1].frameY = 154; } if (style == 2) { Main.tile[i, j - 1].frameX = 66; Main.tile[i, j - 1].frameY = 176; } break; } if (WorldGen.genRand.Next(13) != 0) { style = WorldGen.genRand.Next(3); if (style == 0) { Main.tile[i, j - height].frameX = 22; Main.tile[i, j - height].frameY = 198; } if (style == 1) { Main.tile[i, j - height].frameX = 22; Main.tile[i, j - height].frameY = 220; } if (style == 2) { Main.tile[i, j - height].frameX = 22; Main.tile[i, j - height].frameY = 242; } } else { style = WorldGen.genRand.Next(3); if (style == 0) { Main.tile[i, j - height].frameX = 0; Main.tile[i, j - height].frameY = 198; } if (style == 1) { Main.tile[i, j - height].frameX = 0; Main.tile[i, j - height].frameY = 220; } if (style == 2) { Main.tile[i, j - height].frameX = 0; Main.tile[i, j - height].frameY = 242; } } WorldGen.RangeFrame(i - 2, j - height - 1, i + 2, j + 1); if (Main.netMode == 2) { NetMessage.SendTileSquare(-1, i, (int)((double)j - (double)height * 0.5), height + 1); } return(true); } } return(false); }