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

◆ PlantAlch()

static void Terraria.WorldGen.PlantAlch ( )
inlinestatic

Definition at line 36832 of file WorldGen.cs.

36833 {
36834 int num = genRand.Next(20, Main.maxTilesX - 20);
36835 int num2 = 0;
36836 for (num2 = (Main.remixWorld ? genRand.Next(20, Main.maxTilesY - 20) : ((genRand.Next(40) == 0) ? genRand.Next((int)(Main.rockLayer + (double)Main.maxTilesY) / 2, Main.maxTilesY - 20) : ((genRand.Next(10) != 0) ? genRand.Next((int)Main.worldSurface, Main.maxTilesY - 20) : genRand.Next(20, Main.maxTilesY - 20)))); num2 < Main.maxTilesY - 20 && !Main.tile[num, num2].active(); num2++)
36837 {
36838 }
36839 if (!Main.tile[num, num2].nactive() || Main.tile[num, num2 - 1].active() || Main.tile[num, num2 - 1].liquid != 0)
36840 {
36841 return;
36842 }
36843 int num3 = 15;
36844 int num4 = 5;
36845 int num5 = 0;
36846 num3 = (int)((double)num3 * ((double)Main.maxTilesX / 4200.0));
36847 int num6 = Utils.Clamp(num - num3, 4, Main.maxTilesX - 4);
36848 int num7 = Utils.Clamp(num + num3, 4, Main.maxTilesX - 4);
36849 int num8 = Utils.Clamp(num2 - num3, 4, Main.maxTilesY - 4);
36850 int num9 = Utils.Clamp(num2 + num3, 4, Main.maxTilesY - 4);
36851 for (int i = num6; i <= num7; i++)
36852 {
36853 for (int j = num8; j <= num9; j++)
36854 {
36855 if (Main.tileAlch[Main.tile[i, j].type])
36856 {
36857 num5++;
36858 }
36859 }
36860 }
36861 if (num5 < num4)
36862 {
36863 if (Main.tile[num, num2].type == 2 || Main.tile[num, num2].type == 109)
36864 {
36865 PlaceAlch(num, num2 - 1, 0);
36866 }
36867 if (Main.tile[num, num2].type == 60)
36868 {
36869 PlaceAlch(num, num2 - 1, 1);
36870 }
36871 if (Main.tile[num, num2].type == 0 || Main.tile[num, num2].type == 59)
36872 {
36873 PlaceAlch(num, num2 - 1, 2);
36874 }
36875 if (Main.tile[num, num2].type == 23 || Main.tile[num, num2].type == 661 || Main.tile[num, num2].type == 25 || Main.tile[num, num2].type == 203 || Main.tile[num, num2].type == 199 || Main.tile[num, num2].type == 662)
36876 {
36877 PlaceAlch(num, num2 - 1, 3);
36878 }
36879 if ((Main.tile[num, num2].type == 53 || Main.tile[num, num2].type == 116) && num >= beachDistance && num <= Main.maxTilesX - beachDistance)
36880 {
36881 PlaceAlch(num, num2 - 1, 4);
36882 }
36883 if (Main.tile[num, num2].type == 57 || Main.tile[num, num2].type == 633)
36884 {
36885 PlaceAlch(num, num2 - 1, 5);
36886 }
36887 if (Main.tile[num, num2].type == 147 || Main.tile[num, num2].type == 163 || Main.tile[num, num2].type == 164 || Main.tile[num, num2].type == 161 || Main.tile[num, num2].type == 200)
36888 {
36889 PlaceAlch(num, num2 - 1, 6);
36890 }
36891 if (Main.tile[num, num2 - 1].active() && Main.netMode == 2)
36892 {
36893 NetMessage.SendTileSquare(-1, num, num2 - 1);
36894 }
36895 }
36896 }
static UnifiedRandom genRand
Definition WorldGen.cs:1215
static readonly int beachDistance
Definition WorldGen.cs:928
static bool PlaceAlch(int x, int y, int style)

References Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Main.netMode, Terraria.Main.remixWorld, Terraria.NetMessage.SendTileSquare(), Terraria.Main.tile, Terraria.Main.tileAlch, and Terraria.Main.worldSurface.