Definition at line 29472 of file WorldGen.cs.
29473 {
29474
29475
29476
29477
29478
29479
29480
29481
29482
29483
29484
29485
29486
29487
29488
29489
29490
29491
29492
29493
29494
29495
29496
29497
29498
29499
29500
29501
29502
29503
29504
29505
29506
29507
29508
29509
29510
29511
29512
29513
29514
29515
29516
29517
29518
29519
29520
29521
29522
29523
29524
29525
29526
29527
29528
29529
29530
29531
29532
29534 double num =
genRand.Next(4, 6);
29543 bool flag = false;
29545 {
29546 flag = true;
29547 }
29549 {
29552 }
29553 else if (
genRand.Next(5) == 0)
29554 {
29555 num *= 2.0;
29557 }
29558 bool flag2 =
false;
29559 bool flag3 =
false;
29561 bool flag5 =
false;
29563 {
29566 {
29574 {
29576 {
29578 {
29580 break;
29581 }
29582 }
29583 else
29584 {
29586 }
29587 }
29590 {
29592 {
29594 {
29596 break;
29597 }
29598 }
29599 else
29600 {
29602 }
29603 }
29606 {
29608 {
29610 {
29612 break;
29613 }
29614 }
29615 else
29616 {
29618 }
29619 }
29621 for (
int l = i;
l <
i +
num5;
l++)
29622 {
29624 {
29626 {
29628 break;
29629 }
29630 }
29631 else
29632 {
29634 }
29635 }
29637 {
29640 {
29642 }
29643 }
29644 else
29645 {
29647 do
29648 {
29650 }
29653 {
29654 case 0:
29656 break;
29657 case 1:
29659 break;
29660 default:
29663 break;
29664 }
29665 }
29666 }
29667 else
29668 {
29671 {
29673 }
29674 }
29677 {
29679 }
29681 {
29682 zero2.Y = 0.0;
29684 zero3.Y = 0.0;
29686 zero.Y = 0.0;
29689 {
29691 {
29692 zero.Y = -0.2;
29693 }
29694 else
29695 {
29696 zero.Y = 0.2;
29697 }
29698 }
29699 }
29700 else
29701 {
29702 num += 1.0;
29704 zero.X = 0.0;
29705 zero2.X = 0.0;
29707 zero3.X = 0.0;
29710 {
29713 {
29714 zero.X = (double)
genRand.Next(10, 20) * 0.1;
29715 }
29716 else
29717 {
29718 zero.X = (double)(-
genRand.Next(10, 20)) * 0.1;
29719 }
29720 }
29721 else if (
genRand.Next(2) == 0)
29722 {
29724 {
29725 zero.X = (double)
genRand.Next(20, 40) * 0.01;
29726 }
29727 else
29728 {
29729 zero.X = (double)(-
genRand.Next(20, 40)) * 0.01;
29730 }
29731 }
29732 else
29733 {
29735 }
29736 }
29738 {
29740 }
29741 }
29743 bool flag11 = val.Y < Main.rockLayer + 100.0;
29745 {
29746 flag11 = val.Y < Main.worldSurface + 100.0;
29747 }
29749 {
29751 {
29753 zero2.Y = 0.0;
29755 zero.Y = 0.0;
29758 {
29760 {
29761 zero.Y = -0.2;
29762 }
29763 else
29764 {
29765 zero.Y = 0.2;
29766 }
29767 }
29768 }
29769 else if (val.
X < 200.0)
29770 {
29772 zero2.Y = 0.0;
29774 zero.Y = 0.0;
29777 {
29779 {
29780 zero.Y = -0.2;
29781 }
29782 else
29783 {
29784 zero.Y = 0.2;
29785 }
29786 }
29787 }
29789 {
29791 num += 1.0;
29793 zero.X = 0.0;
29794 zero2.X = 0.0;
29797 {
29799 {
29800 zero.X = (double)
genRand.Next(20, 50) * 0.01;
29801 }
29802 else
29803 {
29804 zero.X = (double)(-
genRand.Next(20, 50)) * 0.01;
29805 }
29806 }
29807 }
29809 {
29811 num += 1.0;
29813 zero.X = 0.0;
29814 zero2.X = 0.0;
29817 {
29820 {
29821 zero.X = (double)
genRand.Next(10, 20) * 0.1;
29822 }
29823 else
29824 {
29825 zero.X = (double)(-
genRand.Next(10, 20)) * 0.1;
29826 }
29827 }
29828 else if (
genRand.Next(2) == 0)
29829 {
29831 {
29832 zero.X = (double)
genRand.Next(20, 50) * 0.01;
29833 }
29834 else
29835 {
29836 zero.X = (double)
genRand.Next(20, 50) * 0.01;
29837 }
29838 }
29839 }
29840 else if (val.
X < (
double)(Main.maxTilesX / 2) && val.
X > (
double)Main.maxTilesX * 0.25)
29841 {
29843 zero2.Y = 0.0;
29845 zero.Y = 0.0;
29848 {
29850 {
29851 zero.Y = -0.2;
29852 }
29853 else
29854 {
29855 zero.Y = 0.2;
29856 }
29857 }
29858 }
29859 else if (val.
X > (
double)(Main.maxTilesX / 2) && val.
X < (
double)Main.maxTilesX * 0.75)
29860 {
29862 zero2.Y = 0.0;
29864 zero.Y = 0.0;
29867 {
29869 {
29870 zero.Y = -0.2;
29871 }
29872 else
29873 {
29874 zero.Y = 0.2;
29875 }
29876 }
29877 }
29878 }
29879 if (
zero2.Y == 0.0)
29880 {
29885 }
29886 else
29887 {
29891 }
29892 GenVars.lastDungeonHall =
zero2;
29894 {
29895 num = (int)(
num2 * ((
double)
genRand.Next(110, 150) * 0.01));
29896 }
29898 {
29900 if (
zero2.X > 0.0 && val.
X > (
double)(Main.maxTilesX - 100))
29901 {
29903 }
29904 else if (
zero2.X < 0.0 && val.
X < 100.0)
29905 {
29907 }
29908 else if (
zero2.Y > 0.0 && val.
Y > (
double)(Main.maxTilesY - 100))
29909 {
29911 }
29912 else if (
remixWorldGen &&
zero2.Y < 0.0 && val.
Y < (Main.rockLayer + Main.worldSurface) / 2.0)
29913 {
29915 }
29917 {
29919 }
29921 int num10 = (int)(val.
X - num - 4.0 - (
double)
genRand.Next(6));
29922 int num11 = (int)(val.
X + num + 4.0 + (
double)
genRand.Next(6));
29923 int num12 = (int)(val.
Y - num - 4.0 - (
double)
genRand.Next(6));
29924 int num13 = (int)(val.
Y + num + 4.0 + (
double)
genRand.Next(6));
29926 {
29928 }
29929 if (
num11 > Main.maxTilesX)
29930 {
29931 num11 = Main.maxTilesX;
29932 }
29934 {
29936 }
29937 if (
num13 > Main.maxTilesY)
29938 {
29939 num13 = Main.maxTilesY;
29940 }
29942 {
29944 {
29946 {
29948 }
29950 {
29952 }
29954 {
29956 }
29957 Main.tile[
m,
n].liquid = 0;
29958 if (!Main.wallDungeon[Main.tile[
m,
n].wall])
29959 {
29960 Main.tile[
m,
n].active(active:
true);
29961 Main.tile[
m,
n].type = tileType;
29963 }
29964 }
29965 }
29967 {
29969 {
29971 }
29972 }
29974 if (
zero.Y == 0.0 &&
genRand.Next((
int)num + 1) == 0)
29975 {
29977 }
29978 else if (
zero.X == 0.0 &&
genRand.Next((
int)num - 1) == 0)
29979 {
29981 }
29982 else if (
genRand.Next((
int)num * 3) == 0)
29983 {
29985 }
29986 num10 = (int)(val.
X - num * 0.5 - (
double)
num16);
29987 num11 = (int)(val.
X + num * 0.5 + (
double)
num16);
29988 num12 = (int)(val.
Y - num * 0.5 - (
double)
num16);
29989 num13 = (int)(val.
Y + num * 0.5 + (
double)
num16);
29991 {
29993 }
29994 if (
num11 > Main.maxTilesX)
29995 {
29996 num11 = Main.maxTilesX;
29997 }
29999 {
30001 }
30002 if (
num13 > Main.maxTilesY)
30003 {
30004 num13 = Main.maxTilesY;
30005 }
30007 {
30009 {
30011 if (flag)
30012 {
30014 {
30017 }
30018 }
30019 else
30020 {
30022 }
30025 }
30026 }
30029 {
30031 zero.X *= -1.0;
30032 }
30033 }
30034 GenVars.dungeonX = (int)val.
X;
30035 GenVars.dungeonY = (int)val.
Y;
30036 if (
zero2.Y == 0.0)
30037 {
30042 }
30043 else
30044 {
30048 }
30049 }
static double Abs(double value)
static Vector2D lastDungeonHall
static int[] dungeonPlatformX
static int numDungeonPlatforms
static int[] dungeonPlatformY
static ushort crackedType
static bool remixWorldGen
static UnifiedRandom genRand
References System.Math.Abs(), Terraria.WorldBuilding.GenVars.crackedType, Terraria.WorldBuilding.GenVars.DDoorPos, Terraria.WorldBuilding.GenVars.DDoorX, Terraria.WorldBuilding.GenVars.DDoorY, Terraria.WorldBuilding.GenVars.dMaxX, Terraria.WorldBuilding.GenVars.dMaxY, Terraria.WorldBuilding.GenVars.dMinX, Terraria.WorldBuilding.GenVars.dungeonPlatformX, Terraria.WorldBuilding.GenVars.dungeonPlatformY, Terraria.WorldBuilding.GenVars.lastDungeonHall, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.WorldBuilding.GenVars.numDDoors, Terraria.WorldBuilding.GenVars.numDungeonPlatforms, Terraria.Main.rockLayer, Terraria.Main.tile, Terraria.Main.wallDungeon, Terraria.Main.worldSurface, ReLogic.Utilities.Vector2D.X, ReLogic.Utilities.Vector2D.Y, and ReLogic.Utilities.Vector2D.Zero.