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

◆ PlaceJunglePlant()

static void Terraria.WorldGen.PlaceJunglePlant ( int X2,
int Y2,
ushort type,
int styleX,
int styleY )
inlinestatic

Definition at line 40860 of file WorldGen.cs.

40861 {
40862 if (styleY > 0 || type == 236 || type == 238)
40863 {
40864 int num = Y2;
40865 if (type == 95 || type == 126)
40866 {
40867 num++;
40868 }
40869 if (X2 < 5 || X2 > Main.maxTilesX - 5 || num < 5 || num > Main.maxTilesY - 5)
40870 {
40871 return;
40872 }
40873 bool flag = true;
40874 for (int i = X2 - 1; i < X2 + 1; i++)
40875 {
40876 for (int j = num - 1; j < num + 1; j++)
40877 {
40878 if (Main.tile[i, j] == null)
40879 {
40880 Main.tile[i, j] = default(Tile);
40881 }
40882 Tile tile = Main.tile[i, j];
40883 if (tile.active() && tile.type != 61 && tile.type != 62 && tile.type != 655 && tile.type != 69 && tile.type != 74 && (type != 236 || tile.type != 233) && (type != 238 || tile.type != 233) && (tile.type != 185 || tile.frameY != 0))
40884 {
40885 flag = false;
40886 }
40887 if (type == 98 && tile.liquid > 0)
40888 {
40889 flag = false;
40890 }
40891 }
40892 if (Main.tile[i, num + 1] == null)
40893 {
40894 Main.tile[i, num + 1] = default(Tile);
40895 }
40896 if (!SolidTile(i, num + 1) || Main.tile[i, num + 1].type != 60)
40897 {
40898 flag = false;
40899 }
40900 }
40901 if (!flag)
40902 {
40903 return;
40904 }
40905 for (int k = X2 - 1; k < X2 + 1; k++)
40906 {
40907 for (int l = num - 1; l < num + 1; l++)
40908 {
40909 if (Main.tile[k, l] != null && Main.tile[k, l].active())
40910 {
40912 }
40913 }
40914 }
40915 short num2 = 36;
40916 if (type == 236 || type == 238)
40917 {
40918 num2 = 0;
40919 }
40920 short num3 = (short)(36 * styleX);
40921 Main.tile[X2 - 1, num - 1].active(active: true);
40922 Main.tile[X2 - 1, num - 1].frameY = num2;
40923 Main.tile[X2 - 1, num - 1].frameX = num3;
40924 Main.tile[X2 - 1, num - 1].type = type;
40925 Main.tile[X2, num - 1].active(active: true);
40926 Main.tile[X2, num - 1].frameY = num2;
40927 Main.tile[X2, num - 1].frameX = (short)(18 + num3);
40928 Main.tile[X2, num - 1].type = type;
40929 Main.tile[X2 - 1, num].active(active: true);
40930 Main.tile[X2 - 1, num].frameY = (short)(num2 + 18);
40931 Main.tile[X2 - 1, num].frameX = num3;
40932 Main.tile[X2 - 1, num].type = type;
40933 Main.tile[X2, num].active(active: true);
40934 Main.tile[X2, num].frameY = (short)(num2 + 18);
40935 Main.tile[X2, num].frameX = (short)(18 + num3);
40936 Main.tile[X2, num].type = type;
40937 }
40938 else
40939 {
40940 if (X2 < 5 || X2 > Main.maxTilesX - 5 || Y2 < 5 || Y2 > Main.maxTilesY - 5)
40941 {
40942 return;
40943 }
40944 bool flag2 = true;
40945 for (int m = X2 - 1; m < X2 + 2; m++)
40946 {
40947 for (int n = Y2 - 1; n < Y2 + 1; n++)
40948 {
40949 if (Main.tile[m, n] == null)
40950 {
40951 Main.tile[m, n] = default(Tile);
40952 }
40953 if (Main.tile[m, n].active() && Main.tile[m, n].type != 61 && Main.tile[m, n].type != 62 && Main.tile[m, n].type != 69 && Main.tile[m, n].type != 655 && Main.tile[m, n].type != 74 && (Main.tile[m, n].type != 185 || Main.tile[m, n].frameY != 0))
40954 {
40955 flag2 = false;
40956 }
40957 }
40958 if (Main.tile[m, Y2 + 1] == null)
40959 {
40960 Main.tile[m, Y2 + 1] = default(Tile);
40961 }
40962 if (!SolidTile(m, Y2 + 1) || Main.tile[m, Y2 + 1].type != 60)
40963 {
40964 flag2 = false;
40965 }
40966 }
40967 if (!flag2)
40968 {
40969 return;
40970 }
40971 for (int num4 = X2 - 1; num4 < X2 + 2; num4++)
40972 {
40973 for (int num5 = Y2 - 1; num5 < Y2 + 1; num5++)
40974 {
40975 if (Main.tile[num4, num5] != null && Main.tile[num4, num5].active())
40976 {
40978 }
40979 }
40980 }
40981 short num6 = (short)(54 * styleX);
40982 Main.tile[X2 - 1, Y2 - 1].active(active: true);
40983 Main.tile[X2 - 1, Y2 - 1].frameY = 0;
40984 Main.tile[X2 - 1, Y2 - 1].frameX = num6;
40985 Main.tile[X2 - 1, Y2 - 1].type = type;
40986 Main.tile[X2, Y2 - 1].active(active: true);
40987 Main.tile[X2, Y2 - 1].frameY = 0;
40988 Main.tile[X2, Y2 - 1].frameX = (short)(num6 + 18);
40989 Main.tile[X2, Y2 - 1].type = type;
40990 Main.tile[X2 + 1, Y2 - 1].active(active: true);
40991 Main.tile[X2 + 1, Y2 - 1].frameY = 0;
40992 Main.tile[X2 + 1, Y2 - 1].frameX = (short)(num6 + 36);
40993 Main.tile[X2 + 1, Y2 - 1].type = type;
40994 Main.tile[X2 - 1, Y2].active(active: true);
40995 Main.tile[X2 - 1, Y2].frameY = 18;
40996 Main.tile[X2 - 1, Y2].frameX = num6;
40997 Main.tile[X2 - 1, Y2].type = type;
40998 Main.tile[X2, Y2].active(active: true);
40999 Main.tile[X2, Y2].frameY = 18;
41000 Main.tile[X2, Y2].frameX = (short)(num6 + 18);
41001 Main.tile[X2, Y2].type = type;
41002 Main.tile[X2 + 1, Y2].active(active: true);
41003 Main.tile[X2 + 1, Y2].frameY = 18;
41004 Main.tile[X2 + 1, Y2].frameX = (short)(num6 + 36);
41005 Main.tile[X2 + 1, Y2].type = type;
41006 }
41007 }
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)

References Terraria.Tile.active(), Terraria.Tile.frameY, Terraria.Tile.liquid, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Enums.SolidTile, Terraria.Main.tile, and Terraria.Tile.type.

+ Here is the call graph for this function: