22213 {
22216 {
22217 }
22218 if (Main.tile[
checkedX - 1, i - 1].liquid != 0 || Main.tile[
checkedX, i - 1].liquid != 0 || Main.tile[
checkedX + 1, i - 1].liquid != 0)
22219 {
22220 return false;
22221 }
22223 if (!tile.nactive() || tile.halfBrick() || tile.slope() != 0)
22224 {
22225 return false;
22226 }
22227 bool flag = settings.WallTest(Main.tile[
checkedX, i - 1].wall);
22228 if (!settings.GroundTest(tile.type) || !flag)
22229 {
22230 return false;
22231 }
22232 if ((!Main.tile[
checkedX - 1, i].active() || !settings.GroundTest(Main.tile[
checkedX - 1, i].type)) && (!Main.tile[
checkedX + 1, i].active() || !settings.GroundTest(Main.tile[
checkedX + 1, i].type)))
22233 {
22234 return false;
22235 }
22236 TileColorCache
cache = Main.tile[
checkedX,
i].BlockColorAndCoating();
22237 if (Main.tenthAnniversaryWorld && !
gen && (settings.TreeTileType == 596 || settings.TreeTileType == 616))
22238 {
22239 cache.Color = (byte)
genRand.Next(1, 13);
22240 }
22241 int num = 2;
22242 int num2 =
genRand.Next(settings.TreeHeightMin, settings.TreeHeightMax + 1);
22243 int num3 =
num2 + settings.TreeTopPaddingNeeded;
22245 {
22246 return false;
22247 }
22248 bool flag2 =
false;
22249 bool flag3 =
false;
22251 for (
int j = i -
num2;
j <
i;
j++)
22252 {
22256 tile2.type = settings.TreeTileType;
22260 if (
j == i - 1 ||
j == i -
num2)
22261 {
22263 }
22265 {
22267 }
22271 {
22273 }
22275 {
22277 }
22279 {
22280 case 1:
22282 {
22283 tile2.frameX = 0;
22284 tile2.frameY = 66;
22285 }
22287 {
22288 tile2.frameX = 0;
22289 tile2.frameY = 88;
22290 }
22292 {
22293 tile2.frameX = 0;
22294 tile2.frameY = 110;
22295 }
22296 break;
22297 case 2:
22299 {
22300 tile2.frameX = 22;
22301 tile2.frameY = 0;
22302 }
22304 {
22305 tile2.frameX = 22;
22306 tile2.frameY = 22;
22307 }
22309 {
22310 tile2.frameX = 22;
22311 tile2.frameY = 44;
22312 }
22313 break;
22314 case 3:
22316 {
22317 tile2.frameX = 44;
22318 tile2.frameY = 66;
22319 }
22321 {
22322 tile2.frameX = 44;
22323 tile2.frameY = 88;
22324 }
22326 {
22327 tile2.frameX = 44;
22328 tile2.frameY = 110;
22329 }
22330 break;
22331 case 4:
22333 {
22334 tile2.frameX = 22;
22335 tile2.frameY = 66;
22336 }
22338 {
22339 tile2.frameX = 22;
22340 tile2.frameY = 88;
22341 }
22343 {
22344 tile2.frameX = 22;
22345 tile2.frameY = 110;
22346 }
22347 break;
22348 case 5:
22350 {
22351 tile2.frameX = 88;
22352 tile2.frameY = 0;
22353 }
22355 {
22356 tile2.frameX = 88;
22357 tile2.frameY = 22;
22358 }
22360 {
22361 tile2.frameX = 88;
22362 tile2.frameY = 44;
22363 }
22364 break;
22365 case 6:
22367 {
22368 tile2.frameX = 66;
22369 tile2.frameY = 66;
22370 }
22372 {
22373 tile2.frameX = 66;
22374 tile2.frameY = 88;
22375 }
22377 {
22378 tile2.frameX = 66;
22379 tile2.frameY = 110;
22380 }
22381 break;
22382 case 7:
22384 {
22385 tile2.frameX = 110;
22386 tile2.frameY = 66;
22387 }
22389 {
22390 tile2.frameX = 110;
22391 tile2.frameY = 88;
22392 }
22394 {
22395 tile2.frameX = 110;
22396 tile2.frameY = 110;
22397 }
22398 break;
22399 default:
22401 {
22402 tile2.frameX = 0;
22403 tile2.frameY = 0;
22404 }
22406 {
22407 tile2.frameX = 0;
22408 tile2.frameY = 22;
22409 }
22411 {
22412 tile2.frameX = 0;
22413 tile2.frameY = 44;
22414 }
22415 break;
22416 }
22418 {
22421 tile3.type = settings.TreeTileType;
22425 {
22427 {
22428 tile3.frameX = 44;
22429 tile3.frameY = 198;
22430 }
22432 {
22433 tile3.frameX = 44;
22434 tile3.frameY = 220;
22435 }
22437 {
22438 tile3.frameX = 44;
22439 tile3.frameY = 242;
22440 }
22441 }
22442 else
22443 {
22445 {
22446 tile3.frameX = 66;
22447 tile3.frameY = 0;
22448 }
22450 {
22451 tile3.frameX = 66;
22452 tile3.frameY = 22;
22453 }
22455 {
22456 tile3.frameX = 66;
22457 tile3.frameY = 44;
22458 }
22459 }
22460 }
22462 {
22463 continue;
22464 }
22467 tile4.type = settings.TreeTileType;
22471 {
22473 {
22474 tile4.frameX = 66;
22475 tile4.frameY = 198;
22476 }
22478 {
22479 tile4.frameX = 66;
22480 tile4.frameY = 220;
22481 }
22483 {
22484 tile4.frameX = 66;
22485 tile4.frameY = 242;
22486 }
22487 }
22488 else
22489 {
22491 {
22492 tile4.frameX = 88;
22493 tile4.frameY = 66;
22494 }
22496 {
22497 tile4.frameX = 88;
22498 tile4.frameY = 88;
22499 }
22501 {
22502 tile4.frameX = 88;
22503 tile4.frameY = 110;
22504 }
22505 }
22506 }
22507 bool flag4 =
false;
22508 bool flag5 =
false;
22510 {
22512 }
22514 {
22516 }
22518 {
22520 }
22522 {
22524 }
22526 {
22528 Main.tile[
checkedX + 1,
i - 1].type = settings.TreeTileType;
22532 {
22533 Main.tile[
checkedX + 1,
i - 1].frameX = 22;
22534 Main.tile[
checkedX + 1,
i - 1].frameY = 132;
22535 }
22537 {
22538 Main.tile[
checkedX + 1,
i - 1].frameX = 22;
22539 Main.tile[
checkedX + 1,
i - 1].frameY = 154;
22540 }
22542 {
22543 Main.tile[
checkedX + 1,
i - 1].frameX = 22;
22544 Main.tile[
checkedX + 1,
i - 1].frameY = 176;
22545 }
22546 }
22548 {
22550 Main.tile[
checkedX - 1,
i - 1].type = settings.TreeTileType;
22554 {
22555 Main.tile[
checkedX - 1,
i - 1].frameX = 44;
22556 Main.tile[
checkedX - 1,
i - 1].frameY = 132;
22557 }
22559 {
22560 Main.tile[
checkedX - 1,
i - 1].frameX = 44;
22561 Main.tile[
checkedX - 1,
i - 1].frameY = 154;
22562 }
22564 {
22565 Main.tile[
checkedX - 1,
i - 1].frameX = 44;
22566 Main.tile[
checkedX - 1,
i - 1].frameY = 176;
22567 }
22568 }
22571 {
22573 {
22574 Main.tile[
checkedX,
i - 1].frameX = 88;
22575 Main.tile[
checkedX,
i - 1].frameY = 132;
22576 }
22578 {
22579 Main.tile[
checkedX,
i - 1].frameX = 88;
22580 Main.tile[
checkedX,
i - 1].frameY = 154;
22581 }
22583 {
22584 Main.tile[
checkedX,
i - 1].frameX = 88;
22585 Main.tile[
checkedX,
i - 1].frameY = 176;
22586 }
22587 }
22589 {
22591 {
22593 Main.tile[
checkedX,
i - 1].frameY = 132;
22594 }
22596 {
22598 Main.tile[
checkedX,
i - 1].frameY = 154;
22599 }
22601 {
22603 Main.tile[
checkedX,
i - 1].frameY = 176;
22604 }
22605 }
22607 {
22609 {
22610 Main.tile[
checkedX,
i - 1].frameX = 66;
22611 Main.tile[
checkedX,
i - 1].frameY = 132;
22612 }
22614 {
22615 Main.tile[
checkedX,
i - 1].frameX = 66;
22616 Main.tile[
checkedX,
i - 1].frameY = 154;
22617 }
22619 {
22620 Main.tile[
checkedX,
i - 1].frameX = 66;
22621 Main.tile[
checkedX,
i - 1].frameY = 176;
22622 }
22623 }
22625 {
22628 {
22631 }
22633 {
22636 }
22638 {
22641 }
22642 }
22643 else
22644 {
22647 {
22650 }
22652 {
22655 }
22657 {
22660 }
22661 }
22663 if (Main.netMode == 2)
22664 {
22666 }
22667 return true;
22668 }
static bool IsTileTypeFitForTree(ushort type)
static UnifiedRandom genRand
static bool EmptyTileCheck(int startX, int endX, int startY, int endY, int ignoreID=-1)
static void RangeFrame(int startX, int startY, int endX, int endY)