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

◆ IslandHouse()

static void Terraria.WorldGen.IslandHouse ( int i,
int j,
int islandStyle )
inlinestatic

Definition at line 72925 of file WorldGen.cs.

72926 {
72927 bool flag = crimson;
72928 if (drunkWorldGen)
72929 {
72930 flag = (GenVars.crimsonLeft && i < Main.maxTilesX / 2) || ((!GenVars.crimsonLeft && i > Main.maxTilesX / 2) ? true : false);
72931 }
72932 byte type = 202;
72933 byte wall = 82;
72934 Vector2D vector2D = new Vector2D(i, j);
72935 int num = 1;
72936 if (genRand.Next(2) == 0)
72937 {
72938 num = -1;
72939 }
72940 int num12 = genRand.Next(7, 12);
72941 int num23 = genRand.Next(5, 7);
72942 vector2D.X = i + (num12 + 2) * num;
72943 Tile tile;
72944 for (int k = j - 15; k < j + 30; k++)
72945 {
72946 tile = Main.tile[(int)vector2D.X, k];
72947 if (tile.active())
72948 {
72949 vector2D.Y = k - 1;
72950 break;
72951 }
72952 }
72953 vector2D.X = i;
72954 int num24 = (int)(vector2D.X - (double)num12 - 1.0);
72955 int num25 = (int)(vector2D.X + (double)num12 + 1.0);
72956 int num26 = (int)(vector2D.Y - (double)num23 - 1.0);
72957 int num27 = (int)(vector2D.Y + 2.0);
72958 if (num24 < 0)
72959 {
72960 num24 = 0;
72961 }
72962 if (num25 > Main.maxTilesX)
72963 {
72964 num25 = Main.maxTilesX;
72965 }
72966 if (num26 < 0)
72967 {
72968 num26 = 0;
72969 }
72970 if (num27 > Main.maxTilesY)
72971 {
72972 num27 = Main.maxTilesY;
72973 }
72974 for (int l = num24; l <= num25; l++)
72975 {
72976 for (int m = num26 - 1; m < num27 + 1; m++)
72977 {
72978 if (m != num26 - 1 || (l != num24 && l != num25))
72979 {
72980 tile = Main.tile[l, m];
72981 tile.active(active: true);
72982 tile = Main.tile[l, m];
72983 tile.liquid = 0;
72984 tile = Main.tile[l, m];
72985 tile.type = type;
72986 tile = Main.tile[l, m];
72987 tile.wall = 0;
72988 tile = Main.tile[l, m];
72989 tile.halfBrick(halfBrick: false);
72990 tile = Main.tile[l, m];
72991 tile.slope(0);
72992 }
72993 }
72994 }
72995 num24 = (int)(vector2D.X - (double)num12);
72996 num25 = (int)(vector2D.X + (double)num12);
72997 num26 = (int)(vector2D.Y - (double)num23);
72998 num27 = (int)(vector2D.Y + 1.0);
72999 if (num24 < 0)
73000 {
73001 num24 = 0;
73002 }
73003 if (num25 > Main.maxTilesX)
73004 {
73005 num25 = Main.maxTilesX;
73006 }
73007 if (num26 < 0)
73008 {
73009 num26 = 0;
73010 }
73011 if (num27 > Main.maxTilesY)
73012 {
73013 num27 = Main.maxTilesY;
73014 }
73015 for (int n = num24; n <= num25; n++)
73016 {
73017 for (int num28 = num26; num28 < num27; num28++)
73018 {
73019 if (num28 != num26 || (n != num24 && n != num25))
73020 {
73021 tile = Main.tile[n, num28];
73022 if (tile.wall == 0)
73023 {
73024 tile = Main.tile[n, num28];
73025 tile.active(active: false);
73026 tile = Main.tile[n, num28];
73027 tile.wall = wall;
73028 }
73029 }
73030 }
73031 }
73032 int num29 = i + (num12 + 1) * num;
73033 int num2 = (int)vector2D.Y;
73034 for (int num3 = num29 - 2; num3 <= num29 + 2; num3++)
73035 {
73036 tile = Main.tile[num3, num2];
73037 tile.active(active: false);
73038 tile = Main.tile[num3, num2 - 1];
73039 tile.active(active: false);
73040 tile = Main.tile[num3, num2 - 2];
73041 tile.active(active: false);
73042 }
73043 if (remixWorldGen)
73044 {
73045 if (flag)
73046 {
73047 PlaceTile(num29, num2, 10, mute: true, forced: false, -1, 5);
73048 }
73049 else
73050 {
73051 PlaceTile(num29, num2, 10, mute: true, forced: false, -1, 38);
73052 }
73053 }
73054 else
73055 {
73056 PlaceTile(num29, num2, 10, mute: true, forced: false, -1, 9);
73057 }
73058 num29 = i + (num12 + 1) * -num - num;
73059 for (int num4 = num26; num4 <= num27 + 1; num4++)
73060 {
73061 tile = Main.tile[num29, num4];
73062 tile.active(active: true);
73063 tile = Main.tile[num29, num4];
73064 tile.liquid = 0;
73065 tile = Main.tile[num29, num4];
73066 tile.type = type;
73067 tile = Main.tile[num29, num4];
73068 tile.wall = 0;
73069 tile = Main.tile[num29, num4];
73070 tile.halfBrick(halfBrick: false);
73071 tile = Main.tile[num29, num4];
73072 tile.slope(0);
73073 }
73074 int contain = 0;
73076 if (num5 > 3)
73077 {
73078 num5 = genRand.Next(4);
73079 }
73080 switch (num5)
73081 {
73082 case 0:
73083 contain = 159;
73084 break;
73085 case 1:
73086 contain = 65;
73087 break;
73088 case 2:
73089 contain = 158;
73090 break;
73091 case 3:
73092 contain = 2219;
73093 break;
73094 }
73095 if (getGoodWorldGen)
73096 {
73098 }
73099 else
73100 {
73102 }
73103 if (islandStyle > 0)
73104 {
73105 for (int num6 = 0; num6 < 100000; num6++)
73106 {
73107 int num7 = i + genRand.Next(-50, 51);
73108 int num8 = num2 + genRand.Next(21);
73109 if (num6 < 50000)
73110 {
73111 tile = Main.tile[num7, num8];
73112 if (tile.type == 202)
73113 {
73114 continue;
73115 }
73116 }
73117 tile = Main.tile[num7, num8];
73118 if (!tile.active())
73119 {
73120 Place2xX(num7, num8, 207, islandStyle);
73121 tile = Main.tile[num7, num8];
73122 if (tile.active())
73123 {
73125 break;
73126 }
73127 }
73128 }
73129 }
73131 if (!remixWorldGen)
73132 {
73133 int num9 = i - num12 / 2 + 1;
73134 int num10 = i + num12 / 2 - 1;
73135 int num11 = 1;
73136 if (num12 > 10)
73137 {
73138 num11 = 2;
73139 }
73140 int num13 = (num26 + num27) / 2 - 1;
73141 for (int num14 = num9 - num11; num14 <= num9 + num11; num14++)
73142 {
73143 for (int num15 = num13 - 1; num15 <= num13 + 1; num15++)
73144 {
73145 tile = Main.tile[num14, num15];
73146 tile.wall = 21;
73147 }
73148 }
73149 for (int num16 = num10 - num11; num16 <= num10 + num11; num16++)
73150 {
73151 for (int num17 = num13 - 1; num17 <= num13 + 1; num17++)
73152 {
73153 tile = Main.tile[num16, num17];
73154 tile.wall = 21;
73155 }
73156 }
73157 }
73158 int num18 = i + (num12 / 2 + 1) * -num;
73159 if (remixWorldGen)
73160 {
73161 if (flag)
73162 {
73163 PlaceTile(num18, num27 - 1, 14, mute: true, forced: false, -1, 5);
73164 PlaceTile(num18 - 2, num27 - 1, 15, mute: true, forced: false, 0, 8);
73165 PlaceTile(num18 + 2, num27 - 1, 15, mute: true, forced: false, 0, 8);
73166 }
73167 else
73168 {
73169 PlaceTile(num18, num27 - 1, 469, mute: true, forced: false, -1, 2);
73170 PlaceTile(num18 - 2, num27 - 1, 15, mute: true, forced: false, 0, 38);
73171 PlaceTile(num18 + 2, num27 - 1, 15, mute: true, forced: false, 0, 38);
73172 }
73173 }
73174 else
73175 {
73176 PlaceTile(num18, num27 - 1, 14, mute: true, forced: false, -1, 7);
73177 PlaceTile(num18 - 2, num27 - 1, 15, mute: true, forced: false, 0, 10);
73178 PlaceTile(num18 + 2, num27 - 1, 15, mute: true, forced: false, 0, 10);
73179 }
73180 tile = Main.tile[num18 - 2, num27 - 1];
73181 tile.frameX += 18;
73182 tile = Main.tile[num18 - 2, num27 - 2];
73183 tile.frameX += 18;
73184 if (!remixWorldGen)
73185 {
73186 int i2 = num24 + 1;
73187 int j2 = num26;
73188 PlaceTile(i2, j2, 91, mute: true, forced: false, -1, genRand.Next(7, 10));
73189 i2 = num25 - 1;
73190 j2 = num26;
73191 PlaceTile(i2, j2, 91, mute: true, forced: false, -1, genRand.Next(7, 10));
73192 if (num > 0)
73193 {
73194 i2 = num24;
73195 j2 = num26 + 1;
73196 }
73197 else
73198 {
73199 i2 = num25;
73200 j2 = num26 + 1;
73201 }
73202 PlaceTile(i2, j2, 91, mute: true, forced: false, -1, genRand.Next(7, 10));
73203 }
73204 if (islandStyle != 1)
73205 {
73206 return;
73207 }
73208 int num19 = genRand.Next(3, 6);
73209 for (int num20 = 0; num20 < 100000; num20++)
73210 {
73211 int num21 = i + genRand.Next(-50, 51);
73212 int num22 = num2 + genRand.Next(-10, 21);
73213 tile = Main.tile[num21, num22];
73214 if (!tile.active())
73215 {
73216 GrowPalmTree(num21, num22 + 1);
73217 tile = Main.tile[num21, num22];
73218 if (tile.active())
73219 {
73220 num19--;
73221 }
73222 }
73223 if (num19 <= 0)
73224 {
73225 break;
73226 }
73227 }
73228 }
static bool remixWorldGen
Definition WorldGen.cs:1386
static bool GrowPalmTree(int i, int y)
static bool PlaceTile(int i, int j, int Type, bool mute=false, bool forced=false, int plr=-1, int style=0)
static UnifiedRandom genRand
Definition WorldGen.cs:1455
static bool crimson
Definition WorldGen.cs:1170
static bool AddBuriedChest(Point point, int contain=0, bool notNearOtherChests=false, int Style=-1)
static void SwitchFountain(int i, int j)
static bool drunkWorldGen
Definition WorldGen.cs:1392
static bool getGoodWorldGen
Definition WorldGen.cs:1394
static void Place2xX(int x, int y, ushort type, int style=0)

References Terraria.WorldBuilding.GenVars.crimsonLeft, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.WorldBuilding.GenVars.skyIslandHouseCount, and Terraria.Main.tile.