Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
SmartSelectGamepadPointer.cs
Go to the documentation of this file.
1using System;
3
4namespace Terraria.GameInput;
5
7{
8 private Vector2 _size;
9
11
12 private Vector2 _distUniform = new Vector2(80f, 64f);
13
14 public bool ShouldBeUsed()
15 {
16 if (PlayerInput.UsingGamepad && Main.LocalPlayer.controlTorch)
17 {
19 }
20 return false;
21 }
22
23 public void SmartSelectLookup_GetTargetTile(Player player, out int tX, out int tY)
24 {
25 tX = (int)(((float)Main.mouseX + Main.screenPosition.X) / 16f);
26 tY = (int)(((float)Main.mouseY + Main.screenPosition.Y) / 16f);
27 if (player.gravDir == -1f)
28 {
29 tY = (int)((Main.screenPosition.Y + (float)Main.screenHeight - (float)Main.mouseY) / 16f);
30 }
31 if (ShouldBeUsed())
32 {
33 Point point = GetPointerPosition().ToPoint();
34 tX = (int)(((float)point.X + Main.screenPosition.X) / 16f);
35 tY = (int)(((float)point.Y + Main.screenPosition.Y) / 16f);
36 if (player.gravDir == -1f)
37 {
38 tY = (int)((Main.screenPosition.Y + (float)Main.screenHeight - (float)point.Y) / 16f);
39 }
40 }
41 }
42
43 public void UpdateSize(Vector2 size)
44 {
45 _size = size;
46 }
47
48 public void UpdateCenter(Vector2 center)
49 {
50 _center = center;
51 }
52
54 {
55 Vector2 vector = (new Vector2(Main.mouseX, Main.mouseY) - _center) / _size;
56 float num = Math.Abs(vector.X);
57 if (num < Math.Abs(vector.Y))
58 {
59 num = Math.Abs(vector.Y);
60 }
61 if (num > 1f)
62 {
63 vector /= num;
64 }
65 vector *= Main.GameViewMatrix.Zoom.X;
66 return vector * _distUniform + _center;
67 }
68}
static double Abs(double value)
void SmartSelectLookup_GetTargetTile(Player player, out int tX, out int tY)
static Vector2 screenPosition
Definition Main.cs:1715
static SpriteViewMatrix GameViewMatrix
Definition Main.cs:227
static bool SmartCursorIsUsed
Definition Main.cs:2855
static int mouseY
Definition Main.cs:606
static Player LocalPlayer
Definition Main.cs:2829
static int mouseX
Definition Main.cs:604