Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
AHoverInteractionChecker.cs
Go to the documentation of this file.
4
6
7public abstract class AHoverInteractionChecker
8{
9 internal enum HoverStatus
10 {
14 }
15
17 {
18 Point point = Hitbox.ClosestPointInRect(player.Center).ToTileCoordinates();
19 if (!player.IsInTileInteractionRange(point.X, point.Y, TileReachCheckSettings.Simple))
20 {
21 return HoverStatus.NotSelectable;
22 }
23 Matrix matrix = Matrix.Invert(Main.GameViewMatrix.ZoomMatrix);
26 Vector2 v = vector + Main.screenPosition;
27 bool flag = Hitbox.Contains(v.ToPoint());
28 bool flag2 = flag;
29 bool? flag3 = AttemptOverridingHoverStatus(player, Hitbox);
30 if (flag3.HasValue)
31 {
32 flag2 = flag3.Value;
33 }
34 flag2 &= !player.lastMouseInterface;
35 bool flag4 = !Main.SmartCursorIsUsed && !PlayerInput.UsingGamepad;
36 if (!flag2)
37 {
38 if (!flag4)
39 {
40 return HoverStatus.SelectableButNotSelected;
41 }
42 return HoverStatus.NotSelectable;
43 }
44 Main.HasInteractibleObjectThatIsNotATile = true;
45 if (flag)
46 {
47 DoHoverEffect(player, Hitbox);
48 }
50 {
52 }
53 bool flag5 = ShouldBlockInteraction(player, Hitbox);
54 if (Main.mouseRight && Main.mouseRightRelease && !flag5)
55 {
56 Main.mouseRightRelease = false;
57 player.tileInteractAttempted = true;
58 player.tileInteractionHappened = true;
59 player.releaseUseTile = false;
60 PerformInteraction(player, Hitbox);
61 }
63 {
64 return HoverStatus.NotSelectable;
65 }
66 if (!flag4)
67 {
68 return HoverStatus.Selected;
69 }
70 return HoverStatus.NotSelectable;
71 }
72
73 internal abstract bool? AttemptOverridingHoverStatus(Player player, Rectangle rectangle);
74
75 internal abstract void DoHoverEffect(Player player, Rectangle hitbox);
76
77 internal abstract bool ShouldBlockInteraction(Player player, Rectangle hitbox);
78
79 internal abstract void PerformInteraction(Player player, Rectangle hitbox);
80}
Vector2 Center
Definition Entity.cs:43
bool ShouldBlockInteraction(Player player, Rectangle hitbox)
void PerformInteraction(Player player, Rectangle hitbox)
bool? AttemptOverridingHoverStatus(Player player, Rectangle rectangle)
static Vector2 ReverseGravitySupport(Vector2 pos, float height=0f)
Definition Main.cs:3005
static bool mouseRight
Definition Main.cs:616
static Vector2 screenPosition
Definition Main.cs:1715
static Vector2 MouseScreen
Definition Main.cs:2773
static SpriteViewMatrix GameViewMatrix
Definition Main.cs:227
static bool mouseRightRelease
Definition Main.cs:1757
static bool SmartCursorIsUsed
Definition Main.cs:2855
void GamepadEnableGrappleCooldown()
Definition Player.cs:23162
bool IsInTileInteractionRange(int targetX, int targetY, TileReachCheckSettings settings)
Definition Player.cs:29821
bool lastMouseInterface
Definition Player.cs:1139
static Matrix Invert(Matrix matrix)
Definition Matrix.cs:1694
bool Contains(int x, int y)
Definition Rectangle.cs:92
static Vector2 Transform(Vector2 position, Matrix matrix)
Definition Vector2.cs:317