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

◆ SpreadDesertWalls()

static void Terraria.WorldGen.SpreadDesertWalls ( int wallDist,
int i,
int j )
inlinestatic

Definition at line 64833 of file WorldGen.cs.

64834 {
64835 if (!InWorld(i, j, 10) || (!WallID.Sets.Conversion.Sandstone[Main.tile[i, j].wall] && (!Main.tile[i, j].active() || !TileID.Sets.Conversion.Sandstone[Main.tile[i, j].type]) && !WallID.Sets.Conversion.HardenedSand[Main.tile[i, j].wall]))
64836 {
64837 return;
64838 }
64839 int num = 0;
64840 int wall = Main.tile[i, j].wall;
64841 int type = Main.tile[i, j].type;
64842 if (WallID.Sets.Corrupt[wall] || TileID.Sets.Corrupt[type])
64843 {
64844 num = 1;
64845 }
64846 if (WallID.Sets.Hallow[wall] || TileID.Sets.Hallow[type])
64847 {
64848 num = 2;
64849 }
64850 if (WallID.Sets.Crimson[wall] || TileID.Sets.Crimson[type])
64851 {
64852 num = 3;
64853 }
64854 if (num == 0)
64855 {
64856 return;
64857 }
64858 int num2 = i + genRand.Next(-2, 3);
64859 int num3 = j + genRand.Next(-2, 3);
64860 bool flag = false;
64861 if (WallID.Sets.Conversion.PureSand[Main.tile[num2, num3].wall])
64862 {
64863 switch (num)
64864 {
64865 case 3:
64866 {
64867 for (int m = i - wallDist; m < i + wallDist; m++)
64868 {
64869 for (int n = j - wallDist; n < j + wallDist; n++)
64870 {
64871 if (Main.tile[m, n].active() && TileID.Sets.Crimson[Main.tile[m, n].type])
64872 {
64873 flag = true;
64874 break;
64875 }
64876 }
64877 if (flag)
64878 {
64879 break;
64880 }
64881 }
64882 break;
64883 }
64884 case 2:
64885 {
64886 for (int num4 = i - wallDist; num4 < i + wallDist; num4++)
64887 {
64888 for (int num5 = j - wallDist; num5 < j + wallDist; num5++)
64889 {
64890 if (Main.tile[num4, num5].active() && TileID.Sets.Hallow[Main.tile[num4, num5].type])
64891 {
64892 flag = true;
64893 break;
64894 }
64895 }
64896 if (flag)
64897 {
64898 break;
64899 }
64900 }
64901 break;
64902 }
64903 case 1:
64904 {
64905 for (int k = i - wallDist; k < i + wallDist; k++)
64906 {
64907 for (int l = j - wallDist; l < j + wallDist; l++)
64908 {
64909 if (Main.tile[k, l].active() && TileID.Sets.Corrupt[Main.tile[k, l].type])
64910 {
64911 flag = true;
64912 break;
64913 }
64914 }
64915 if (flag)
64916 {
64917 break;
64918 }
64919 }
64920 break;
64921 }
64922 }
64923 }
64924 if (!flag)
64925 {
64926 return;
64927 }
64928 ushort? num6 = null;
64929 if (WallID.Sets.Conversion.Sandstone[Main.tile[num2, num3].wall])
64930 {
64931 switch (num)
64932 {
64933 case 3:
64934 num6 = 221;
64935 break;
64936 case 2:
64937 num6 = 222;
64938 break;
64939 case 1:
64940 num6 = 220;
64941 break;
64942 }
64943 }
64944 if (WallID.Sets.Conversion.HardenedSand[Main.tile[num2, num3].wall])
64945 {
64946 switch (num)
64947 {
64948 case 3:
64949 num6 = 218;
64950 break;
64951 case 2:
64952 num6 = 219;
64953 break;
64954 case 1:
64955 num6 = 217;
64956 break;
64957 }
64958 }
64959 if (num6.HasValue && Main.tile[num2, num3].wall != num6.Value)
64960 {
64961 Main.tile[num2, num3].wall = num6.Value;
64962 if (Main.netMode == 2)
64963 {
64964 NetMessage.SendTileSquare(-1, num2, num3);
64965 }
64966 }
64967 }
static bool[] Crimson
Definition TileID.cs:249
static bool[] Corrupt
Definition TileID.cs:235
static bool[] Hallow
Definition TileID.cs:241
static bool[] Corrupt
Definition WallID.cs:42
static bool[] Crimson
Definition WallID.cs:44
static bool[] Hallow
Definition WallID.cs:46
static UnifiedRandom genRand
Definition WorldGen.cs:1215
static bool InWorld(int x, int y, int fluff=0)
Definition WorldGen.cs:5816

References Terraria.ID.TileID.Sets.Corrupt, Terraria.ID.WallID.Sets.Corrupt, Terraria.ID.TileID.Sets.Crimson, Terraria.ID.WallID.Sets.Crimson, Terraria.ID.TileID.Sets.Hallow, Terraria.ID.WallID.Sets.Hallow, Terraria.ID.WallID.Sets.Conversion.HardenedSand, Terraria.Main.netMode, Terraria.ID.WallID.Sets.Conversion.PureSand, Terraria.ID.TileID.Sets.Conversion.Sandstone, Terraria.ID.WallID.Sets.Conversion.Sandstone, Terraria.NetMessage.SendTileSquare(), Terraria.Main.tile, and System.type.