Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DungeonEnt()

static void Terraria.WorldGen.DungeonEnt ( int i,
int j,
ushort tileType,
int wallType )
inlinestatic

Definition at line 30217 of file WorldGen.cs.

30218 {
30219 //IL_00a5: Unknown result type (might be due to invalid IL or missing references)
30220 //IL_00d5: Unknown result type (might be due to invalid IL or missing references)
30221 //IL_00f8: Unknown result type (might be due to invalid IL or missing references)
30222 //IL_011c: Unknown result type (might be due to invalid IL or missing references)
30223 //IL_013f: Unknown result type (might be due to invalid IL or missing references)
30224 //IL_057b: Unknown result type (might be due to invalid IL or missing references)
30225 //IL_0590: Unknown result type (might be due to invalid IL or missing references)
30226 //IL_05a6: Unknown result type (might be due to invalid IL or missing references)
30227 //IL_05bb: Unknown result type (might be due to invalid IL or missing references)
30228 //IL_0660: Unknown result type (might be due to invalid IL or missing references)
30229 //IL_067f: Unknown result type (might be due to invalid IL or missing references)
30230 //IL_069f: Unknown result type (might be due to invalid IL or missing references)
30231 //IL_06be: Unknown result type (might be due to invalid IL or missing references)
30232 //IL_0778: Unknown result type (might be due to invalid IL or missing references)
30233 //IL_078d: Unknown result type (might be due to invalid IL or missing references)
30234 //IL_07a3: Unknown result type (might be due to invalid IL or missing references)
30235 //IL_07b8: Unknown result type (might be due to invalid IL or missing references)
30236 //IL_0859: Unknown result type (might be due to invalid IL or missing references)
30237 //IL_086e: Unknown result type (might be due to invalid IL or missing references)
30238 //IL_09bb: Unknown result type (might be due to invalid IL or missing references)
30239 //IL_09de: Unknown result type (might be due to invalid IL or missing references)
30240 //IL_0a02: Unknown result type (might be due to invalid IL or missing references)
30241 //IL_0a25: Unknown result type (might be due to invalid IL or missing references)
30242 //IL_08d2: Unknown result type (might be due to invalid IL or missing references)
30243 //IL_0c2a: Unknown result type (might be due to invalid IL or missing references)
30244 //IL_0c3f: Unknown result type (might be due to invalid IL or missing references)
30245 //IL_0adb: Unknown result type (might be due to invalid IL or missing references)
30246 //IL_0abe: Unknown result type (might be due to invalid IL or missing references)
30247 //IL_0f8b: Unknown result type (might be due to invalid IL or missing references)
30248 //IL_0fa0: Unknown result type (might be due to invalid IL or missing references)
30249 //IL_0fb6: Unknown result type (might be due to invalid IL or missing references)
30250 //IL_0fcb: Unknown result type (might be due to invalid IL or missing references)
30251 //IL_0ebf: Unknown result type (might be due to invalid IL or missing references)
30252 //IL_0ed4: Unknown result type (might be due to invalid IL or missing references)
30253 //IL_0eea: Unknown result type (might be due to invalid IL or missing references)
30254 //IL_0eff: Unknown result type (might be due to invalid IL or missing references)
30255 //IL_106b: Unknown result type (might be due to invalid IL or missing references)
30256 //IL_14b2: Unknown result type (might be due to invalid IL or missing references)
30257 //IL_14c7: Unknown result type (might be due to invalid IL or missing references)
30258 //IL_1665: Unknown result type (might be due to invalid IL or missing references)
30259 //IL_167a: Unknown result type (might be due to invalid IL or missing references)
30260 //IL_1690: Unknown result type (might be due to invalid IL or missing references)
30261 //IL_16a5: Unknown result type (might be due to invalid IL or missing references)
30262 //IL_1563: Unknown result type (might be due to invalid IL or missing references)
30263 //IL_1578: Unknown result type (might be due to invalid IL or missing references)
30264 //IL_1736: Unknown result type (might be due to invalid IL or missing references)
30265 //IL_173d: Unknown result type (might be due to invalid IL or missing references)
30266 int num = 60;
30267 for (int k = i - num; k < i + num; k++)
30268 {
30269 for (int l = j - num; l < j + num; l++)
30270 {
30271 if (InWorld(k, l))
30272 {
30273 Main.tile[k, l].liquid = 0;
30274 Main.tile[k, l].lava(lava: false);
30275 Main.tile[k, l].Clear(TileDataType.Slope);
30276 }
30277 }
30278 }
30281 Vector2D val = default(Vector2D);
30282 val.X = i;
30283 val.Y = (double)j - dyStrength / 2.0;
30284 GenVars.dMinY = (int)val.Y;
30285 int num2 = 1;
30286 if (i > Main.maxTilesX / 2)
30287 {
30288 num2 = -1;
30289 }
30291 {
30292 num2 *= -1;
30293 }
30294 int num3 = (int)(val.X - dxStrength * 0.6 - (double)genRand.Next(2, 5));
30295 int num4 = (int)(val.X + dxStrength * 0.6 + (double)genRand.Next(2, 5));
30296 int num5 = (int)(val.Y - dyStrength * 0.6 - (double)genRand.Next(2, 5));
30297 int num6 = (int)(val.Y + dyStrength * 0.6 + (double)genRand.Next(8, 16));
30298 if (num3 < 0)
30299 {
30300 num3 = 0;
30301 }
30302 if (num4 > Main.maxTilesX)
30303 {
30304 num4 = Main.maxTilesX;
30305 }
30306 if (num5 < 0)
30307 {
30308 num5 = 0;
30309 }
30310 if (num6 > Main.maxTilesY)
30311 {
30312 num6 = Main.maxTilesY;
30313 }
30314 for (int m = num3; m < num4; m++)
30315 {
30316 for (int n = num5; n < num6; n++)
30317 {
30318 Main.tile[m, n].liquid = 0;
30319 if (Main.tile[m, n].wall != wallType)
30320 {
30321 Main.tile[m, n].wall = 0;
30322 if (m > num3 + 1 && m < num4 - 2 && n > num5 + 1 && n < num6 - 2)
30323 {
30324 Main.tile[m, n].wall = (ushort)wallType;
30325 }
30326 Main.tile[m, n].active(active: true);
30327 Main.tile[m, n].type = tileType;
30328 Main.tile[m, n].Clear(TileDataType.Slope);
30329 }
30330 }
30331 }
30332 int num7 = num3;
30333 int num8 = num3 + 5 + genRand.Next(4);
30334 int num9 = num5 - 3 - genRand.Next(3);
30335 int num10 = num5;
30336 for (int num11 = num7; num11 < num8; num11++)
30337 {
30338 for (int num12 = num9; num12 < num10; num12++)
30339 {
30340 Main.tile[num11, num12].liquid = 0;
30341 if (Main.tile[num11, num12].wall != wallType)
30342 {
30343 Main.tile[num11, num12].active(active: true);
30344 Main.tile[num11, num12].type = tileType;
30345 Main.tile[num11, num12].Clear(TileDataType.Slope);
30346 }
30347 }
30348 }
30349 num7 = num4 - 5 - genRand.Next(4);
30350 num8 = num4;
30351 num9 = num5 - 3 - genRand.Next(3);
30352 num10 = num5;
30353 for (int num13 = num7; num13 < num8; num13++)
30354 {
30355 for (int num14 = num9; num14 < num10; num14++)
30356 {
30357 Main.tile[num13, num14].liquid = 0;
30358 if (Main.tile[num13, num14].wall != wallType)
30359 {
30360 Main.tile[num13, num14].active(active: true);
30361 Main.tile[num13, num14].type = tileType;
30362 Main.tile[num13, num14].Clear(TileDataType.Slope);
30363 }
30364 }
30365 }
30366 int num15 = 1 + genRand.Next(2);
30367 int num16 = 2 + genRand.Next(4);
30368 int num17 = 0;
30369 for (int num18 = num3; num18 < num4; num18++)
30370 {
30371 for (int num19 = num5 - num15; num19 < num5; num19++)
30372 {
30373 Main.tile[num18, num19].liquid = 0;
30374 if (Main.tile[num18, num19].wall != wallType)
30375 {
30376 Main.tile[num18, num19].active(active: true);
30377 Main.tile[num18, num19].type = tileType;
30378 Main.tile[num18, num19].Clear(TileDataType.Slope);
30379 }
30380 }
30381 num17++;
30382 if (num17 >= num16)
30383 {
30384 num18 += num16;
30385 num17 = 0;
30386 }
30387 }
30388 for (int num20 = num3; num20 < num4; num20++)
30389 {
30390 for (int num21 = num6; (double)num21 < Main.worldSurface; num21++)
30391 {
30392 Main.tile[num20, num21].liquid = 0;
30393 if (!Main.wallDungeon[Main.tile[num20, num21].wall])
30394 {
30395 Main.tile[num20, num21].active(active: true);
30396 Main.tile[num20, num21].type = tileType;
30397 }
30398 if (num20 > num3 && num20 < num4 - 1)
30399 {
30400 Main.tile[num20, num21].wall = (ushort)wallType;
30401 }
30402 Main.tile[num20, num21].Clear(TileDataType.Slope);
30403 }
30404 }
30405 num3 = (int)(val.X - dxStrength * 0.6);
30406 num4 = (int)(val.X + dxStrength * 0.6);
30407 num5 = (int)(val.Y - dyStrength * 0.6);
30408 num6 = (int)(val.Y + dyStrength * 0.6);
30409 if (num3 < 0)
30410 {
30411 num3 = 0;
30412 }
30413 if (num4 > Main.maxTilesX)
30414 {
30415 num4 = Main.maxTilesX;
30416 }
30417 if (num5 < 0)
30418 {
30419 num5 = 0;
30420 }
30421 if (num6 > Main.maxTilesY)
30422 {
30423 num6 = Main.maxTilesY;
30424 }
30425 for (int num22 = num3; num22 < num4; num22++)
30426 {
30427 for (int num23 = num5; num23 < num6; num23++)
30428 {
30429 Main.tile[num22, num23].liquid = 0;
30430 Main.tile[num22, num23].wall = (ushort)wallType;
30431 Main.tile[num22, num23].Clear(TileDataType.Slope);
30432 }
30433 }
30434 num3 = (int)(val.X - dxStrength * 0.6 - 1.0);
30435 num4 = (int)(val.X + dxStrength * 0.6 + 1.0);
30436 num5 = (int)(val.Y - dyStrength * 0.6 - 1.0);
30437 num6 = (int)(val.Y + dyStrength * 0.6 + 1.0);
30438 if (num3 < 0)
30439 {
30440 num3 = 0;
30441 }
30442 if (num4 > Main.maxTilesX)
30443 {
30444 num4 = Main.maxTilesX;
30445 }
30446 if (num5 < 0)
30447 {
30448 num5 = 0;
30449 }
30450 if (num6 > Main.maxTilesY)
30451 {
30452 num6 = Main.maxTilesY;
30453 }
30454 if (drunkWorldGen)
30455 {
30456 num3 -= 4;
30457 }
30458 for (int num24 = num3; num24 < num4; num24++)
30459 {
30460 for (int num25 = num5; num25 < num6; num25++)
30461 {
30462 Main.tile[num24, num25].liquid = 0;
30463 Main.tile[num24, num25].wall = (ushort)wallType;
30464 Main.tile[num24, num25].Clear(TileDataType.Slope);
30465 }
30466 }
30467 num3 = (int)(val.X - dxStrength * 0.5);
30468 num4 = (int)(val.X + dxStrength * 0.5);
30469 num5 = (int)(val.Y - dyStrength * 0.5);
30470 num6 = (int)(val.Y + dyStrength * 0.5);
30471 if (num3 < 0)
30472 {
30473 num3 = 0;
30474 }
30475 if (num4 > Main.maxTilesX)
30476 {
30477 num4 = Main.maxTilesX;
30478 }
30479 if (num5 < 0)
30480 {
30481 num5 = 0;
30482 }
30483 if (num6 > Main.maxTilesY)
30484 {
30485 num6 = Main.maxTilesY;
30486 }
30487 for (int num26 = num3; num26 < num4; num26++)
30488 {
30489 for (int num27 = num5; num27 < num6; num27++)
30490 {
30491 Main.tile[num26, num27].liquid = 0;
30492 Main.tile[num26, num27].active(active: false);
30493 Main.tile[num26, num27].wall = (ushort)wallType;
30494 }
30495 }
30496 int num28 = (int)val.X;
30497 int num29 = num6;
30498 for (int num30 = 0; num30 < 20; num30++)
30499 {
30500 num28 = (int)val.X - num30;
30501 if (!Main.tile[num28, num29].active() && Main.wallDungeon[Main.tile[num28, num29].wall])
30502 {
30506 break;
30507 }
30508 num28 = (int)val.X + num30;
30509 if (!Main.tile[num28, num29].active() && Main.wallDungeon[Main.tile[num28, num29].wall])
30510 {
30514 break;
30515 }
30516 }
30517 val.X += dxStrength * 0.6 * (double)num2;
30518 val.Y += dyStrength * 0.5;
30521 val.X += dxStrength * 0.55 * (double)num2;
30522 val.Y -= dyStrength * 0.5;
30523 num3 = (int)(val.X - dxStrength * 0.6 - (double)genRand.Next(1, 3));
30524 num4 = (int)(val.X + dxStrength * 0.6 + (double)genRand.Next(1, 3));
30525 num5 = (int)(val.Y - dyStrength * 0.6 - (double)genRand.Next(1, 3));
30526 num6 = (int)(val.Y + dyStrength * 0.6 + (double)genRand.Next(6, 16));
30527 if (num3 < 0)
30528 {
30529 num3 = 0;
30530 }
30531 if (num4 > Main.maxTilesX)
30532 {
30533 num4 = Main.maxTilesX;
30534 }
30535 if (num5 < 0)
30536 {
30537 num5 = 0;
30538 }
30539 if (num6 > Main.maxTilesY)
30540 {
30541 num6 = Main.maxTilesY;
30542 }
30543 for (int num31 = num3; num31 < num4; num31++)
30544 {
30545 for (int num32 = num5; num32 < num6; num32++)
30546 {
30547 Main.tile[num31, num32].liquid = 0;
30548 if (Main.tile[num31, num32].wall == wallType)
30549 {
30550 continue;
30551 }
30552 bool flag = true;
30553 if (num2 < 0)
30554 {
30555 if ((double)num31 < val.X - dxStrength * 0.5)
30556 {
30557 flag = false;
30558 }
30559 }
30560 else if ((double)num31 > val.X + dxStrength * 0.5 - 1.0)
30561 {
30562 flag = false;
30563 }
30564 if (flag)
30565 {
30566 Main.tile[num31, num32].wall = 0;
30567 Main.tile[num31, num32].active(active: true);
30568 Main.tile[num31, num32].type = tileType;
30569 Main.tile[num31, num32].Clear(TileDataType.Slope);
30570 }
30571 }
30572 }
30573 for (int num33 = num3; num33 < num4; num33++)
30574 {
30575 for (int num34 = num6; (double)num34 < Main.worldSurface; num34++)
30576 {
30577 Main.tile[num33, num34].liquid = 0;
30578 if (!Main.wallDungeon[Main.tile[num33, num34].wall])
30579 {
30580 Main.tile[num33, num34].active(active: true);
30581 Main.tile[num33, num34].type = tileType;
30582 }
30583 Main.tile[num33, num34].wall = (ushort)wallType;
30584 Main.tile[num33, num34].Clear(TileDataType.Slope);
30585 }
30586 }
30587 num3 = (int)(val.X - dxStrength * 0.5);
30588 num4 = (int)(val.X + dxStrength * 0.5);
30589 num7 = num3;
30590 if (num2 < 0)
30591 {
30592 num7++;
30593 }
30594 num8 = num7 + 5 + genRand.Next(4);
30595 num9 = num5 - 3 - genRand.Next(3);
30596 num10 = num5;
30597 for (int num35 = num7; num35 < num8; num35++)
30598 {
30599 for (int num36 = num9; num36 < num10; num36++)
30600 {
30601 Main.tile[num35, num36].liquid = 0;
30602 if (Main.tile[num35, num36].wall != wallType)
30603 {
30604 Main.tile[num35, num36].active(active: true);
30605 Main.tile[num35, num36].type = tileType;
30606 Main.tile[num35, num36].Clear(TileDataType.Slope);
30607 }
30608 }
30609 }
30610 num7 = num4 - 5 - genRand.Next(4);
30611 num8 = num4;
30612 num9 = num5 - 3 - genRand.Next(3);
30613 num10 = num5;
30614 for (int num37 = num7; num37 < num8; num37++)
30615 {
30616 for (int num38 = num9; num38 < num10; num38++)
30617 {
30618 Main.tile[num37, num38].liquid = 0;
30619 if (Main.tile[num37, num38].wall != wallType)
30620 {
30621 Main.tile[num37, num38].active(active: true);
30622 Main.tile[num37, num38].type = tileType;
30623 Main.tile[num37, num38].Clear(TileDataType.Slope);
30624 }
30625 }
30626 }
30627 num15 = 1 + genRand.Next(2);
30628 num16 = 2 + genRand.Next(4);
30629 num17 = 0;
30630 if (num2 < 0)
30631 {
30632 num4++;
30633 }
30634 for (int num39 = num3 + 1; num39 < num4 - 1; num39++)
30635 {
30636 for (int num40 = num5 - num15; num40 < num5; num40++)
30637 {
30638 Main.tile[num39, num40].liquid = 0;
30639 if (Main.tile[num39, num40].wall != wallType)
30640 {
30641 Main.tile[num39, num40].active(active: true);
30642 Main.tile[num39, num40].type = tileType;
30643 Main.tile[num39, num40].Clear(TileDataType.Slope);
30644 }
30645 }
30646 num17++;
30647 if (num17 >= num16)
30648 {
30649 num39 += num16;
30650 num17 = 0;
30651 }
30652 }
30653 if (!drunkWorldGen)
30654 {
30655 num3 = (int)(val.X - dxStrength * 0.6);
30656 num4 = (int)(val.X + dxStrength * 0.6);
30657 num5 = (int)(val.Y - dyStrength * 0.6);
30658 num6 = (int)(val.Y + dyStrength * 0.6);
30659 if (num3 < 0)
30660 {
30661 num3 = 0;
30662 }
30663 if (num4 > Main.maxTilesX)
30664 {
30665 num4 = Main.maxTilesX;
30666 }
30667 if (num5 < 0)
30668 {
30669 num5 = 0;
30670 }
30671 if (num6 > Main.maxTilesY)
30672 {
30673 num6 = Main.maxTilesY;
30674 }
30675 for (int num41 = num3; num41 < num4; num41++)
30676 {
30677 for (int num42 = num5; num42 < num6; num42++)
30678 {
30679 Main.tile[num41, num42].liquid = 0;
30680 Main.tile[num41, num42].wall = 0;
30681 }
30682 }
30683 }
30684 num3 = (int)(val.X - dxStrength * 0.5);
30685 num4 = (int)(val.X + dxStrength * 0.5);
30686 num5 = (int)(val.Y - dyStrength * 0.5);
30687 num6 = (int)(val.Y + dyStrength * 0.5);
30688 if (num3 < 0)
30689 {
30690 num3 = 0;
30691 }
30692 if (num4 > Main.maxTilesX)
30693 {
30694 num4 = Main.maxTilesX;
30695 }
30696 if (num5 < 0)
30697 {
30698 num5 = 0;
30699 }
30700 if (num6 > Main.maxTilesY)
30701 {
30702 num6 = Main.maxTilesY;
30703 }
30704 for (int num43 = num3; num43 < num4; num43++)
30705 {
30706 for (int num44 = num5; num44 < num6; num44++)
30707 {
30708 Main.tile[num43, num44].liquid = 0;
30709 Main.tile[num43, num44].active(active: false);
30710 Main.tile[num43, num44].wall = 0;
30711 }
30712 }
30713 Main.dungeonX = (int)val.X;
30714 Main.dungeonY = num6;
30715 int num45 = NPC.NewNPC(new EntitySource_WorldGen(), Main.dungeonX * 16 + 8, Main.dungeonY * 16, 37);
30716 Main.npc[num45].homeless = false;
30717 Main.npc[num45].homeTileX = Main.dungeonX;
30718 Main.npc[num45].homeTileY = Main.dungeonY;
30719 if (drunkWorldGen)
30720 {
30721 int num46 = (int)Main.worldSurface;
30722 while (Main.tile[GenVars.dungeonX, num46].active() || Main.tile[GenVars.dungeonX, num46].wall > 0 || Main.tile[GenVars.dungeonX, num46 - 1].active() || Main.tile[GenVars.dungeonX, num46 - 1].wall > 0 || Main.tile[GenVars.dungeonX, num46 - 2].active() || Main.tile[GenVars.dungeonX, num46 - 2].wall > 0 || Main.tile[GenVars.dungeonX, num46 - 3].active() || Main.tile[GenVars.dungeonX, num46 - 3].wall > 0 || Main.tile[GenVars.dungeonX, num46 - 4].active() || Main.tile[GenVars.dungeonX, num46 - 4].wall > 0)
30723 {
30724 num46--;
30725 if (num46 < 50)
30726 {
30727 break;
30728 }
30729 }
30730 if (num46 > 50)
30731 {
30733 }
30734 }
30735 if (!drunkWorldGen)
30736 {
30737 int num47 = 100;
30738 if (num2 == 1)
30739 {
30740 int num48 = 0;
30741 for (int num49 = num4; num49 < num4 + num47; num49++)
30742 {
30743 num48++;
30744 for (int num50 = num6 + num48; num50 < num6 + num47; num50++)
30745 {
30746 Main.tile[num49, num50].liquid = 0;
30747 Main.tile[num49, num50 - 1].liquid = 0;
30748 Main.tile[num49, num50 - 2].liquid = 0;
30749 Main.tile[num49, num50 - 3].liquid = 0;
30750 if (!Main.wallDungeon[Main.tile[num49, num50].wall] && Main.tile[num49, num50].wall != 3 && Main.tile[num49, num50].wall != 83)
30751 {
30752 Main.tile[num49, num50].active(active: true);
30753 Main.tile[num49, num50].type = tileType;
30754 Main.tile[num49, num50].Clear(TileDataType.Slope);
30755 }
30756 }
30757 }
30758 }
30759 else
30760 {
30761 int num51 = 0;
30762 for (int num52 = num3; num52 > num3 - num47; num52--)
30763 {
30764 num51++;
30765 for (int num53 = num6 + num51; num53 < num6 + num47; num53++)
30766 {
30767 Main.tile[num52, num53].liquid = 0;
30768 Main.tile[num52, num53 - 1].liquid = 0;
30769 Main.tile[num52, num53 - 2].liquid = 0;
30770 Main.tile[num52, num53 - 3].liquid = 0;
30771 if (!Main.wallDungeon[Main.tile[num52, num53].wall] && Main.tile[num52, num53].wall != 3 && Main.tile[num52, num53].wall != 83)
30772 {
30773 Main.tile[num52, num53].active(active: true);
30774 Main.tile[num52, num53].type = tileType;
30775 Main.tile[num52, num53].Clear(TileDataType.Slope);
30776 }
30777 }
30778 }
30779 }
30780 }
30781 num15 = 1 + genRand.Next(2);
30782 num16 = 2 + genRand.Next(4);
30783 num17 = 0;
30784 num3 = (int)(val.X - dxStrength * 0.5);
30785 num4 = (int)(val.X + dxStrength * 0.5);
30786 if (drunkWorldGen)
30787 {
30788 if (num2 == 1)
30789 {
30790 num4--;
30791 num3--;
30792 }
30793 else
30794 {
30795 num3++;
30796 num4++;
30797 }
30798 }
30799 else
30800 {
30801 num3 += 2;
30802 num4 -= 2;
30803 }
30804 for (int num54 = num3; num54 < num4; num54++)
30805 {
30806 for (int num55 = num5; num55 < num6 + 1; num55++)
30807 {
30809 }
30810 if (!drunkWorldGen)
30811 {
30812 num17++;
30813 if (num17 >= num16)
30814 {
30815 num54 += num16 * 2;
30816 num17 = 0;
30817 }
30818 }
30819 }
30820 if (drunkWorldGen)
30821 {
30822 num3 = (int)(val.X - dxStrength * 0.5);
30823 num4 = (int)(val.X + dxStrength * 0.5);
30824 if (num2 == 1)
30825 {
30826 num3 = num4 - 3;
30827 }
30828 else
30829 {
30830 num4 = num3 + 3;
30831 }
30832 for (int num56 = num3; num56 < num4; num56++)
30833 {
30834 for (int num57 = num5; num57 < num6 + 1; num57++)
30835 {
30836 Main.tile[num56, num57].active(active: true);
30837 Main.tile[num56, num57].type = tileType;
30838 Main.tile[num56, num57].Clear(TileDataType.Slope);
30839 }
30840 }
30841 }
30842 val.X -= dxStrength * 0.6 * (double)num2;
30843 val.Y += dyStrength * 0.5;
30844 dxStrength = 15.0;
30845 dyStrength = 3.0;
30846 val.Y -= dyStrength * 0.5;
30847 num3 = (int)(val.X - dxStrength * 0.5);
30848 num4 = (int)(val.X + dxStrength * 0.5);
30849 num5 = (int)(val.Y - dyStrength * 0.5);
30850 num6 = (int)(val.Y + dyStrength * 0.5);
30851 if (num3 < 0)
30852 {
30853 num3 = 0;
30854 }
30855 if (num4 > Main.maxTilesX)
30856 {
30857 num4 = Main.maxTilesX;
30858 }
30859 if (num5 < 0)
30860 {
30861 num5 = 0;
30862 }
30863 if (num6 > Main.maxTilesY)
30864 {
30865 num6 = Main.maxTilesY;
30866 }
30867 for (int num58 = num3; num58 < num4; num58++)
30868 {
30869 for (int num59 = num5; num59 < num6; num59++)
30870 {
30871 Main.tile[num58, num59].active(active: false);
30872 }
30873 }
30874 if (num2 < 0)
30875 {
30876 val.X -= 1.0;
30877 }
30878 PlaceTile((int)val.X, (int)val.Y + 1, 10, mute: true, forced: false, -1, 13);
30879 }
static bool PlaceTile(int i, int j, int Type, bool mute=false, bool forced=false, int plr=-1, int style=0)
static UnifiedRandom genRand
Definition WorldGen.cs:1215
static bool GrowDungeonTree(int i, int j, bool patch=false)
static void PlaceWall(int i, int j, int type, bool mute=false)
static bool drunkWorldGen
Definition WorldGen.cs:1154
static bool InWorld(int x, int y, int fluff=0)
Definition WorldGen.cs:5816
static bool getGoodWorldGen
Definition WorldGen.cs:1156

References Terraria.WorldBuilding.GenVars.dungeonPlatformX, Terraria.WorldBuilding.GenVars.dungeonPlatformY, Terraria.WorldBuilding.GenVars.dungeonX, Terraria.Main.dungeonX, Terraria.Main.dungeonY, Terraria.WorldBuilding.GenVars.dxStrength1, Terraria.WorldBuilding.GenVars.dxStrength2, Terraria.WorldBuilding.GenVars.dyStrength1, Terraria.WorldBuilding.GenVars.dyStrength2, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.NPC.NewNPC(), Terraria.Main.npc, Terraria.WorldBuilding.GenVars.numDungeonPlatforms, Terraria.Main.tile, Terraria.Main.wallDungeon, Terraria.Main.worldSurface, ReLogic.Utilities.Vector2D.X, and ReLogic.Utilities.Vector2D.Y.