Definition at line 66759 of file WorldGen.cs.
66760 {
66761
66762
66763
66764
66765
66766
66767
66768
66769
66770
66771
66772
66773
66774
66775
66776
66777
66778
66779
66780
66781
66782
66783
66784
66785
66786
66787
66788
66789
66790
66791
66792
66793
66794
66795
66796
66797
66798
66799
66800
66801
66802
66803
66804
66805
66806
66807
66808
66809
66810
66811
66812
66813
66814
66815
66816
66817
66818
66819
66820
66821
66822
66823
66824
66825
66826
66827
66828
66829
66830
66831
66832
66833
66834
66835
66837 {
66839 {
66841 steps = (int)((
double)steps * (1.0 + (double)
genRand.Next(-80, 81) * 0.01));
66842 }
66844 {
66846 }
66848 {
66851 }
66852 }
66854 double num2 = steps;
66859 val2.X = (double)
genRand.Next(-10, 11) * 0.1;
66860 val2.Y = (double)
genRand.Next(-10, 11) * 0.1;
66862 {
66865 }
66866 bool flag =
type == 368;
66868 bool lava = false;
66870 {
66871 lava = true;
66872 }
66873 while (num > 0.0 &&
num2 > 0.0)
66874 {
66876 {
66877 val.X += (double)
genRand.Next(-100, 101) * 0.05;
66878 val.Y += (double)
genRand.Next(-100, 101) * 0.05;
66879 }
66880 if (val.
Y < 0.0 &&
num2 > 0.0 &&
type == 59)
66881 {
66883 }
66886 int num3 = (int)(val.
X - num * 0.5);
66887 int num4 = (int)(val.
X + num * 0.5);
66888 int num5 = (int)(val.
Y - num * 0.5);
66889 int num6 = (int)(val.
Y + num * 0.5);
66891 {
66893 }
66894 if (
num4 > Main.maxTilesX - 1)
66895 {
66896 num4 = Main.maxTilesX - 1;
66897 }
66899 {
66901 }
66902 if (
num6 > Main.maxTilesY - 1)
66903 {
66904 num6 = Main.maxTilesY - 1;
66905 }
66907 {
66909 {
66910 lava = false;
66911 }
66913 {
66915 {
66916 continue;
66917 }
66919 {
66921 {
66922 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 + 1,
l].wall != 64)
66923 {
66925 }
66926 }
66927 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 + 1,
l].wall != 15)
66928 {
66930 }
66931 }
66933 {
66934 if (Main.tile[
k,
l].type == 53)
66935 {
66936 continue;
66937 }
66939 {
66940 Main.tile[
k,
l].liquid =
byte.MaxValue;
66941 Main.tile[
k,
l].lava(lava);
66943 {
66945 {
66946 Main.tile[
k,
l].lava(lava:
true);
66947 }
66948 }
66950 {
66951 Main.tile[
k,
l].lava(lava:
true);
66952 }
66953 }
66954 Main.tile[
k,
l].active(active:
false);
66955 continue;
66956 }
66958 {
66960 }
66962 {
66964 }
66966 {
66967 Tile tile = Main.tile[
k,
l];
66968 bool flag3 =
false;
66969 flag3 = Main.tileStone[
type] && tile.type != 1;
66971 {
66973 }
66974 switch (tile.type)
66975 {
66976 case 53:
66978 {
66980 }
66982 {
66984 }
66985 if ((
double)
l < Main.worldSurface &&
type != 59)
66986 {
66988 }
66989 break;
66990 case 45:
66991 case 147:
66992 case 189:
66993 case 190:
66994 case 196:
66995 case 460:
66997 break;
66998 case 396:
66999 case 397:
67001 break;
67002 case 1:
67003 if (
type == 59 && (
double)
l < Main.worldSurface + (
double)
genRand.Next(-50, 50))
67004 {
67006 }
67007 break;
67008 case 367:
67009 case 368:
67011 {
67013 }
67014 break;
67015 }
67017 {
67018 tile.type = (ushort)
type;
67019 }
67020 }
67021 if (addTile)
67022 {
67023 Main.tile[
k,
l].active(active:
true);
67024 Main.tile[
k,
l].liquid = 0;
67025 Main.tile[
k,
l].lava(lava:
false);
67026 }
67028 {
67029 Main.tile[
k,
l].wall = 2;
67030 }
67032 {
67033 Main.tile[
k,
l].lava(lava:
false);
67034 Main.tile[
k,
l].liquid = 0;
67035 }
67036 }
67037 }
67040 {
67043 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67044 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67045 if (num > 100.0)
67046 {
67049 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67050 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67051 if (num > 150.0)
67052 {
67055 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67056 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67057 if (num > 200.0)
67058 {
67061 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67062 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67063 if (num > 250.0)
67064 {
67067 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67068 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67069 if (num > 300.0)
67070 {
67073 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67074 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67075 if (num > 400.0)
67076 {
67079 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67080 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67081 if (num > 500.0)
67082 {
67085 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67086 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67087 if (num > 600.0)
67088 {
67091 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67092 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67093 if (num > 700.0)
67094 {
67097 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67098 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67099 if (num > 800.0)
67100 {
67103 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67104 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67105 if (num > 900.0)
67106 {
67109 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67110 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67111 }
67112 }
67113 }
67114 }
67115 }
67116 }
67117 }
67118 }
67119 }
67120 }
67121 }
67122 }
67123 val2.X += (double)
genRand.Next(-10, 11) * 0.05;
67125 {
67126 val2.X += (double)
genRand.Next(-10, 11) * 0.25;
67127 }
67129 {
67130 val2.X = 1.0;
67131 }
67133 {
67134 val2.X = -1.0;
67135 }
67137 {
67138 val2.Y += (double)
genRand.Next(-10, 11) * 0.05;
67140 {
67141 val2.Y = 1.0;
67142 }
67144 {
67145 val2.Y = -1.0;
67146 }
67147 }
67148 else if (
type != 59 && num < 3.0)
67149 {
67151 {
67152 val2.Y = 1.0;
67153 }
67155 {
67156 val2.Y = -1.0;
67157 }
67158 }
67160 {
67162 {
67163 val2.Y = 0.5;
67164 }
67166 {
67167 val2.Y = -0.5;
67168 }
67169 if (val.
Y < Main.rockLayer + 100.0)
67170 {
67171 val2.Y = 1.0;
67172 }
67173 if (val.
Y > (
double)(Main.maxTilesY - 300))
67174 {
67175 val2.Y = -1.0;
67176 }
67177 }
67178 }
67179 }
static double Abs(double value)
static bool[] CanBeClearedDuringGeneration
static Rectangle UndergroundDesertLocation
static bool remixWorldGen
static UnifiedRandom genRand
static bool oceanDepths(int x, int y)
static readonly int beachDistance
static void PlaceWall(int i, int j, int type, bool mute=false)
static bool drunkWorldGen
static bool getGoodWorldGen
References System.Math.Abs(), Terraria.ID.TileID.Sets.CanBeClearedDuringGeneration, Terraria.WorldBuilding.GenVars.lavaLine, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.WorldBuilding.GenVars.mudWall, Terraria.ID.TileID.Sets.Ore, Terraria.Main.rockLayer, Terraria.Main.tile, Terraria.Main.tileStone, System.type, Terraria.Tile.type, Terraria.WorldBuilding.GenVars.UndergroundDesertLocation, Terraria.WorldBuilding.GenVars.waterLine, ReLogic.Utilities.Vector2D.X, and ReLogic.Utilities.Vector2D.Y.
Referenced by Terraria.GameContent.Biomes.JunglePass.ApplyPass(), Terraria.GameContent.Biomes.JunglePass.GenerateFinishingTouches(), Terraria.GameContent.Biomes.JunglePass.GenerateTunnelToSurface(), Terraria.WorldGen.GenerateWorld(), Terraria.GameContent.Biomes.JunglePass.PlaceFirstPassMud(), and Terraria.GameContent.Biomes.JunglePass.PlaceGemsAt().