2437 {
2442 int num = (int)(
Position.X / 16f) - 1;
2443 int num2 = (int)((
Position.X + (
float)Width) / 16f) + 2;
2445 int num4 = (int)((
Position.Y + (
float)Height) / 16f) + 2;
2450 if (num < 0)
2451 {
2452 num = 0;
2453 }
2454 if (
num2 > Main.maxTilesX)
2455 {
2456 num2 = Main.maxTilesX;
2457 }
2459 {
2461 }
2462 if (
num4 > Main.maxTilesY)
2463 {
2464 num4 = Main.maxTilesY;
2465 }
2467 for (
int i = num;
i <
num2;
i++)
2468 {
2470 {
2471 if (Main.tile[i,
j] ==
null || !Main.tile[i,
j].active() || (!
evenActuated && Main.tile[
i,
j].inActive()))
2472 {
2473 continue;
2474 }
2478 if (Main.tile[i,
j].halfBrick())
2479 {
2480 vector4.Y += 8f;
2482 }
2484 {
2485 continue;
2486 }
2488 {
2492 {
2493 result.Y = vector4.Y - (vector3.Y + (float)Height);
2494 }
2495 }
2496 else if (
vector3.X + (
float)Width <=
vector4.X && !Main.tileSolidTop[Main.tile[i,
j].type])
2497 {
2501 {
2502 result.X = vector4.X - (vector3.X + (float)Width);
2503 }
2505 {
2507 }
2508 }
2509 else if (
vector3.X >=
vector4.X + 16f && !Main.tileSolidTop[Main.tile[i,
j].type])
2510 {
2514 {
2515 result.X = vector4.X + 16f -
vector3.X;
2516 }
2518 {
2520 }
2521 }
2522 else if (
vector3.Y >=
vector4.Y + (
float)
num9 && !Main.tileSolidTop[Main.tile[i,
j].type])
2523 {
2526 result.Y = vector4.Y + (float)
num9 -
vector3.Y + 0.01f;
2528 {
2529 result.X = vector.X + 0.01f;
2530 }
2531 }
2532 }
2533 }
2534 return result;
2535 }