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

◆ CheckTreeWithSettings()

static void Terraria.WorldGen.CheckTreeWithSettings ( int x,
int y,
CheckTreeSettings settings )
inlinestatic

Definition at line 46039 of file WorldGen.cs.

46040 {
46041 int num = -1;
46042 int num2 = -1;
46043 int num3 = -1;
46044 int num4 = -1;
46045 Tile tile = Main.tile[x, y];
46046 int type = tile.type;
46047 int frameX = tile.frameX;
46048 int frameY = tile.frameY;
46049 if (Main.tile[x - 1, y] != null && Main.tile[x - 1, y].active())
46050 {
46051 num2 = Main.tile[x - 1, y].type;
46052 }
46053 if (Main.tile[x + 1, y] != null && Main.tile[x + 1, y].active())
46054 {
46055 num3 = Main.tile[x + 1, y].type;
46056 }
46057 if (Main.tile[x, y - 1] != null && Main.tile[x, y - 1].active())
46058 {
46059 num = Main.tile[x, y - 1].type;
46060 }
46061 if (Main.tile[x, y + 1] != null && Main.tile[x, y + 1].active())
46062 {
46063 num4 = Main.tile[x, y + 1].type;
46064 }
46065 bool flag = settings.IsGroundValid(num4);
46066 bool flag2 = num3 == type;
46067 bool flag3 = num2 == type;
46068 if (!flag && num4 != type && ((tile.frameX == 0 && tile.frameY <= 130) || (tile.frameX == 22 && tile.frameY <= 130) || (tile.frameX == 44 && tile.frameY <= 130)))
46069 {
46070 KillTile(x, y);
46071 }
46072 if (tile.frameX >= 22 && tile.frameX <= 44 && tile.frameY >= 132 && tile.frameY <= 176)
46073 {
46074 if (!flag)
46075 {
46076 KillTile(x, y);
46077 }
46078 else if (!(tile.frameX == 22 && flag3) && !(tile.frameX == 44 && flag2))
46079 {
46080 KillTile(x, y);
46081 }
46082 }
46083 else if ((tile.frameX == 88 && tile.frameY >= 0 && tile.frameY <= 44) || (tile.frameX == 66 && tile.frameY >= 66 && tile.frameY <= 130) || (tile.frameX == 110 && tile.frameY >= 66 && tile.frameY <= 110) || (tile.frameX == 132 && tile.frameY >= 0 && tile.frameY <= 176))
46084 {
46085 if (flag3 && flag2)
46086 {
46087 if (tile.frameNumber() == 0)
46088 {
46089 tile.frameX = 110;
46090 tile.frameY = 66;
46091 }
46092 if (tile.frameNumber() == 1)
46093 {
46094 tile.frameX = 110;
46095 tile.frameY = 88;
46096 }
46097 if (tile.frameNumber() == 2)
46098 {
46099 tile.frameX = 110;
46100 tile.frameY = 110;
46101 }
46102 }
46103 else if (flag3)
46104 {
46105 if (tile.frameNumber() == 0)
46106 {
46107 tile.frameX = 88;
46108 tile.frameY = 0;
46109 }
46110 if (tile.frameNumber() == 1)
46111 {
46112 tile.frameX = 88;
46113 tile.frameY = 22;
46114 }
46115 if (tile.frameNumber() == 2)
46116 {
46117 tile.frameX = 88;
46118 tile.frameY = 44;
46119 }
46120 }
46121 else if (flag2)
46122 {
46123 if (tile.frameNumber() == 0)
46124 {
46125 tile.frameX = 66;
46126 tile.frameY = 66;
46127 }
46128 if (tile.frameNumber() == 1)
46129 {
46130 tile.frameX = 66;
46131 tile.frameY = 88;
46132 }
46133 if (tile.frameNumber() == 2)
46134 {
46135 tile.frameX = 66;
46136 tile.frameY = 110;
46137 }
46138 }
46139 else
46140 {
46141 if (tile.frameNumber() == 0)
46142 {
46143 tile.frameX = 0;
46144 tile.frameY = 0;
46145 }
46146 if (tile.frameNumber() == 1)
46147 {
46148 tile.frameX = 0;
46149 tile.frameY = 22;
46150 }
46151 if (tile.frameNumber() == 2)
46152 {
46153 tile.frameX = 0;
46154 tile.frameY = 44;
46155 }
46156 }
46157 }
46158 if (tile.frameY >= 132 && tile.frameY <= 176 && (tile.frameX == 0 || tile.frameX == 66 || tile.frameX == 88))
46159 {
46160 if (!flag)
46161 {
46162 KillTile(x, y);
46163 }
46164 if (!flag3 && !flag2)
46165 {
46166 if (tile.frameNumber() == 0)
46167 {
46168 tile.frameX = 0;
46169 tile.frameY = 0;
46170 }
46171 if (tile.frameNumber() == 1)
46172 {
46173 tile.frameX = 0;
46174 tile.frameY = 22;
46175 }
46176 if (tile.frameNumber() == 2)
46177 {
46178 tile.frameX = 0;
46179 tile.frameY = 44;
46180 }
46181 }
46182 else if (!flag3)
46183 {
46184 if (tile.frameNumber() == 0)
46185 {
46186 tile.frameX = 0;
46187 tile.frameY = 132;
46188 }
46189 if (tile.frameNumber() == 1)
46190 {
46191 tile.frameX = 0;
46192 tile.frameY = 154;
46193 }
46194 if (tile.frameNumber() == 2)
46195 {
46196 tile.frameX = 0;
46197 tile.frameY = 176;
46198 }
46199 }
46200 else if (!flag2)
46201 {
46202 if (tile.frameNumber() == 0)
46203 {
46204 tile.frameX = 66;
46205 tile.frameY = 132;
46206 }
46207 if (tile.frameNumber() == 1)
46208 {
46209 tile.frameX = 66;
46210 tile.frameY = 154;
46211 }
46212 if (tile.frameNumber() == 2)
46213 {
46214 tile.frameX = 66;
46215 tile.frameY = 176;
46216 }
46217 }
46218 else
46219 {
46220 if (tile.frameNumber() == 0)
46221 {
46222 tile.frameX = 88;
46223 tile.frameY = 132;
46224 }
46225 if (tile.frameNumber() == 1)
46226 {
46227 tile.frameX = 88;
46228 tile.frameY = 154;
46229 }
46230 if (tile.frameNumber() == 2)
46231 {
46232 tile.frameX = 88;
46233 tile.frameY = 176;
46234 }
46235 }
46236 }
46237 if ((tile.frameX == 66 && (tile.frameY == 0 || tile.frameY == 22 || tile.frameY == 44)) || (tile.frameX == 44 && (tile.frameY == 198 || tile.frameY == 220 || tile.frameY == 242)))
46238 {
46239 if (!flag2)
46240 {
46241 KillTile(x, y);
46242 }
46243 }
46244 else if ((tile.frameX == 88 && (tile.frameY == 66 || tile.frameY == 88 || tile.frameY == 110)) || (tile.frameX == 66 && (tile.frameY == 198 || tile.frameY == 220 || tile.frameY == 242)))
46245 {
46246 if (!flag3)
46247 {
46248 KillTile(x, y);
46249 }
46250 }
46251 else if (num4 == -1)
46252 {
46253 KillTile(x, y);
46254 }
46255 else if (num != type && tile.frameY < 198 && ((tile.frameX != 22 && tile.frameX != 44) || tile.frameY < 132))
46256 {
46257 if (flag3 || flag2)
46258 {
46259 if (num4 == type)
46260 {
46261 if (flag3 && flag2)
46262 {
46263 if (tile.frameNumber() == 0)
46264 {
46265 tile.frameX = 132;
46266 tile.frameY = 132;
46267 }
46268 if (tile.frameNumber() == 1)
46269 {
46270 tile.frameX = 132;
46271 tile.frameY = 154;
46272 }
46273 if (tile.frameNumber() == 2)
46274 {
46275 tile.frameX = 132;
46276 tile.frameY = 176;
46277 }
46278 }
46279 else if (flag3)
46280 {
46281 if (tile.frameNumber() == 0)
46282 {
46283 tile.frameX = 132;
46284 tile.frameY = 0;
46285 }
46286 if (tile.frameNumber() == 1)
46287 {
46288 tile.frameX = 132;
46289 tile.frameY = 22;
46290 }
46291 if (tile.frameNumber() == 2)
46292 {
46293 tile.frameX = 132;
46294 tile.frameY = 44;
46295 }
46296 }
46297 else if (flag2)
46298 {
46299 if (tile.frameNumber() == 0)
46300 {
46301 tile.frameX = 132;
46302 tile.frameY = 66;
46303 }
46304 if (tile.frameNumber() == 1)
46305 {
46306 tile.frameX = 132;
46307 tile.frameY = 88;
46308 }
46309 if (tile.frameNumber() == 2)
46310 {
46311 tile.frameX = 132;
46312 tile.frameY = 110;
46313 }
46314 }
46315 }
46316 else if (flag3 && flag2)
46317 {
46318 if (tile.frameNumber() == 0)
46319 {
46320 tile.frameX = 154;
46321 tile.frameY = 132;
46322 }
46323 if (tile.frameNumber() == 1)
46324 {
46325 tile.frameX = 154;
46326 tile.frameY = 154;
46327 }
46328 if (tile.frameNumber() == 2)
46329 {
46330 tile.frameX = 154;
46331 tile.frameY = 176;
46332 }
46333 }
46334 else if (flag3)
46335 {
46336 if (tile.frameNumber() == 0)
46337 {
46338 tile.frameX = 154;
46339 tile.frameY = 0;
46340 }
46341 if (tile.frameNumber() == 1)
46342 {
46343 tile.frameX = 154;
46344 tile.frameY = 22;
46345 }
46346 if (tile.frameNumber() == 2)
46347 {
46348 tile.frameX = 154;
46349 tile.frameY = 44;
46350 }
46351 }
46352 else if (flag2)
46353 {
46354 if (tile.frameNumber() == 0)
46355 {
46356 tile.frameX = 154;
46357 tile.frameY = 66;
46358 }
46359 if (tile.frameNumber() == 1)
46360 {
46361 tile.frameX = 154;
46362 tile.frameY = 88;
46363 }
46364 if (tile.frameNumber() == 2)
46365 {
46366 tile.frameX = 154;
46367 tile.frameY = 110;
46368 }
46369 }
46370 }
46371 else
46372 {
46373 if (tile.frameNumber() == 0)
46374 {
46375 tile.frameX = 110;
46376 tile.frameY = 0;
46377 }
46378 if (tile.frameNumber() == 1)
46379 {
46380 tile.frameX = 110;
46381 tile.frameY = 22;
46382 }
46383 if (tile.frameNumber() == 2)
46384 {
46385 tile.frameX = 110;
46386 tile.frameY = 44;
46387 }
46388 }
46389 }
46390 if (tile.frameX != frameX && tile.frameY != frameY && frameX >= 0 && frameY >= 0)
46391 {
46392 TileFrame(x - 1, y);
46393 TileFrame(x + 1, y);
46394 TileFrame(x, y - 1);
46395 TileFrame(x, y + 1);
46396 }
46397 }
static void KillTile(int i, int j, bool fail=false, bool effectOnly=false, bool noItem=false)
static void TileFrame(int i, int j, bool resetFrame=false, bool noBreak=false)

References Terraria.Tile.frameNumber(), Terraria.Tile.frameX, Terraria.Tile.frameY, Terraria.WorldGen.CheckTreeSettings.IsGroundValid, Terraria.Main.tile, System.type, and Terraria.Tile.type.