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

◆ TouchBlockSurfaceCenter()

bool Terraria.Player.TouchBlockSurfaceCenter ( int x,
int y,
Tile tile,
out int exitNormalX,
out int exitNormalY,
out Vector2 surfaceCenter )
inlineprivate

Definition at line 22651 of file Player.cs.

22652 {
22653 exitNormalX = (exitNormalY = 0);
22654 Vector2 vector = new Vector2(x * 16, y * 16);
22655 Vector2 vector2 = new Vector2(vector.X + 16f, vector.Y);
22656 Vector2 vector3 = new Vector2(vector.X, vector.Y + 16f);
22657 Vector2 vector4 = new Vector2(vector.X + 16f, vector.Y + 16f);
22658 int num = 0;
22659 int num2 = 0;
22660 switch (tile.blockType())
22661 {
22662 case 1:
22663 vector.Y += 8f;
22664 vector2.Y += 8f;
22665 break;
22666 case 3:
22667 vector.Y += 16f;
22668 num = -1;
22669 break;
22670 case 2:
22671 vector2.Y += 16f;
22672 num = 1;
22673 break;
22674 case 5:
22675 vector3.Y -= 16f;
22676 num2 = -1;
22677 break;
22678 case 4:
22679 vector4.Y -= 16f;
22680 num2 = 1;
22681 break;
22682 }
22683 Vector2 vector5 = new Vector2(0.0001f);
22684 _ = position - vector5;
22685 _ = base.Size + vector5 * 2f;
22686 Rectangle hitbox = base.Hitbox;
22688 float num3 = 4f;
22689 if (hitbox.Distance(surfaceCenter) <= num3)
22690 {
22691 exitNormalX = num;
22692 exitNormalY = -1;
22693 return true;
22694 }
22696 if (hitbox.Distance(surfaceCenter) <= num3)
22697 {
22698 exitNormalX = num2;
22699 exitNormalY = 1;
22700 return true;
22701 }
22702 if (vector != vector3)
22703 {
22705 if (hitbox.Distance(surfaceCenter) <= num3)
22706 {
22707 exitNormalX = -1;
22708 exitNormalY = 0;
22709 return true;
22710 }
22711 }
22712 if (vector2 != vector4)
22713 {
22715 if (hitbox.Distance(surfaceCenter) <= num3)
22716 {
22717 exitNormalX = 1;
22718 exitNormalY = 0;
22719 return true;
22720 }
22721 }
22722 return false;
22723 }
Vector2 position
Definition Entity.cs:14
static Vector2 Lerp(Vector2 value1, Vector2 value2, float amount)
Definition Vector2.cs:227

References Terraria.Tile.blockType(), and Microsoft.Xna.Framework.Vector2.Lerp().