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

◆ Prune()

void Terraria.HitTile.Prune ( )
inline

Definition at line 249 of file HitTile.cs.

250 {
251 bool flag = false;
252 for (int i = 0; i <= 500; i++)
253 {
254 HitTileObject hitTileObject = data[i];
255 if (hitTileObject.type == 0)
256 {
257 continue;
258 }
259 Tile tile = Main.tile[hitTileObject.X, hitTileObject.Y];
260 if (hitTileObject.timeToLive <= 1)
261 {
262 hitTileObject.Clear();
263 flag = true;
264 continue;
265 }
266 hitTileObject.timeToLive--;
267 if ((double)hitTileObject.timeToLive < 12.0)
268 {
269 hitTileObject.damage -= 10;
270 }
271 else if ((double)hitTileObject.timeToLive < 24.0)
272 {
273 hitTileObject.damage -= 7;
274 }
275 else if ((double)hitTileObject.timeToLive < 36.0)
276 {
277 hitTileObject.damage -= 5;
278 }
279 else if ((double)hitTileObject.timeToLive < 48.0)
280 {
281 hitTileObject.damage -= 2;
282 }
283 if (hitTileObject.damage < 0)
284 {
285 hitTileObject.Clear();
286 flag = true;
287 }
288 else if (hitTileObject.type == 1)
289 {
290 if (!tile.active())
291 {
292 hitTileObject.Clear();
293 flag = true;
294 }
295 }
296 else if (tile.wall == 0)
297 {
298 hitTileObject.Clear();
299 flag = true;
300 }
301 }
302 if (!flag)
303 {
304 return;
305 }
306 int num = 1;
307 while (flag)
308 {
309 flag = false;
310 for (int j = num; j < 500; j++)
311 {
312 if (data[order[j]].type == 0 && data[order[j + 1]].type != 0)
313 {
314 int num2 = order[j];
315 order[j] = order[j + 1];
316 order[j + 1] = num2;
317 flag = true;
318 }
319 }
320 }
321 }
HitTileObject[] data
Definition HitTile.cs:66

References Terraria.Tile.active(), Terraria.HitTile.HitTileObject.Clear(), Terraria.HitTile.HitTileObject.damage, Terraria.HitTile.data, Terraria.HitTile.order, Terraria.Main.tile, Terraria.HitTile.HitTileObject.timeToLive, System.type, Terraria.HitTile.HitTileObject.type, Terraria.Tile.wall, Terraria.HitTile.HitTileObject.X, and Terraria.HitTile.HitTileObject.Y.

Referenced by Terraria.HitTile.ClearThisTile(), and Terraria.HitTile.TryClearingAndPruning().